设备类配置
新增设备类
设备类名称:『自定义』 通讯方式:MODBUS 设备通讯类型:直连设备
时间格式:『随便选,无效。MODBUS协议不携带时间』 统一以上位收到的时间为准 jsonQuery:『无需填写』
设备类物模型属性配置
属性Key:『按 MODBUS 的四种可访问量区分』,
Coil: 0x$$$$:BOOL
Input Register: 3x$$$$:LREAL
Holding Register: 4x$$$$:LREAL
Extended Register: 6x$$$$$:LREAL
其中 代表一个 09 数字。
举例 ,从 Input Registers 读取 18 地址的数据作为双精度浮点数,则属性Key应填写为 3x0000:LREAL 。
从 Holding Registers 读取 9~16 地址的数据作为双精度浮点数,则属性Key应填写为 4x0008:LREAL
可选的数据类型包括
SINT (int 8)
USINT (uint 8)
INT (int 16)
UINT (uint 16)
WORD (uint 16)
DINT (int 32)
UDINT (uint 32)
DWORD (uint 32)
LINT (int 64)
ULINT (uint 64)
LWORD (uint 64)
REAL (float)
LREAL (double)
CHAR (char)
WCHAR (2 byte char)
属性名称:『不限』 标准化名称:『不限』 单位标识:『据实填写』 计算公式:『可不填,按需』 数据类型:『据实填写』 读写模式:『据实填写』
设备类采集配置
用默认的即可。不用改
设备类控制配置
- carrier: "modbus"
## async:控制是否是异步操作,MODBUS 不支持异步。【必填】
async: false
timeout: 15000
## propertyName:对应的属性字段,若不填写则为通配。通配作为最低优先级,优先单个配置。【非必填】
# propertyName: "test_01"
## MODBUS 协议相关配置【carrier==”modbus“时必填】
modbus:
## MODBUS TCP/IP 地址【必填】
url: ${attribute.slaveUrl}
## slave ID【必填】
slaveId: ${attribute.slaveId}
propertyMap:
userId: ${userId?c}
deviceName: ${device.name}
propertyName: ${tslProperty.name}
targetValue: ${TARGET_VALUE}
async: ${async?c}
非标实现
把 Input/Holding Registry 当做 Discretes Input/Coils 使用
MODBUS 标准协议的非标使用 - 把 Input/Holding Registry 当做 Discretes Input/Coils 使用 每个点位只使用到了 Input/Holding Registry 16 bits 的某个 bit
针对上述场景,要求 [设备模型 - 物模型属性 - name] 需要配置为形如
- 4x0001:BOOL#0
- 4x0001:BOOL#1
- 4x0001:BOOL#2
- 4x0001:BOOL#3
- 4x0001:BOOL#4
新增设备
设备名称:『自定义』 通讯方式:MODBUS 设备通讯类型:直连设备
技术参数
技术参数需要写入 slaveId 和 slaveUrl
slaveId: 从站地址 slaveUrl: 从站 TCP 地址及端口。示例: tcp://localhost:502 (tcp:// 是必须的)
需要设置为modbus 读写单连接,额外配置 proxy: modbus 单连接控制必须先下发对接配置