摘 要:現場智能儀器儀表的軟件系統(tǒng)由于開發(fā)者是在裸機上直接開發(fā),沒有任何支撐軟件支持,因而增加了軟件的開發(fā)難度,同時也極難保證軟件的繼承性和易維護性。文中基于軟件構件技術提出了軟件功能構件在CAN總線在現場智能儀表中的應用,并詳細介紹了軟件系統(tǒng)功能模塊的開發(fā)基礎、模塊組態(tài)技術以及與現場智能儀表中實時數據庫之間如何進行數據交換.很好地解決了上面提到的問題。
關鍵詞:軟件組件模塊;現場智能儀表;軟件系統(tǒng)
Software System Used in Intelligent Instrument Based on Software Component
LU Tan,QIAO Yi,YUAN Yun—fei
(Dalian Jiaotong University,Dalian 116028,China)
Abstract:Scene inteUigenee instrument measuring appliance software system.because the exploiter is develops directly on the bare mobile phone,does net have any support software support,thus increased the software development dificulty,simultaneously extremely is also dificult to guarantee the software continuing.Received the nature and easy to maintain.Proposed the software function component based on the software componenttechnology in the CAN main line in scene inteligence measuring applianee application.And introduced in detail this software system funefon module development foundation,module configuration technology as well as with scene intefigenee measuring appliance betwen the solid database carries on the data exchange,the very good solution above mentioned question.
Keywords:software module;field intellgentinstnunent;software system
0 引言
現場智能儀器儀表的軟件系統(tǒng)的繼承性和易維護性與其他大型復雜軟件一樣,是客觀存在和迫切需要的。一是因為隨著用戶需求的不斷提高和技術的不斷進步,軟件需要逐步完善和更新換代,使之保持強勁的市場競爭力;二是在系列產品中,軟件系統(tǒng)都存在許多相似性和共同點。軟件系統(tǒng)良好的繼承性和易維護性能夠很好地適應系列產品的開發(fā)。該軟件的模塊是一種具有對象的概念和封裝形式以及信息隱屏功能的軟件部件,它具有極好的可維護性和一定的繼承性。組態(tài)序列反映了模塊之間的相互作用,具有消息序列的本質特征。這種“組件模塊加組態(tài)序列形成軟件解空問”的方法,在很大程度上類似于面向對象、組件的程序設計方法,因而具有良好的繼承性和易維護性。
1 實時多任務操作系統(tǒng)
實時多任務操作系統(tǒng)由系統(tǒng)執(zhí)行、就緒、睡眠等狀態(tài)組成,具有剝奪式優(yōu)先級任務調度、單片機片內資源管理、中斷管理、時鐘管理等功能,包含建立時問片、信號量P操作、信號量v操作等原語,數據傳送借助實時數據庫的數據共享功能來實現。實時多任務操作系統(tǒng)實現了對硬件資源管理、硬件細節(jié)的信息隱蔽和在任務級上對應用軟件系統(tǒng)的支撐,并保證了該軟件系統(tǒng)的并行設計、并行調試和并行運行,使每個任務在設計、調試和運行中,完整使用全部單片機資源而自動完成相互之問的協(xié)調管理功能。
2 任務分配與管理
軟件系統(tǒng)有4個任務級子系統(tǒng),總體結構如圖1所示。
3 組態(tài)原理和組態(tài)序列以及組態(tài)序列解譯程序
組態(tài)軟件是基于功能模塊庫加組態(tài)序列來實現的,可滿足種類繁多的自動化行業(yè)和各種各樣的應用需求。組態(tài)序列是每個特定的處理周期中應用軟件所需完成的功能集合和模塊之間的消息傳遞序列,也是功能的選擇和按前后順序方式運行的組織形式。組態(tài)軟件原理結構如組態(tài)軟件的中心是組態(tài)序列和實時數據庫。當某一功能模塊響應組態(tài)序列呼叫為應用任務服務時,首先從功能模塊庫中調用該模塊,然后按該模塊定義的數據接口從實時數據庫中獲取數據,在模塊內部完成相應的操作、運算等處理后,再將其結果按定義的數據接口送回到實時數據庫中去。如圖2所示。
功能模塊的解譯程序被分散到實時多任務操作系統(tǒng)管理下的兩個任務中運行,兩個任務結構完全相同。功能模塊的解譯程序被分散到實時多任務操作系統(tǒng)管理下的兩個任務中運行。這兩個任務結構完全相同,每一個功能模塊的組態(tài)數據由l6個單字節(jié)參數組成,第一個參數為模塊功能號,是調用相應功能模塊操作處理過程的狀態(tài)字;第二至第十六個參數是輸入數據(來自實時數據庫)地址指針(占用兩個參數,是該數據在數據庫中的組號和組內序號)、單字節(jié)無符號常數、輸出數據(送往實時數據庫)地址指針、服務于該模塊的私有數據(或數據表)地址指針等。這15個單字節(jié)參數的含義沒有統(tǒng)一規(guī)定,由相應的功能模塊來定義。組態(tài)序列解譯程序框圖見圖3。
4 組件模塊及封裝
組件模塊由服務功能號、輸人數據地址指針、輸入常數(常數表)、輸出數據地址指針等組成。每一組件模塊有l(wèi)6個單字節(jié)參數,第一參數為服務功能號(0#標志著組態(tài)序列的結束),第二至第十六參數是輸入數據地址指針、輸入常數、輸出數據地址指針等。一個地址(位開關量地址除外)指針由2個參數組成,第一參數表示數據在數據庫排列中的行號(組號),第二參數表示列號(組內序號)。一個輸入常數、位開關量地址只用一個參數表示,輸入常數只能是單字節(jié)無符號整數。某一組件模塊除服務功能號外,其他參數可以沒有定義。這種組件模塊常常是和系統(tǒng)聯系比較密切,或者是一些專用系統(tǒng)的特殊組件模塊。在組態(tài)軟件中,每一模塊有3個接口:接口l用于設置模塊缺省參數值;接口2用于設置啟動時的工作參數初值;只有接口3才是完成功能模塊的實現入口。在每一處理周期中,接口3必須實現所定義的全部功能。
5 實時數據庫
數據庫是由每行l(wèi)6個數據的數據組組成,數據庫中的某一數據,可由指向該數據的排列行號和列號唯一指定。行號和列號形成的數據對是數據在數據庫中的地址指針。數據庫中的數據元素可以是浮點數、雙字節(jié)整形數、字節(jié)開關量和位開關量。一旦組態(tài)序列形成以后,數據庫中數據元素的性質隨之確定。但數據內容卻可以隨時變化。系統(tǒng)數據、組件模塊專用數據、數據寄存單元的組合形成了數據庫豐富的內容。系統(tǒng)數據是支撐軟件所使用的數據單元,包括A/D、D/A、數字量I/O、數碼顯示指針等。組件模塊專用數據是組件模塊對象的私有數據成員,當該組件模塊出現在組態(tài)序列中時,其私有數據隨之一起工作,為完成相應功能服務;當該組件模塊未出現在組態(tài)序列中時,這些私有數據成員便失去定義,并可作為一般數據寄存單元使用。數據寄存單元是專為組件模塊組態(tài)服務的,沒有使用的數據寄存單元是沒有定義的。在使用數據寄存單元時,應注意模塊使用的數據的性質要與數據寄存單元的性質相符(如浮點數不能放在整形數和字節(jié)開關量寄存單元中)。另外,還要注意數據寄存單元的字節(jié)長度,以免超長數據與其他數據相沖突。
[b]6 組態(tài)軟件工程實現
6.1 實時性能[/b]
軟件的組態(tài)功能,還可歸結為對開關量和模擬量的操作運算兩大部分,即包含有常規(guī)PLC和回路調節(jié)器兩大部分內容。然而在實際應用中,這兩部分內容對實時性能的要求是不完全相同的。如果將它們放在同一個周期中處理,速度太快會限制所完成的工作量,而速度太慢將有損開關量處理的性能。因此,組態(tài)軟件將這兩大部份分開放在不同的任務中完成來解決這一矛盾。但如果將組態(tài)序列也分開,將會給組態(tài)過程和組態(tài)序列的編輯、下載等帶來不便。為此,組態(tài)軟件專門設計了功能模塊Fun2,用于設定任務l和任務2的分界點。Fun2之前的模塊隊列在任務l中運行,處理周期為20 ms,優(yōu)先級最高;Fun2之后的模塊隊列在任務2中運行,處理周期為100ms,優(yōu)先級第一。
6.2 組態(tài)序列編輯
組態(tài)序列由組態(tài)數據庫管理。組態(tài)數據庫共有1600點單字節(jié)參數,設計為100行×16列,每行為一個模塊的組態(tài),組態(tài)數據庫最大能容納100個模塊。就地實現組態(tài)過程是直接在現場儀表的操作鍵盤上完成。該組態(tài)軟件為組態(tài)數據庫的進入設有專門的保護口令。當輸入組態(tài)口令進入編輯組態(tài)數據庫狀態(tài)時,操作鍵盤將重新定義為組態(tài)數據庫編輯鍵,實現其編輯功能。對組態(tài)數據庫的編輯,是實現現場儀表控制運算功能的重構和寄存單元的重新分配。為保證在線組態(tài)時不出現危險,維護系統(tǒng)安全運行,組態(tài)軟件在組態(tài)數據庫的數據發(fā)生變化時,采用了以下保護措施:凍結模擬量輸出值的大小和開關量的輸出狀態(tài);在退出組態(tài)數據庫編輯狀態(tài)時自動復位,使軟件系統(tǒng)重新啟動,并重新設置組態(tài)隊列中所用模塊的缺省值。
6.3 組態(tài)的工作參數
一些復雜的功能模塊(如PID控制、自動整定等)有許多類似于“對象”概念中的屬性、方法和事件,并可表達成參數的數值和開關量的狀態(tài)。由于功能模塊的組態(tài)數據中僅有16個單字節(jié)參數,根本無法滿足對功能模塊全部參數地址指針的設置,為此,在該組態(tài)軟件的實時數據庫中,有許多單元是特定為某些功能模塊服務的。當這些功能模塊出現在組態(tài)隊列中時,這些特定數據項便有了定義,反映出該模塊的屬性、方法和事件。當這些功能模塊沒有出現在組態(tài)隊列中時,這些特定數據項便失去了定義(但可作為通用寄存單元供其他模塊使用,并隨使用模塊的重新定義而更改數據項的含義)。
6.4 下載到智能儀表中的方法
軟件系統(tǒng)采用自行開發(fā)的組態(tài)模塊下載調試軟件MDCSCFG進行組態(tài)模塊的下載與在線調試它通過CAN總線,能對現場總線控制系統(tǒng)上的每一個MDCS組件進行組態(tài)、參數編輯、下載、上傳、管理和實時監(jiān)測、調試。MDCS-CFG的主要功能包括:
?。?)對組件模塊庫14大類82種組件模塊進行組態(tài),組態(tài)序列的最大長度可達250行;
?。?)對實時數據庫100組共1 600點控制運行參數進行設置、修改、管理和實時監(jiān)視;
?。?)可一次下載/上傳全部或部分組態(tài)數據;
?。?)可一次下載/上傳全部或部分實時數據庫參數;
(5)可實時監(jiān)視多達16點控制運行參數的變化;
(6)可管理8個串行口,14種MDCS類別,256個MDCS構成的多個項目或子系統(tǒng);
?。?)可構造自動測試系統(tǒng)、自動標定系統(tǒng)、調試支撐系統(tǒng);
?。?)對傳輸中的故障狀態(tài)可自動檢測,并可按設定的重發(fā)次數嘗試多次傳輸。
7 結束語
應用軟件組件技術很好的解決了針對現場智能儀表軟件開發(fā)中存在的開發(fā)難度太大,軟件的繼承性差和不易維護性等困難。給從事現場智能儀表軟件開發(fā)的人員提供了方便有效的方法,減少了軟件開發(fā)人員的工作量。
參考文獻:
[1] 陽憲惠.現場總線技術及其應用.北京:清華大學出版社,1999.
[2] 劉雙剮.間歇生產過程的自動控制.機電工程.2000,17(3):94—96.
[3] 袁愛進.現場智能測控儀表軟件集成技術的研究.儀器儀表學報,2001(3):269~276.
[4] 袁愛進.MDC~2001微型集散控制系統(tǒng)手冊.大連交通大學三合儀表公司,2001.
[5] 李正.OPC技術及組態(tài)軟件在遠程監(jiān)控和維護中的應用.儀表技術與傳感器.2OO6(5):24—26.
[6] SHCAN2000分布控制系統(tǒng)智能測控組件系統(tǒng)組態(tài)使用手冊.大連三合儀表開發(fā)公司,2OOO.
[7] SHCAN2000分布控制系統(tǒng)系統(tǒng)設置及下載調試程序使用手冊.大連三合儀表開發(fā)公司,2OOO.