勇哥注:
Modbus Poll是Modbus主站仿真器,Modbus Slave是Modbus从站仿真器
两个软件是同一个公司出品的,为啥不集成在一起?可能是为了多卖钱吧。。。
I、TCP/IP等多种协议模式。
多设备监控:可以同时监视多个从设备/数据域,便于集中管理。
灵活配置:每个窗口可以简单地设定从设备ID、功能、地址、大小和轮询间隔。
数据记录:支持将数据记录到文本文件或Excel中,方便数据分析和处理。
实时监控:提供实时图表功能,可以实时绘制数据变化情况。
Modbus Slave
一、定义与功能
Modbus Slave是一款Modbus从设备仿真器,主要用于模拟Modbus从站设备。它接收来自Modbus主站(如Modbus Poll)的命令包,并回送数据包。Modbus Slave帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,是Modbus通信系统中不可或缺的一部分。
二、主要特点
从站模拟:能够模拟Modbus从站设备,接收并响应主站的命令和请求。
多寄存器支持:可以模拟多个寄存器,满足不同的测试需求。
易于配置:配置简单,用户可以根据需要设置从站的地址和寄存器数量。
辅助开发:辅助Modbus通讯设备开发人员进行协议开发和测试。
两者的关系与区别
角色不同:Modbus Poll作为Modbus主站仿真器,主动发送命令并接收响应;而Modbus Slave作为Modbus从站仿真器,被动接收命令并回送响应。
功能互补:两者相互配合,共同构成了完整的Modbus通信系统。Modbus Poll用于监控和管理从站设备,而Modbus Slave则用于模拟和测试从站设备的功能。
应用场景:在Modbus通信系统的开发、测试和维护过程中,两者都发挥着重要的作用。开发者可以使用Modbus Slave来模拟从站设备,以便在没有实际硬件的情况下进行测试;而维护人员则可以使用Modbus Poll来监控和管理现场的设备状态。
综上所述,Modbus Poll和Modbus Slave是两款功能互补、相辅相成的软件工具,它们共同为Modbus通信系统的开发、测试和维护提供了有力的支持。
两款软件下载:
链接:百度网盘 请输入提取码
提取码:lft0
提供版本是:
Modbus Poll 7.0.1
Modbus Slave6.1.3
注册方法:
Modbus Poll 7.0.1
成功安装后,点击菜单Connection-->Connect,将注册码粘贴到里面即可
序列号:5A5742575C5D10
Modbus Slave6.1.3
序列号:5455415451475662
现在是2024年,官方已经升到v9版本了。
注意这两个软件不是免费的。
基本的测试
服务器-->从站 从动的提供数据
从站-->服务器 主动的索取数据
首先,你在slave这边, connection,选择tcp/ip,默认参数即可。
然后,你在poll这边,点connection连接,默认参数即可。
最后,你在poll这边,修改数据,send,然后就可以看到slave这边数据更新了。
F 是功能码, Tx是发送记录, SR是发送的循环周期
Display-->Communication,可以显示发送接收的报文
下面是复制的两条通讯报文:
Tx:318-03 9B 00 00 00 06 01 03 00 00 00 0A
Rx:319-03 9B 00 00 00 17 01 03 14 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
发送端报文说明:
Tx:318-03 9B 00 00 00 06 01 03 00 00 00 0A
MBAP报文头:
03 9B: 事务处理标识,一直递增,类似数据库标识id
00 00: 协议标识符,判断是什么协议,modbustcp
00 06: 后续的数据长度(字节)
01: 服务器地址
PDU: Protocol Data Unit(单元) 协议数据单元
03: 功能码03,读取保持型寄存器
00 00: 读取数据的起始地址(存在高低位)
00 0A: 读取数据的数量(存在高低位)
接收端报文说明:
Rx:319-03 9B 00 00 00 17 01 03 14 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
MBAP报文头:
03 9B: 事务处理标识,一直递增,类似数据库标识id
00 00: 协议标识符,判断是什么协议,modbustcp
00 17:后续的数据长度(字节)
01: 服务器地址
PDU: Protocol Data Unit(单元) 协议数据单元
03: 功能码03,读取保持型寄存器
14 00:读取20个字节长度
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00: 具体的数据
Modbus的存储区介绍
直到这里,我们才看到熟悉的40001,40001这个地址是怎么样逐步演变而来的。
Modbus的功能码
Modbus的协议分类
为啥Modbus Poll不称为Modbus Server?
问出这个问题的人要检讨一下,因为你并没有搞清楚什么是主从通讯架构。
Modbus遵循主从(Master/Slave)通信模式,其中主站(Master)负责发起通信请求,而从站(Slave)则负责响应这些请求。
Modbus poll就是Master端。
经过实验你就会发现,每个Modbus Slave都可以指定自己的IP地址与端口,因此Modbus Slave可以有多个。
而ModBus Poll则是主动连接到其中的一个Modbus Slave。(当然也可以多播,一个Master控制多个Slave)
提出这个问题的人,是把主从架构跟sockert通讯的服务器/客户端(server/client)模式搞混淆了。
他们把Modbus Slave比喻为客户端,把Modbus poll比喻为服务端。
sockert通讯中,服务端是定义IP地址和端口然后启动服务,等待客户端来访问。
如果以服务端/客户端来比喻,则主从模式的Slave其实是服务端,Master才是客户端。
至于Modbus Poll这个名字的义意,如下:
“Poll”在英文中意为“轮询”或“查询”。在Modbus通信中,主站通常会轮询从站设备以获取其状态或数据。
因此,将这款软件命名为“Modbus Poll”既体现了其作为Modbus主站的角色,
又直观地描述了其主要功能——向从站发送请求并接收响应。
如果我们在上图的Modbus Slave中把52改为53,则在Modbus Poll中会更新成53。
也就是说Modbus Poll软件对从站设备状态进行了轮询,然后更新了数据到界面上。

