Modbus调试软件--ModbusPoll、ModbusSlave使用详解

23.12.18更新

软件下载链接:

链接: https://pan.baidu.com/s/1KMfXjJXRXcr1RK4Gjmu9Sg?pwd=vtdy 提取码: vtdy

Modbus基础知识讲解:
详解Modbus通信协议—清晰易懂

Modbus学习必备的三大神器分别是ModbusPoll、ModbusSlave及VSPD,可以非常方便的进行modbus调试

ModbusPoll软件主要用于仿真Modbus主站或Modbus客户端
ModbusSlave软件主要用于仿真Modbus从站或Modbus服务器
而VSPD全称Configure Virtual Serial Port Driver,是用来给电脑创建虚拟串口使用的。
在这里插入图片描述

请添加图片描述


Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改变一个单独的寄存器,简单地双击这个值即可。或者你可以改变多个寄存器/线圈值。提供数据的多种格式方式,比如浮点、双精度、长整型(可以字节序列交换)。

Modbus Slave: Modbus从设备仿真器,可以仿真32个从设备/地址域。每个接口都提供了对EXCEL报表的OLE自动化支持。主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。可以32个窗口中模拟多达32个Modbus子设备。与Modbus Poll的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22和23,监视串口数据。

Virtual Serial Port Driver 9.0 虚拟com端口工具


Virtual Serial Port Driver 9.0使用

Modbus调试需要需要两台电脑联机或者上位机与下位机进行调试。有了这个工具后就可以在一个电脑上虚拟出两个连接的com端口,就可以在一台电脑上进行调试。

安装过程一直点next即可,这里不再阐述,安装完成之后打开软件,主体是下图

我们分成两个部分,左边是虚拟串口的设置,右边是虚拟串口的添加
在这里插入图片描述

注意添加虚拟串口时尽量选择较大的COM口,因为较小的COM口可能被电脑的键盘,鼠标,U盘等设备占用,会出现冲突。

我这里选择COM10跟COM11 点击Add virtual pair在左边就可以看到建立的虚拟串口。
在这里插入图片描述

在此电脑----右键----管理----设备管理器->端口中查看是否新加了两个端口:
在这里插入图片描述

Modbus Poll使用

安装过程一直点next即可,安装完成之后破解一下(输一下密钥,很简单),软件界面如下图所示。
在这里插入图片描述
状态框:

  • Tx = 0表示向主站发送数据帧次数,图中为0次;
  • Err = 0表示通讯错误次数,图中为0次;
  • ID = 1表示模拟的Modbus子设备的设备地址,图中地址为1;
  • F = 03表示所使用的Modbus功能码,图中为03功能码;
  • SR = 1000ms表示发送周期,1S一次。
  • 红字部分,表示当前的错误状态,“No Connection”表示未连接状态。

单击Setup----Read/Write Definition… 或者按F8进行参数设置,会弹出参数设置对话框。
在这里插入图片描述

  • Slave ID为要访问的Modbus从机的地址,

  • Function 功能码的选择,

  • Address 为寄存器起始地址,根据功能码的不同,访问地址不同

  • Quantity:为访问寄存器个数,

  • Scan Rate为读取数据周期,轮询发送,单位毫秒,

Modbus协议同时规定了二十几种功能码,但是常用的只有8种,用于对存储区的读写,如下表所示:

功能码功能说明
01H读取输出线圈
02H读取输入线圈
03H读取保持寄存器
04H读取输入寄存器
05H写入单线圈
06H写入单寄存器
0FH写入多线圈
10H写入多寄存器

当然我们用的最多的就是03和06 一个是读取数据,一个是修改数据。

关于功能码以及寄存器地址

看这篇讲解原理的文章:
详解Modbus通信协议—清晰易懂

点击Display可以设置数据的显示方式,默认为Signed方式(16进制无符号二进制),数据范围为-32768~32767

在这里插入图片描述

点击 Connection -> Connect或者按“F3”进行连接

端口主从机分别选择我们虚拟出来的com10和com11端口,其他选项如波特率9600,比特位8,校验位1,无等价位等可以保持不变,然后点击确定进行连接,未连接成功窗口第二行会给出提示信息。
在这里插入图片描述

  • Response Timeout,表示读取超时时间,从站在超时时间内没有返回数据,则认为通讯失败。
  • Delay Between Polls,每次扫描的最小间隔时间,默认为20ms。
  • Remote Modbus Server,表示TCP/IP模式时的终端从站设备的网络设置。
  • IP Address,表示TCP/IP模式时从站IP地址。
  • Port,表示TCP模式时从站网络端口
  • Connect Timeout 表示TCP链接超时时间
  • IPV4/IPV6

这里我们等从机设置完成再进行连接

修改寄存器值(06或16功能码时生效):

