1. 程式人生 > >Modbus測試工具ModbusPoll與Modbus Slave使用方法

Modbus測試工具ModbusPoll與Modbus Slave使用方法

一、介紹

Modbus Poll Modbus主機模擬器,用於測試和除錯Modbus從裝置。該軟體支援ModbusRTUASCIITCP/IP。用來幫助開發人員測試Modbus從裝置,或者其它Modbus協議的測試和模擬。它支援多文件介面,即,可以同時監視多個從裝置/資料域。每個視窗簡單地設定從裝置ID,功能,地址,大小和輪詢間隔。你可以從任意一個視窗讀寫暫存器和線圈。如果你想改變一個單獨的暫存器,簡單地雙擊這個值即可。或者你可以改變多個暫存器/線圈值。提供資料的多種格式方式,比如浮點、雙精度、長整型(可以位元組序列交換)。

Modbus Slave Modbus從裝置模擬器,可以模擬32個從裝置

/地址域。每個介面都提供了對EXCEL報表的OLE自動化支援。主要用來模擬Modbus從站裝置,接收主站的命令包,回送資料包。幫助Modbus通訊裝置開發人員進行Modbus通訊協議的模擬和測試,用於模擬、測試、除錯Modbus通訊裝置。可以32個視窗中模擬多達32Modbus子裝置。與Modbus Poll的使用者介面相同,支援功能01, 02, 03, 04, 05, 06, 15, 16, 2223,監視串列埠資料。

二、Modbus Poll使用

1)、安裝註冊:

安裝完畢,在桌面能夠看到ModbusPoll的快捷方式,雙擊該快捷方式,開啟軟體,開啟後介面如下圖所示

單擊Connection->Connect,

彈出註冊視窗;開啟壓縮包解壓後的readme檔案,複製ModbusPoll的序列號,貼上到註冊視窗的註冊欄,如下圖所示,點選OK,破解完畢。

2)、程式主視窗:

按照上面破解流程,按“OK”按鈕即可完成註冊。然後直接進入主視窗,如下圖所示:

modbus poll 4.3.4程式主視窗

其中:Tx = 4表示向主站傳送資料幀次數,圖中為4次; Error = 0表示通訊錯誤次數,圖中為0次; ID = 1表示模擬的Modbus子裝置的裝置地址,圖中地址為1F = 03表示所使用的Modbus功能碼,圖中為03功能碼; SR = 1000ms表示掃描週期。紅字部分,表示當前的錯誤狀態,“No Connection

”表示未連線狀態。

3)、引數設定:

單擊選單【Setup】中【Read/Write Definition.. F8】進行引數設定,會彈出引數設定對話方塊。

 

其中:A. Slave為要訪問的Modbus從站(從機)的地址,對應主視窗(主畫面)中的ID值,預設為1  B. Function 為暫存器功能碼的選擇,共四種,分別對應關係如下:

程式碼

中文名稱

暫存器PLC地址

位操作/字操作

運算元量

01

讀線圈狀態

00001-09999

位操作

單個或多個

02

讀離散輸入狀態

10001-19999

位操作

單個或多個

03

讀保持暫存器

40001-49999

字操作

單個或多個

04

讀輸入暫存器

30001-39999

字操作

單個或多個

05

寫單個線圈

00001-09999

位操作

單個

06

寫單個保持暫存器

40001-49999

字操作

單個

15

寫多個線圈

00001-09999

位操作

多個

16

寫多個保持暫存器

40001-49999

字操作

多個

 C. Address 為暫存器起始地址,預設從0開始。

D. Length為暫存器連續個數,預設為10個,對應組態軟體的通道數量。

E. Scan Rate為讀取資料週期,單位毫秒,預設為1000ms

設定完成單擊OK按鈕,模擬視窗將顯示定義的暫存器列表。

4)、顯示設定:

資料顯示方式設定:

