国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FSM模型的總線協(xié)議一致性測(cè)試系統(tǒng)研究

2018-10-15 05:58峰,郝
關(guān)鍵詞:測(cè)試用例報(bào)文總線

周 峰,郝 鑫

(中國(guó)軟件評(píng)測(cè)中心,北京 100048)

0 引 言

在中國(guó)制造2025的戰(zhàn)略指導(dǎo)下,中國(guó)的工業(yè)企業(yè)正在向著智能制造進(jìn)行轉(zhuǎn)型發(fā)展,其中的關(guān)鍵是實(shí)現(xiàn)信息世界與物理世界的深度融合與交互,構(gòu)建具備泛在感知、深度互聯(lián)、高級(jí)計(jì)算分析、精準(zhǔn)執(zhí)行功能的工業(yè)生態(tài)系統(tǒng)。數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(supervisory control and data acquisition,SCADA)是其中最為核心的系統(tǒng),廣泛應(yīng)用于石油石化、軌道交通、電力、水利等典型流程制造工藝過(guò)程的生產(chǎn)、輸油、輸電線網(wǎng)上的數(shù)據(jù)采集、運(yùn)行狀態(tài)監(jiān)控、調(diào)度等[1]。該系統(tǒng)中的眾多工業(yè)總線協(xié)議的有效交互,成為了實(shí)現(xiàn)工業(yè)生態(tài)系統(tǒng)的關(guān)鍵環(huán)節(jié)。由于不同的設(shè)計(jì)和開(kāi)發(fā)人員對(duì)相同通信協(xié)議標(biāo)準(zhǔn)的理解存在不同,在最后實(shí)現(xiàn)模塊間、總控與站控間的通信時(shí),可能會(huì)產(chǎn)生錯(cuò)誤。因此,為了發(fā)現(xiàn)并修正協(xié)議實(shí)現(xiàn)問(wèn)題,需要對(duì)SCADA軟件采用的總線協(xié)議進(jìn)行一致性測(cè)試[2-3]。

文中對(duì)主要應(yīng)用在管網(wǎng)SCADA系統(tǒng)中的開(kāi)放性總線協(xié)議IEC60870-5-104、Modbus、Ethernet/IP、DNP3.0、OPC進(jìn)行分析,研究協(xié)議測(cè)試的內(nèi)容、用例、方法、流程以及實(shí)現(xiàn),設(shè)計(jì)開(kāi)發(fā)總線協(xié)議一致性測(cè)試系統(tǒng)。

1 總線協(xié)議一致性測(cè)試系統(tǒng)設(shè)計(jì)

1.1 架構(gòu)設(shè)計(jì)

總線協(xié)議一致性測(cè)試系統(tǒng)結(jié)構(gòu)如圖1所示[4-5],其中總線測(cè)試器中運(yùn)行的是標(biāo)準(zhǔn)的被測(cè)總線協(xié)議實(shí)現(xiàn),測(cè)試界面作為人機(jī)交互的窗口為操作該系統(tǒng)的相關(guān)人員提供操作和控制測(cè)試過(guò)程的接口,并實(shí)時(shí)輸出當(dāng)前的測(cè)試結(jié)果。

圖1 總線協(xié)議一致性測(cè)試系統(tǒng)結(jié)構(gòu)

該系統(tǒng)的核心功能包括測(cè)試用例生成模塊、協(xié)議解析模塊、一致性判定模塊。

1.2 測(cè)試用例生成算法

測(cè)試用例生成過(guò)程首先是根據(jù)形式化描述方法產(chǎn)生測(cè)試序列,然后將測(cè)試序列實(shí)例化。對(duì)于已經(jīng)經(jīng)過(guò)形式化說(shuō)明的協(xié)議,可以用測(cè)試用例產(chǎn)生技術(shù)自動(dòng)生成適合該協(xié)議進(jìn)行測(cè)試的測(cè)試用例集。

常用的一致性測(cè)試用例生產(chǎn)算法包括Petri網(wǎng)、有限狀態(tài)機(jī)(finite state machine,F(xiàn)SM)、標(biāo)簽遷移系統(tǒng)(labeled transition system,LTS)以及約束邏輯程序(constraint logic program,CLP)等。其中FSM是一種描述軟件需求的形式規(guī)格說(shuō)明描述工具,具有精確性、可推導(dǎo)性和可驗(yàn)證性等優(yōu)點(diǎn)[6-7]。因此,基于FSM建立適用于SCADA軟件的開(kāi)放性總線協(xié)議測(cè)試系統(tǒng)的用例生成算法。

在此,以Modbus協(xié)議為例,說(shuō)明基于FSM的協(xié)議形式化描述。

