通过以太网进行 Modbus 主从通信
硬件
- Raspberry Pi B xy 作为 Modbus 主机
- CODESYS Control Win V3 作为 Modbus 从站
Modbus 主站的要求
- 创建一个“标准项目”并选择“CODESYS Control for Raspberry Pi SL”作为设备。
- 通过网络搜索连接目标系统。

- 在设备树中插入一个以太网适配器、一个Modbus_TCP_Master和一个Modbus_TCP_Slave 。

- 修改 PLC_PRG 如下:

Modbus 从站的要求
- 创建一个标准项目并选择 CODESYS Control Win V3 作为设备。
- 通过网络搜索连接目标系统(参见 Modbus 主站)。
- 在设备树中插入以太网适配器和 Modbus_TCP_Slave_Device。

以太网适配器上的设置(主站和从站)
- 确定要使用的接口。
如果未确定目标系统,则会显示一条错误消息,“未配置网关”

Modbus_TCP_Slave 上的设置(主站)
General 选项卡
- 输入从站设备的 IP 地址(在本例中为 CODESYS Control Win V3)
- 为 Modbus 配置发布一个唯一 ID

Channel 选项卡
- 创建一个输入寄存器(由 Modbus 从站设备发送的计数器)——每 100 毫秒循环更新一次。

- 创建一个输出寄存器以编写您自己的计数器。


输入输出映射
- 分配输入和输出变量。
选项“Enabled 1”的设置是必要的,因为变量“xExec”未在任何任务中使用,因此写入将不起作用。

Modbus_TCP_Slave_Device(从站)上的设置
General 选项卡
- 激活通信监控。

设备 ID 不得用于 Modbus TCP! 这仅用于 TCP/RTU 网关。
元 ID 仅用于转发(网关)到 Modbus 串行总线。 对于 TCP/IP,MODBUS 服务器通过 IP 地址寻址。在这种情况下,不使用 MODBUS 单元 ID(必须使用值 0xFF)。 对于串行连接,Modbus 设备使用从 1 到 247 的单元 ID 寻址(0 用于广播地址)。
I/O Mapping 选项卡
- 分配输入和输出变量。

下载并启动项目
主站
- 将应用程序加载到控制器。

从站
- 将应用程序加载到控制器
只有在主站中手动触发传输后,该值才会更改
