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