Modbus協(xié)議是一個(gè)基于請(qǐng)求/應(yīng)答結(jié)構(gòu)的數(shù)據(jù)傳輸標(biāo)準(zhǔn):具體的通訊需要有兩個(gè)部分參與,分別是客戶端(Modbus client,C)和服務(wù)器端(Modbus server,S)[8]。根據(jù)Modbus協(xié)議描述,其服務(wù)器端有19種功能,可以將其中的每一個(gè)功能都轉(zhuǎn)化為對(duì)應(yīng)的FSM模型。生成Modbus協(xié)議測(cè)試用例涉及三個(gè)階段:協(xié)議形式化、測(cè)試序列生成、測(cè)試用例實(shí)例化。

第一階段:Modbus協(xié)議建立FSM形式化模型。首先對(duì)Modbus服務(wù)器端建模,得到簡(jiǎn)化的FSM模型,如圖2所示。以該模型為基礎(chǔ),其他19種服務(wù)端功能的FSM模型都由此演繹而來(lái)。

圖2 Modbus服務(wù)器端的FSM簡(jiǎn)化模型

FSM模型中狀態(tài)的含義如下:

S0:等待Modbus下一步指令;

S1:接收Modbus指令;

S2:功能碼有效;

S3:地址碼有效;

S4:數(shù)據(jù)段有效;

S5:Modbus功能碼執(zhí)行有效;

S6:指令無(wú)效。

第二階段:基于FSM生成測(cè)試序列。常見(jiàn)的FSM測(cè)試序列生成方法主要有:T、D、W、U四種方法[9]??紤]到最終的協(xié)議測(cè)試,需要確保生成的測(cè)試序列滿足以下兩點(diǎn):在確保測(cè)試序列路徑覆蓋率足夠大的條件下,測(cè)試序列盡量短;不同的輸入序列對(duì)應(yīng)不同的輸出序列。

第三階段:一致性測(cè)試用例實(shí)例化。

表1給出了總線協(xié)議一致性測(cè)試系統(tǒng)中不同協(xié)議的典型用例。

1.3 協(xié)議解析方法

測(cè)試工具能夠模擬總線上的主站或從站,或者以監(jiān)聽(tīng)的方式接收總線或公網(wǎng)鏈路上發(fā)送的數(shù)據(jù),并按照協(xié)議標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行解析。不同協(xié)議有不同的幀格式,需要針對(duì)不同協(xié)議設(shè)計(jì)不同的協(xié)議解析模塊。數(shù)據(jù)通信以報(bào)文幀的形式發(fā)送,但具體執(zhí)行何種操作需要對(duì)報(bào)文信息進(jìn)行解析。以Modbus協(xié)議為例說(shuō)明協(xié)議解析模塊的功能。

文中系統(tǒng)依據(jù)《GB/T 19582.1.2008 基于Modbus協(xié)議的工業(yè)自動(dòng)化網(wǎng)絡(luò)規(guī)范》[10]解析Modbus RTU報(bào)文,將Modbus RTU報(bào)文中的附加地址、功能碼、數(shù)據(jù)、差錯(cuò)校驗(yàn)分別保存在不同變量中。協(xié)議解析模塊實(shí)現(xiàn)對(duì)報(bào)文幀的解析:根據(jù)報(bào)文的附加地址和發(fā)送順序,可以自動(dòng)判斷并顯示當(dāng)前報(bào)文是請(qǐng)求報(bào)文還是響應(yīng)報(bào)文;根據(jù)功能碼,可以自動(dòng)判斷并顯示當(dāng)前報(bào)文的功能;根據(jù)數(shù)據(jù),可以自動(dòng)判斷并顯示當(dāng)前報(bào)文的含義;如果為錯(cuò)誤響應(yīng),則可以根據(jù)異常碼自動(dòng)判斷并顯示錯(cuò)誤原因。

表1 總線協(xié)議一致性測(cè)試用例舉例表

1.4 一致性判定方法

一致性判定模塊用于提供實(shí)際響應(yīng)與預(yù)期響應(yīng)的比較結(jié)果。如果被測(cè)實(shí)現(xiàn)IUT能夠在定時(shí)器規(guī)定的時(shí)間內(nèi)回復(fù)正確的請(qǐng)求,說(shuō)明IUT符合協(xié)議規(guī)范,則測(cè)試判決結(jié)果為通過(guò)(PASS),測(cè)試順利完成。如果IUT未能按時(shí)完成相應(yīng)的請(qǐng)求或請(qǐng)求結(jié)果不正確,說(shuō)明IUT不符合協(xié)議規(guī)范,則判決結(jié)果為失敗(FAIL)。

