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