Skip to content

Modbus TCP

WAGO SCADA 中的 Modbus TCP 驱动程序通过 TCP/IP 网络通信协议与设备(一般为 PLC、传感器或其他工业设备)进行数据通信。该驱动程序负责处理 Modbus TCP 协议的底层细节,确保设备之间能够实现可靠的数据交互。

连接到Modbus TCP设备

  1. 在“设备”->“Modbus TCP”页面,点击“新增”按钮。

  2. 在新增页面,保留默认值,并在以下字段中输入如下信息(说明:以下数据仅为示例,请根据实际情况填写)。

    设备名称:Test1

    地址:10.160.100.33

    端口:502

    连接超时(ms):10000

    读数据超时(ms):5000

    写数据超时(ms): 2000

  3. 单击“确认”按钮。此时该条数据将显示在Modbus TCP的设备列表页面。

    alt text

  4. 在启用状态一栏点击启用按钮,启用该设备。

    alt text

    配置字段

    名称 描述
    设备名称 设备连接的名称。
    地址 设备的域名或 IP 地址。
    端口 设备的端口号,默认502。
    连接超时(ms) 设备的连接超时时间,单位毫秒。
    读数据超时(ms) 设备的读数据超时时间,单位毫秒。
    写数据超时(ms) 设备的写数据超时时间,单位毫秒。
  5. 在创建的设备的操作栏中,单击“添加帧”按钮,为当前设备添加一个帧。

    :同Modbus协议中的数据帧,是数据传输的基本单位,用于记录数据通信的从站地址、存储区域、开始和结束地址、数据编码格式和数据采集的频率,在WAGO SCADA程序中,I/O变量可以和帧绑定。

  6. 在添加帧页面,保留默认值,并在以下字段中输入如下信息(说明:以下数据仅为示例,请根据实际情况填写)。

    名称:保持寄存器1

    从站地址:1

    存储区:保持寄存器

    开始地址:1

    结束地址:10

    数据编码:大端

    频率(ms):1000

  7. 单击“确认”按钮。此时该条数据将显示在之前创建的设备下。

    alt text

    配置字段

    名称 描述
    名称 帧的名称。
    从站地址 帧的从站地址。
    存储区 帧的存储区。
    开始地址 帧的开始地址。
    结束地址 帧的结束地址。
    数据编码 帧的数据编码方式。
    频率(ms) 数据采集的频率,单位毫秒。(只有存储区为输入寄存器、保持寄存器时显示)

注意事项

  1. 设备列表中,启用状态 表示设备是否已被启用,未启用的设备不会进行连接,启用的设备会尝试进行连接;连接状态 表示设备是否已成功与系统建立通信连接。

  2. 全部启用全部禁用,是对列表中的所有数据进行启用或禁用。

  3. 存储区是 线圈离散量输入 时,不需要填写 数据编码

  4. 所有设备之间不共享连接。

变量绑定

将变量和ModbusTCP设备的数据进行绑定。

  1. 创建一个I/O变量。

    alt text

  2. 在变量的编辑界面,点击数据源的设置按钮。

    alt text

  3. 在弹出的数据源窗口中,选择已创建的ModbusTCP设备下的帧,并在以下字段中输入如下信息(说明:以下数据仅为示例,请根据实际情况填写)。

    存储区:保持寄存器

    地址范围:1 ~ 10

    数据类型:UINT16

    地址:1

    位:1

    alt text

  4. 点击“确认”按钮,完成设置。

    配置字段

    存储区
    名称 描述
    单个线圈 用于存储开关型数据,通常表示二进制的开关状态(ON/OFF)。对应功能码01、05。
    离散量输入 用于存储只读的开关型数据,通常表示二进制的输入状态。对应功能码02。
    输入寄存器 用于存储只读的 16 位寄存器数据。对应功能码04。
    保持寄存器 用于存储可以读取和写入的 16 位寄存器数据。对应功能码03、06、16。
    地址范围 帧的开始地址和结束地址。
    支持的数据类型
    名称 描述
    INT16 当变量的数据类型为Integer 时,才显示该数据类型。
    INT32 当变量的数据类型为Integer 时,才显示该数据类型。
    INT64 当变量的数据类型为Integer 时,才显示该数据类型。
    INT8 当变量的数据类型为Integer 时,才显示该数据类型。
    UINT16 当变量的数据类型为Integer或Bool 时,才显示该数据类型。
    UINT32 当变量的数据类型为Integer 时,才显示该数据类型。
    UINT64 当变量的数据类型为Integer 时,才显示该数据类型。
    UINT8 当变量的数据类型为Integer 时,才显示该数据类型。
    DOUBLE 当变量的数据类型为Double 时,才显示该数据类型。
    FLOAT32 当变量的数据类型为Double 时,才显示该数据类型。
    地址 存储区的地址。
    存储区地址的第几位。 当变量的数据类型为Bool时,才显示该字段。