劉娟,關(guān)學(xué)進(jìn),梁孟芹
(重慶郵電大學(xué) 重慶市網(wǎng)絡(luò)控制技術(shù)與智能儀器儀表重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
“用于工業(yè)測量與控制系統(tǒng)的EPA(Ethernet for Plant Automation)通信標(biāo)準(zhǔn)[1]”是我國擁有自主知識產(chǎn)權(quán)并被國際電工委員會(IEC)認(rèn)可的第一個(gè)工業(yè)自動化領(lǐng)域國際標(biāo)準(zhǔn),并作為實(shí)時(shí)以太網(wǎng)國際標(biāo)準(zhǔn)IEC 61748-2與現(xiàn)場總線國際標(biāo)準(zhǔn)IEC 61158(修訂版)進(jìn)行制定。該標(biāo)準(zhǔn)規(guī)定了設(shè)備間通信操作、為用戶應(yīng)用程序提供服務(wù)接口以及相關(guān)管理方面的規(guī)范。
現(xiàn)場總線(Fieldbus)是應(yīng)用于生產(chǎn)現(xiàn)場,在測量控制設(shè)備之間實(shí)現(xiàn)雙向、串行、多點(diǎn)通信的數(shù)字通信系統(tǒng),其特點(diǎn)之一就是設(shè)備間應(yīng)具有互操作性[2]?;ゲ僮餍灾笇?shí)現(xiàn)互連設(shè)備間、系統(tǒng)間的信息傳送與溝通,它決定了某一通信技術(shù)能否被廣大自動化設(shè)備制造商和用戶接受,并進(jìn)行大面積推廣應(yīng)用的關(guān)鍵。由于眾多的廠家主要根據(jù)EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范及EPA功能塊規(guī)范來開發(fā)不同種類、不同功能的現(xiàn)場設(shè)備,為保證這些設(shè)備間的互操作能力,開發(fā)EPA互操作測試軟件是必需的。
EPA互操作測試平臺主要由測試主機(jī)、若干被測試設(shè)備及系統(tǒng)連接部件構(gòu)成,其主要組成部分是測試主機(jī)上的EPA互操作測試軟件,測試過程分為靜態(tài)測試和動態(tài)測試兩類。
EPA互操作測試軟件主要由以下幾個(gè)子模塊構(gòu)成:互操作測試器模塊、靜態(tài)測試案例集模塊、動態(tài)測試案例集模塊、測試跟蹤報(bào)告管理模塊、測試報(bào)告管理模塊,各模塊之間的關(guān)系如圖1所示。
EPA互操作測試軟件工作流程如下:軟件啟動后,持續(xù)監(jiān)聽網(wǎng)絡(luò)上被測設(shè)備的聲明報(bào)文,若有被測設(shè)備發(fā)送聲明報(bào)文,界面上顯示被測設(shè)備的信息,用戶則根據(jù)需求選擇測試案例;測試案例包括EPA通信協(xié)議規(guī)范信息、EPA用戶層規(guī)范信息和測試數(shù)據(jù)信息,案例選擇完成后將全部有效信息傳給EPA互操作測試器,EPA互操作測試器會將測試信息封裝并發(fā)送到EPA網(wǎng)絡(luò)上,被測設(shè)備收到測試服務(wù)報(bào)文并對其處理后返回響應(yīng)信息,測試跟蹤報(bào)告模塊監(jiān)視整個(gè)測試過程,將過程中的錯誤信息、測試時(shí)間、結(jié)果等信息顯示到軟件上,最后將詳細(xì)信息交付給測試報(bào)告管理模塊存儲,供用戶查看。
2.2.1 互操作測試器模塊
互操作測試器基于靜態(tài)和動態(tài)測試案例集,對被測實(shí)體進(jìn)行測試,通過檢測被測實(shí)體的外部行為和內(nèi)部行為,生成測試跟蹤報(bào)告和測試報(bào)告。
在VC中定義一個(gè)用于實(shí)現(xiàn)互操作測試器模塊的CEPATEST類,首先把測試信息封裝,通過套接字發(fā)送到EPA網(wǎng)絡(luò)上,并接收被測設(shè)備返回的響應(yīng)信息,再由CDATAWITH類處理響應(yīng)信息,通過DoWith()函數(shù)處理測試案例。
2.2.2 靜態(tài)測試案例模塊
靜態(tài)測試主要測試通信協(xié)議棧管理系統(tǒng)中與功能塊操作有關(guān)的內(nèi)容、功能塊本身的參數(shù)讀/寫功能、設(shè)備描述文件的完備性。
該模塊由CStaticExample類完成,該類主要存放各個(gè)靜態(tài)測試案例所需要的測試信息,并從中提取測試信息交付給互操作測試器模塊,互操作測試器模塊會根據(jù)不同的服務(wù)類型調(diào)用靜態(tài)測試案例模塊中不同的服務(wù)處理函數(shù),如FBReadTest()函數(shù)處理功能塊的讀服務(wù)(根據(jù)不同功能塊調(diào)用不同讀處理函數(shù)), 模塊的類關(guān)系如圖2所示。
2.2.3 動態(tài)測試案例模塊
動態(tài)測試是對功能塊的模態(tài)切換進(jìn)行測試,主要測試功能塊組態(tài)后的執(zhí)行能力及對不同外部操作的反應(yīng)能力。
該模塊由CDynamicExample類完成,該類主要用來存放各個(gè)動態(tài)測試案例所需要的測試信息,其測試信息的獲取是讀取各個(gè)自定義的ini動態(tài)測試案例腳本;獲取之后將信息傳送給互操作測試器模塊,互操作測試器模塊根據(jù)不同的動態(tài)測試服務(wù)調(diào)用動態(tài)測試案例模塊中相應(yīng)的處理函數(shù),如AIModeTest()測試AI功能塊的模態(tài)切換等;然后將測試信息封裝傳送給被測設(shè)備;最后被測設(shè)備將測試結(jié)果返回給互操作測試器模塊處理,模塊的類關(guān)系如圖3所示。
2.2.4 測試報(bào)告跟蹤模塊
測試報(bào)告跟蹤模塊由CMessageTrack類完成,該類通過互操作測試器模塊持續(xù)監(jiān)測整個(gè)過程,并記錄所有測試結(jié)果、測試信息及錯誤信息;然后調(diào)用界面類CDlg中函數(shù)將所有信息顯示到軟件界面上,同時(shí)交付給報(bào)告管理模塊存儲管理。
2.2.5 測試報(bào)告管理模塊
由CMessageManage類完成測試報(bào)告管理模塊,該類用于存儲詳細(xì)的測試信息,放入自動生成的記事文本中,以便用戶查看。
軟件整體程序設(shè)計(jì)流程如圖4所示,使用到的類:CTestApp類,CTestDlg類,CDoWith類等。各個(gè)測試案例通過不同的處理函數(shù)進(jìn)行處理:如設(shè)備上線通過CTestApp::OnDeviceChange()函數(shù)處理等。
圖4 程序設(shè)計(jì)流程圖
互操作測試服務(wù)分為兩大類:靜態(tài)測試案例和動態(tài)測試案例。根據(jù)測試需要,選擇不同的測試案例對現(xiàn)場設(shè)備進(jìn)行測試。
靜態(tài)測試案例集成于測試軟件,且在互操作測試過程中不可修改。測試內(nèi)容包括:
1) 設(shè)備上線
該測試案例用來檢測被測設(shè)備是否按照EPA
協(xié)議規(guī)范中定義的時(shí)間間隔向網(wǎng)絡(luò)上發(fā)出一次設(shè)備聲明。如果被測設(shè)備在測試過程中按照規(guī)范中定義的時(shí)間發(fā)出一次設(shè)備聲明,則通過該測試,否則視為不能通過。
2 ) 查找并解析設(shè)備描述文件
設(shè)備描述文件是基于可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML),描述了EPA現(xiàn)場設(shè)備的EPA網(wǎng)絡(luò)可視對象的具體信息[4-5]。
查找并解析設(shè)備描述文件測試案例用來解析設(shè)備描述文件中信息,檢測是否符合EPA設(shè)備描述體系結(jié)構(gòu);然后解析功能塊結(jié)構(gòu)體信息,檢測信息中功能塊個(gè)數(shù)和類型是否與設(shè)備上的相匹配,若兩者均符合則通過,否則測試失敗。
3) 讀功能塊參數(shù)測試
該測試案例調(diào)用EPA應(yīng)用層變量讀服務(wù)讀取被測設(shè)備中功能塊的參數(shù),并將讀取的結(jié)果與設(shè)備描述中的長度信息進(jìn)行匹配。如果被測設(shè)備返回正響應(yīng)并且讀取的參數(shù)字節(jié)長度與設(shè)備描述中的長度信息一致,則通過該測試,否則視為不通過。
4) 寫功能塊參數(shù)測試
該測試案例調(diào)用EPA應(yīng)用層變量寫服務(wù)寫入被測設(shè)備中功能塊的參數(shù),通過正負(fù)響應(yīng)是否與設(shè)備描述文件中的讀/寫/只讀參數(shù)類型相匹配。如果匹配則測試通過,否則視為不通過。
動態(tài)測試案例以ini的文本格式提供給互操作測試軟件,在測試過程中可以根據(jù)被測設(shè)備所支持的功能塊進(jìn)行修改,完成不同的測試內(nèi)容。動態(tài)測試案例包括:鏈接對象、通信調(diào)度管理對象、不同的功能塊模態(tài)轉(zhuǎn)換(AI、AO、DI、DO、MAI、MAO、MDI、MDO、PID)、信息分發(fā)服務(wù)測試。
本例采用的被測設(shè)備是基于EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范及EPA功能塊規(guī)范開發(fā)的閥門電動執(zhí)行器設(shè)備,測試主機(jī)運(yùn)行EPA互操作測試軟件,操作人員選擇設(shè)備描述文件并根據(jù)需要選擇測試案例,對被測試設(shè)備進(jìn)行測試。測試系統(tǒng)的結(jié)構(gòu)如圖5所示。
圖5 測試系統(tǒng)結(jié)構(gòu)圖
被測設(shè)備包含了AO功能塊和PID功能塊,主要采用了靜態(tài)測試,測試案例包括設(shè)備上線、解析設(shè)備描述文件、資源塊讀寫服務(wù)、設(shè)置設(shè)備屬性、清除設(shè)備屬性、AO功能塊讀寫服務(wù)、PID功能塊讀寫服務(wù)、鏈接對象等。由記錄文本記載的詳細(xì)測試信息可了解整個(gè)測試過程及結(jié)果,測試結(jié)果如圖6。
圖6 測試結(jié)果圖
如果被測設(shè)備上不包含要測試的功能塊,例如對閥門電動執(zhí)行器設(shè)備測試AI功能塊讀服務(wù)案例,則測試軟件會檢測被測設(shè)備是否實(shí)例化了該功能塊,如果沒有則提示用戶該設(shè)備上面沒有此功能塊,如圖7所示。
成功通過互操作測試軟件測試的現(xiàn)場設(shè)備可稱為EPA設(shè)備,能夠連接到同一網(wǎng)絡(luò)并進(jìn)行組態(tài),根據(jù)需求搭建控制系統(tǒng)。
[1]國家質(zhì)量技術(shù)監(jiān)督局.用于工業(yè)測量與控制系統(tǒng)的EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范[S],2006.
[2]陽憲惠. 現(xiàn)場總線技術(shù)及其應(yīng)用[M]. 北京: 清華大學(xué)出版社, 1999.
[3]IEC Technical Committee TC65/WG6. FUNCTION BLOCKS FOR INDUSTRIAL-PROCESS MEASUREMENT AND CONTROL SYSTEMS Part 1 –Architecture [S]. IEC Draft.2003.1.
[4]IEC SC65C/WG7.FUNCTION BLOCKS (FB) FOR PROCESS CONTROL. Part 2 –Specification of function block concept and electronic device description language (EDDL) [S]. IEC PAS.2002.3.
[5]諶震文, 王平, 馬萬里.基于XML的EPA可擴(kuò)展設(shè)備描述語言設(shè)計(jì)及應(yīng)用[J]. 計(jì)算機(jī)集成制造系統(tǒng),2005,11(7):959-962.
[6]趙奎,龐彥斌.基于XML的現(xiàn)場總線設(shè)備互操作性研究[J].自動化儀表,2005,26(4):10-13.
[7]余淑軍,王平,付迎利,等. EPA功能塊的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(1): 38-40.
[8]David J.Kruglinski, Scot Wingo, George Sheperd. Visual C++6.0技術(shù)內(nèi)幕[M].5版.北京:希望電子出版社, 1999.