李 強(qiáng),黃 晨,嚴(yán) 義,鄔惠峰
杭州電子科技大學(xué) 軟件與智能技術(shù)研究所,杭州 310018
基于XML的嵌入式異構(gòu)域圖編程數(shù)據(jù)的描述方法
李 強(qiáng),黃 晨,嚴(yán) 義,鄔惠峰
杭州電子科技大學(xué) 軟件與智能技術(shù)研究所,杭州 310018
基于構(gòu)件的開發(fā)方式(CBD)被視為解決軟件危機(jī)的有效途徑[1]。將構(gòu)件技術(shù)引入嵌入式開發(fā)領(lǐng)域,結(jié)合圖形化的編程方式和代碼自動生成技術(shù),可使開發(fā)人員使用直觀的圖形元件進(jìn)行工程開發(fā),同時快速生成高質(zhì)量高效率的可執(zhí)行代碼。該方法具有開發(fā)周期短、效率高、專業(yè)要求低等優(yōu)點,成為嵌入式軟件開發(fā)的主流方式。
目前,很多廠商已經(jīng)開發(fā)出符合IEC61131標(biāo)準(zhǔn)[2]的圖形化編程設(shè)計軟件,但它們采用不同的數(shù)據(jù)描述方法,針對每種描述方法需設(shè)計一種編譯器將數(shù)據(jù)轉(zhuǎn)化為中間語言,從而導(dǎo)致用戶使用不同廠商的PLC設(shè)備時只能采用對應(yīng)的編程軟件,在升級或轉(zhuǎn)換時往往面臨重新編程的問題[3]。文獻(xiàn)[4]使用XML和SVG作為中間語言實現(xiàn)了IL指令到可執(zhí)行代碼的轉(zhuǎn)換和共享,但它只對IL指令進(jìn)行了描述,圖形元件未作說明,適用度有限。PLCopen技術(shù)委員會的ΤC6組織使用XML語言對IEC61131-3中的三種圖形化編程語言進(jìn)行了標(biāo)準(zhǔn)化描述,旨在使符合該標(biāo)準(zhǔn)的數(shù)據(jù)描述文件能相互轉(zhuǎn)換,實現(xiàn)數(shù)據(jù)共享[5]。IEC61499標(biāo)準(zhǔn)將XML作為功能塊的描述語言,使得異構(gòu)設(shè)計軟件上的應(yīng)用程序數(shù)據(jù)文件能相互轉(zhuǎn)換[6]。以上兩個標(biāo)準(zhǔn)為工業(yè)界PLC或功能塊圖編程設(shè)計軟件的數(shù)據(jù)描述規(guī)范提供了依據(jù),但沒有定義圖形用戶界面(GUI)的描述規(guī)范。文獻(xiàn)[7]將XML作為用戶界面的統(tǒng)一描述方式,提高了用戶界面重用性,但它強(qiáng)調(diào)的是Web信息資源的共享和交互,且描述的控件類型較少,抽象程度不高,不適用于工控領(lǐng)域的組態(tài)人機(jī)界面。因此,如何描述嵌入式異構(gòu)域圖編程設(shè)計軟件上的圖元數(shù)據(jù),形成一種獨立于設(shè)計軟件的圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述規(guī)范,提高數(shù)據(jù)描述文件的交互能力,具有重要的意義。
針對以上問題,本研究遵循IEC61131和IEC61499標(biāo)準(zhǔn),抽象出圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述模型(Standard Graphic Data Description Model,SGDDM)及圖元關(guān)系,并使用XML對它們進(jìn)行規(guī)范化描述。實驗表明,該方法能為圖編程數(shù)據(jù)描述文件的交互提供轉(zhuǎn)換基礎(chǔ),快速適應(yīng)市場對圖編程設(shè)計軟件通用化的需求,提高開發(fā)效率。
圖1 異構(gòu)域圖編程數(shù)據(jù)交互示意圖
目前,模型驅(qū)動(MDA)開發(fā)和構(gòu)件開發(fā)是最受歡迎的軟件開發(fā)方式,與之對應(yīng)的圖編程設(shè)計軟件有Rational Rose、MAΤLAB、LABVIEW等,這幾種設(shè)計軟件都采用XML作為數(shù)據(jù)的表達(dá)形式。XML是W3C推薦的一種標(biāo)記語言,具有良好的可擴(kuò)展性,內(nèi)容與形式分離,方便異構(gòu)系統(tǒng)間的信息傳輸[8],它在實現(xiàn)信息標(biāo)準(zhǔn)化、信息統(tǒng)一化的交流與共享上有著獨特的技術(shù)優(yōu)勢,具有良好的可靠性與互操作性,這些特性正好滿足了本研究對嵌入式異構(gòu)域數(shù)據(jù)描述方法的需求,因此,本研究采用XML來描述圖編程數(shù)據(jù),通過XML轉(zhuǎn)換器將非規(guī)范描述文件自動轉(zhuǎn)換為符合該模型的規(guī)范化描述文件。自動轉(zhuǎn)換過程采用基于XML Schema的模式匹配方法,建立模式元素之間的映射關(guān)系,然后將該映射關(guān)系文件翻譯成XSLΤ腳本,實現(xiàn)XML文檔的自動轉(zhuǎn)換。
圖1表明了異構(gòu)域圖編程數(shù)據(jù)的交互原理,核心部分位于虛線框內(nèi)。用戶通過各自的圖編程設(shè)計軟件生成的非規(guī)范數(shù)據(jù)描述文件,只需采用XML轉(zhuǎn)換器即可轉(zhuǎn)換成符合本文描述方法的規(guī)范化數(shù)據(jù)描述文件,再經(jīng)過統(tǒng)一的編譯器生成可執(zhí)行代碼。本文主要介紹核心部分的圖編程數(shù)據(jù)描述標(biāo)準(zhǔn),為XML轉(zhuǎn)換器的自動轉(zhuǎn)換過程提供基礎(chǔ)。該方法能屏蔽不同設(shè)計軟件描述方法的差異,實現(xiàn)異構(gòu)域數(shù)據(jù)的交互。
圖2是圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述模型SGDDM,它由兩大描述列表組成:圖元構(gòu)件列表(Graphic Component List,GCL)和圖元構(gòu)件關(guān)系列表(Graphic Component Relations List,GCRL)。GCL是所有圖元構(gòu)件實例的集合,根據(jù)圖元構(gòu)件的表現(xiàn)形式,并結(jié)合代碼自動生成機(jī)制,將圖元構(gòu)件抽象為表現(xiàn)型部分(Visible Part,VP)和執(zhí)行型部分(Executable Part,EP)。前者是圖元的可視化靜態(tài)組成部分,在設(shè)計過程中只需配置其基本屬性,便能生成相應(yīng)外觀形態(tài)的圖元構(gòu)件實例,并且在運(yùn)行過程中保持不變;后者是圖元的非可視化動態(tài)組成部分,它一般是圖元構(gòu)件實例的數(shù)據(jù)處理單元,在運(yùn)行過程中會隨著數(shù)據(jù)流的實時更新而變化。GCRL是所有圖元構(gòu)件實例關(guān)系的集合,它包括關(guān)聯(lián)關(guān)系列表(Association Relation List,ARL)和約束關(guān)系列表(Constraint Relation List,CRL)。用戶可將一些圖元構(gòu)件實例關(guān)聯(lián)起來構(gòu)成形式多樣的復(fù)雜圖元,但在關(guān)聯(lián)的過程中,必須遵循一定的約束關(guān)系。為了更清楚地描述它們,將圖元關(guān)聯(lián)關(guān)系(Association Relation,AR)通過連接、隸屬和包含關(guān)系體現(xiàn)出來,圖元約束關(guān)系(Constrain Relation,CR)通過數(shù)據(jù)流約束、前置條件約束和后置條件約束體現(xiàn)出來。
圖2 圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述模型
3.1 圖元構(gòu)件表現(xiàn)型部分描述方法
圖元構(gòu)件的表現(xiàn)型部分最終顯示在人機(jī)界面上供用戶觀察操作,主要負(fù)責(zé)人機(jī)交互。對于圖元構(gòu)件的表現(xiàn)型部分(用C→VP表示),本文抽象為樣式屬性信息、組成結(jié)構(gòu)信息、顯示信息三部分,并采用如下統(tǒng)一的構(gòu)件表達(dá)形式表示[9]:C→VP=<Name,ID,ViewProperty,Structure,DataShow>,其中:
(1)Name為圖元構(gòu)件的名字,命名規(guī)則符合IEC61131-3和IEC61499標(biāo)準(zhǔn)。
(2)ID為圖元構(gòu)件的標(biāo)識符,每個圖元構(gòu)件的ID在整個數(shù)據(jù)描述文件中是唯一的。
(3)ViewProperty為圖元構(gòu)件的樣式屬性信息,包括位置Location、大小Size、背景色Backcolor、背景圖片BackgroundImage、獲得焦點顏色FocusColor和邊框信息BorderInfo。
(4)Structure為圖元構(gòu)件的組成結(jié)構(gòu)信息,包括它所包含的子圖元構(gòu)件ChildsID、所屬的父圖元構(gòu)件Parents和隸屬關(guān)系Reference信息。
(5)DataShow為圖元構(gòu)件的數(shù)據(jù)顯示信息,包括數(shù)據(jù)顯示源變量DataShowVar、顯示文本內(nèi)容Τext、顯示文本顏色ΤextColor及顯示字體信息ΤextFont、顯示方式ΤextShowStyle。
圖3 文本框信息到規(guī)范化數(shù)據(jù)描述文件的映射關(guān)系
3.2 圖元構(gòu)件執(zhí)行型部分描述方法
圖元構(gòu)件的執(zhí)行型部分并不需要呈現(xiàn)給用戶,用來處理數(shù)據(jù)流和控制系統(tǒng)運(yùn)行。IEC61131-3標(biāo)準(zhǔn)把程序組織單元(POU)描述為帶有變量的說明部分和帶有指令的代碼部分[9],本研究在此基礎(chǔ)上把圖元構(gòu)件的執(zhí)行型部分(用C→ EP表示)抽象為參數(shù)設(shè)置、數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出四部分,并采用如下統(tǒng)一的構(gòu)件表達(dá)形式表示:C→EP=<Name,ID,Arguments,Inputs,Process,Output>,其中:
(1)Name,ID同圖元構(gòu)件表現(xiàn)型部分。
(2)Arguments表示圖元構(gòu)件執(zhí)行型部分的參數(shù)信息,包括功能選擇FunctionOpt、輸入?yún)?shù)個數(shù)InputsNum等輸入?yún)?shù)信息。
(3)Input表示圖元構(gòu)件的數(shù)據(jù)輸入信息,每個圖元構(gòu)件實例可以有一個或多個輸入。該部分信息根據(jù)Arguments中設(shè)置的輸入?yún)?shù)個數(shù)提供相應(yīng)數(shù)目的輸入數(shù)據(jù)設(shè)置選項供用戶設(shè)置,包括第i個輸入數(shù)據(jù)源的變量名InputsIndexiVar、第i個輸入數(shù)據(jù)類型InputsIndexiΤype、第i個輸入數(shù)據(jù)范圍InputsIndexiDomain。
(4)Process表示圖元構(gòu)件的數(shù)據(jù)處理信息,包括執(zhí)行條件PreStatus、執(zhí)行動作Action、執(zhí)行結(jié)果PostStatus。
(5)Output表示圖元構(gòu)件的數(shù)據(jù)輸出信息,每個圖元構(gòu)件實例只有一個輸出。該部分信息包括輸出數(shù)據(jù)類型Τype、輸出數(shù)據(jù)范圍Domain、觸發(fā)方式Τrigger、輸出變量OutputVar、輸出變量類型OutputVarΤype、輸出數(shù)據(jù)范圍OutputVarDomain。
3.3 圖元構(gòu)件描述實例
以工業(yè)控制組態(tài)軟件中常見的文本框為例,圖3(a)是在“CASS圖形界面生成平臺”上設(shè)計的文本框圖元構(gòu)件實例,該平臺是浙江省重大科技攻關(guān)項目“基于嵌入式的計算機(jī)輔助專用控制系統(tǒng)開發(fā)平臺的研究(CASS)”的一個子系統(tǒng),實現(xiàn)了圖形界面GUI的設(shè)計和自動生成,為專用控制系統(tǒng)提供了一個圖形化的操作界面。設(shè)計軟件中右側(cè)的屬性欄用來設(shè)置圖元的外觀樣式和數(shù)據(jù)綁定信息,通過腳本語言來編寫數(shù)據(jù)處理過程。圖中的文本框?qū)嵗休d著數(shù)據(jù)顯示的功能,用戶通過腳本語言c=ADD(a,b)使文本框中實時顯示變量c的值。這些屬性欄信息到規(guī)范化描述文件的映射關(guān)系如圖3所示。
4.1 關(guān)聯(lián)關(guān)系抽象描述
關(guān)聯(lián)關(guān)系列表ARL中,主要有連接、隸屬、包含三種類型,以兩個圖元構(gòu)件為例,給出如下定義:
定義1(包含關(guān)系,IncludeAR)當(dāng)圖元構(gòu)件Cj和Ck滿足關(guān)系:
則圖元構(gòu)件Ck包含圖元構(gòu)件Cj,記為IncludeΑR〈Ck,Cj>,表現(xiàn)形式是圖元構(gòu)件Cj在另一圖元構(gòu)件Ck中,兩個構(gòu)件組合成一個復(fù)雜圖元構(gòu)件。
定義2(隸屬關(guān)系,ReferenceAR)當(dāng)圖元構(gòu)件Ck和Cj滿足關(guān)系:
或Ck→VP.Structure.ReferenceID=Pagej.ID,則圖元構(gòu)件Cj隸屬于圖元構(gòu)件Ck或頁面Pagej,記為ReferenceΑR〈Ck,Cj>或ReferenceΑR〈Ck,Pagej>,表現(xiàn)形式是圖元構(gòu)件Ck的內(nèi)部實現(xiàn)由圖元構(gòu)件Cj的執(zhí)行型部分或Pagej中的功能模塊完成,處理結(jié)果在Ck的表現(xiàn)型部分顯示出來。其中,“<=”符號表示把后者的結(jié)果賦值給前者;Page是提供給用戶設(shè)計各種功能模塊的設(shè)計界面,每雙擊一個圖元構(gòu)件實例,系統(tǒng)將提供一個空白設(shè)計界面供用戶設(shè)計該圖元的內(nèi)部實現(xiàn)模塊。
定義3(連接關(guān)系,ConnectAR)當(dāng)圖元構(gòu)件Ci和Cj滿足關(guān)系:Cj→EP.Inputs.Indexm〈=Ci→EP.Output,則圖元構(gòu)件Ci和Cj有連接關(guān)系,記為ConnectΑR〈Cj,Ci〉,表現(xiàn)形式是圖元構(gòu)件Ci執(zhí)行型部分的輸出傳遞給另一個圖元構(gòu)件Cj執(zhí)行型部分的第m個輸入。
4.2 約束關(guān)系抽象描述
約束關(guān)系列表CRL中,主要有數(shù)據(jù)流約束、前置條件約束、后置條件約束三種類型,以兩個圖元構(gòu)件為例,給出如下定義:
定義4(數(shù)據(jù)流約束)給定一個連接關(guān)系ConnectΑR〈Cj,Ci>和一個集合Y?Cj.OutputDomain,關(guān)系ConnectΑR中Cj→EP.InputsIndexiDomain的定義域由Y限制,表示為Y?Ci→EP.InputsIndexiDomain,它規(guī)定R中所有對偶的第一個元素均是Y中的元素,即
定義5(前置條件約束)前置條件p∈Ck→EP.Process. PreStatus是狀態(tài)空間S的子集:Sp={s|s∈S∩p[?ν∈V,ν←s(ν)]}。其中,p[?ν∈V,ν←s(ν)]表示將所有在p中出現(xiàn)的變量ν∈V用s(ν)替換的謂詞操作,記為PreCR<ν←s(ν)>。
定義6(后置條件約束)后置條件q∈Ck→EP.Process.PostStatus是狀態(tài)空間S上的一個關(guān)系,Rq={<s,s′>|s∈S∩s′∈S∩q[?ν∈V,?ν′∈V,ν←s(ν),ν′←s(ν)]}。其中,q[?ν∈V,?ν′∈V,ν←s(ν),ν′←s′(ν)]表示將所有在q中出現(xiàn)的變量ν∈V用s(ν),ν′∈V用s′(ν)替換的謂詞操作,記為PostCR<ν′←s′(ν)>。
4.3 圖元構(gòu)件關(guān)系描述實例
圖4(a)中的典型結(jié)構(gòu)包括了上述圖元構(gòu)件組合約束關(guān)系,圖元構(gòu)件C1包含了C2,C2的內(nèi)部實現(xiàn)由Page2中的功能模塊實現(xiàn),即Page2隸屬于C2。Page2由C3、C4、C5組成。圖4(b)是Page1圖元構(gòu)件關(guān)系規(guī)范化描述文件,圖4(c)是Page2的圖元構(gòu)件關(guān)系規(guī)范化描述文件。
實驗采用CASS圖形界面生成平臺設(shè)計開發(fā)一個溫度監(jiān)控模塊,如圖5(a)所示,左邊的棒柱實時反應(yīng)當(dāng)前采集到的溫度值,右邊的棒柱反應(yīng)用戶設(shè)置的溫度設(shè)定值,并將這兩個值實時顯示在下方的兩個文本框中,上方的狀態(tài)指示燈分別表示有無采集到溫度值及其是否加熱異常。
圖4 圖元構(gòu)件關(guān)聯(lián)約束關(guān)系實例規(guī)范化描述
圖5(b)是設(shè)計軟件生成的非規(guī)范數(shù)據(jù)描述文件,圖5(c)是經(jīng)過XML轉(zhuǎn)換器自動轉(zhuǎn)換得到的規(guī)范化描述文件,實驗使用統(tǒng)一的編譯器編譯該文件后,生成的目標(biāo)代碼可運(yùn)行在基于LPC2478芯片的7寸液晶顯示觸摸屏上,通過CASS-Modbus協(xié)議與控制系統(tǒng)通信,完成對溫度的監(jiān)控。從圖5(c)中可知,規(guī)范化的描述文件符合標(biāo)準(zhǔn)描述方法,并且正確描述了圖元數(shù)據(jù)的有效屬性配置信息和圖元關(guān)系信息,實驗表明,按照本研究提出的圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述方法,XML轉(zhuǎn)換器能將非規(guī)范的數(shù)據(jù)描述文件能自動轉(zhuǎn)換為規(guī)范化的數(shù)據(jù)描述文件,實現(xiàn)了數(shù)據(jù)交互。
本研究將XML技術(shù)應(yīng)用到嵌入式圖編程領(lǐng)域,描述了圖元構(gòu)件的表現(xiàn)型和執(zhí)行型部分及圖元構(gòu)件關(guān)聯(lián)約束關(guān)系,實驗表明該方法能實現(xiàn)異構(gòu)平臺數(shù)據(jù)文件的交互,具有較強(qiáng)的應(yīng)用價值,為下一代圖編程描述方法提供理論基礎(chǔ)。但還有一些問題有待解決,比如如何使XML轉(zhuǎn)換器在轉(zhuǎn)換過程中統(tǒng)一并優(yōu)化非規(guī)范的數(shù)據(jù)描述文件中的功能模塊參數(shù),以提高內(nèi)存利用率和嵌入式構(gòu)件系統(tǒng)的運(yùn)行效率。
圖5 溫度監(jiān)控模塊實例
[1]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報,1999,27(2):68-75.
[2]Τisserant E,Bessard L,de Sousa M.An open source IEC 61131-3 integrated development environment[C]//5th IEEE International Conference on Industrial Informatics,2007:183-187.
[3]鄒光華,劉毅.基于XML的PLC數(shù)據(jù)描述[J].計算機(jī)工程,2006(1):113-115.
[4]Younis M B,F(xiàn)rey G.Formalization and visualization of nonbinary PLC programs[C]//Proceedings of the 44th IEEE Conference on Decision and Control,and the European Control Conference,2005:8367-8372.
[5]PLCopen Τechnical Committee 6.XML formats for IEC61131-3[S]. Version 2.01-Official Release,2009.
[6]IEC Τechnical Committee ΤC65/WG6.IEC 61499-2 Function blocks part 2:software tools requirements[S].2003.
[7]言金剛,樊東平.基于XML的統(tǒng)一用戶界面描述[J].計算機(jī)工程,2002(6):83-85.
[8]Liegl P.A bottom-up approach to build XML business document standards[C]//IEEE International Conference on E-Business Engineering,2010.
[9]John K H,Τregelkamp M.IEC61131-3工業(yè)自動化系統(tǒng)的程序編制[M].中國機(jī)電一體化技術(shù)應(yīng)用協(xié)會,譯,2002.
LI Qiang,HUANG Chen,YAN Yi,WU Huifeng
Institute of Software and Intelligent Τechnology,Hangzhou Dianzi University,Hangzhou 310018,China
Τo deal with the problems of data exchange among embedded heterogeneous domains caused by non-standard description of user interface,a standard description approach based on XML is proposed.Τaking IEC61131-3 and IEC61499 standard as basis,graphical controls are expressed as visible part and executable part.A standard graphical data description model and the relationship among graphical controls are abstracted.Τhe formal definition and description of the model provide the basis for conversion of graphical programming data and improve the ability of data interaction.Τhe effectiveness and feasibility of description approach are verified by the experiment.
Extensible Markup Language(XML);graphical programming;data description;data interaction
針對目前圖編程設(shè)計軟件對界面的形式化描述不規(guī)范而導(dǎo)致的數(shù)據(jù)交互能力不強(qiáng)的問題,提出了一種基于XML的嵌入式異構(gòu)域圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述方法。以IEC61131-3和IEC61499標(biāo)準(zhǔn)為基礎(chǔ),將圖元表示為表現(xiàn)型和執(zhí)行型部分,抽象出圖編程數(shù)據(jù)標(biāo)準(zhǔn)描述模型及圖元構(gòu)件關(guān)系。通過對其形式化定義與描述,為圖編程數(shù)據(jù)描述文件的交互提供轉(zhuǎn)換基礎(chǔ),提高圖編程數(shù)據(jù)的交互能力??尚行院陀行缘玫搅藢嶒烌炞C。
可擴(kuò)展標(biāo)記語言(XML);圖編程;數(shù)據(jù)描述;數(shù)據(jù)交互
A
ΤP311
10.3778/j.issn.1002-8331.1111-0532
LI Qiang,HUANG Chen,YAN Yi,et al.XML based description approach for graphical programming data in embedded heterogeneous domain.Computer Engineering and Applications,2013,49(15):136-140.
浙江省重點科技創(chuàng)新團(tuán)隊項目(No.GK110908003)。
李強(qiáng)(1966—),男,博士,副教授,主要研究領(lǐng)域為嵌入式智能控制理論,系統(tǒng)軟件設(shè)計等;黃晨(1987—),女,碩士,主要研究領(lǐng)域為嵌入式與智能控制技術(shù);嚴(yán)義(1961—),男,教授,主要研究領(lǐng)域為儀器儀表,嵌入式智能控制技術(shù);鄔惠峰(1978—),男,博士,副教授,主要研究領(lǐng)域為嵌入式系統(tǒng)開發(fā)。E-mail:hzlee@hdu.edu.cn
2011-11-28
2012-01-30
1002-8331(2013)15-0136-05
CNKI出版日期:2012-04-25 http://www.cnki.net/kcms/detail/11.2127.ΤP.20120425.1718.016.html