Skip to main content

设置 I/O 交换和设备状态的监控

监测ModbusTCPClientSideExample项目

  1. 在ModbusTCPClientSideExample项目,打开PLC_PRG.prg.st程序。

  2. 声明两个名为readValue和writeValue类型WORD。

  3. 定义一个变量maxValue类型WORD值100。

  4. 将以下代码插入到您的实现中:

    IF writeValue > maxValue THEN
       writeValue := 0;
    END_IF
    IF readValue = writeValue THEN
       writeValue := writeValue + 1;
    END_IF

    注意

    一旦 Modbus 通信建立,该代码将持续递增。readValue和writeValue直到达到极限为止。

  5. 打开编辑器Modbus_TCP_Server设备并切换到I/O映射标签。

  6. 展开条目Channel 1和Channel 2。

  7. 地图PLC_PRG.readValue到Channel 2[0]输入。该变量稍后会接收请求读取的值。

  8. 地图PLC_PRG.writeValue到Channel 1[0]输入。该变量提供要写入的值。

    结果如下:

    _c4_img_task_modbus_setup_monitoring.png
  9. 切换回PLC_PRG.prg.st的ModbusTCPClientSideExample项目。

  10. 声明一个变量serverComState类型IoDrvModbusTCP.ModbusTCPComState。

  11. 声明一个变量serverErrorCode类型IoDrvModbusTCP.MB_ErrorCodes。

  12. 将以下代码添加到您的实现中,并将服务器名称调整为与以下名称匹配:设备在这个示例项目中,名称是Modbus_TCP_Server。

    serverComState := Modbus_TCP_Server.ComState;
    serverErrorCode := Modbus_TCP_Server.byModbusError;

    这样,您就可以通过设备功能块的输出来监控通信状态和当前错误代码。

监测ModbusTCPServerSideExample项目

  1. 在ModbusTCPServerSideExample项目,打开PLC_PRG.prg.st程序。

  2. 声明两个名为registerValue和tempValue类型WORD。

  3. 将以下代码插入到您的实现中:

    tempValue := registerValue;
  4. 打开编辑器ModbusTCP_Server_Device设备并切换到I/O映射标签。

  5. 展开条目持有登记册。

  6. 地图PLC_PRG.registerValue到Holding Registers[0]输入。该变量包含寄存器的值。

    结果如下:

    _c4_img_task_modbus_setup_monitoring_serer_device.png
  7. 切换回PLC_PRG.prg.st的ModbusTCPServerSideExample项目。

  8. 声明一个变量serverDeviceClientConnections类型UINT。

  9. 声明一个变量serverDeviceErrorCode类型UINT。

  10. 将以下代码插入到您的实现中:

    serverDeviceClientConnections := ModbusTCP_Server_Device.uiClientConnections;
    serverDeviceErrorCode := ModbusTCP_Server_Device.ErrorCode;

    这段代码可以让你监控当前连接到此服务器的客户端数量以及服务器的当前错误代码。

注意

现在 Modbus 通信和设备监控的设置已经完成。