摘 要: 基于Excel開發(fā)實時監(jiān)控人機界面(HMI)軟件的技術路線,,大大降低了實時監(jiān)控人機界面軟件的開發(fā)難度和工作量,大幅度地縮短了開發(fā)周期,,節(jié)省了研發(fā)費用和投資,;不僅使所開發(fā)出的軟件具有強大的實時監(jiān)控功能,而且還具有高度的靈活性和可拓展性,,支持嵌入式系統(tǒng)項目的研發(fā),、生產(chǎn)及維護的整個生命周期的各個階段。
關鍵詞: Excel,;實時監(jiān)控,;人機界面;BASIC語言
對于以單片機為核心的嵌入式自動測控系統(tǒng),,通常在系統(tǒng)開發(fā)階段需要借助微型計算機(PC機)來完成數(shù)據(jù)采集,、數(shù)據(jù)分析、實時監(jiān)控,、人機交互等任務,。要有效地達到此目的,需要在PC機上安裝和運行一個實時監(jiān)控人機界面軟件,,自動化或半自動化地完成上述任務,。目前,主要有兩種開發(fā)實時監(jiān)控人機界面軟件的方法:(1)采用某種計算機語言直接編程實現(xiàn),,如采用微軟的可視化編程語言VC++6.0[1]或VB 6.0[1]等,;(2)在商品化的人機界面軟件框架的基礎上進行二次開發(fā)實現(xiàn),此類軟件框架在國外有InTouth[2],、WinCC[3],、RSView[4]等,,國內有“力控”[5]、“組態(tài)王”[6]等,。第一種方法具有高度的靈活性和可拓展性,,但要求開發(fā)者具有較高的計算機軟件技術水平,開發(fā)難度大,,開發(fā)周期長,。第二種方法降低了開發(fā)難度,但靈活性和可拓展性受到了很大限制,,有些方面難以滿足實際要求,,且此類商品化軟件框架的價格為幾千到十幾萬元,這是一筆不小的投資,?;趯ι鲜鰞煞N方法優(yōu)缺點的認識,本文提出了一條新的技術路線:基于Excel[7]開發(fā)實時監(jiān)控人機界面軟件,。采用這條新的技術路線,,大大降低了實時監(jiān)控人機界面軟件的開發(fā)難度,大幅度縮短了開發(fā)周期,,節(jié)省了研發(fā)費用和投資,;同時,不僅使所開發(fā)出的軟件具有強大的實時監(jiān)控功能,,而且還具有高度的靈活性和可拓展性,支持嵌入式系統(tǒng)項目的研發(fā),、生產(chǎn)和維護的整個生命周期的各個階段,。
1 基于Excel的技術路線
Excel是功能強大的電子表格處理軟件,其對象模型包括了一百多個不同的對象,,從文本框,、矩形等簡單對象到透視表、圖表等復雜對象,。特別是它集成了與微軟VB 6.0相兼容的Visual Basic計算機語言,,支持先進的面向對象和面向部件的編程技術,使得它成為了一個功能強大的軟件開發(fā)工具,。開發(fā)基于Excel的人機界面應用程序包括兩部分:設計用戶界面(GUI)和編寫代碼程序,。
傳統(tǒng)的應用程序界面開發(fā)方法要編寫一大段程序語句。與此不同的是,,本文利用了Excel集成的可視化Visual Basic編程語言和支持“快速原型法”的軟件開發(fā)模式,,即使用“工具箱”中的若干控件,按照設計者的構思,,在指定位置“畫”出對用戶友好的界面,。
有了用戶界面后,,對應用界面要執(zhí)行的控件進行“事件驅動”,也就是執(zhí)行某個程序算法,,使它按照設計者的意愿運行,。這一技術路線把原來統(tǒng)一控制的大程序分解成為許多獨立、小規(guī)模的子程序,,分別執(zhí)行事件,。如利用Excel自帶的自動化編程技術“錄制宏”生成的程序模塊為樣板程序,或利用自有的或第三方的AciveX控件編程進行功能拓展,。
2 實時監(jiān)控人機界面軟件的結構
在高性能恒溫晶振(OCXO)的科研項目中,,開發(fā)了用于精密控制恒溫箱的實時監(jiān)控人機界面。該高精度溫度控制系統(tǒng)以微控制器MSC1210為核心組成嵌入式系統(tǒng)控制器,,或稱為下位機,。下位機通過RS232串口與上位機(PC機)通信,如圖1所示,。
通過與下位機的通信,,對嵌入式系統(tǒng)的下位機進行監(jiān)控,自動記錄和顯示采樣數(shù)據(jù),、顯示工藝參數(shù)的實時趨勢曲線等,。其軟件結構如圖2所示。
啟動模塊具有“啟動監(jiān)控中心”,、“數(shù)據(jù)保存到文件”和初始化全局變量的功能,。實時監(jiān)控中心可以控制通信開關、上載開關,、選擇上載數(shù)據(jù)的處理方式,,實時設置并顯示控制器參數(shù),以及實時顯示采樣數(shù)據(jù),。其中通信開關是其他功能按鈕的使能開關,,即只有打開通信開關,上,、下位機的通信開始工作后,,其他功能按鈕才能工作。
3 主要功能模塊的設計介紹
3.1 通信模塊
通信模塊是軟件設計的難點,,其主要功能為實現(xiàn)上位機與下位機的通信,,設計的關鍵在于上位機與下位機通信協(xié)議條款的制定及實現(xiàn)。上位機與下位機通信的穩(wěn)定性與正確性是實現(xiàn)實時監(jiān)控的前提,,通信協(xié)議所制定的通信數(shù)據(jù)包格式一般需要設計成能完成基本的校驗功能,,它包含有前導碼、數(shù)據(jù)包標識碼,、數(shù)據(jù)校驗碼和結束碼,。
為了減少編程的難度和工作量,,采用微軟提供的串口通信AciveX控件MSCOMM32.OCX來實現(xiàn)與RS232串口硬件直接有關的底層功能。因此,,通信模塊程序僅處理有關通信協(xié)議方面的高層功能,,如收、發(fā)和校驗通信數(shù)據(jù)包,,上載與下載控制器參數(shù)包,,發(fā)送上位機向下位機下達的命令包等。
3.2 主監(jiān)控模塊
主監(jiān)控模塊用于顯示最新上載數(shù)據(jù),,包括給定值,、測量值、控制值以及上載量,、設置給定值,、設置手動控制值以及切換控制方式。值得一提的是,,這一實時監(jiān)控人機界面軟件可以實現(xiàn)無擾動切換自動與手動的控制方式,,即在兩者相互切換的過程中,PWM占空比不會出現(xiàn)大幅度跳動,,由此防止恒溫箱的輸入電流出現(xiàn)瞬時的大幅度變化,,干擾整個電路的正常工作。圖3為主監(jiān)控模塊的操作界面,。
3.3 實時數(shù)據(jù)記錄與保存模塊
此模塊把從控制器上載的實時數(shù)據(jù)和相關的時間,、工藝參數(shù)自動記錄到電子表格并將自動形成文件保存到硬盤中。
模塊程序的編寫使用了Excel電子表格對象模型,,并結合面向對象的編程技術來實現(xiàn),。采用了“錄制宏”的自動化編程技巧完成此項工作:首先,采用“錄制宏”,,把手工操作實現(xiàn)數(shù)據(jù)記錄與保存的每個步驟錄制下來后,Excel就會自動給出一個實現(xiàn)相應操作,、采用BASIC面向對象語言描述的程序模塊,;然后,以此BASIC程序模塊為樣板程序,,添加少量必要的程序流程控制語句和少量其他修改,,調試通過后就完成了此模塊程序的編寫。
從控制器上載的實時數(shù)據(jù)可以選擇直接寫入電子表格,,或者在趨勢曲線上顯示后成批寫入電子表格,。電子表格或趨勢曲線被設計成能夠顯示1 000組數(shù)據(jù),并按照記錄時間自動分配文件名保存到指定文件夾內,,以便于將來對數(shù)據(jù)進行分析和處理,。
3.4 控制器參數(shù)的實時修改和保存
控制器參數(shù)的實時修改功能是專為控制器的調試設置的,。在調試過程中,需要不斷調整控制器參數(shù)以尋找最佳值,。把控制器的參數(shù)設計為存放在單片機的RAM中,,每個參數(shù)均可按單獨下載刷新的方式方便地進行實時修改。同時,,把存放在RAM的參數(shù)寫入閃存,,以及把存放在閃存的參數(shù)恢復到RAM中存放的功能。
因此,,當調試完成或告一段落時,,就可以將控制器存放在RAM中的參數(shù)寫入閃存保存,作為最終產(chǎn)品的控制器參數(shù)或供下次實驗使用,??刂破髟谏想姀臀坏某跏蓟倪^程中,自動完成控制器參數(shù)的恢復或上次實驗參數(shù)的加載,,從而減少調試的工作量,。圖4為控制器參數(shù)的實時修改和保存界面。
3.5 實時趨勢曲線的顯示
如果直接用計算機語言編寫顯示實時趨勢曲線的程序,,將是難度很大且十分耗時的任務,。因此,為了降低難度和節(jié)省開發(fā)時間,,采用了微軟提供的圖形顯示AciveX控件MSCHRT20.OCX來完成這個任務,。所獲得的實時趨勢曲線顯示效果如圖5所示。
實時趨勢曲線圖直觀地顯示了當前控制器的測量值,、給定值和控制值,,大大降低了參數(shù)調試的操作難度。
3.6 歷史數(shù)據(jù)的重現(xiàn)與分析(圖示分析或統(tǒng)計數(shù)值分析)
實時數(shù)據(jù)的自動保存功能可以使歷史數(shù)據(jù)重現(xiàn),。Excel能完成絕大多數(shù)常用統(tǒng)計分析任務,。同時,Excel電子表格在數(shù)據(jù)的預處理,、圖形的繪制等方面具有相當出色的應用,,其內置函數(shù)數(shù)量多且使用方便,可以用于完成歷史數(shù)據(jù)的重現(xiàn)與分析,。
4 在科研項目中的應用
上述實時監(jiān)控人機界面已在項目實驗中應用,,并借此工具對高精度恒溫箱的制造技術參數(shù)、工藝參數(shù)和控制參數(shù)進行了大量有價值的探索,。
(1)控制器參數(shù)的設置,。其中,PID參數(shù)的設置是整個控溫的關鍵,其好壞直接影響控溫效果,。這一人機界面實時反映控制器當前狀態(tài),,使操作者能夠及時調整控制器參數(shù)。同時,,手動操作的功能也有助于了解被控對象的特性,,獲得第一手經(jīng)驗和技術訣竅,用于引入“實時專家系統(tǒng)”,。
(2)實驗數(shù)據(jù)的記錄與分析,。基于Excel電子表格的人機界面借用了Excel自帶的數(shù)據(jù)處理功能,,可以在曲線上重現(xiàn)歷史數(shù)據(jù),,從分析和重現(xiàn)記錄的歷史數(shù)據(jù)中獲得有用經(jīng)驗。
(3)變換實驗方案,?;贓xcel的實時監(jiān)控人機界面的開發(fā)簡便而有效,采用模塊式的編程方法,,組態(tài)靈活,、擴展容易,兼容性好,,從而在變換實驗方案時能以較快速度進行擴展和升級維護,,以適應實驗方案的改變。
(4)在項目產(chǎn)品生產(chǎn)階段,,這一程序可擴展為產(chǎn)品測試檢驗軟件,,自動生成產(chǎn)品質量的檢驗文件,實現(xiàn)產(chǎn)品質量的查詢,、分析和跟蹤的電子化,,并能夠向客戶提供合格產(chǎn)品的電子質量報告文件。
為嵌入式自動測控系統(tǒng)量身定制實時監(jiān)控人機界面軟件是一項技術復雜,、難度大,、開發(fā)周期長的任務。本文利用新的方法和技術路線達到了降低開發(fā)難度,、縮短開發(fā)周期和節(jié)省研發(fā)費用的目的,,并在嵌入式系統(tǒng)科研項目的應用中獲得了很好的運行效果,驗證了新的技術路線的可行性和有效性,。這一技術路線能有效支持嵌入式系統(tǒng)產(chǎn)品的整個生命周期?;贓xcel方案的最大缺點是運行速度比較慢,,原因為Excel的BASIC語言是解析執(zhí)行的。但是,基于Excel方案的程序很容易移植到微軟的VB6.0下編譯執(zhí)行,。最終采用此方法,,對基于Excel方案的程序進行移植處理后,不僅能夠提高程序的執(zhí)行速度,,而且還可以按照商品化的形式發(fā)布程序,。
參考文獻
[1] Microsoft Corporation.MSDN Library Visual Studio 6.0.1998.
[2] Invensys Systems,Inc.In touch user′s guide.2002.
[3] Siemens AG.SIMATIC HMI WinCC V6.0 Online Help.2005.
[4] Rockwell Software Inc.RSView32 user′s guide.1999.
[5] 北京三維力控科技有限公司.力控6.0聯(lián)機幫助.2008.
[6] 北京亞控科技有限公司.組態(tài)王6.52聯(lián)機幫助.2007.
[7] Microsoft Corporation.Microsoft Excel在線幫助.2003.