在主窗口寄存器地址上双击鼠标,弹出修改对话框,如下图:
在这里插入图片描述

  • Slave为Modbus从站的地址
  • Address 为当前操作的寄存器的地址
  • Value 修改的值 范围为-32768——32767
  • Use Function 设置功能码,是06还是16

Modbus Slave使用

安装过程一直点next即可,安装完成之后破解一下(输一下密钥,很简单),软件界面如下图所示。
在这里插入图片描述

  • ID 表示从机的地址
  • F 功能码
  • 下方为寄存器数据

点击Setup----slave definition 设置从机数据
在这里插入图片描述
点击 Connection -> Connect或者按“F3”进行连接
在这里插入图片描述
要注意的一个区别是从机这里的Function 是4个存储区

  • 输出线圈
  • 输入线圈
  • 保持寄存器
  • 输入寄存器

Modbus协议规定了4个存储区 分别是0 1 3 4区 其中1区和4区是可读可写,1区和3区是只读。

区号名称读写地址范围
0区输出线圈可读可写布尔量00001-09999
1区输入线圈只读布尔量10001-19999
3区输入寄存器只读寄存器30001-39999
4区保持寄存器可读可写寄存器40001-49999

和主机部分基本一致,不再阐述,就是要注意主机如果选择COM10 从机就要选择COM11

双击从机寄存器数据框,即可修改寄存器数据
在这里插入图片描述

查看通讯数据帧:
点击“Display”----“Communicatio”,可以调出串口收发数据帧监视信息对话框,用来查看分析收发的数据帧。如下图所示:

在这里插入图片描述
如果是从机 Rx为接收到的主机消息帧
Tx为发送到的主机数据

我们可以对数据进行分析

1、主机对从机读数据操作

主机发送报文格式如下:

从站地址功能码起始(高)起始(低)数量(高)数量(低)校验
0x010x030x000x000x000x0A0x62 0x67

含义:

0x01:从机的地址
0x03:查询功能,读取从机寄存器的数据
0x00 0x00: 代表读取的起始寄存器地址.说明从0x0000开始读取.
0x00 0x0A: 查询的寄存器数量为0x000A(10)个 Modbus把数据存放在寄存器中,通过查询寄存器来得到不同变量的值,一个寄存器地址对应2字节数据; 寄存器地址对应着从机实际的存储地址
0x62 0x67: 循环冗余校验 CRC

从机回复报文格式如下:
| 从站地址 | 功能码 | 字节计数 | 字节1 |字节N | 校验 |
|–|–|-|-|-|-|-|
| 0x01 | 0x03| 0x14| 0x00 …| … 0x00| 0x17| 0xF8 0x4A |

含义:

0x01:从机的地址
0x03:查询功能,读取从机寄存器的数据
0x14: 返回字节数为14个
0x00… 0x00:寄存器的值
0x62 0x67: 循环冗余校验 CRC

从机修改寄存器值,主机接收也会改变 功能码03
请添加图片描述
主机修改寄存器值,从机寄存器值会改变 功能码06
在这里插入图片描述

请添加图片描述

请添加图片描述

MODBUS通讯组态说明 仪表采用标准modbus通讯协议(读写部分数据) 格式为: 8位数据位,无奇偶校验,1位停止位。 在使用组态软件时,须选用的设备为modicon(莫迪康)的PLC,Modbus-RTU地址型。 数据为整型16位。 16路数据从寄存器00开始到16。 使用组态王寄存器从4001开始到4016。(对于有些组态软件,可能从3001开始) 参数代号 含义 4x0001 第1路测量值 4x0002 第2路测量值 4x0003 第3路测量值 。。。 。。。 。。。 。。。 4x0016 第16路测量值 例:读地址为1的仪表的第1路测量值(PV1=1000值) 发送数据为 01 03 00 00 00 01 84 0A (其中01 是仪表地址,03是功能号,00 00是寄存器起始地址,00 01 表示读一个 数,84 0A是校验码。如果要读第1、2路测量值两个数据,则可以发送,01 03 00 00 00 02 C4 0B 返回数据为 01 03 02 03 E8 B8 FA (其中03 E8—1000)。 以下为通讯测试软件设置说明: 对于测试软件中的参数设置,见上图, 串口:以电脑串口号为准 波特率:和仪表波特率一致 数据位:8位 奇偶校验位:无 停止位:1 读数据指令:0X030000000Y 其中:0X指仪表的地址,以仪表的地址为准,如为1,则X=1 0Y指读取仪表数据的路数,如8路数据则Y=8。 Registet Size:2 Byte Sign/Unsign:e有无符号 Decimal:小数点,一般为1,即1位有效位。 如数值123,如Decimal值为0,测显示123.000 如Decimal值为1,测显示12.300
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z小旋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值