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实例对象 |