預設情況下,暫存器資料的顯示方式為Signed方式(16進位制無符號二進位制),資料範圍為-32768~32767。如果使用者要以其他數值方式顯示,可以通過選單【Display】進行選擇設定,如下圖所示:

 

地址格式設定: Modbus Slave預設使用PLC地址,【Display】選單中【PLC Addresses(Base 1)】為預設選中狀態,預設暫存器的起始地址為1開始,此點與組態軟體的Modbus串列埠和TCP資料轉發驅動是相同的。如果測試時需要設定起始地址為0開始,可選擇【Protocol Addresses(Base 0)】。一般情況下使用預設PLC地址即可。

使用工具欄的”Communication Traffic”按鈕,可以顯示出當前傳送命令和接受的資料。

5)、串列埠連線:

單擊選單【Connection】中【Connect.. F3】進行串列埠連線,如下圖

其中:Port3,表示使用的串列埠(COM3),根據實際情況選擇不同的串列埠或者TCP/IP進行連線。Mode,表示Modbus協議模式,使用串列埠時有效;使用TCP/IP時自動為TCP模式。Response Timeout,表示讀取超時時間,從站在超時時間內沒有返回資料,則認為通訊失敗。Delay Between Polls,每次掃描的最小間隔時間,預設為10msRemote Server,表示TCP/IP模式時的終端從站裝置的網路設定。IP Address,表示TCP/IP模式時從站IP地址。  Port,表示TCP模式時從站網路埠。使用者可根據需要對引數進行設定,預設為:串列埠1、波特率9600、資料位8位、無校驗位、1位停止位。確認設定後點擊OK按鈕即可。如果連線並讀取正確,此時主視窗將顯示讀取暫存器的相關資訊。

6)、暫存器值改變:

在主視窗暫存器地址上雙擊滑鼠,彈出修改對話方塊,如下圖:

 

Value輸入框中輸入值確認即可。範圍為-32768——32767

其中:Slave為要訪問的Modbus從站的地址,對應主畫面中的ID值,預設為1  Address 為當前操作的暫存器的地址。圖中為對暫存器40001操作。  Use Function為所使用的功能碼,可以選擇0616功能碼進行寫入。

7)、檢視通訊資料幀:

單擊【Display】選單中的【Communication…】或者單擊工具欄上【101】按鈕,可以調出串列埠收發資料幀監視資訊對話方塊“CommunicationTraffic”,用來檢視分析收發的資料幀。如下圖所示:

其中:前6位為資料幀的序號。  Rx表示接收的資料幀。  Tx表示傳送的資料幀。

8)、斷開連線:

點選【Disconnect  F4】即可斷開連線結束測試,此時主視窗中出現紅色的“No Connection”表示未連線狀態。

三、Modbus Slave使用

1)、安裝註冊:安裝軟體,安裝完成之後,雙擊執行ModbusSlave快捷方式即可。

註冊方法:單擊Connection->Connect,彈出註冊視窗;開啟壓縮包解壓後的readme檔案,複製ModbusPoll的序列號,貼上到註冊視窗的註冊欄,點選OK,破解完畢。ModbusSlave的安裝破解與ModbusPoll類似,在此不再贅述。

2)、主視窗:軟體主視窗如下圖所示:

此時處於“Noconnection”未連線狀態,如果只測試“04輸出保持暫存器,則可直接點選跳到第3.步,直接進行連線即可。

3)、引數設定:點選選單“Setup”“Slave Definition.. F2”進行引數設定,會彈出如下圖對話方塊。

其中:A.SlaveModbus從站地址,對應主畫面中的ID值,預設為1
B. Function
為暫存器功能碼的選擇,共四種,分別對應關係如下:

程式碼

中文名稱

暫存器PLC地址

位操作/字操作

運算元量

01

讀線圈狀態

00001-09999

位操作

單個或多個

02

讀離散輸入狀態

10001-19999

位操作

單個或多個

03

讀保持暫存器

40001-49999

字操作

單個或多個

04

讀輸入暫存器

