面向?qū)ο蟮淖冸娬咀詣踊到y(tǒng)控保單元人機界面設(shè)計
文章論述了變電站自動化系統(tǒng)控保單元人機界面的要求;借鑒Windows應(yīng)用程序的設(shè)計思路,按面向?qū)ο蟮囊髽?gòu)造了以頁面為對象的人機界面程序的框架;介紹了頁面操作的具體實現(xiàn)方法,并提出了完成控保單元整個人機界面設(shè)計還需進一步完成的工作。雖然基于單片機的人機界面程序不可能實現(xiàn)Windows應(yīng)用程序的核心——消息響應(yīng)機制,但仍大大提高了界面的友好性和程序的可移植性,顯示了面向?qū)ο笤O(shè)計方法的優(yōu)越性。
近年來,面向?qū)ο蟮某绦蛟O(shè)計方法(OOP)已成為人們構(gòu)造程序的事實標準,很多采用OOP方法設(shè)計的程序成為程序設(shè)計的典范,Windows應(yīng)用程序就是一例。借鑒Windows應(yīng)用程序界面設(shè)計思想,將面向?qū)ο蟮姆椒ㄒ肟乇卧藱C界面的設(shè)計,使人機交互程序變得清晰簡潔,同時大大提高了在不同功用控保單元上的可移植性。
1 變電站自動化系統(tǒng)控保單元人機界面功能分析
1.1 控保單元
1.1.1 控保單元簡介
變電站綜合自動化系統(tǒng)已經(jīng)從早期的集中式單CPU發(fā)展到今天的分層分布式多CPU系統(tǒng)。目前變電站綜合自動化的發(fā)展趨勢是將功能強大的微機監(jiān)控系統(tǒng)與全數(shù)字化的微機保護測控技術(shù)、高速網(wǎng)絡(luò)通信技術(shù)結(jié)合起來,取代傳統(tǒng)的RTU,實現(xiàn)無人值班。目前國內(nèi)變電站綜合自動化發(fā)展的趨勢是將傳統(tǒng)上集中在一起的監(jiān)控 、保護功能分散到各個現(xiàn)場中分布實施。具體來說就是在變電站中按照電氣間隔劃分單元,每一個獨立控保裝置(如進線、出線、變壓器、母聯(lián)、電容器等)分別安裝各自獨立的控保單元。這些分散的控保單元再通過通信網(wǎng)絡(luò)與監(jiān)控主機連起來,構(gòu)成一個有機的整體,從而實現(xiàn)集中管理、分散控制。這種體系結(jié)構(gòu)符合變電站自動化系統(tǒng)的發(fā)展趨勢,設(shè)計規(guī)范,調(diào)整擴建簡單,設(shè)備布置整齊,運行維護方便。
1.1.2 控保單元人機界面正面示圖
圖1控保單元操作界面圖圖1所示的某種典型控保單元操作界面可分為4個區(qū)域:區(qū)域A為液晶顯示區(qū);區(qū)域B為鍵盤輸入?yún)^(qū);區(qū)域C為控制命令輸入?yún)^(qū);區(qū)域D為指示燈及揚聲器輸出區(qū)。注意:為了防止誤操作,特意將控制命令鍵同鍵盤輸入?yún)^(qū)域B分開,單獨列為區(qū)域C,并且加密碼保護。
1.2 鍵盤
鍵盤作為控保單元人機交互系統(tǒng)的主要組成部分,擔(dān)負著傳遞用戶命令至控保單元的任務(wù)。按人機交互系統(tǒng)對其不同的響應(yīng)過程可將按鍵分為以下5類:
(1) 數(shù)字鍵+小數(shù)點鍵+回退鍵
這些鍵用做單個或連續(xù)數(shù)字的輸入,并由交互系統(tǒng)軟件賦予其意義。
(2) 上/下移動選擇鍵
這兩個鍵用做菜單選擇、屏幕翻頁、選項選定等。
(3) 確認鍵
此鍵用做選定操作項,類似于Windows中的[OK]鍵。
(4) 取消鍵
用做取消當前操作項或菜單退回到上級目錄,類似于Windows中的[CANCEL]鍵。
(5) 命令鍵
這些鍵用做合分閘、遠動就地切換、事故復(fù)位等重要命令的輸入。
1.3 液晶屏幕
液晶屏幕在控保單元人機交互系統(tǒng)中擔(dān)負著傳遞控保單元信息至用戶的任務(wù)。為了使操作簡單方便,液晶屏幕信息的顯示采用了分層菜單結(jié)構(gòu),輔以上/下移動選擇鍵、確認鍵、取消鍵就可完成整個菜單的完全檢索。菜單結(jié)構(gòu)是建立在“頁面”的基礎(chǔ)上的,所謂“頁面”,指的是液晶上顯示的一屏,由兩部分組成:靜態(tài)文本和動態(tài)數(shù)據(jù)。靜態(tài)文本包括說明性的文字及提示信息等,由漢字和字符組成,在人機交互軟件中是用字符串來表示的;動態(tài)數(shù)據(jù)指實時刷新的數(shù)值或可由用戶修改的信息,在人機交互軟件中是用數(shù)值變量來表示的,液晶頁面根據(jù)其組成的不同可分為以下幾類:
(1)純文本頁面。如目錄,這類頁面不包括數(shù)據(jù),因此顯示時只要刷新一次即可。
(2)文本+實時數(shù)據(jù)頁面。如測量電量顯示頁面,這類頁面由于包含實時刷新的數(shù)據(jù),顯示時,數(shù)據(jù)顯示部分須不斷刷新以保持實時有效,但用戶不能通過鍵盤對數(shù)據(jù)進行修改等操作。
(3)文本+可修改數(shù)據(jù)頁面。如定值修改頁面,這類頁面包含的可修改數(shù)據(jù)可由用戶通過鍵盤的數(shù)字鍵進行改動。
(4)幫助信息頁面。如錯誤操作警告等,這類頁面通常由純文本組成,但與以上3類頁面都不同的是頁面在顯示一段時間后會自動切換到引起該幫助信息的頁面。
2 以頁面為對象的控保單元人機交互設(shè)計
2.1 Windows應(yīng)用程序界面與控保單元界面相似之處
Windows應(yīng)用程序的設(shè)計過程是典型的面向?qū)ο蟮脑O(shè)計方法,同時Windows應(yīng)用程序“窗口”界面與控保單元人機交互界面有很大相似之處:(1)窗口通過消息響應(yīng)機制響應(yīng)鍵盤或鼠標等輸入設(shè)備的輸入信息,而在控保單元的某個頁面也是響應(yīng)鍵盤的輸入;(2)兩者都是在一簡單的while()循環(huán)中響應(yīng)外部輸入的;(3)都用多層嵌套的switchcase語句來決定某一消息對應(yīng)進行何種操作[2]。由此,自然想到借鑒Windows應(yīng)用程序的設(shè)計思路設(shè)計控保單元人機界面。當然,在單片機上設(shè)計菜單不同于Windows環(huán)境下軟件的開發(fā),因為許多Windows內(nèi)部的消息響應(yīng)機制以及由Windows封裝的數(shù)據(jù)結(jié)構(gòu)、對象和標準處理函數(shù),在單片機系統(tǒng)中統(tǒng)統(tǒng)不存在[1]。盡管如此,設(shè)計控保單元人機界面時仍然可以借鑒大量的Windows程序開發(fā)思路。
2.2 控保單元頁面
控保單元的頁面與Windows應(yīng)用程序中的窗口有很多相似之處。首先頁面處理的核心也是一個循環(huán)機制,它一直運行并響應(yīng)外部有效按鍵輸入,直到得到切換窗口的鍵碼。這與Windows窗口消息循環(huán)機制有很大相似之處;當然,基于單片機的頁面按鍵響應(yīng)機制不能借用Windows的消息響應(yīng)機制,而只能每得到一個按鍵響應(yīng)就處理一個。一個頁面生命周期流程表示如圖2:
圖2表示的流程實際上也是控保單元人機界面程序的入口程序main()的主體部分,只需在前面加上液晶、通訊模塊的初始化及全局變量的初始化就構(gòu)成了main()程序。流程圖中的幾個重要模塊說明如下:
初始化并顯示頁面包括以下幾個操作:
(1) 調(diào)用一清屏函數(shù)ClearPage(),清除上次頁面的遺留物;
(2) 顯示當前頁面內(nèi)容。如前所說,頁面由靜態(tài)文本和動態(tài)數(shù)據(jù)兩部分組成,因此這里也分兩步顯示頁面內(nèi)容:
a.調(diào)用DisplayTxt(unsigned char*)函數(shù)顯示當前頁面的靜態(tài)文本,靜態(tài)文本在屏幕上是逐行分布的,舉例來說,一個256*128點陣的液晶屏幕,顯示一個漢字需16*16,英文字符需8*16,因此,整個屏幕可以分成8行,每行可顯示16個漢字或32個英文字符。調(diào)用8次DisplayTxt函數(shù)就可完成頁面的靜態(tài)文本的顯示。DisplayTxt函數(shù)所帶的行參就是指向某一行文本的指針。
b.顯示當前頁面的動態(tài)數(shù)據(jù)。首先頁面應(yīng)刷新保存在緩沖區(qū)內(nèi)的當前頁面的動態(tài)數(shù)據(jù),此步驟調(diào)用Refr eshData(STRUCT*),傳遞參數(shù)是一個指向頁面結(jié)構(gòu)的指針。該函數(shù)負責(zé)從控保單元的數(shù)據(jù)采集CPU得到實時動態(tài)數(shù)據(jù),并保存在本地緩沖區(qū)以備顯示。然后頁面調(diào)用DisplayData()顯示動態(tài)數(shù)據(jù)。
鍵盤掃描循環(huán)是一無條件的while()循環(huán),它通過鍵盤掃描函數(shù)ScanKeyboard()返回鍵碼并進行相應(yīng)的操作,直到接收到的按鍵會導(dǎo)致頁面切換為止,這時,根據(jù)當前頁面的一個指針所指的新頁面,程序結(jié)束當前頁面,轉(zhuǎn)而進入新頁面的生命周期。循環(huán)中,除了包含鍵掃描函數(shù)ScanKeyboard()外,如果該頁面有動態(tài)數(shù)據(jù),還應(yīng)包含刷新數(shù)據(jù)的函數(shù)RefreshData(STRUCT*),以保持數(shù)據(jù)的實時性。
處理按鍵是用一個兩層嵌套的switch-case語句來實現(xiàn)的。如前面1.2節(jié)所述,將按鍵分為5類,而每一類按鍵又根據(jù)當前頁面不同類型分別進行處理。
默認處理一般可設(shè)為不響應(yīng)。
3 頁面操作的具體實現(xiàn)
3.1 按鍵處理
提交
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉(zhuǎn)型
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲強基 | ??低晭砭手黝}演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會