Modbus 开发环境
学习 Modbus 协议最快的方法就是动手实践,为了降低操作门槛,我们可以通过软件来模拟,而不需要真实的 Modbus 设备。在 Windows 上,我们可以安装 Modbus Poll 和 Modbus Slave,以及 Visual Serial Port Driver(即 VSPD)软件。
这三个工具的功能分别如下:
- Modbus Poll —— Modbus 主站设备;
- Modbus Slave —— Modbus 从站设备;
- Visual Serial Port Driver —— 虚拟串口软件,允许用户模拟多串口,支持所有的串口设置和信号线。
通过实操,可以加深对 Modbus 协议的理解,为后续调试真实设备打下良好基础 。
下载地址:
VSPD 虚拟串口
下载并安装 VSPD 软件,打开软件,可以看到如下窗口。
点击 “Pair” 创建一对相互连接的虚拟串口,例如 COM1 和 COM2。
此时,如果打开两个串口终端,分别连接 COM1 和 COM2,即可相互通信。但我们的目标是搭建 Modbus 开发环境,因此还需要安装 Modbus Poll 和 Modbus Slave 作为主站设备和从站设备。大致工作框架如下图所示。
Modbus Poll
Modbus Poll 是 Modbus 主站设备仿真器,可以用于测试和调试 Modbus 从站设备,便于观察 Modbus 通信过程中的各种报文数据。该软件支持多种 Modbus 协议模式:
- Modbus RTU
- Modbus ASCII
- Modbus TCP/IP
- Modbus RTU Over TCP/IP
- Modbus ASCII Over TCP/IP
- Modbus UDP/IP
- Modbus RTU Over UDP/IP
- Modbus ASCII Over UDP/IP
Modbus Poll 主画面窗口如下。
按 F1 打开帮助,按 F3 进入连接设置页面。
按 F8 进入协议定义页面。例如,你要读取 20 个保持寄存器的值,起始地址为 40011(10),那么设置参数如下:
- Slave ID :输入从站设备 ID
- Function :03 功能码(Read Holding Registers)
- Address :10(Protocol address)
- Quantity :20
- Scan Rate :1000(将会每 1000ms 轮询一次数据)
在菜单栏 Functions 可以找到一些功能码的单独操作页面,例如写线圈状态寄存器、写保持寄存器等。
Modbus Slave
Modbus Slave 是 Modbus 从站设备仿真器,用于接收主站设备的命令包,并回送数据包,便于观察 Modbus 通信过程中的各种报文数据。
Modbus Slave 最多可以在 32 个子窗口中模拟多达 32 个 Modbus 从站设备。用户界面与 Modbus Poll 相同,支持 01、02、03、04、05、06、15、16、22 和 23 等功能码,可用于监视串口或者网络通信数据。
按 F8 打开从站定义窗口,可以设置从站 ID、功能码、寄存器起始地址、寄存器数量,以及 Modbus Slave 窗口的显示格式等。
Modbus Poll 和 Modbus Slave 仿真软件的用法就是这么简单,但由于它们都是商业软件,因此如果想长期使用,需要购买正版 License。