2 總線協(xié)議一致性測(cè)試系統(tǒng)實(shí)現(xiàn)與測(cè)試

2.1 測(cè)試用例生成模塊

文中主要基于TTCN來(lái)實(shí)現(xiàn)協(xié)議一致性測(cè)試用例。TTCN-3是為測(cè)試而專門(mén)定義的一種抽象描述語(yǔ)言,目前廣泛用于測(cè)試用例的設(shè)計(jì)[11-12]。基于TTCN數(shù)表描述語(yǔ)言在TTCN Suite 6.0軟件開(kāi)發(fā)環(huán)境下根據(jù)協(xié)議規(guī)范編寫(xiě)測(cè)試用例,可分為6步:

(1)在TTCN Suite 6.0軟件中新建一個(gè)TTCN的suites。

(2)需要對(duì)控制和觀察點(diǎn)(PCO)進(jìn)行定義及對(duì)其類型進(jìn)行聲明,尤其需要說(shuō)明所構(gòu)造的PCO的具體使用形式:是上測(cè)試(UT)接口、下測(cè)試(LT)接口,還是LT、UT同時(shí)使用。

(3)對(duì)ASP和PDU的類型進(jìn)行定義,需要對(duì)被測(cè)實(shí)體IUT與UT和LT之間的通信數(shù)據(jù)單元進(jìn)行必要的描述,即需要對(duì)抽象服務(wù)原語(yǔ)(abstract service primitives,ASP)的協(xié)議數(shù)據(jù)單元(protocol data units,PDU)進(jìn)行定義。

(4)定義用戶自己需要的常量、變量、定時(shí)器等數(shù)據(jù)的數(shù)據(jù)類型,避免與TTCN中預(yù)定義的數(shù)據(jù)類型混淆。

(5)在約束部分構(gòu)建從UT或LT到IUT的ASP或PDU數(shù)據(jù)流以及相關(guān)的響應(yīng)數(shù)據(jù)流[13],此處需要對(duì)ASP、PDU和動(dòng)態(tài)部分使用的變量或參數(shù)進(jìn)行賦值操作,然后在測(cè)試用例的動(dòng)態(tài)部分使用。

(6)在TTCN Suites的動(dòng)態(tài)部分構(gòu)造測(cè)試用例Test Case,將協(xié)議的每一步按照協(xié)議邏輯順序構(gòu)造成Test Case中的Test Step,并完成相應(yīng)的結(jié)構(gòu)化設(shè)計(jì),完成對(duì)測(cè)試用例的編寫(xiě)。

這部分的軟件設(shè)計(jì)主要是利用事件結(jié)構(gòu)并配合While循環(huán)結(jié)構(gòu)實(shí)現(xiàn)事件觸發(fā)機(jī)制,不同的事件觸發(fā)進(jìn)入不同的程序處理。對(duì)于不同的測(cè)試協(xié)議,測(cè)試用例的創(chuàng)建各不相同,如Modbus RTU需要設(shè)置端口,波特率,是否有校驗(yàn)和,停止位選擇,等等,而其他幾個(gè)協(xié)議并沒(méi)有這些內(nèi)容。

測(cè)試用例的構(gòu)造分為輸入集構(gòu)造和結(jié)果集生成兩個(gè)部分。根據(jù)測(cè)試規(guī)范分別構(gòu)造每一個(gè)測(cè)試用例的輸入與輸出,并將生成得到的測(cè)試用例進(jìn)行驗(yàn)證,以保證測(cè)試用例符合測(cè)試需求。而在進(jìn)行測(cè)試工作時(shí),所采用的測(cè)試用例需要根據(jù)具體的測(cè)試需求由自動(dòng)生成工具調(diào)取測(cè)試用例庫(kù)中的部分用例數(shù)據(jù)或人為通過(guò)查詢工具進(jìn)行篩查選擇所需要的符合測(cè)試任務(wù)要求的測(cè)試用例構(gòu)成測(cè)試用例集。最終通過(guò)相應(yīng)的數(shù)據(jù)接口或傳輸媒介,應(yīng)用測(cè)試用例到實(shí)際的測(cè)試工程中。用例管理邏輯圖如圖4所示,詳細(xì)地描述了一致性測(cè)試系統(tǒng)中測(cè)試用例的生成、保存、管理、搜索、使用等流程之間的相互關(guān)系和具體運(yùn)行關(guān)系。

2.2 協(xié)議解析模塊

