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