Modbus測(cè)試工具M(jìn)odbusPoll與Modbus Slave使用方法
一、介紹
Modbus Poll :Modbus主機(jī)仿真器,用于測(cè)試和調(diào)試Modbus從設(shè)備。該軟件支持ModbusRTU、ASCII、TCP/IP。用來(lái)幫助開(kāi)發(fā)人員測(cè)試Modbus從設(shè)備,或者其它Modbus協(xié)議的測(cè)試和仿真。它支持多文檔接口,即,可以同時(shí)監(jiān)視多個(gè)從設(shè)備/數(shù)據(jù)域。每個(gè)窗口簡(jiǎn)單地設(shè)定從設(shè)備ID,功能,地址,大小和輪詢(xún)間隔。你可以從任意一個(gè)窗口讀寫(xiě)寄存器和線圈。如果你想改變一個(gè)單獨(dú)的寄存器,簡(jiǎn)單地雙擊這個(gè)值即可?;蛘吣憧梢愿淖兌鄠€(gè)寄存器/線圈值。提供數(shù)據(jù)的多種格式方式,比如浮點(diǎn)、雙精度、長(zhǎng)整型(可以字節(jié)序列交換)。
Modbus Slave: Modbus從設(shè)備仿真器,可以仿真32個(gè)從設(shè)備/地址域。每個(gè)接口都提供了對(duì)EXCEL報(bào)表的OLE自動(dòng)化支持。主要用來(lái)模擬Modbus從站設(shè)備,接收主站的命令包,回送數(shù)據(jù)包。幫助Modbus通訊設(shè)備開(kāi)發(fā)人員進(jìn)行Modbus通訊協(xié)議的模擬和測(cè)試,用于模擬、測(cè)試、調(diào)試Modbus通訊設(shè)備??梢?2個(gè)窗口中模擬多達(dá)32個(gè)Modbus子設(shè)備。與Modbus Poll的用戶(hù)界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22和23,監(jiān)視串口數(shù)據(jù)。
二、Modbus Poll使用
1)、安裝注冊(cè):?
安裝完畢,在桌面能夠看到ModbusPoll的快捷方式,雙擊該快捷方式,打開(kāi)軟件,打開(kāi)后界面如下圖所示。
?
單擊Connection->Connect,彈出注冊(cè)窗口;打開(kāi)壓縮包解壓后的readme文件,復(fù)制ModbusPoll的序列號(hào)5A5742575C5D10,粘貼到注冊(cè)窗口的注冊(cè)欄,如下圖所示,點(diǎn)擊OK,注冊(cè)完畢。
modbus poll 4.3.4程序主窗口介紹
其中:Tx = 4表示向主站發(fā)送數(shù)據(jù)幀次數(shù),圖中為4次; Error = 0表示通訊錯(cuò)誤次數(shù),圖中為0次; ID = 1表示模擬的Modbus子設(shè)備的設(shè)備地址,圖中地址為1;F = 03表示所使用的Modbus功能碼,圖中為03功能碼; SR = 1000ms表示掃描周期。紅字部分,表示當(dāng)前的錯(cuò)誤狀態(tài),“No Connection”表示未連接狀態(tài)。
3)、參數(shù)設(shè)置:
單擊菜單【Setup】中【Read/Write Definition.. F8】進(jìn)行參數(shù)設(shè)置,會(huì)彈出參數(shù)設(shè)置對(duì)話框。
?
?
其中:A. Slave為要訪問(wèn)的Modbus從站(從機(jī))的地址,對(duì)應(yīng)主窗口(主畫(huà)面)中的ID值,默認(rèn)為1。? B. Function 為寄存器功能碼的選擇,共四種,分別對(duì)應(yīng)關(guān)系如下:
代碼 |
名稱(chēng) |
寄存器PLC地址 |
位操作/字操作 |
操作數(shù)量 |
01 |
Read/Write? 位 狀態(tài) |
00001-09999 |
位 bit |
單個(gè)或多個(gè) |
02 |
Read (輸入)位 |
10001-19999 |
位 bit |
單個(gè)或多個(gè) |
03 |
Read/Write (保存)字 |
40001-49999 |
字 word |
單個(gè)或多個(gè) |
04 |
Read (輸入)字 |
30001-39999 |
字 wrod |
單個(gè)或多個(gè) |
05 |
寫(xiě)單個(gè)線圈 |
00001-09999 |
位 bit |
單個(gè) |
06 |
寫(xiě)單個(gè)保持寄存器 |
40001-49999 |
字 word |
單個(gè) |
15 |
寫(xiě)多個(gè)線圈 |
00001-09999 |
位 bit |
多個(gè) |
16 |
寫(xiě)多個(gè)保持寄存器 |
40001-49999 |
字 word |
多個(gè) |
C. Address 為寄存器起始地址,默認(rèn)從0開(kāi)始。?
D. Length為寄存器連續(xù)個(gè)數(shù),默認(rèn)為10個(gè),對(duì)應(yīng)組態(tài)軟件的通道數(shù)量。?
E. Scan Rate為讀取數(shù)據(jù)周期,單位毫秒,默認(rèn)為1000ms。??
設(shè)置完成單擊OK按鈕,模擬窗口將顯示定義的寄存器列表。
4)、顯示設(shè)置:?
數(shù)據(jù)顯示方式設(shè)置:
默認(rèn)情況下,寄存器數(shù)據(jù)的顯示方式為Signed方式(16進(jìn)制有符號(hào)二進(jìn)制),數(shù)據(jù)范圍為-32768~32767。如果用戶(hù)要以其他數(shù)值方式顯示,可以通過(guò)菜單【Display】進(jìn)行選擇設(shè)置,如下圖所示:
?
地址格式設(shè)置: Modbus Slave默認(rèn)使用PLC地址,【Display】菜單中【PLC Addresses(Base 1)】為默認(rèn)選中狀態(tài),默認(rèn)寄存器的起始地址為1開(kāi)始,此點(diǎn)與組態(tài)軟件的Modbus串口和TCP數(shù)據(jù)轉(zhuǎn)發(fā)驅(qū)動(dòng)是相同的。如果測(cè)試時(shí)需要設(shè)置起始地址為0開(kāi)始,可選擇【Protocol Addresses(Base 0)】。一般情況下使用默認(rèn)PLC地址即可。
使用工具欄的”Communication Traffic”按鈕,可以顯示出當(dāng)前發(fā)送命令和接受的數(shù)據(jù)。
5)、串口連接:?
單擊菜單【Connection】中【Connect.. F3】進(jìn)行串口連接,如下圖 :
?
其中:Port3,表示使用的串口(COM3),根據(jù)實(shí)際情況選擇不同的串口或者TCP/IP進(jìn)行連接。Mode,表示Modbus協(xié)議模式,使用串口時(shí)有效;使用TCP/IP時(shí)自動(dòng)為T(mén)CP模式。Response Timeout,表示讀取超時(shí)時(shí)間,從站在超時(shí)時(shí)間內(nèi)沒(méi)有返回?cái)?shù)據(jù),則認(rèn)為通訊失敗。Delay Between Polls,每次掃描的最小間隔時(shí)間,默認(rèn)為10ms。Remote Server,表示TCP/IP模式時(shí)的終端從站設(shè)備的網(wǎng)絡(luò)設(shè)置。IP Address,表示TCP/IP模式時(shí)從站IP地址。? Port,表示TCP模式時(shí)從站網(wǎng)絡(luò)端口。用戶(hù)可根據(jù)需要對(duì)參數(shù)進(jìn)行設(shè)置,默認(rèn)為:串口1、波特率9600、數(shù)據(jù)位8位、無(wú)校驗(yàn)位、1位停止位。確認(rèn)設(shè)置后點(diǎn)擊OK按鈕即可。如果連接并讀取正確,此時(shí)主窗口將顯示讀取寄存器的相關(guān)信息。
6)、寄存器值改變:?
在主窗口寄存器地址上雙擊鼠標(biāo),彈出修改對(duì)話框,如下圖:
?
在Value輸入框中輸入值確認(rèn)即可。范圍為-32768——32767。?
其中:Slave為要訪問(wèn)的Modbus從站的地址,對(duì)應(yīng)主畫(huà)面中的ID值,默認(rèn)為1。? Address 為當(dāng)前操作的寄存器的地址。圖中為對(duì)寄存器40001操作。? Use Function為所使用的功能碼,可以選擇06或16功能碼進(jìn)行寫(xiě)入。
7)、查看通訊數(shù)據(jù)幀:?
單擊【Display】菜單中的【Communication…】或者單擊工具欄上【101】按鈕,可以調(diào)出串口收發(fā)數(shù)據(jù)幀監(jiān)視信息對(duì)話框“CommunicationTraffic”,用來(lái)查看分析收發(fā)的數(shù)據(jù)幀。如下圖所示:
?
其中:前6位為數(shù)據(jù)幀的序號(hào)。? Rx表示接收的數(shù)據(jù)幀。? Tx表示發(fā)送的數(shù)據(jù)幀。
8)、斷開(kāi)連接:?
點(diǎn)擊【Disconnect? F4】即可斷開(kāi)連接結(jié)束測(cè)試,此時(shí)主窗口中出現(xiàn)紅色的“No Connection”表示未連接狀態(tài)。
三、Modbus Slave使用
1)、安裝注冊(cè):
安裝軟件,安裝完成之后,雙擊執(zhí)行ModbusSlave快捷方式即可。
注冊(cè)方法:?jiǎn)螕鬋onnection->Connect,彈出注冊(cè)窗口;打開(kāi)壓縮包解壓后的readme文件,復(fù)制ModbusPoll的序列號(hào),粘貼到注冊(cè)窗口的注冊(cè)欄,點(diǎn)擊OK,破解完畢。ModbusSlave的安裝破解與ModbusPoll類(lèi)似,在此不再贅述。
2)、主窗口:
軟件主窗口如下圖所示:
?
此時(shí)處于“Noconnection”未連接狀態(tài),如果只測(cè)試“04輸出保持寄存器”,則可直接點(diǎn)擊跳到第3.步,直接進(jìn)行連接即可。
3)、參數(shù)設(shè)置:
點(diǎn)擊菜單“Setup”中“Slave Definition.. F2”進(jìn)行參數(shù)設(shè)置,會(huì)彈出如下圖對(duì)話框。
?
其中:A.Slave為Modbus從站地址,對(duì)應(yīng)主畫(huà)面中的ID值,默認(rèn)為1。
B. Function 為寄存器功能碼的選擇,共四種,分別對(duì)應(yīng)關(guān)系如下:
代碼 |
中文名稱(chēng) |
寄存器PLC地址 |
位操作/字操作 |
操作數(shù)量 |
01 |
讀線圈狀態(tài) |
00001-09999 |
位操作 |
單個(gè)或多個(gè) |
02 |
讀離散輸入狀態(tài) |
10001-19999 |
位操作 |
單個(gè)或多個(gè) |
03 |
讀保持寄存器 |
40001-49999 |
字操作 |
單個(gè)或多個(gè) |
04 |
讀輸入寄存器 |
30001-39999 |
字操作 |
單個(gè)或多個(gè) |
05 |
寫(xiě)單個(gè)線圈 |
00001-09999 |
位操作 |
單個(gè) |
06 |
寫(xiě)單個(gè)保持寄存器 |
40001-49999 |
字操作 |
單個(gè) |
15 |
寫(xiě)多個(gè)線圈 |
00001-09999 |
位操作 |
多個(gè) |
16 |
寫(xiě)多個(gè)保持寄存器 |
40001-49999 |
字操作 |
多個(gè) |
C. Address 為寄存器起始地址。默認(rèn)從1開(kāi)始。
D. Length為寄存器連續(xù)個(gè)數(shù)。默認(rèn)為10個(gè)。
設(shè)置OK按鈕,模擬窗口將顯示定義的寄存器列表:
?
其中:ID,表示模擬的Modbus子設(shè)備的設(shè)備地址;F,表示功能碼
點(diǎn)擊對(duì)應(yīng)的寄存器,即可修改對(duì)應(yīng)寄存器的值或者狀態(tài)。比如2寄存器值修改成9,9寄存器值修改成100。
4)、顯示設(shè)置:
數(shù)據(jù)顯示方式設(shè)置:
默認(rèn)情況下,寄存器數(shù)據(jù)的顯示方式為Signed方式(16進(jìn)制無(wú)符號(hào)二進(jìn)制),數(shù)據(jù)范圍為范圍為-32768——32767。如果用戶(hù)要以其他數(shù)值方式顯示,可以通過(guò)菜單“Display”進(jìn)行選擇設(shè)置,如下圖所示:
?
地址格式設(shè)置:
Modbus Slave默認(rèn)使用PLC地址,“Display”菜單中“PLC Addresses(Base 1)”為默認(rèn)選中狀態(tài),默認(rèn)寄存器的起始地址為1開(kāi)始,此點(diǎn)與組態(tài)軟件的Modbus串口和TCP數(shù)據(jù)轉(zhuǎn)發(fā)驅(qū)動(dòng)是相同的。如果測(cè)試時(shí)需要設(shè)置起始地址為0開(kāi)始,可選擇“Protocol Addresses(Base 0)”。一般情況下使用默認(rèn)PLC地址即可。
5)、連接:
點(diǎn)擊菜單“Connection”中“Connect.. F3”進(jìn)行連接。彈出連接對(duì)話框:
?
其中:Port2,表示使用的串口(COM2),根據(jù)實(shí)際情況選擇不同的串口或者TCP/IP進(jìn)行連接
Mode,表示Modbus協(xié)議模式,使用串口時(shí)有效;使用TCP/IP時(shí)自動(dòng)為T(mén)CP模式
Flow Control,表示流控制,串口模式時(shí)有效;
Ignore Unit ID,表示TCP模式時(shí)忽略無(wú)效的組編號(hào)
用戶(hù)可根據(jù)需要對(duì)串口參數(shù)進(jìn)行設(shè)置,默認(rèn)為:串口1,波特率9600,數(shù)據(jù)位8位,無(wú)校驗(yàn)位,1位停止位。確認(rèn)設(shè)置后點(diǎn)擊“OK”按鈕即可。此時(shí)主窗口中紅色的“No connection”表示未連接狀態(tài)的信息消失,表明從站處于正常連接狀態(tài)。
6)、寄存器值改變:
在主窗口寄存器地址上雙擊鼠標(biāo),彈出修改對(duì)話框,如下圖:
?
在輸入框中輸入值確認(rèn)即可。范圍為-32768——32767。
其中:Auto increment選項(xiàng)鉤選上后,對(duì)應(yīng)寄存器的值可以每1秒種增加1。
7)、查看通訊數(shù)據(jù)幀:
點(diǎn)擊“Display”菜單中的“Communication…”,可以調(diào)出串口收發(fā)數(shù)據(jù)幀監(jiān)視信息對(duì)話框,用來(lái)查看分析收發(fā)的數(shù)據(jù)幀。如下圖所示:
?
其中:前6位為數(shù)據(jù)幀的序號(hào)。
Rx:表示接收數(shù)據(jù)幀。
Tx: 表示發(fā)送數(shù)據(jù)幀。
8)、斷開(kāi)連接:
點(diǎn)擊“Disconnect F4”即可斷開(kāi)連接結(jié)束測(cè)試,此時(shí)主窗口中出現(xiàn)紅色的“No connection”表示未連接狀態(tài)。
四、Modbus主機(jī)/從機(jī)模擬程序
1)、安裝vspd虛擬串口工具。通過(guò)工具添加COM2和COM3兩個(gè)端口。
?
2)、接下來(lái)打開(kāi)已經(jīng)安裝的modbuspoll和modbus slave軟件,分別按“F8”配置主從端的相關(guān)配置,如圖:
以上配置的是10個(gè)計(jì)數(shù)器從機(jī)設(shè)備ID為1但只讀取前6個(gè)計(jì)數(shù)器的數(shù)據(jù),可根據(jù)自己的情況設(shè)置。
2、接下來(lái)按分別按“F3”進(jìn)行連接,注意修改連接界面的端口,主從機(jī)分別選擇我們虛擬出來(lái)的com2和com3端口,因?yàn)槲抑挥玫搅薘TU模式,所以其他選項(xiàng)如波特率9600,比特位8,校驗(yàn)位1,無(wú)等價(jià)位等可以保持不變,然后點(diǎn)擊確定進(jìn)行連接,未連接成功窗口第二行會(huì)給出提示信息。
通訊開(kāi)始,主機(jī)端顯示:TX=232,Err=0,ID=1,F(xiàn)=03,SR=1000ms。意思是,發(fā)送232次命令,錯(cuò)誤次數(shù),從機(jī)ID,功能號(hào),輪詢(xún)間隔。
使用工具欄的”Communication Traffic”按鈕,可以顯示出當(dāng)前發(fā)送命令和接受的數(shù)據(jù)。
評(píng)論