協(xié)議解析功能是總線協(xié)議一致性測(cè)試的基礎(chǔ),不同協(xié)議對(duì)應(yīng)不同的協(xié)議解析程序。雖然各個(gè)協(xié)議的接口形式不一樣,但是只要從底層鏈路層接口獲取報(bào)文,后續(xù)對(duì)報(bào)文的處理流程是大同小異的。

2.3 結(jié)果判定模塊

測(cè)試判定功能主要包括一致性測(cè)試和性能測(cè)試以及對(duì)應(yīng)的數(shù)據(jù)收發(fā)部分,其中一致性測(cè)試用于判定被測(cè)設(shè)備是否符合協(xié)議規(guī)范;性能測(cè)試用于測(cè)試被測(cè)設(shè)備是否滿足一定的通信功能需求。為了方便程序調(diào)用,所有的測(cè)試判斷代碼都封裝為一個(gè)可被重復(fù)調(diào)用的獨(dú)立測(cè)試程序,主要包括初始化配置、打開(kāi)數(shù)據(jù)接口、讀操作以及關(guān)閉數(shù)據(jù)接口。

圖3 測(cè)試用例管理邏輯圖

3 測(cè)試與驗(yàn)證流程

以一套油氣調(diào)控SCADA系統(tǒng)為實(shí)驗(yàn)對(duì)象,驗(yàn)證該測(cè)試系統(tǒng)的有效性。以O(shè)PC協(xié)議的一致性測(cè)試為例,項(xiàng)目測(cè)試中用到的測(cè)試用例如表2所示,其中主要包括了測(cè)試用例具體測(cè)試項(xiàng)目,測(cè)試案例輸入,以及預(yù)期結(jié)果的說(shuō)明信息。執(zhí)行測(cè)試用例并發(fā)送至SCADA系統(tǒng),借助判定模塊分析SCADA系統(tǒng)的響應(yīng)報(bào)文,從而得出總線協(xié)議的一致性測(cè)試結(jié)論[14]。

表2 OPC協(xié)議一致性測(cè)試用例表

4 結(jié)束語(yǔ)

面向SCADA軟件系統(tǒng)的開(kāi)放性總線協(xié)議一致性測(cè)試系統(tǒng),是對(duì)工業(yè)控制領(lǐng)域監(jiān)測(cè)與數(shù)據(jù)采集系統(tǒng)的總線協(xié)議通訊功能進(jìn)行測(cè)試的綜合系統(tǒng),廣泛應(yīng)用于不同協(xié)議的SCADA系統(tǒng)的設(shè)計(jì)、研發(fā)、認(rèn)證、生產(chǎn)工作中。隨著工業(yè)控制領(lǐng)域網(wǎng)絡(luò)化、智能化的發(fā)展,未來(lái)有大量的系統(tǒng)需要互聯(lián)互通,另外國(guó)內(nèi)對(duì)于擁有自主知識(shí)產(chǎn)權(quán)的SCADA系統(tǒng)軟件的需求十分強(qiáng)烈,因此文中實(shí)現(xiàn)的總線一致性測(cè)試系統(tǒng)有助于國(guó)內(nèi)的相關(guān)智能工廠的互聯(lián)互通集成和工控企業(yè)SCADA系統(tǒng)研發(fā)工作,促進(jìn)國(guó)內(nèi)工業(yè)控制領(lǐng)域向工業(yè)4.0發(fā)展。

猜你喜歡
測(cè)試用例報(bào)文總線
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
以太網(wǎng)QoS技術(shù)研究及實(shí)踐
基于相似性的CITCP強(qiáng)化學(xué)習(xí)獎(jiǎng)勵(lì)策略①
測(cè)試用例自動(dòng)生成技術(shù)綜述
淺析反駁類報(bào)文要點(diǎn)
DCOM在混合總線自動(dòng)測(cè)試系統(tǒng)的應(yīng)用
基于AVR單片機(jī)的RS485工業(yè)總線開(kāi)發(fā)設(shè)計(jì)
仿真型總線控制實(shí)訓(xùn)室設(shè)計(jì)與建設(shè)
寶馬F02車總線系統(tǒng)
測(cè)試工時(shí)受限的測(cè)試策略研究
深州市| 长岛县| 兰坪| 白水县| 英山县| 喀喇沁旗| 娱乐| 巴东县| 黄骅市| 清丰县| 庆阳市| 蓝山县| 阿克| 肥城市| 隆子县| 佛坪县| 涿州市| 锦州市| 高州市| 孟州市| 兴化市| 江华| 平果县| 双辽市| 望谟县| 屯昌县| 丰县| 合水县| 临沭县| 陇南市| 武义县| 驻马店市| 双江| 贵溪市| 安宁市| 抚松县| 五指山市| 泽库县| 盐边县| 济阳县| 台安县|