Modbus TCP 从站:IP 地址的动态设置
此处使用 FAQ Modbus Communication Master/Slave via Ethernet中的 Modbus 从站。
- 创建“标准项目”并选择 CODESYS Control Win V3 作为设备。
- 通过网络扫描定义目标系统。

- 在设备树中插入以太网适配器并指定要使用的接口。
如果尚未定义目标系统,则会显示错误消息“未配置网关”。

在设备树中的以太网适配器下方 插入一个Modbus TCP Master 。 在设备树中的 Modbus TCP Master 下方 插入一个 Modbus TCP Slave 。

请注意地址与 Modbus 从站设备的地址相同。
- 修改 PLC_PRG如下:
声明
VAR
xUpdate : BOOL;
sIp : STRING;
udiResult : UDINT;
abyNewIp : ARRAY [0..3] OF BYTE := [192,168,99,198]; // Insert here the correct IP-Address of the Modbus_Slave_Device
END_VAR
实现
sIp := IoDrvEthernet.IPARRAY_TO_IPSTRING(Modbus_TCP_Slave.ComSettings.ipAddress);
Modbus_TCP_Slave.xConfirmError := FALSE;
IF xUpdate THEN
xUpdate := FALSE;
udiResult := Modbus_TCP_Slave.UpdateCommunicationSettings(ipAddress := abyNewIp, uiPort := 502);
Modbus_TCP_Slave.xConfirmError := TRUE;
END_IF
- 启动项目后,无法建立连接。

- 将变量 xUpdate 设置为 TRUE,以便传递新的 IP 地址。

无法重置为无效的 IP 地址。 必须先停用 Modbus 组件。 这是通过“启用”属性完成的,该属性仅在激活设备诊断后可用。