30001-39999

字操作

單個或多個

05

寫單個線圈

00001-09999

位操作

單個

06

寫單個保持暫存器

40001-49999

字操作

單個

15

寫多個線圈

00001-09999

位操作

多個

16

寫多個保持暫存器

40001-49999

字操作

多個

C. Address 為暫存器起始地址。預設從1開始
D. Length
為暫存器連續個數。預設為10

設定OK按鈕,模擬視窗將顯示定義的暫存器列表:

其中:ID,表示模擬的Modbus子裝置的裝置地址F,表示功能碼
點選對應的暫存器,即可修改對應暫存器的值或者狀態。比如2暫存器值修改成99暫存器值修改成100

4)、顯示設定:資料顯示方式設定:預設情況下,暫存器資料的顯示方式為Signed方式(16進位制無符號二進位制),資料範圍為範圍為-32768——32767。如果使用者要以其他數值方式顯示,可以通過選單“Display”進行選擇設定,如下圖所示:

地址格式設定:
Modbus Slave
預設使用PLC地址,“Display”選單中“PLC Addresses(Base 1)”為預設選中狀態,預設暫存器的起始地址為1開始,此點與組態軟體Modbus串列埠和TCP資料轉發驅動是相同的。如果測試時需要設定起始地址為0開始,可選擇“Protocol Addresses(Base 0)”。一般情況下使用預設PLC地址即可。

5)、連線:點選選單“Connection”“Connect.. F3”進行連線。彈出連線對話方塊:

其中:Port2,表示使用的串列埠(COM2),根據實際情況選擇不同的串列埠或者TCP/IP進行連線
Mode
,表示Modbus協議模式,使用串列埠時有效;使用TCP/IP時自動為TCP模式
Flow Control
,表示流控制,串列埠模式時有效;
Ignore Unit ID
,表示TCP模式時忽略無效的組編號使用者可根據需要對串列埠引數進行設定,預設為:串列埠1,波特率9600,資料位8位,無校驗位,1位停止位。確認設定後點擊“OK”按鈕即可。此時主視窗中紅色的“No connection”表示未連線狀態的資訊消失,表明從站處於正常連線狀態。

6)、暫存器值改變:在主視窗暫存器地址上雙擊滑鼠,彈出修改對話方塊,如下圖:

在輸入框中輸入值確認即可。範圍為-32768——32767其中:Auto increment選項鉤選上後,對應暫存器的值可以每1秒種增加1

7)、檢視通訊資料幀:點選“Display”選單中的“Communication…”,可以調出串列埠收發資料幀監視資訊對話方塊,用來檢視分析收發的資料幀。如下圖所示:

其中:前6位為資料幀的序號。
Rx
:表示接收資料幀。
Tx:
表示傳送資料幀。

8)、斷開連線:點選“Disconnect F4”即可斷開連線結束測試,此時主視窗中出現紅色的“No connection”表示未連線狀態。

四、Modbus主機/從機模擬程式

1)、安裝vspd虛擬串列埠工具。通過工具新增COM2COM3兩個埠。

2)、接下來開啟已經安裝的modbuspollmodbus slave軟體,分別按“F8”配置主從端的相關配置,如圖:


以上配置的是10個計數器從機裝置ID1但只讀取前6個計數器的資料,可根據自己的情況設定。

2、接下來按分別按“F3”進行連線,注意修改連線介面的埠,主從機分別選擇我們虛擬出來的com2com3埠,因為我只用到了RTU模式,所以其他選項如波特率9600,位元位8,校驗位1,無等價位等可以保持不變,然後點選確定進行連線,未連線成功視窗第二行會給出提示資訊。

通訊開始,主機端顯示:TX=232Err=0ID=1F=03SR=1000ms。意思是,傳送232次命令,錯誤次數,從機ID,功能號,輪詢間隔。

使用工具欄的”Communication Traffic”按鈕,可以顯示出當前傳送命令和接受的資料。