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