config.Lua配置样例 (Modbus)

1 适配器参数:AprusX 字段

1.1 AprusX 配置字段

AprusX={
    ipmode="Manual",    
    inet_addr="192.168.1.234",
    netmask="255.255.255.0",
    luaver="MAPRUS X.Lua.V030300.R",
    devinfo="Modbus-kyj",
},
序号 模块 说明 备注
1 ipmode IP获取方式 ipmode=”Manual”–手动设置成固定IP地址
ipmode=”Auto” –自动获取IP地址
2 inet_addr APRUS IP 与对接的设备保持相同网段,且同网段内IP不能重复
inet_addr=”192.168.1.234”
配置设备的IP地址,值为类似”192.168.1.234”的字符串。此IP地址需要与对接设备保持在相同的网段内,否则无法与对接设备通过网口通信。
3 netmask 子网掩码 默认255.255.255.0,一般不修改,除非相同网段内没有足够的IP
子网掩码,默认为255.255.255.0,与客户保持一致,一般情况下均为255.255.255.0不变。
4 luaver 脚本版本号 luaver=”MAPRUS.L.V030005.R”
每次变更脚本都需更新版本,以便区分不同版本的区别
当前脚本的版本号。每次更新都需要更改并向上增加版本号;版本号在增加过程中,只需要修改主/子/阶段版本号即可,其他无需修改,主/子/阶段版本号不能为0,一般情况下如果只更新config.Lua的配置无需更新主/子版本号,只要修改阶段版本号就行,版本号一定是要向上叠加,这样才能保证之前的版本有备份,才能自动升级
5 devinfo 设备类型 对接的设备类型
devinfo=”Modbus-kyj”
设备类型,用来标识对接的是何种设备。不同的适配器对接的设备类型不同,比如对接西门子Modbus-200-SMART,对接西门子Modbus-300等等,由于对接的设备类型不同,因此为了方便使用,知道对接的是哪类设备,我们设定了设备类型。

1.2 协议接口:Device字段

Device={
            type="rtu",            -- rtu/tcp
            rate=38400,
            dataBit=8,
            stopBit=1,
            parity="None",        -- None/Odd/Even

Modbus设备信息

序号 模块 说明

序号 模块 说明
1 type Modbus协议类型
rtu
tcp
ascii
2 rate=38400 波特率
3 dataBit=8 数据位:5/6/7/8
4 stopBit=1 停止位:1/2
5 parity=”None” 校验位:None/Odd/Even

节点信息:node字段

node={
    collect={
        {ID=1, reg="1", addr=0, cnt=50},
    },
    variable={
        {ID=1,reg="3",addr=1,dtype="byte",dBit=0,pMode={1,8},dStyle={"L1_3_1_0"},dOffset={{"+",10}},dExt={} },
    },
}

(1) 采集配置:collect字段

collect 设置采集配置,采集配置主要有几个参数构成,需要注意的是Modbus协议采集时都是通过双字(short)去采集。

采集配置 参数 说明 备注
collect ID 设备ID
reg 寄存器功能码 1/2/3/4/5/6/15/16
addr 采集地址起始
cnt 采集数据长度

(2) 上报配置:variable字段

variable 设置上报配置,上报配置时需要把采集到的数据处理成最终实际使用的数据,包括数据处理逻辑,上报逻辑,数据分类等等;由于采集时都是按照双字(short)采集,所以在数据处理的时候要需要注意。

注意:上报配置设置的地址,一定是在采集配置里面有的,否则数据无法成功获取。

上报配置 参数 说明 备注
variable ID 设备ID ID = 1 0~n
reg Modbus功能码 reg=1 1/2/3/4/5/6/15/16
addr 上报地址 需要上报哪个地址设置那个地址
dtype 变量数据类型 dtype=”short” bit
byte
short/ushort(Word类型即为short/ushort)
Int/uint(Double Word类型即为int/uint)
float
pMode 上报方式 pMode={1,5} 详见附件一
dOffset 数据偏移 dOffset={{“+”,10},{“*”,5}} 详见附件二
dBit 位处理 dBit=5 位标识,详见附件三
dExt 附件报文处理 dExt={} (选填)改变上报条件限制, 当pMode为{2,0}时有效,{“>”, 100} 表示 当原始数据发生改变 并且改变值大于100时上报,{“<”, 100} 表示 当原始数据发生改变 并且改变值小于100时上报,{“=”, 100} 表示 当原始数据发生改变 并且改变值等于100时上报
dStyle KEY dStyle={“L1_3_0_0”} 自行设置
len 字符串长度 len=5 当dtype为bytes时有效,表示字符串长度
format 字节序配置 format 选填,当dtype为4字节数据时有效,详见附件四

附件一

pMode={1,5}

模式 参数1 参数2
周期上报 1 自行设置上报周期
改变上报 0 0

附件二

dOffset={{"+",10},{"*",5}}

参数1 参数1 参数2 参数2
“+” N “+” N
“-“ N “-“ N
“*” N “*” N
“/“ N “/“ N
“.” N “.” N

注意:
1) 如果无偏移计算,则无须填写此字段,或者填写为 dOffset={}

2) 如果只有单层偏移,那么只需要设置参数1即可,假如一个参数需要*10,即,
dOffset={{"*",10}}

3) 如果有双层偏移,那么需要设置参数1,参数2,假如一个参数需要 *10,然后在 +10,即
dOffset={{"*",10},{"+",10}}

4) 如果上报数据包含小数且需要保留指定的小数位数时,即可对参数1进行设置,假如需要保留3位小数,即
dOffset={{".",3}}

附件三

标识 说明
dBit dtype 为 bit 时有效,范围 0~15 标识第几位
dtype 为 byte/ubyte 时有效 范围0~1 标识 低/高字节

附件四

标识 说明
format ABCD 为原始采集字节序
BADC 12字节对换 34字节对换
CDAB 13字节对换 24字节对换
DCBA 14字节对换 23字节对换(默认值)
文档更新时间: 2024-11-05 17:40   作者:CGL