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]