跳到主要内容
版本:v3

Modbus

Modbus 是用于 PLC 网络的通信协议。起初,它是为串行接口开发的,如 RS232、RS422 和 RS485,并后来扩展以支持 TCP 模式。

OIBus 使用 jsmodbus仅在 TCP 模式下

特定设置

以下是 Modbus 连接器设置:

  • 主机:Modbus 服务器机器的 IP 地址或主机名。
  • 端口:用于连接的端口(默认为 502)。
  • 重试间隔:连接失败后重新连接的等待时间。
  • 从站 ID:标识 Modbus 源机器,默认为 1。
  • 地址偏移:对于大多数 PLC,没有偏移(Modbus 选项)。一些 PLC 可能从 1 而不是 0 开始地址范围(JBus 选项)。
  • 字节顺序:指定位编码的类型(大端或小端)。
  • 字节交换:确定是否应该在 16 位(一个字)的字节组内反转字节。
  • 字交换:指示是否应该在 32 位组内反转字(16 位组)。

项目设置

  • 地址:设备内数据的十六进制地址。
  • Modbus 类型:指定是 线圈离散输入输入寄存器 还是 保持寄存器(默认)。
  • 数据类型:与 保持寄存器输入寄存器 相关。它定义了从寄存器中提取的数据类型,选项如 Bit、UInt16(默认)、Int16、UInt32、Int32、UInt64、Int64、Float 或 Double。
  • 位索引(仅限位数据类型): 要从读取值中获取的位的索引。
  • 乘数系数:乘以检索到的值(默认为 1)。

关于 Modbus 地址

地址应与 PLC 中变量的地址匹配,以十六进制表示且不带数据类型数字。例如:

  • 对于位于 0x40001 的 保持寄存器 数据,输入地址为 0x0001(不包括数字 4),并指定 Modbus 类型为 holdingRegister
  • 对于位于 0x009C 的 线圈 数据,使用 0x009C 作为地址,并指定 Modbus 类型为 coil

Modbus 数据地址按照 Modicon Convention Notation (MCN) 结构化:

  • 线圈:[0x00001 - 0x09999](1 到 39,321)
  • 离散输入:[0x10001 - 0x19999](65,537 到 104,857)
  • 输入寄存器:[0x30001 - 0x39999](196,609 到 235,929)
  • 保持寄存器:[0x40001 - 0x49999](262,145 到 301,465)

MCN 的扩展版本允许更大的地址空间:

  • 线圈:[0x000001 - 0x065535]
  • 离散输入:[0x100001 - 0x165535]
  • 输入寄存器:[0x300001 - 0x365535]
  • 保持寄存器:[0x400001 - 0x465535]