“只要想做好事,就一定會利用那個器皿”。 在研究開源Modbus協(xié)議FreeMODBUS之前,介紹一種主要用于Modbus協(xié)議仿真和Modbus從設備開發(fā)的Modbus Poll軟件。 本文用圖解說明了Modbus Poll軟件對Modbus協(xié)議的仿真過程。
首先,在計算機上使用“虛擬串行驅動程序”軟件虛擬化兩個互連的串行端口。 一個串行端口與Modbus Poll軟件相連,以模擬Modbus協(xié)議的主設備。 串行端口連接到Modbus Slave并模擬Modbus從站,如圖1所示。 在“端口1”和“端口2”中選擇需要虛擬化的兩個端口,作者選擇COM2和COM3。 然后單擊“添加端口”,在左側的“虛擬端口”中顯示虛擬端口,并可以從“我的電腦”的“設備管理器”中查看虛擬端口。
圖1
然后運行Modbus Slave軟件,首先設定從站設備的屬性。 單擊" Setup "中的" Slave Definition "開始設定。 作者對讀寫線圈的模擬設定如圖2所示。 每個字段的含義如下:
Slave ID (從站設備的ID號碼,即Modbus協(xié)議的地址代碼;
功能:由于當前模擬的Modbus功能,例如01 Coil Status模擬線圈的讀寫操作;
地址:從站設備中連續(xù)單元的起始地址,在本設定中為0000;
質量(從屬設備內的連續(xù)單元數(shù),在本設定中為10個,其地址為0000至0009;
Rows是左側顯示單元中每列的顯示單元的個數(shù);
顯示:單元格數(shù)據的顯示格式。
設置完成后,單擊“確定”。
圖2
設定串行通信,點擊“Connection”的“Connection Setup”,操作者采用RTU模式的模擬設定如圖3所示,各字段的含義如下。
pt; margin:0cm 0cm 0pt"> Connection:采用Serial Port方式;
Mode:Modbus協(xié)議有RTU和ASCII兩種模式;
Flow Control:流控制方式,如果所有的方式都不勾選,則不使用流控制;
串口配置:有串口號(Port3),波特率(9600),數(shù)據位(8位),奇偶校驗(無),停止位(1位)。
設置完畢后,單擊“OK”,從設備建立連接,等到主設備進行查詢。
圖3
?? 從設備內部單元值的設置,如圖4所示,內部單元列表中顯示的是單元值,通過雙擊某單元可以修改單元值,圖4是作者將0000地址線圈值設置為自動變化,勾選“Auto change”后,線圈單元的值會自動在0與1之間變化
圖4
接下來運行Modbus Poll軟件,與Modbus Slave軟件類似,首先要對主設備的屬性進行設置,單擊“Setup”中的“Read/Write Definition”開始設置,作者對讀線圈的模擬仿真設置如圖5所示,各字段的含義如下:
Slave ID:為目標從設備的ID號;
Fuction:為功能碼,在本設置中為01 Read Coils;
Scan Rate:為Modbus協(xié)議中的通信周期,在本設置中為100ms;
Address,Quantity,Rows,Display字段含義與Modbus Slave軟件中含義相同。
設置完畢后,單擊“OK”。
圖5
再對串口通信進行設置,單擊“Connection”中的“Connection Setup”,作者采用RTU模式的仿真設置如圖6所示,各字段含義如下:
Connection、Mode、串口信息、Advanced中的Flow Control中的含義和設置都和Modbus Slave軟件中的含義和設置一致;
Response Timeout:響應超時,在本設置中為1000ms,如果機靈的黑貓?從設備沒有做出響應,就產生超時錯誤。
設置完畢后,單擊“OK”。
?
圖6
設置完畢后的模擬仿真效果如圖7所示。
單擊工具欄上的圖標,可以顯示通訊過程中的數(shù)據幀,如圖8所示,單擊“Stop”按鍵后,用戶可以保存或復制數(shù)據幀。
用戶可以通過設置其他的功能來模擬Modbus其他的通訊過程。
(全文完)
圖7
圖8