软件介绍

        Modscan32是一个运行在windows下,作为在RTU或这ASCII传输模式下的MODBUS协议主设备的应用程序。用来模拟主设备(与之相对的是Modsim32,用于模拟从设备)。它可以发送指令报文到从机设备中,从机响应之后,就可以在界面上返回相应寄存器的数据。

        文章只谈及工具的使用,对于Modbus本身通信协议的具体内容,请移步Modbus通信协议详解

下载链接

链接:https://pan.baidu.com/s/1eno-yg6VZVNcjR44O0h0Uw 
提取码:84z1 

软件使用

连接

        两种方式,一种普通连接,一种是快速连接。

普通连接

        点击菜单栏"连接设置"->"连接",弹出连接配置窗口。

        在"使用的连接"那里选择"Direct Connection to COMXX"(XX是根据当前使用的端口号来定),表示当前是用串口通信,如果使用的是Modbus/TCP,则选择"Remote modbusTCP Server"。

快速连接

        点击菜单栏"连接设置"->"快速连接",或点击,可根据前一时刻的连接配置进行连接。

断开连接 

        点击菜单栏"连接设置"->"断开连接",或点击 ,断开当前连接。

串口配置:

        在配置窗口中配置好端口号、波特率、数据位、校验位、停止位,一般是9600波特率(9600 Baud),8个数据位(8 Data bits),无校验位(None Parity),1个停止位(1 Stop Bit)。当然这个是要根据实际通信的从机设备进行匹配设置。

        点击"协议选择",根据通信的从机设备选择使用RTU模式或ASCII模式,工业应用的话一般使用RTU模式,很少使用ASCII模式。另外还有"Daniel/enron/OMNI"(一种基于标准的扩展形式)的RTU和ASCII模式可以选。

        再设置下超时时间和帧间隔时间(实际就是每个窗口之间的发送间隔),超时时间可以按默认1s就行,Modbus国标规定是200ms到1s。帧间隔时间按默认20ms设置即可。

        另外勾选""可选择单个写入线圈/寄存器时,要使用15/16指令(支持批量写入)还是05/06指令(只支持单个写入)。

        硬件流控制如果没有使用的话,按默认设置即可。设置完点确认即可完成设置进行连接。

TCP配置:

        在"使用的连接"处选择"Remote modbusTCP Server",设置好IP及端口号,Modbus/TCP的默认端口号为502。实际根据从机设备的IP和端口号来设置。

窗口配置

        可以在窗口里直接配置,也可以点击"配置"->"数据定义",在弹窗中进行配置。        

        Address:可以配置读/写的寄存器/线圈起始地址(注意这里最低只能配置为1,对应Modbus指令里的0地址)

        Length:可以配置读/写的寄存器/线圈个数

        Device Id:可以配置目标从机地址

        MODBUS Point Type:可以配置使用的Modbus点位类型。(注意:修改不同的点位类型时,对应地址前面会带有不同的前缀数据,这个并不影响Modbus指令里的起始地址,只是用于PLC的地址分段)

        01:COIL STATUS,线圈(可读可写)

        02:INPUT STATUS,输入线圈(只读)

        03:HOLDING REGISTER,保持寄存器(可读可写)

        04:INPUT REGISTER,输入寄存器(只读)

        扫描速率:配置当前窗口报文发送的周期间隔。 

窗口状态显示

        Number of Polls:表示当前已发送的指令数量

        Valid Slave Responses:表示目标从机回复的指令数量

        红色字样表示当前故障状态,详见以下故障说明。

** Device NOT CONNECTED! **:表示当前未连接。

** Data Uninitialized **:表示当前窗口未进行配置。

** MODBUS Message TIME-OUT **:表示发送指令后从设备超时未响应。

而从机设备不回复,可能性有很多,比如:

        1、连接配置错误,主机的波特率、Slave ID等信息跟从机设备对应不上,从机就不会回。

        2、线路异常,电脑跟从机设备之前的通信线存在异常,也是无法正常收到回复。

        3、从机设备解析异常不回复,这个具体可以查看Modbus协议详解。

** Checksum Error in Response Message **:响应的数据校验错误。

** MODBUS Exception Response from Slave Device **:地址异常,一般是当访问的从机设备不存在要读取的寄存器/线圈地址时,会返回不存在此地址的02异常码,软件接收到此指令时就会报出这个错误。

设置数据格式

        点击"配置"->"显示选项"->"二进制"/"十进制"……,或点击,选择对应的数据制式(数据流里的数据也会有变化)。

原始报文

        点击"配置"->"显示选项"->"显示数据流",或点击,可以切换查看当前的收发数据,其中白底的是软件发送的,黑底是从设备回复的。 

数据记录

        点击"配置"->"数据捕获"

报文记录

        点击"配置"->"文本捕获",设置保存的模式。

保存每次扫描,即每发送一次报文记录一次。

保存所选的扫描,然后设置间隔时间,则按设置的时间进行记录。

保存运行平均,则是保存当前窗口这些数据这段时间内的平均值进行记录。

保存窗口及打开

        点击"文件"->"保存",或点击,对当前选中的窗口进行保存。

        点击"文件"->"打开",或点击,则可对已保存的文件进行打开操作。 

使用注意

        1、这个工具上的一些时间设置,当时间设置较短时,可能不准。比如以前试过把每一帧的发送间隔时间调成1ms,但实际用示波器抓到的数据,间隔大概100ms左右,基本低于100ms的都实现不了。这个可能跟电脑本身性能有关系,所以要注意不要太过于相信这里面的时间设置,最好以实际的为主。

        2、因为这个软件是在window系统上运行的,当系统卡顿时,可能会影响软件的运行,表现出来就是查看的报文有异常。Modbus Slave或其他串口调试工具也会有类似的问题。

相关知识

         Modbus通信协议串口通信协议Modsim32Modbus PollModbus Slave、TCP/IP

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