1. AprusX modbus接口/配置
1.1. config.lua
示例:
Modbus={
device={
type="rtu",
rate=38400,
databit=8,
stopbit=1,
parity="None", -- None/Odd/Even
},
node={
collect={
{ID=1, reg="1", addr=0, cnt=50, delay=1000},
},
variable={
{ID=1,reg="3",addr=0,dtype="short",pMode={1,5},dStyle={"L1_3_0"},dOffset=\{\{"*",2\}\}},
},
},
}
1.1.1. Modbus - device : 接口属性
| 参数 | 值 | 说明 |
|---|---|---|
| type | ”rtu” / “tcp” | 指定modbus协议类型 |
| rate | 2400 ~ 115200 | 接口波特率 |
| databit | 5 / 6 / 7 / 8 | 数据位 |
| stopbit | 1 / 2 | 停止位 |
| parity | “None” / “Odd” / “Even” | 校验位(无 / 奇校验 / 偶校验) |
1.1.2. Modbus - node - collect : 采集节点属性
| 参数 | 值 | 说明 |
|---|---|---|
| ID | 整数 | Modbus ID |
| reg | “1” / ”2” / ”3” / ”4” / ”5” / ”6” / ”16” | 功能码 |
| addr | 0 ~ n | 采集起始地址 |
| cnt | 1 ~ n | 采集长度(双字节为单位) |
| delay (可选) | 0 ~ n (该参数不填时 默认值0) | 采集延时 单位ms |
1.1.3. Modbus - node - variable: 上报节点属性
| 参数 | 值 | 说明 |
|---|---|---|
| ID | 整数 | Modbus ID |
| reg | “1” / ”2” / ”3” / ”4” / ”5” / ”6” / ”16” | 功能码 |
| addr | 0 ~ n | 采集起始地址 |
| dtype | “bit”/”byte”/”ubyte”/”short”/”ushort” | 上报数据类型 |
| “int”/”uint”/”float”/”bytes” | bytes表示字符串格式 | |
| len (可选) | 0 ~ n | 当dtype="bytes "时使用,指定长度 |
| pMode | {1, 5} | 周期上报模式 周期5s |
| {2, 0} | 改变上报模式 | |
| dStyle | {"L1_3_0"} | 上报名称 |
| dOffset | {{"+", 10}} | 偏移计算,加10 |
| {{"-", 10}} | 偏移计算,减10 | |
| {{"*", 10}} | 偏移计算,乘10 | |
| {{"/", 10}} | 偏移计算,除10 | |
| {{".", 2}} | 偏移计算,保留2位小数 |
1.2. aprus.lua
1.2.1. modbus.new
功能:创建modubs实例
示例:obj = modbus.new(type)
| 参数 | 值 | 说明 |
|---|---|---|
| type | “rtu” / “tcp” | 指定modbus协议类型 |
| 返回值 | 返回modbus实例 |
1.2.2. modbus.config
功能:配置modbus实例
示例:modbus.config(obj, rate, databit, stopbit, parity)
| 参数 | 值 | 说明 |
|---|---|---|
| obj | obj | Modbus实例返回对象 |
| rate | 2400 ~ 115200 | 接口波特率 |
| databit | 5 / 6 / 7 / 8 | 数据位 |
| stopbit | 1 / 2 | 停止位 |
| parity | “None” / “Odd” / “Even” | 校验位(无 / 奇校验 / 偶校验) |
1.2.3. modbus.select_rs485
功能:选择modbus采集接口实例
示例:modbus.select_rs485(obj, num)
| 参数 | 值 | 说明 |
|---|---|---|
| obj | obj | Modbus实例返回对象 |
| num | “1” / ”2” | “1”:对应外壳的-485-1- |
| “2”:对应外壳的-485-2- | ||
| 默认不填则对应“1” |
注意:此接口函数只针对有两个485采集接口的AprusX适配器。
1.2.4. modbus.add_collectnode
功能:创建添加modbus采集节点实例
示例:modbus.add_collectnode(session, ID, reg, addr, cnt, delay )
| 参数 | 值 | 说明 |
|---|---|---|
| session | session | 消息会话对象 |
| ID | 整数 | Modbus ID |
| reg | “1” / ”2” / ”3” / ”4” / ”5” / ”6” / ”16” | 功能码 |
| addr | 0 ~ n | 采集起始地址 |
| cnt | 1 ~ n | 采集长度(双字节为单位) |
| delay (选填) | 0 ~ n (该参数不填时 默认值0) | 采集延时 单位ms |
1.2.5. modbus.add_varnode
功能:创建添加modbus变量节点实例
示例:modbus.add_varnode(session, ID, reg, addr, dtype, dBit, format, len, pMode, dStyle, dOffset, dExt)
| 参数 | 值 | 说明 |
|---|---|---|
| session | session | 消息会话对象 |
| ID | 整数 | Modbus ID |
| reg | “1” / ”2” / ”3” / ”4” / ”5” / ”6” / ”16” | 功能码 |
| addr | 0 ~ n | 采集起始地址 |
| dtype | “bit”/”byte”/”ubyte”/”short”/”ushort” | 上报数据类型 |
| “int”/”uint”/”float”/”bytes” | bytes表示字符串格式 | |
| dBit | 0~15 | 当dtype=”bit”时使用,采集指定的位 |
| format | “ABCD”/”BADC”/”CDAB”/”DCBA” | 当dtype=”int”/”uint”/”float”时使用 |
| 表示按指定字节序采集 | ||
| len | 0 ~ n | 当dtype=”bytes”时使用,指定长度 |
| pMode | {1, 5} | 周期上报模式 周期5s |
| {2, 0} | 改变上报模式 | |
| dStyle | {“L1_3\0”} | 上报名称 |
| dOffset | {{"+", 10}} | 偏移计算,加10 |
| {{"-", 10}} | 偏移计算,减10 | |
| {{"*", 10}} | 偏移计算,乘10 | |
| {{"\", 10}} | 偏移计算,除10 | |
| {{".", 2}} | 偏移计算,保留2位小数 | |
| dExt | {{">",100},{0,0}} | 附件报文处理,当pMode={2, 0}时使用 |
| 表示大于100的数据才会上报 |
1.2.6. modbus.run
功能:创建modbus启动实例
示例:modbus.run(obj)
| 参数 | 值 | 说明 |
|---|---|---|
| obj | obj | Modbus实例对象 |
1.2.7. modbus.stop
功能:创建modbus停止实例
示例:modbus.stop(obj)
| 参数 | 值 | 说明 |
|---|---|---|
| obj | obj | Modbus实例对象 |