modbus_windows环境模拟

分类: MODBUS

在 Windows 上进行 Modbus 实验,最简单的方法是使用仿真软件。你可以把你的电脑同时变成“主站”和“从站”,让它们自己跟自己对话。

这样你不需要购买任何 PLC、传感器或电缆,零成本就能搞懂协议。

我们将使用行业标准的工具:Modbus Poll (主站模拟器) 和 Modbus Slave (从站模拟器)。


准备工作

请下载并安装以下两个软件(都有免费试用版,足够学习使用):

  1. Modbus Poll: 用于模拟主站(Master/Client),即“发送指令的一方”。
  2. Modbus Slave: 用于模拟从站(Slave/Server),即“提供数据的一方”。

实验方案选择:

  • 方案 A (推荐 - 最快):Modbus TCP。 不需要安装额外驱动,直接通过网络(本地回环 127.0.0.1)通信。
  • 方案 B (进阶):Modbus RTU。 需要安装“虚拟串口软件” (如 Virtual Serial Port Driver) 来创建一对虚拟串口(如 COM1 连接 COM2)。

为了让你立刻看到效果,我们要进行方案 A (Modbus TCP) 的实验。


第一步:设置“从站” (Modbus Slave)

我们要先建立一个“虚拟设备”,里面存放一些数据等待被读取。

  1. 打开 Modbus Slave 软件。
  2. 你会看到一个名为 Slave ID: 1 的窗口。这代表我们模拟了一个 ID 为 1 的设备。
  3. 配置连接: - 点击菜单栏的 Connection -> Connect... - Connection: 选择 Modbus TCP/IP。 - Port: 默认 502 (这是 Modbus TCP 的标准端口)。 - 点击 OK。 - 现象: 此时状态栏应该显示 "Server Active" 或类似字样,表示它正在监听 502 端口。
  4. 初始化数据: - 双击表格中的第一个值(地址 0)。 - 输入一个数字,比如 123。 - 勾选 "Auto increment" (自动增加) 可以让这个数字一直变,方便观察。 - 点击 OK

现在,你的电脑里已经有一个“虚拟传感器”在运行了,它的寄存器 0 里有一个数值 123。


第二步:设置“主站” (Modbus Poll)

现在我们要模拟上位机(或 PLC)去读取那个数据。

  1. 打开 Modbus Poll 软件。
  2. 配置连接: - 点击菜单栏的 Connection -> Connect... - Connection: 选择 Modbus TCP/IP。 - IP Address: 输入 127.0.0.1 (代表本机)。 - Server Port: 输入 502。 - 点击 OK
  3. 配置读取规则 (重要): - 如果没有自动弹出数据,点击菜单 Setup -> Read/Write Definition... - Slave ID: 输入 1 (必须和从站一致)。 - Function: 选择 03 Holding Register (最常用的读取指令)。 - Address: 0。 - Quantity: 10 (读取10个数据)。 - 点击 OK

第三步:见证通信 (观察与验证)

如果一切设置正确,你应该会立刻看到 Modbus Poll 的表格里出现了数据!

  1. 数据同步: - 你在 Modbus Slave (从站) 里修改任意一个寄存器的值。 - Modbus Poll (主站) 里的对应数值会立刻随之变化。
  2. 观察通信流量 (像黑客一样): - 在 Modbus Poll 中,点击菜单 Display -> Communication... - 你会看到类似这样的数据流在疯狂滚动:
    • Tx: 发送出去的报文 (请求)。
    • Rx: 接收回来的报文 (响应)。
    • 这能帮你验证我们之前学的报文结构:
    • 比如你会看到 00 00 00 00 00 06 01 03 00 00 00 0A (TCP 报文头 + Modbus 指令)。

第四步:尝试“写入”操作

刚才我们是“读”,现在试试“写” (控制设备)。

  1. Modbus Poll (主站) 中,双击任意一个数值(比如地址 1)。
  2. 输入一个新的数值,比如 999
  3. 点击 Send
  4. 看向 Modbus Slave 窗口,你会发现地址 1 的数值神奇地变成了 999

恭喜你!你刚刚完成了一次标准的工业控制操作。 这相当于你在控制室点了一下鼠标,现场的阀门(从站)就打开了。