專(zhuān)利名稱(chēng):Modbus-rtu協(xié)議一致性測(cè)試方法
技術(shù)領(lǐng)域:
發(fā)明涉及一種M0DBUS-RTU協(xié)議一致性測(cè)試方法,屬于電力系統(tǒng)信息數(shù)據(jù)傳 遞技術(shù)領(lǐng)域。
背景技術(shù):
隨著電力系統(tǒng)的迅速發(fā)展,以及新技術(shù)的不斷應(yīng)用,對(duì)信息數(shù)據(jù)的共享提 出了更高的要求,如何更好的完成信息數(shù)據(jù)的共享, 一直是電力系統(tǒng)面對(duì)的問(wèn) 題。通信協(xié)議是對(duì)被測(cè)設(shè)備通信協(xié)議部分的一個(gè)描述,主要包括地址表,支持 的應(yīng)用功能和對(duì)應(yīng)的功能碼,以及應(yīng)用功能的特殊要求等。
通信協(xié)議作為實(shí)現(xiàn)信息數(shù)據(jù)傳遞的一種方法,它的實(shí)現(xiàn)也一直倍受關(guān)注。 Modbus-RTU協(xié)議由于其簡(jiǎn)單而精致的結(jié)構(gòu)得到大家的支持,目前,在電力行業(yè) Modbus-RTU協(xié)議也得到了廣泛的應(yīng)用。
在Modbus-RTU協(xié)議實(shí)際應(yīng)用過(guò)程中,由于各個(gè)廠家對(duì)協(xié)議標(biāo)準(zhǔn)的理解不一 致,實(shí)現(xiàn)方法不同,給實(shí)際的互操作性問(wèn)題,如何保證Modbus -RTU協(xié)議的實(shí) 現(xiàn)與標(biāo)準(zhǔn)一致性,保證Modbus -RTU協(xié)議的互操作性是我們研究的重點(diǎn)。
目前,在已有的Modbus-RTU協(xié)議測(cè)試中,主要是驗(yàn)證應(yīng)用功能是否實(shí)現(xiàn), 例如是否能夠上送數(shù)據(jù),是否能夠完成控制功能,而忽略了承載功能的通信協(xié) 議是否滿(mǎn)足標(biāo)準(zhǔn)的要求,以及對(duì)協(xié)議的否定測(cè)試。這樣,表面上功能是實(shí)現(xiàn) 了,但是在實(shí)際與其他廠家互聯(lián)時(shí)可能就會(huì)因?yàn)閰f(xié)議實(shí)現(xiàn)上的一致性,給互連 帶來(lái)困難,也有可能在協(xié)議報(bào)文異常時(shí)裝置的某些功能受到影響,例如在實(shí)際 測(cè)試中遇到的,當(dāng)協(xié)議報(bào)文異常時(shí)造成裝置的重啟。因此,目前的測(cè)試方法主 要問(wèn)題是不能系統(tǒng),全面的考查協(xié)議實(shí)現(xiàn)的一致性,給實(shí)際設(shè)備間的互連帶來(lái)
B急'患o(jì)
發(fā)明內(nèi)容本發(fā)明的任務(wù)是提供一種MODBUS-RTU協(xié)議一致性測(cè)試方法,解決以往測(cè)試 只驗(yàn)證功能的實(shí)現(xiàn)而忽略協(xié)議本身測(cè)試的問(wèn)題。
為完成上述任務(wù),在本發(fā)明中,利用協(xié)議測(cè)試工具檢査協(xié)議的實(shí)現(xiàn)是否與 標(biāo)準(zhǔn)一致,利用測(cè)試儀施加交流量,輔助完成對(duì)應(yīng)用功能和數(shù)據(jù)正確性的驗(yàn) 證,測(cè)試內(nèi)容包括協(xié)議的一致性測(cè)試、應(yīng)用功能和數(shù)據(jù)正確性的驗(yàn)證,其中協(xié) 議一致性測(cè)試包括鏈路層、功能碼、數(shù)據(jù)域的正常測(cè)試和否定測(cè)試。本測(cè)試方 法給出了Modbus-RTU協(xié)議一個(gè)系統(tǒng)、全面的測(cè)試內(nèi)容和測(cè)試方法,對(duì)保證協(xié)議 實(shí)現(xiàn)一致性和互操作性有很重要的意義。
本發(fā)明MODBUS-RTU協(xié)議一致性測(cè)試方法的具體步驟如下
第一步填寫(xiě)Modbus-RTU協(xié)議一致性聲明表;
第二步按照?qǐng)Dl搭建測(cè)試系統(tǒng);
第三步通信接口測(cè)試; 第四步通信波特率測(cè)試; 第五步鏈路層測(cè)試;
第六步功能碼Ol (讀線(xiàn)圈)的正常測(cè)試; 第七步功能碼Ol (讀線(xiàn)圈)的否定測(cè)試; 第八步功能碼02 (讀離散量輸入)的正常測(cè)試; 第九步功能碼02 (讀離散量輸入)的否定測(cè)試; 第十步功能碼03 (讀保持寄存器)的正常測(cè)試; 第十一步功能碼03 (讀保持寄存器)的否定測(cè)試; 第十二步功能碼04 (讀輸入寄存器)的正常測(cè)試; 第十三步功能碼04 (讀輸入寄存器)的否定測(cè)試; 第十四步功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的正常測(cè)試; 第十五步功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的否定測(cè)試; 第十六步功能碼06 (寫(xiě)單個(gè)寄存器)的正常測(cè)試; 第十七步功能碼06 (寫(xiě)單個(gè)寄存器)的否定測(cè)試;第十八步功能碼07 (讀取異常狀態(tài))的正常測(cè)試; 第十九步功能碼08 (診斷功能)的正常測(cè)試; 第二十步功能碼08 (診斷功能)的否定測(cè)試; 第二十一步功能碼ll (獲得通信事件計(jì)數(shù)器)的正常測(cè)試; 第二十二步功能碼12 (獲得通信事件記錄)的正常測(cè)試 第二十三步功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的正常測(cè)試; 第二十四步功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的否定測(cè)試; 第二十五步功能碼16(寫(xiě)多個(gè)寄存器)的正常測(cè)試; 第二十六步功能碼16(寫(xiě)多個(gè)寄存器)的否定測(cè)試; 第二十七步功能碼17 (報(bào)告子站ID)的正常測(cè)試; 第二十八步功能碼20/6 (讀文件記錄)的正常測(cè)試; 第二十九步功能碼20/6 (讀文件記錄)的否定測(cè)試; 第三十步功能碼21/6 (寫(xiě)文件記錄)的正常測(cè)試; 第三十一步功能碼21/6 (寫(xiě)文件記錄)的否定測(cè)試; 第三十二步功能碼22 (屏蔽寫(xiě)寄存器)的正常測(cè)試; 第三十三步功能碼22 (屏蔽寫(xiě)寄存器)的否定測(cè)試; 第三十四步功能碼23 (讀/寫(xiě)多個(gè)寄存器)的正常測(cè)試; 第三十五步功能碼23 (讀/寫(xiě)多個(gè)寄存器)的否定測(cè)試; 第三十六步功能碼24 (讀FIFO隊(duì)列)的正常測(cè)試; 第三十七步功能碼24 (讀FIFO隊(duì)列)的否定測(cè)試; 第三十八步功能碼43/14 (讀設(shè)備標(biāo)識(shí))的正常測(cè)試; 第三十九步功能碼43/14 (讀設(shè)備標(biāo)識(shí))否定測(cè)試; 第四十步不支持功能碼的測(cè)試; 第四十一步數(shù)據(jù)域的測(cè)試; 第四十二步應(yīng)用功能的測(cè)試; 第四十三步數(shù)據(jù)正確性的測(cè)試。本測(cè)試方法的發(fā)明制定了詳細(xì)全面的測(cè)試內(nèi)容,并利用專(zhuān)門(mén)的協(xié)議測(cè)試工 具幫助完成協(xié)議一致性測(cè)試,測(cè)試內(nèi)容包括協(xié)議的一致性測(cè)試、應(yīng)用功能和數(shù) 據(jù)正確性的驗(yàn)證,其中協(xié)議一致性測(cè)試包括鏈路層、功能碼、數(shù)據(jù)域的正常測(cè)
試和否定測(cè)試。本測(cè)試方法給出了Modbus-RTU協(xié)議一個(gè)系統(tǒng)、全面的測(cè)試內(nèi)容 和測(cè)試方法,對(duì)保證協(xié)議實(shí)現(xiàn)一致性和互操作性有很重要的意義。
本發(fā)明的主要優(yōu)點(diǎn)如下
1) 測(cè)試內(nèi)容全面,測(cè)試內(nèi)容包括協(xié)議的一致性測(cè)試、應(yīng)用功能和數(shù)據(jù)正 確性的驗(yàn)證,其中協(xié)議一致性測(cè)試包括鏈路層、功能碼、數(shù)據(jù)域的正常測(cè)試和
否定測(cè)試。本測(cè)試方法給出了Modbus-RTU協(xié)議一個(gè)系統(tǒng)、全面的測(cè)試內(nèi)容和測(cè) 試方法,來(lái)保證協(xié)議實(shí)現(xiàn)一致性和互操作性;
2) 專(zhuān)門(mén)的modbus-RTU協(xié)議測(cè)試工具,使用專(zhuān)門(mén)的協(xié)議測(cè)試工具更有利于 發(fā)現(xiàn)協(xié)議報(bào)文中的錯(cuò)誤。
圖l為本發(fā)明測(cè)試項(xiàng)目表;
圖2為本發(fā)明的測(cè)試系統(tǒng)結(jié)構(gòu)圖3為本發(fā)明的Modbus-RTU協(xié)議一致性聲明表。
具體實(shí)施例方式
本測(cè)試方法主要包括以下幾個(gè)方面 1)測(cè)試內(nèi)容
a) 鏈路層測(cè)試,主要考査傳輸模式,消息幀格式,地址域、校驗(yàn)碼和鏈路 傳輸狀態(tài),保證在鏈路層正常和異常情況下,裝置能夠給出正確的響應(yīng), 并能夠正常運(yùn)行;
b) 功能碼測(cè)試,主要考查功能碼的格式和傳輸過(guò)程是否滿(mǎn)足標(biāo)準(zhǔn)的要求, 并且,當(dāng)功能碼異常時(shí),裝置是否能夠異常響應(yīng);
c) 數(shù)據(jù)域測(cè)試,主要考査數(shù)據(jù)域的格式和數(shù)據(jù)是否滿(mǎn)足標(biāo)準(zhǔn)的要求;d) 應(yīng)用功能測(cè)試,在協(xié)議一致性實(shí)現(xiàn)的基礎(chǔ)上,考査裝置應(yīng)用功能是否正 確實(shí)現(xiàn);
e) 數(shù)據(jù)正確性測(cè)試,在協(xié)議一致性實(shí)現(xiàn)的基礎(chǔ)上,考查裝置上送的數(shù)據(jù)是 否正確。
詳細(xì)的測(cè)試項(xiàng)目見(jiàn)圖l表。
2) 協(xié)議測(cè)試工具
協(xié)議測(cè)試工具可以根據(jù)測(cè)試的需要模擬發(fā)送各種命令幀,接收被測(cè)設(shè)備的 響應(yīng)幀,并對(duì)報(bào)文進(jìn)行分析判斷。
3) 測(cè)試系統(tǒng)結(jié)構(gòu)圖見(jiàn)圖2
4) 協(xié)議一致性測(cè)試方法
a) 首先被測(cè)設(shè)備需要提供通信協(xié)議說(shuō)明并填寫(xiě)Modbus-RTU協(xié)議一致性聲明 表,Modbus-RTU協(xié)議一致性聲明表是整個(gè)協(xié)議一致性測(cè)試的基礎(chǔ),很多測(cè) 試項(xiàng)目是根據(jù)一致性聲明的內(nèi)容進(jìn)行選擇的,Modbus-RTU協(xié)議一致性聲明 表見(jiàn)附錄;
b) 按照?qǐng)D2搭建測(cè)試系統(tǒng);
c) 記錄裝置的通信接口;
d) 調(diào)整協(xié)議測(cè)試工具的通信速率與被測(cè)設(shè)備的通信速率一致,利用測(cè)試工 具發(fā)送正確的命令,查看被測(cè)設(shè)備回應(yīng)的通信報(bào)文,來(lái)檢測(cè)是否支持此通 信速率;根據(jù)MODBUS-RTU協(xié)議一致性聲明表,重復(fù)測(cè)試每一種支持的通 信速率;
e) 鏈路層測(cè)試
i) 利用協(xié)議測(cè)試工具發(fā)送正確的通信報(bào)文,包括正確的地址,正確的 幀格式,正確的校驗(yàn)碼,査看被測(cè)設(shè)備能否正確響應(yīng)以及響應(yīng)的幀 格式是否正確;
ii) 利用協(xié)議測(cè)試工具發(fā)送的通信報(bào)文中,地址錯(cuò)誤,查看被測(cè)設(shè)備是 否不進(jìn)行響應(yīng);
8iii) 利用協(xié)議測(cè)試工具發(fā)送的幀格式異常(多字節(jié)或少字節(jié)), 査看被測(cè)設(shè)備是否丟棄此幀信息;
iv) 利用協(xié)議測(cè)試工具發(fā)送的校驗(yàn)碼錯(cuò)誤,査看被測(cè)設(shè)備是否丟棄此 幀;
v) 利用協(xié)議測(cè)試工具發(fā)送讀命令的廣播命令,查看被測(cè)設(shè)備是否進(jìn)行 響應(yīng);
vi) 利用協(xié)議測(cè)試工具發(fā)送寫(xiě)命令的廣播命令,査看被測(cè)設(shè)備是否進(jìn)行 響應(yīng)。
f)功能碼測(cè)試
功能碼的測(cè)試主要分為支持功能碼的測(cè)試和不支持功能碼的測(cè)試,根據(jù) MODBUS-RTU協(xié)議一致性聲明表可以得知被測(cè)設(shè)備支持哪些功能碼。 i)支持功能碼的正常測(cè)試
(1) 功能碼Ol (讀線(xiàn)圈)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功能碼 01讀取1-2000個(gè)連續(xù)線(xiàn)圈狀態(tài),檢査被測(cè)設(shè)備是否用功能碼01回應(yīng),并上送 線(xiàn)圈當(dāng)前狀態(tài);如果返回的線(xiàn)圈數(shù)量不是8的倍數(shù),將用零填充最后數(shù)據(jù)字節(jié) 的剩余位(一直到字節(jié)的高位端);
(2) 功能碼02 (讀離散量輸入)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 用功能碼02讀取1-2000個(gè)連續(xù)的離散量輸入狀態(tài),檢查被測(cè)設(shè)備是否用功能 碼02回應(yīng),并上送離散量輸入當(dāng)前狀態(tài);如果返回的輸入數(shù)量不是8的倍 數(shù),將用零填充最后數(shù)據(jù)字節(jié)的剩余位(一直字節(jié)的高位端);
(3) 功能碼03 (讀保持寄存器)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼03讀取一個(gè)或多個(gè)保持寄存器當(dāng)前值,檢査被測(cè)設(shè)備是否用功能碼03 回應(yīng),并上送寄存器當(dāng)前值,在響應(yīng)報(bào)文中的寄存器數(shù)據(jù)打包成每個(gè)寄存器有 兩個(gè)字節(jié);
(4) 功能碼04 (讀輸入寄存器)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼03讀取一個(gè)或多個(gè)保持寄存器當(dāng)前值,檢査被測(cè)設(shè)備是否用功能碼03回應(yīng),并上送寄存器當(dāng)前值,在響應(yīng)報(bào)文中的寄存器數(shù)據(jù)打包成每個(gè)寄存器有
兩個(gè)字節(jié);
(5) 功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功 能碼05強(qiáng)置一個(gè)線(xiàn)圈的通斷狀態(tài),被測(cè)設(shè)備在寫(xiě)入線(xiàn)圈狀態(tài)后回應(yīng)一幀與請(qǐng) 求幀相同的報(bào)文;
(6) 功能碼06 (寫(xiě)單個(gè)寄存器)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼06置單個(gè)寄存器的值,檢査被測(cè)設(shè)備是否在寫(xiě)入寄存器的內(nèi)容后回應(yīng) 一幀與請(qǐng)求幀相同的報(bào)文;
(7) 功能碼07 (讀取異常狀態(tài))的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼07讀取8個(gè)異常狀態(tài)輸出的內(nèi)容,檢查被測(cè)設(shè)備是否用功能碼07響 應(yīng),并在響應(yīng)幀中包含8個(gè)異常狀態(tài)輸出的內(nèi)容,這些輸出打包成一個(gè)字節(jié), 每個(gè)異常狀態(tài)輸出一個(gè)位;
(8) 功能碼08 (診斷功能)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功能 碼08提供一系列測(cè)試,用于檢査主站和子站之間的通信系統(tǒng)或子站中的各種 差錯(cuò)狀態(tài),在請(qǐng)求幀中包含一個(gè)子功能碼來(lái)定義子站所執(zhí)行的測(cè)試類(lèi)型,檢査 被測(cè)設(shè)備是否應(yīng)用功能碼08和與請(qǐng)求幀相同的子功能碼響應(yīng);
(9) 功能碼ll (獲得通信事件計(jì)數(shù)器)的正常測(cè)試,協(xié)議測(cè)試工 具發(fā)送功能碼11從被測(cè)設(shè)備通信事件計(jì)數(shù)器中獲得狀態(tài)字和事件計(jì)數(shù),檢査 被測(cè)設(shè)備是否用功能碼11響應(yīng);
(10) 功能碼12 (獲得通信事件記錄)的正常測(cè)試,協(xié)議測(cè)試工具 發(fā)送功能碼12從被測(cè)設(shè)備獲得狀態(tài)字、事件計(jì)數(shù)、報(bào)文計(jì)數(shù)以及一個(gè)事件字 節(jié)域,檢査被測(cè)設(shè)備是否用功能碼12響應(yīng);
(11) 功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功 能碼15置多個(gè)線(xiàn)圈的通斷狀態(tài),檢査被測(cè)設(shè)備是否應(yīng)用功能碼15,響應(yīng)幀中 包含的寄存器地址、寄存器數(shù)量與請(qǐng)求幀中一樣;(12) 功能碼16(寫(xiě)多個(gè)寄存器)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功 能碼16置多個(gè)連續(xù)寄存器的值,檢査被測(cè)設(shè)備是否應(yīng)用功能碼16響應(yīng),響應(yīng) 幀中包含的寄存器地址、寄存器數(shù)量與接收幀中一樣;
(13) 功能碼17 (報(bào)告子站ID)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送功 能碼17讀取被測(cè)設(shè)備特定的類(lèi)型描述、當(dāng)前狀態(tài)以及其他信息,檢査被測(cè)設(shè) 備是否用功能碼17響應(yīng),并在響應(yīng)幀中包含被測(cè)設(shè)備ID、運(yùn)行指示狀態(tài)以及 附加數(shù)據(jù);
(14) 功能碼20/6 (讀文件記錄)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼20讀取文件記錄,檢査被測(cè)設(shè)備是否應(yīng)用功能碼20/6響應(yīng),在響應(yīng)幀 中包含對(duì)各個(gè)子請(qǐng)求的響應(yīng)("6"指的是參數(shù)類(lèi)型);
(15) 功能碼21/6 (寫(xiě)文件記錄)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼21/6寫(xiě)入文件記錄,檢查被測(cè)設(shè)備是否應(yīng)用功能碼21/6響應(yīng),正常的 響應(yīng)是請(qǐng)求的復(fù)制("6"表示參數(shù)類(lèi)型);
(16) 功能碼22 (屏蔽寫(xiě)寄存器)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼22屏蔽寫(xiě)寄存器,檢查被測(cè)設(shè)備是否應(yīng)用功能碼22響應(yīng),正常的響應(yīng) 是請(qǐng)求的復(fù)制;
(17) 功能碼23 (讀/寫(xiě)多個(gè)寄存器)的正常測(cè)試,協(xié)議測(cè)試工具 發(fā)送功能碼23完成讀操作和寫(xiě)操作的組合,檢査被測(cè)設(shè)備是否應(yīng)用功能碼23 響應(yīng),正常的響應(yīng)應(yīng)該包含所讀寄存器數(shù)據(jù);
(18) 功能碼24 (讀FIFO隊(duì)列)的正常測(cè)試,協(xié)議測(cè)試工具發(fā)送 功能碼24讀取被測(cè)設(shè)備中先入先出(FIFO)寄存器隊(duì)列內(nèi)容,此功能最多可 以讀32個(gè)寄存器計(jì)數(shù)加上最多31個(gè)隊(duì)列的數(shù)據(jù)寄存器,檢查被測(cè)設(shè)備是否 用功能碼24給予響應(yīng);
(19) 功能碼43/14 (讀設(shè)備標(biāo)識(shí))的正常測(cè)試,協(xié)議測(cè)試工具發(fā) 送功能碼43/14讀取被測(cè)設(shè)備的物理和功能描述相關(guān)的標(biāo)識(shí)和附加信息,其中 14表示MEI類(lèi)型,檢查被測(cè)設(shè)備是否用功能碼43給予響應(yīng);ii)支持功能碼的否定測(cè)試
(1) 功能碼Ol (讀線(xiàn)圈)的否定測(cè)試
>協(xié)議測(cè)試工具發(fā)送功能碼01讀取線(xiàn)圈數(shù)量不在1 2000范圍內(nèi),檢 查被測(cè)設(shè)備是否用功能碼81H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含 一個(gè)異常代碼03表示讀取的線(xiàn)圈數(shù)量無(wú)效,即非法數(shù)據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼01讀取一組無(wú)效地址的線(xiàn)圈狀態(tài),檢査被 測(cè)設(shè)備是否用功能碼81H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè) 異常代碼02表示是非法數(shù)據(jù)地址;
(2) 功能碼02 (讀離散量輸入)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼02讀取離散量輸入數(shù)量不在1 2000范圍
內(nèi),檢査被測(cè)設(shè)備是否用功能碼82H給予一個(gè)異常響應(yīng),并在響應(yīng)幀 中包含一個(gè)異常代碼03表示讀取的離散量輸入數(shù)量無(wú)效,即非法數(shù) 據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼02讀取一組無(wú)效地址的離散量輸入狀態(tài), 檢査被測(cè)設(shè)備是否用功能碼82H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常代碼02表示是非法數(shù)據(jù)地址;
(3) 功能碼03 (讀保持寄存器)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼03讀取的保持寄存器數(shù)量不在1 125范圍
內(nèi),檢査被測(cè)設(shè)備是否用功能碼83H給予一個(gè)異常響應(yīng),并在響應(yīng)幀 中包含一個(gè)異常代碼03表示讀取的保持寄存器數(shù)量無(wú)效,即非法數(shù) 據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼03讀取一組無(wú)效地址保持寄存器當(dāng)前值, 檢查被測(cè)設(shè)備是否用功能碼83H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常代碼02表示是非法數(shù)據(jù)地址;
(4) 功能碼04 (讀輸入寄存器)的否定測(cè)試>協(xié)議測(cè)試工具發(fā)送功能碼04讀取的輸入寄存器數(shù)量不在1 125范圍 內(nèi),檢查被測(cè)設(shè)備是否用功能碼84H給予一個(gè)異常響應(yīng),并在響應(yīng)幀 中包含一個(gè)異常代碼03表示讀取的輸入寄存器數(shù)量無(wú)效,即非法數(shù) 據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼04讀取一組無(wú)效地址輸入寄存器當(dāng)前值, 檢查被測(cè)設(shè)備是否用功能碼84H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常代碼02表示是非法數(shù)據(jù)地址;
(5) 功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼05寫(xiě)入線(xiàn)圈的通斷狀態(tài)不是"0000"或
"FF00"時(shí),檢査被測(cè)設(shè)備是否用功能碼85H給予一個(gè)異常響應(yīng),并 在響應(yīng)幀中包含一個(gè)異常代碼03表示線(xiàn)圈的通斷狀態(tài)無(wú)效,即非法 數(shù)據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼05強(qiáng)置一個(gè)無(wú)效地址線(xiàn)圈的通斷狀態(tài),檢 査被測(cè)設(shè)備是否用功能碼85H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含 一個(gè)異常代碼02表示是非法數(shù)據(jù)地址;
>協(xié)議測(cè)試工具發(fā)送功能碼05寫(xiě)命令,如果被測(cè)設(shè)備在試圖處理請(qǐng)求 時(shí)出現(xiàn)不可恢復(fù)的差錯(cuò),檢査被測(cè)設(shè)備是否用功能碼85H給予一個(gè)異 常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常碼04表示被測(cè)設(shè)備故障;
(6) 功能碼06 (寫(xiě)單個(gè)寄存器)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼06寫(xiě)入的寄存器值不在被測(cè)設(shè)備允許的范
圍內(nèi)時(shí),檢査被測(cè)設(shè)備是否用功能碼86H給予一個(gè)異常響應(yīng),并在響 應(yīng)幀包含一個(gè)異常碼03表示寫(xiě)入寄存器的值無(wú)效,即非法數(shù)據(jù)值; >協(xié)議測(cè)試工具發(fā)送功能碼06置一個(gè)無(wú)效地址寄存器的值,檢查被測(cè) 設(shè)備是否用功能碼86H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異 常代碼02表示是非法數(shù)據(jù)地址;
(7) 功能碼08 (診斷功能)的否定測(cè)試>協(xié)議測(cè)試工具發(fā)送功能碼08提供無(wú)效的數(shù)據(jù)域,檢査被測(cè)設(shè)備是否
用功能碼88H給予異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼03表 示數(shù)據(jù)域無(wú)效;
(8) 功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼15寫(xiě)入的線(xiàn)圈數(shù)量不在1 1968范圍內(nèi),
檢查被測(cè)設(shè)備是否用功能碼8FH給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常碼03表示寄存器數(shù)量無(wú)效,即非法數(shù)據(jù)值; >協(xié)議測(cè)試工具發(fā)送功能碼15置一個(gè)無(wú)效地址線(xiàn)圈的通斷狀態(tài),檢査 被測(cè)設(shè)備是否用功能碼8FH給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一 個(gè)異常代碼02非法數(shù)據(jù)地址;
(9) 功能碼16 (寫(xiě)多個(gè)寄存器)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼16寫(xiě)入的寄存器數(shù)量不在1 123范圍內(nèi)或
者字節(jié)計(jì)數(shù)不等于寄存器數(shù)量的2倍時(shí),檢査被測(cè)設(shè)備是否用功能碼 90H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼03表示寄 存器數(shù)量無(wú)效,即非法數(shù)據(jù)值; >協(xié)議測(cè)試工具發(fā)送功能碼16置一個(gè)無(wú)效地址寄存器值,檢査被測(cè)設(shè) 備是否用功能碼90H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常 代碼02非法數(shù)據(jù)地址;
(10) 功能碼20/6 (讀文件記錄)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼20/6讀取的字節(jié)計(jì)數(shù)不在7 245范圍內(nèi),
檢査被測(cè)設(shè)備是否用功能碼94H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常碼03表示字節(jié)計(jì)數(shù)無(wú)效; >協(xié)議測(cè)試工具發(fā)送功能碼20/6讀取的起始地址、參數(shù)類(lèi)型、文件 號(hào)、以及記錄數(shù)量中的任何一個(gè)或幾個(gè)無(wú)效,檢査被測(cè)設(shè)備是否用功 能碼94H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼02表 示無(wú)效數(shù)據(jù)地址;(11) 功能碼21/6 (寫(xiě)文件記錄)的否定測(cè)試
>協(xié)議測(cè)試工具發(fā)送功能碼21/6寫(xiě)入的字節(jié)計(jì)數(shù)不在7 245范圍內(nèi), 檢査被測(cè)設(shè)備是否用功能碼95H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包 含一個(gè)異常代碼03表示寄存器數(shù)量無(wú)效,即非法數(shù)據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼21/6寫(xiě)入的起始地址、參數(shù)類(lèi)型、文件 號(hào)、以及記錄數(shù)量中的任何一個(gè)或幾個(gè)無(wú)效時(shí),檢查被測(cè)設(shè)備是否用 功能碼95H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼02 表示非法數(shù)據(jù)地址;
(12) 功能碼22 (屏蔽寫(xiě)寄存器)的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送功能碼22,請(qǐng)求幀中"and—mask"或"r—mask"
無(wú)效時(shí),檢査被測(cè)設(shè)備是否用功能碼96H給予一個(gè)異常響應(yīng),并在響 應(yīng)幀中包含一個(gè)異常代碼03表示非法數(shù)據(jù)值; >協(xié)議測(cè)試工具發(fā)送功能碼22屏蔽一個(gè)無(wú)效地址寄存器時(shí),檢查被測(cè) 設(shè)備是否用功能碼96H給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異 常代碼02表示非法數(shù)據(jù)地址;
(13) 功能碼23 (讀/寫(xiě)多個(gè)寄存器)的否定測(cè)試
>協(xié)議測(cè)試工具發(fā)送功能碼23讀取寄存器的數(shù)量不在1- 125范圍內(nèi) 或者寫(xiě)入的寄存器數(shù)量不在l 121范圍內(nèi)或者寫(xiě)字節(jié)數(shù)不是寫(xiě)入 寄存器數(shù)量的2倍檢査被測(cè)設(shè)備是否用功能碼97H給予一個(gè)異常響 應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼03表示寄存器數(shù)量無(wú)效,B卩非 法數(shù)據(jù)值;
>協(xié)議測(cè)試工具發(fā)送功能碼23讀取無(wú)效地址的寄存器或者寫(xiě)入無(wú)效地 址的寄存器,檢查被測(cè)設(shè)備是否用功能碼97H給予一個(gè)異常響應(yīng),并 在響應(yīng)幀中包含一個(gè)異常代碼02表示非法數(shù)據(jù)地址;
(14) 功能碼24 (讀FIFO隊(duì)列)的否定測(cè)試功能碼24讀取FIFO寄存器的數(shù)量不在0 31之
間,檢査被測(cè)設(shè)備是否用功能碼98H給予異常響應(yīng),并在響應(yīng)幀中包
含一個(gè)異常代碼03表示非法數(shù)據(jù)值; >協(xié)議測(cè)試工具發(fā)送功能碼24讀取一個(gè)無(wú)效地址的FIFO寄存器,檢查
被測(cè)設(shè)備是否用功能碼98H給予異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異
常代碼02表示非法數(shù)據(jù)地址; (15)功能碼43/14 (讀設(shè)備標(biāo)識(shí))的否定測(cè)試 >協(xié)議測(cè)試工具發(fā)送讀取一個(gè)無(wú)效的設(shè)備ID時(shí),檢查被測(cè)設(shè)備是否用
功能碼abH給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼03
表示非法數(shù)據(jù)值;
)>協(xié)議測(cè)試工具發(fā)送一個(gè)無(wú)效的對(duì)象ID時(shí),檢査被測(cè)設(shè)備是否用功能 碼abH給予一個(gè)異常響應(yīng),并在響應(yīng)幀中包含一個(gè)異常代碼02表示 非法數(shù)據(jù)地址;
iii) 不支持功能碼的測(cè)試,利用協(xié)議測(cè)試工具發(fā)送被測(cè)設(shè)備任一 不支持的功能碼,査看被測(cè)設(shè)備是否進(jìn)行異常響應(yīng),異常響應(yīng)中的 功能碼是80H+請(qǐng)求的功能碼,并且在響應(yīng)幀中包含一個(gè)異常代碼01 表示非法功能;
g) 數(shù)據(jù)域測(cè)試,利用協(xié)議測(cè)試工具發(fā)送正確的命令幀,査看被測(cè)設(shè)備響應(yīng) 的報(bào)文中數(shù)據(jù)域是否滿(mǎn)足標(biāo)準(zhǔn)的要求;
h) 應(yīng)用功能測(cè)試,根據(jù)通信協(xié)議說(shuō)明中被測(cè)設(shè)備支持的應(yīng)用功能,檢驗(yàn)每 一個(gè)應(yīng)用功能是否能夠正確完成;
i) 數(shù)據(jù)正確性測(cè)試,首先需要利用測(cè)試儀給被測(cè)設(shè)備施加交流量,然后利 用協(xié)議測(cè)試工具發(fā)送命令幀,查看被測(cè)設(shè)備上送的數(shù)據(jù)是否正確。
5)協(xié)議一致性測(cè)試步驟
第一步填寫(xiě)Modbus-RTU協(xié)議一致性聲明表; 第二步按照?qǐng)Dl搭建測(cè)試系統(tǒng);第三步通信接口測(cè)試; 第四步通信波特率測(cè)試; 第五步鏈路層測(cè)試;
第六步功能碼Ol (讀線(xiàn)圈)的正常測(cè)試; 第七步功能碼Ol (讀線(xiàn)圈)的否定測(cè)試; 第八步功能碼02 (讀離散量輸入)的正常測(cè)試; 第九步功能碼02 (讀離散量輸入)的否定測(cè)試; 第十步功能碼03 (讀保持寄存器)的正常測(cè)試; 第十一步功能碼03 (讀保持寄存器)的否定測(cè)試; 第十二步功能碼04 (讀輸入寄存器)的正常測(cè)試; 第十三步功能碼04 (讀輸入寄存器)的否定測(cè)試; 第十四步功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的正常測(cè)試; 第十五步功能碼05 (寫(xiě)單個(gè)線(xiàn)圈)的否定測(cè)試; 第十六步功能碼06 (寫(xiě)單個(gè)寄存器)的正常測(cè)試; 第十七步功能碼06 (寫(xiě)單個(gè)寄存器)的否定測(cè)試; 第十八步功能碼07 (讀取異常狀態(tài))的正常測(cè)試; 第十九步功能碼08 (診斷功能)的正常測(cè)試; 第二十步功能碼08 (診斷功能)的否定測(cè)試; 第二十一步功能碼ll (獲得通信事件計(jì)數(shù)器)的正常測(cè)試; 第二十二步功能碼12 (獲得通信事件記錄)的正常測(cè)試 第二十三步功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的正常測(cè)試; 第二十四步功能碼15 (寫(xiě)多個(gè)線(xiàn)圈)的否定測(cè)試; 第二十五步功能碼16(寫(xiě)多個(gè)寄存器)的正常測(cè)試; 第二十六步功能碼16(寫(xiě)多個(gè)寄存器)的否定測(cè)試; 第二十七步功能碼17 (報(bào)告子站ID)的正常測(cè)試; 第二十八步功能碼20/6 (讀文件記錄)的正常測(cè)試;第二十九步功能碼20/6 (讀文件記錄)的否定測(cè)試; 第三十步功能碼21/6 (寫(xiě)文件記錄)的正常測(cè)試; 第三十一步功能碼21/6 (寫(xiě)文件記錄)的否定測(cè)試; 第三十二步功能碼22 (屏蔽寫(xiě)寄存器)的正常測(cè)試; 第三十三步功能碼22 (屏蔽寫(xiě)寄存器)的否定測(cè)試; 第三十四步功能碼23 (讀/寫(xiě)多個(gè)寄存器)的正常測(cè)試; 第三十五步功能碼23 (讀/寫(xiě)多個(gè)寄存器)的否定測(cè)試; 第三十六步功能碼24 (讀FIFO隊(duì)列)的正常測(cè)試; 第三十七步功能碼24 (讀FIFO隊(duì)列)的否定測(cè)試; 第三十八步功能碼43/14 (讀設(shè)備標(biāo)識(shí))的正常測(cè)試; 第三十九步功能碼43/14 (讀設(shè)備標(biāo)識(shí))否定測(cè)試; 第四十步不支持功能碼的測(cè)試; 第四十一步數(shù)據(jù)域的測(cè)試; 第四十二步應(yīng)用功能的測(cè)試; 第四十三步數(shù)據(jù)正確性的測(cè)試。
權(quán)利要求
1、一種MODBUS-RTU協(xié)議一致性測(cè)試方法,其特征在于,該方法的步驟如下第一步填寫(xiě)Modbus-RTU協(xié)議一致性聲明表;第二步搭建測(cè)試系統(tǒng);第三步通信接口測(cè)試;第四步通信波特率測(cè)試;第五步鏈路層測(cè)試;第六步功能碼01(讀線(xiàn)圈)的正常測(cè)試;第七步功能碼01(讀線(xiàn)圈)的否定測(cè)試;第八步功能碼02(讀離散量輸入)的正常測(cè)試;第九步功能碼02(讀離散量輸入)的否定測(cè)試;第十步功能碼03(讀保持寄存器)的正常測(cè)試;第十一步功能碼03(讀保持寄存器)的否定測(cè)試;第十二步功能碼04(讀輸入寄存器)的正常測(cè)試;第十三步功能碼04(讀輸入寄存器)的否定測(cè)試;第十四步功能碼05(寫(xiě)單個(gè)線(xiàn)圈)的正常測(cè)試;第十五步功能碼05(寫(xiě)單個(gè)線(xiàn)圈)的否定測(cè)試;第十六步功能碼06(寫(xiě)單個(gè)寄存器)的正常測(cè)試;第十七步功能碼06(寫(xiě)單個(gè)寄存器)的否定測(cè)試;第十八步功能碼07(讀取異常狀態(tài))的正常測(cè)試;第十九步功能碼08(診斷功能)的正常測(cè)試;第二十步功能碼08(診斷功能)的否定測(cè)試;第二十一步功能碼11(獲得通信事件計(jì)數(shù)器)的正常測(cè)試;第二十二步功能碼12(獲得通信事件記錄)的正常測(cè)試第二十三步功能碼15(寫(xiě)多個(gè)線(xiàn)圈)的正常測(cè)試;第二十四步功能碼15(寫(xiě)多個(gè)線(xiàn)圈)的否定測(cè)試;第二十五步功能碼16(寫(xiě)多個(gè)寄存器)的正常測(cè)試;第二十六步功能碼16(寫(xiě)多個(gè)寄存器)的否定測(cè)試;第二十七步功能碼17(報(bào)告子站ID)的正常測(cè)試;第二十八步功能碼20/6(讀文件記錄)的正常測(cè)試;第二十九步功能碼20/6(讀文件記錄)的否定測(cè)試;第三十步功能碼21/6(寫(xiě)文件記錄)的正常測(cè)試;第三十一步功能碼21/6(寫(xiě)文件記錄)的否定測(cè)試;第三十二步功能碼22(屏蔽寫(xiě)寄存器)的正常測(cè)試;第三十三步功能碼22(屏蔽寫(xiě)寄存器)的否定測(cè)試;第三十四步功能碼23(讀/寫(xiě)多個(gè)寄存器)的正常測(cè)試;第三十五步功能碼23(讀/寫(xiě)多個(gè)寄存器)的否定測(cè)試;第三十六步功能碼24(讀FIFO隊(duì)列)的正常測(cè)試;第三十七步功能碼24(讀FIFO隊(duì)列)的否定測(cè)試;第三十八步功能碼43/14(讀設(shè)備標(biāo)識(shí))的正常測(cè)試;第三十九步功能碼43/14(讀設(shè)備標(biāo)識(shí))否定測(cè)試;第四十步不支持功能碼的測(cè)試;第四十一步數(shù)據(jù)域的測(cè)試;第四十二步應(yīng)用功能的測(cè)試;第四十三步數(shù)據(jù)正確性的測(cè)試。
全文摘要
發(fā)明涉及一種MODBUS-RTU協(xié)議一致性測(cè)試方法,屬于電力系統(tǒng)信息數(shù)據(jù)傳遞技術(shù)領(lǐng)域。本發(fā)明中,利用協(xié)議測(cè)試工具檢查協(xié)議的實(shí)現(xiàn)是否與標(biāo)準(zhǔn)一致,利用測(cè)試儀施加交流量,輔助完成對(duì)應(yīng)用功能和數(shù)據(jù)正確性的驗(yàn)證,測(cè)試內(nèi)容包括協(xié)議的一致性測(cè)試、應(yīng)用功能和數(shù)據(jù)正確性的驗(yàn)證,其中協(xié)議一致性測(cè)試包括鏈路層、功能碼、數(shù)據(jù)域的正常測(cè)試和否定測(cè)試。本測(cè)試方法給出了Modbus-RTU協(xié)議一個(gè)系統(tǒng)、全面的測(cè)試內(nèi)容和測(cè)試方法,對(duì)保證協(xié)議實(shí)現(xiàn)一致性和互操作性有很重要的意義。
文檔編號(hào)H04L12/26GK101677277SQ200810141398
公開(kāi)日2010年3月24日 申請(qǐng)日期2008年9月17日 優(yōu)先權(quán)日2008年9月17日
發(fā)明者任春梅, 冉 張, 李亞萍, 春 賀 申請(qǐng)人:許昌開(kāi)普電器檢測(cè)研究院