軟件介紹
Modscan32是一個運行在windows下,作為在RTU或這ASCII傳輸模式下的MODBUS協(xié)議主設(shè)備的應用程序。用來模擬主設(shè)備(與之相對的是Modsim32,用于模擬從設(shè)備)。它可以發(fā)送指令報文到從機設(shè)備中,從機響應之后,就可以在界面上返回相應寄存器的數(shù)據(jù)。
文章只談及工具的使用,對于Modbus本身通信協(xié)議的具體內(nèi)容,請移步Modbus通信協(xié)議詳解。
下載鏈接
鏈接:https://pan.baidu.com/s/1eno-yg6VZVNcjR44O0h0Uw
提取碼:84z1
軟件使用
連接
兩種方式,一種普通連接,一種是快速連接。
普通連接
點擊菜單欄"連接設(shè)置"->"連接",彈出連接配置窗口。
在"使用的連接"那里選擇"Direct Connection to COMXX"(XX是根據(jù)當前使用的端口號來定),表示當前是用串口通信,如果使用的是Modbus/TCP,則選擇"Remote modbusTCP Server"。
快速連接
點擊菜單欄"連接設(shè)置"->"快速連接",或點擊 ,可根據(jù)前一時刻的連接配置進行連接。
斷開連接
點擊菜單欄"連接設(shè)置"->"斷開連接",或點擊 ,斷開當前連接。
串口配置:
在配置窗口中配置好端口號、波特率、數(shù)據(jù)位、校驗位、停止位,一般是9600波特率(9600 Baud),8個數(shù)據(jù)位(8 Data bits),無校驗位(None Parity),1個停止位(1 Stop Bit)。當然這個是要根據(jù)實際通信的從機設(shè)備進行匹配設(shè)置。
點擊"協(xié)議選擇",根據(jù)通信的從機設(shè)備選擇使用RTU模式或ASCII模式,工業(yè)應用的話一般使用RTU模式,很少使用ASCII模式。另外還有"Daniel/enron/OMNI"(一種基于標準的擴展形式)的RTU和ASCII模式可以選。
再設(shè)置下超時時間和幀間隔時間(實際就是每個窗口之間的發(fā)送間隔),超時時間可以按默認1s就行,Modbus國標規(guī)定是200ms到1s。幀間隔時間按默認20ms設(shè)置即可。
另外勾選""可選擇單個寫入線圈/寄存器時,要使用15/16指令(支持批量寫入)還是05/06指令(只支持單個寫入)。
硬件流控制如果沒有使用的話,按默認設(shè)置即可。設(shè)置完點確認即可完成設(shè)置進行連接。
TCP配置:
在"使用的連接"處選擇"Remote modbusTCP Server",設(shè)置好IP及端口號,Modbus/TCP的默認端口號為502。實際根據(jù)從機設(shè)備的IP和端口號來設(shè)置。
窗口配置
可以在窗口里直接配置,也可以點擊"配置"->"數(shù)據(jù)定義",在彈窗中進行配置。
Address:可以配置讀/寫的寄存器/線圈起始地址(注意這里最低只能配置為1,對應Modbus指令里的0地址)
Length:可以配置讀/寫的寄存器/線圈個數(shù)
Device Id:可以配置目標從機地址
MODBUS Point Type:可以配置使用的Modbus點位類型。(注意:修改不同的點位類型時,對應地址前面會帶有不同的前綴數(shù)據(jù),這個并不影響Modbus指令里的起始地址,只是用于PLC的地址分段)
01:COIL STATUS,線圈(可讀可寫)
02:INPUT STATUS,輸入線圈(只讀)
03:HOLDING REGISTER,保持寄存器(可讀可寫)
04:INPUT REGISTER,輸入寄存器(只讀)
掃描速率:配置當前窗口報文發(fā)送的周期間隔。
窗口狀態(tài)顯示
Number of Polls:表示當前已發(fā)送的指令數(shù)量
Valid Slave Responses:表示目標從機回復的指令數(shù)量
紅色字樣表示當前故障狀態(tài),詳見以下故障說明。
** Device NOT CONNECTED! **:表示當前未連接。
** Data Uninitialized **:表示當前窗口未進行配置。
** MODBUS Message TIME-OUT **:表示發(fā)送指令后從設(shè)備超時未響應。
而從機設(shè)備不回復,可能性有很多,比如:
1、連接配置錯誤,主機的波特率、Slave ID等信息跟從機設(shè)備對應不上,從機就不會回。
2、線路異常,電腦跟從機設(shè)備之前的通信線存在異常,也是無法正常收到回復。
3、從機設(shè)備解析異常不回復,這個具體可以查看Modbus協(xié)議詳解。
** Checksum Error in Response Message **:響應的數(shù)據(jù)校驗錯誤。
** MODBUS Exception Response from Slave Device **:地址異常,一般是當訪問的從機設(shè)備不存在要讀取的寄存器/線圈地址時,會返回不存在此地址的02異常碼,軟件接收到此指令時就會報出這個錯誤。
設(shè)置數(shù)據(jù)格式
點擊"配置"->"顯示選項"->"二進制"/"十進制"……,或點擊 ,選擇對應的數(shù)據(jù)制式(數(shù)據(jù)流里的數(shù)據(jù)也會有變化)。
原始報文
點擊"配置"->"顯示選項"->"顯示數(shù)據(jù)流",或點擊 ,可以切換查看當前的收發(fā)數(shù)據(jù),其中白底的是軟件發(fā)送的,黑底是從設(shè)備回復的。
數(shù)據(jù)記錄
點擊"配置"->"數(shù)據(jù)捕獲"
報文記錄
點擊"配置"->"文本捕獲",設(shè)置保存的模式。
保存每次掃描,即每發(fā)送一次報文記錄一次。
保存所選的掃描,然后設(shè)置間隔時間,則按設(shè)置的時間進行記錄。
保存運行平均,則是保存當前窗口這些數(shù)據(jù)這段時間內(nèi)的平均值進行記錄。
保存窗口及打開
點擊"文件"->"保存",或點擊 ,對當前選中的窗口進行保存。
點擊"文件"->"打開",或點擊 ,則可對已保存的文件進行打開操作。
使用注意
1、這個工具上的一些時間設(shè)置,當時間設(shè)置較短時,可能不準。比如以前試過把每一幀的發(fā)送間隔時間調(diào)成1ms,但實際用示波器抓到的數(shù)據(jù),間隔大概100ms左右,基本低于100ms的都實現(xiàn)不了。這個可能跟電腦本身性能有關(guān)系,所以要注意不要太過于相信這里面的時間設(shè)置,最好以實際的為主。
2、因為這個軟件是在window系統(tǒng)上運行的,當系統(tǒng)卡頓時,可能會影響軟件的運行,表現(xiàn)出來就是查看的報文有異常。Modbus Slave或其他串口調(diào)試工具也會有類似的問題。
相關(guān)知識
Modbus通信協(xié)議、串口通信協(xié)議、Modsim32、Modbus Poll、Modbus Slave、TCP/IP