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