熊俊 吳丹 李智勇
摘要:針對現(xiàn)有組態(tài)軟件外設(shè)接口單一、擴展困難等問題,結(jié)合嵌入式設(shè)備資源有限、實時性要求高等特點,提出一套基于客戶端/服務(wù)器(Client/ Server,C/S)架構(gòu)的嵌入組態(tài)軟件外設(shè)擴展機制,對其客戶端、服務(wù)器端和傳輸協(xié)議等關(guān)鍵技術(shù)進行重點介紹。通過使用即插即用的服務(wù)器端和客戶端對外設(shè)變量和組態(tài)變量進行管理,實現(xiàn)組態(tài)與外設(shè)交互。通過將其應(yīng)用于監(jiān)控組態(tài)軟件開發(fā),證明該方法具有可行性,能有效解決傳統(tǒng)方法中的資源浪費問題,靈活性好,穩(wěn)定性高。
關(guān)鍵詞:嵌入式組態(tài)軟件;設(shè)備擴展;客戶端;服務(wù)器端
DOIDOI:10.11907/rjdk.151498
中圖分類號:TP301
文獻標(biāo)識碼:A 文章編號:16727800(2015)006004704
作者簡介作者簡介:熊?。?983-),男,江西萍鄉(xiāng)人,碩士,三一智能控制設(shè)備有限公司嵌入式軟件所所長、中級工程師,研究方向為組態(tài)軟件開發(fā)、嵌入式軟件開發(fā)、工程機械智能化;吳丹(1985-),女,湖南衡陽人,碩士,三一智能控制設(shè)備有限公司中級工程師,研究方向為顯示組態(tài)、嵌入式軟件技術(shù);李智勇(1983-),男,湖南郴州人,三一智能控制設(shè)備有限公司中級工程師,研究方向為嵌入式軟件技術(shù)。
0 引言
嵌入式組態(tài)軟件(Embedded Configuration Software,ECS)因其友好的人機交互界面和強大的通信功能,已廣泛應(yīng)用于控制系統(tǒng)的實時監(jiān)控中;嵌入式設(shè)備資源有限、實時性要求高,但數(shù)據(jù)處理能力較弱,計算能力差,難以實現(xiàn)復(fù)雜控制策略[1]?,F(xiàn)有監(jiān)控系統(tǒng)中,復(fù)雜計算和控制等功能主要由控制器、工控機等外設(shè)協(xié)助完成?,F(xiàn)有組態(tài)軟件外設(shè)接口單一,常采用直接固化外設(shè)驅(qū)動或通過標(biāo)準(zhǔn)數(shù)據(jù)訪問機制(如OPC協(xié)議)實現(xiàn)組態(tài)軟件[2]與外設(shè)通信。前者可擴展性不強;后者為兼顧大部分領(lǐng)域開發(fā)需求,功能較多,所耗資源大,不適合嵌入式顯示設(shè)備低處理能力、低內(nèi)存配置應(yīng)用。因此,如何通過一種方便快捷的方式,實現(xiàn)嵌入式組態(tài)軟件與外部設(shè)備之間的數(shù)據(jù)交互,是嵌入式組態(tài)軟件開發(fā)領(lǐng)域急待解決的技術(shù)問題。
本文提出一套基于客戶端/服務(wù)器架構(gòu)的嵌入組態(tài)軟件外設(shè)擴展機制,簡稱為C/S外設(shè)擴展(C/S peripheral expansion, CSPE)。引入客戶端、服務(wù)器端思想分別對組態(tài)變量和外設(shè)變量進行管理[3],通過以太網(wǎng)等通信協(xié)議,實現(xiàn)組態(tài)軟件與外設(shè)資源共享,以達到外部設(shè)備在組態(tài)軟件中的真正的即插即用。通過其在某工程機械監(jiān)控軟件中的應(yīng)用,證明此方法可行,有效解決了嵌入式組態(tài)軟件外設(shè)擴展難,通用性差等問題。
1 體系結(jié)構(gòu)與原理
首先介紹使用此協(xié)議的嵌入式組態(tài)軟件(Embedded Configuration Software ,ECS)和對應(yīng)的外部設(shè)備。
ECS由開發(fā)環(huán)境和運行環(huán)境兩部分構(gòu)成,開發(fā)環(huán)境主要包括組態(tài)的應(yīng)用界面開發(fā)的圖形編輯器和腳本編輯器;運行環(huán)境相對復(fù)雜,主要部分為實時數(shù)據(jù)庫、外部設(shè)備驅(qū)動等[4]。用戶在開發(fā)環(huán)境組態(tài)目標(biāo)圖形系統(tǒng),加載外部設(shè)備變量描述文件、編輯控制腳本,編譯成工程資源描述信息后下載至運行環(huán)境,運行環(huán)境加載工程資源描述信息后將其解析,根據(jù)目標(biāo)圖形系統(tǒng)實時顯示工業(yè)現(xiàn)場信息。
外部設(shè)備是指與ECS運行設(shè)備(如顯示屏)交換數(shù)據(jù)的設(shè)備,如控制器等。
CSPE主要包括CSPE服務(wù)器端、CSPE變量客戶端及CSPE通訊協(xié)議三大模塊,各部分功能相對獨立又相互協(xié)作,形成統(tǒng)一整體?;炯軜?gòu)如圖1所示。
CSPE服務(wù)端作為一個獨立進程運行于外部設(shè)備(如控制器),主要完成兩個方面工作:向上為CSPE客戶端提供變量訪問接口,向下完成變量數(shù)據(jù)獲取。CSPE客戶端包括變量信息獲取和變量值獲取兩個模塊,前者獨立于ECS開發(fā)環(huán)境和運行環(huán)境,主要完成外設(shè)變量信息(設(shè)變量名、變量索引、變量值等)的獲取和變量描述文件的生成。后者作為ECS運行環(huán)境中設(shè)備驅(qū)動的一部分,用于完成顯示設(shè)備與外設(shè)的變量值交互。CSPE協(xié)議包括變量信息訪問與變量值訪問協(xié)議,分別與客戶端的變量信息獲取和變量值獲取對應(yīng)。
CSPE客戶端與服務(wù)器端數(shù)據(jù)交互過程如下:①CSPE客戶端向CSPE服務(wù)器端發(fā)出變量獲取請求;②CSPE服務(wù)器端通過預(yù)留的變量操作接口遍歷內(nèi)部變量管理組,并通過CSPE通訊協(xié)議將變量屬性信息(變量名、變量類型等)輸出給CSPE客戶端;③客戶端生成組態(tài)開發(fā)環(huán)境需要的變量描述文件,對需此設(shè)備進行通信的組態(tài)工程,用戶在組態(tài)開發(fā)環(huán)境中導(dǎo)入INI文件后,即可在項目中使用對應(yīng)的外設(shè)變量,從而實現(xiàn)外設(shè)真正即插即用。組態(tài)軟件開發(fā)環(huán)境編譯生成工程資源描述信息后通過以太網(wǎng)下載至運行環(huán)境,運行環(huán)境加載工程資源描述信息后將其解析,CSPE客戶端根據(jù)需求,向位于外設(shè)的CSPE服務(wù)器端發(fā)送讀寫變量請求,CSPE服務(wù)器收到請求后,完成外設(shè)變量相應(yīng)讀寫操作。
2 CSPE關(guān)鍵技術(shù)與實現(xiàn)
2.1 服務(wù)端
CSPE服務(wù)端負(fù)責(zé)維護外設(shè)對外開放的變量信息,其通過數(shù)據(jù)存儲區(qū)與外設(shè)主程序共享外設(shè)內(nèi)部變量數(shù)據(jù)。收到CSPE客戶端讀變量信息請求后,CSPE服務(wù)端通過外設(shè)提供的變量訪問接口獲取外設(shè)的變量信息,并通過通訊接口將相關(guān)內(nèi)容傳送給CSPE客戶端。CSPE服務(wù)端采用鏈表方式管理內(nèi)部變量,結(jié)構(gòu)如圖2所示。
變量索引和變量名稱為CSPE客戶端提供訪問變量接口;變量類型、變量子類型及變量地址指定該變量條目指向的變量信息,其可指定變量結(jié)構(gòu)與變量所占內(nèi)存大小;變量地址指定該變量條目對應(yīng)變量在CSPE服務(wù)器中的內(nèi)存起始位置。此設(shè)計的優(yōu)點在于:①單個節(jié)點插入、刪除時不需要更改其它節(jié)點的內(nèi)存地址,提高處理速度;②鏈表可分散的空間地址可提高內(nèi)存利用率,這對內(nèi)存有限的HMI設(shè)備來說尤為重要;③鏈表大小不固定,可擴展性好,在外設(shè)變量個數(shù)無法預(yù)估的情況下非常適用;④初始化時根據(jù)偏移地址順序排列變量節(jié)點,可提高變量查找速度。
2.2 客戶端
為提高設(shè)備開發(fā)重用性,減少編程步驟,CSPE將客戶端分為變量信息獲取和變量值獲取兩個模塊。為方便說明,本文將前者稱為CSPE信息獲取端,后者稱為CSPE變量值獲取端。對于不同的組態(tài)工程,在外設(shè)一定的情況下,信息獲取端只需工作一次即可,生成的變量描述文件可供不同的組態(tài)工程使用,可大大提高開發(fā)效率。
2.2.1 信息獲取端
變量信息獲取端可看作是組態(tài)開發(fā)環(huán)境的輔助工具,主要完成變量信息獲取和變量描述文件生成兩項任務(wù)。向下端通過以太網(wǎng)與CSPE服務(wù)器端進行通信,獲取CSPE的各種信息,向上為組態(tài)開發(fā)環(huán)境提供變量配置文件。
2.2.2 變量值獲取端
變量值獲取端可理解為I/0設(shè)備驅(qū)動,運行于ECS運行環(huán)境,是運行環(huán)境實時數(shù)據(jù)庫與外設(shè)連接的橋梁,以動態(tài)鏈接庫形式供ECS運行環(huán)境調(diào)用,從而減少與ECS其它模塊的耦合性,屏蔽不同外設(shè)間的差異,易于獨立擴展[5],變量獲取端工作過程如圖3所示。
外部設(shè)備變量緩存區(qū)存儲設(shè)備變量信息,如變量在設(shè)備中的起始地址,偏移量等信息。實時數(shù)據(jù)庫內(nèi)存區(qū)存放變量在組態(tài)中對應(yīng)的信息。變量鏈表用于描述外設(shè)緩存區(qū)與實時數(shù)據(jù)庫的映射關(guān)系。組態(tài)工程讀變量時,ECS運行環(huán)境的設(shè)備通信模塊從外設(shè)讀取變量后更新內(nèi)存區(qū)對應(yīng)變量值。變量值獲取端通過數(shù)據(jù)源地址,查找變量鏈表,查找到源地址對應(yīng)的變量節(jié)點;根據(jù)該節(jié)點中的實時數(shù)據(jù)庫偏移地址找到其在實時數(shù)據(jù)庫中的位置變量,進行修改。組態(tài)工程寫變量時,設(shè)備驅(qū)動根據(jù)實時數(shù)據(jù)庫偏移地址找到對應(yīng)的變量鏈表節(jié)點,根據(jù)節(jié)點的數(shù)據(jù)源地址和其它變量信息組建數(shù)據(jù)包,通過通信協(xié)議發(fā)送變量數(shù)據(jù),完成外設(shè)變量修改。
2.2.3 傳輸協(xié)議設(shè)計
客戶端和服務(wù)器端通過可通過串口、CAN和以太網(wǎng)等進行通信。以太網(wǎng)傳送速度快,在顯示組態(tài)與外設(shè)通信中較常用,本文以此為例進行說明。Ethernet II和IEEE802.3生局域網(wǎng)中最常見的以太網(wǎng),本文選用更適合工程機械的大數(shù)據(jù)量傳輸?shù)腅thernet II協(xié)議作為傳輸協(xié)議。
客戶端向服務(wù)器端發(fā)出請求后,服務(wù)器通過不同請求代碼響應(yīng)客戶端請求(變量信息獲取或者變量值獲?。?,返回客戶端所需信息??蛻舳伺c服務(wù)端變量獲取過程如圖4所示。
Step1:客戶端向服務(wù)器端發(fā)送以太網(wǎng)連接請求。
Step2:服務(wù)器返回創(chuàng)建連接結(jié)果,結(jié)果為TRUE,繼續(xù)進行后續(xù)步驟,否則結(jié)束;
Step3:客戶端向服務(wù)器發(fā)送獲取變量信息(或變量值)請求;
Step4:服務(wù)器端根據(jù)接口函數(shù)獲取變量信息(或變量值);
Step5:客戶端解析變量信息。
3 實驗結(jié)果與分析
為驗證本文所提CSPE的有效性,將其應(yīng)用于三一自主開發(fā)的嵌入式組態(tài)軟件,并在此平臺上進行強夯機應(yīng)用程序開發(fā)。組態(tài)開發(fā)環(huán)境運行于WIN7操作系統(tǒng)的PC機,組態(tài)程序運行環(huán)境運行于三一工業(yè)顯示屏SYLD, SYLD操作系統(tǒng)為linux,CPU頻率為200MHZ,內(nèi)存64Mb,F(xiàn)LASH 頻率為64Mb,支持100Mbps以太網(wǎng)傳輸。外設(shè)為三一運動控制器SYMC,SYMC應(yīng)用程序開發(fā)環(huán)境為KW,支持100Mbps以太網(wǎng)傳輸。
變量信息獲取端設(shè)置好待獲取設(shè)備的IP和程序端口后,即可連接獲取變量信息,如圖5所示。
獲取的變量信息保存為設(shè)備變量描述文件后,即可導(dǎo)入組態(tài)軟件開發(fā)環(huán)境中使用,開發(fā)效果如圖6所示。
將編譯好的項目通過以太網(wǎng)下載至裝有ECS運行環(huán)境的SYLD后,連接好顯示屏與控制器,確保兩者以太網(wǎng)通信完整,控制器的相關(guān)數(shù)據(jù)即可在顯示屏上顯示,也可通過對顯示屏上的操作修改控制器變量,效果如圖7所示。
4 結(jié)語
本文提出的CSPE通信機制,無需中間轉(zhuǎn)換設(shè)備,結(jié)構(gòu)簡單,通用性好。用戶在開發(fā)完控制器等外設(shè)工程后,可直接通過本文提出的CSPE通信機制獲取控制器變量并將其存儲為顯示組態(tài)可用的格式,無需對控制器變量進行組建。在無控制器等外設(shè)情況下,根據(jù)其工程文件也可解析出所有變量信息,方便快捷,節(jié)約了前期開發(fā)成本。對于不同的外部設(shè)備,無需關(guān)心通信協(xié)議與外設(shè)結(jié)構(gòu),只需重寫變量值獲取端接口函數(shù),即可完成組態(tài)程序與外設(shè)數(shù)據(jù)交互,大大縮短項目開發(fā)周期,有效解決了組態(tài)軟件擴展難的問題。
參考文獻:
[1]賀歡. 基于 WinCE 嵌入式組態(tài)軟件設(shè)計[D]. 武漢:武漢理工大學(xué), 2013.
[2]胡開明,傅志堅,葛遠香.基于OPC與組態(tài)技術(shù)的自動控制實驗教學(xué)仿真平臺開發(fā)[J]. 實驗技術(shù)與管理,2013,30(6):5153.
[3]王杰,高昆侖,王萬召.基于OPC通信技術(shù)的火電廠DCS后臺控制[J].電力自動化設(shè)備,2013(10):142147.
[4]金敏,吳丹,夏利鋒,盛四華,等.車載設(shè)備嵌入式監(jiān)控組態(tài)軟件的研究與應(yīng)用[J].電子測量與儀器學(xué)報.2012.10051010.
[5]陳云云,馬捷中,蔣澤軍.基于插件的組態(tài)軟件設(shè)計與實現(xiàn)[J].計算機測量與控制,2013(2):436438.
責(zé)任編輯(責(zé)任編輯:陳福時)
英文摘要Abstract:Aiming at the lack of communication interface and the peripheral expanding difficult of the traditional embedded configuration software (ECS),Based on the characteristics of limited resources and high realtime requirements on vehicular embedded equipment,this paper proposes a design scheme of device extension of ECS basing on client/server (C/S) model.The key technologies including client, server and communication protocol.By using plug in client and server to manage the variable of equipment and ECS,and realize the interaction of equipment and ECS. This model has been tested on the development of monitoring software,which has been proved to be completelyfeasible,good versatility and extensibility,and can greatly reduce the waste of resources.
英文關(guān)鍵詞Key Words: Embedded Configuration Software;Peripheral Expansion;Client;Server