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