APRUS Lua-S7配置说明
概述
文档说明
APRUS Lua-S7协议相关配置说明,APRUS 的Lua包含APRUS.lua
和config.lua
两个文件。
APRUS 通过S7协议与西门子S7系列PLC进行通信,然后配置config.lua
即可采集需要的数据。
如需修改APRUS.lua
文件的内容时,请咨询相关的技术人员,随意修改会导致适配器不能正常工作,所以此文档主要介绍config.lua
内容。
此文档目的是为了让相关人员清楚如何通过对脚本的配置实现对应协议的数据采集,详细介绍config.lua
的相关内容,如遇到新的需求或者处理不当的地方联系相关负责人。
适用对象
本文档的目的读者是所有通过适配器对西门子S7系列PLC(S7协议)进行数据采集的人员。
术语和缩略词
序号 | 术语名称 | 其它名称 | 术语说明 |
---|---|---|---|
1 | APRUS | Advanced Programmable Remote Utility Server | 高级可编程远程数据适配终端 |
参考资料
- 《西门子以太网通讯》
- 《西门子S7C以太网协议解析》
- 《HslCommunicationDemo》
- 《昆仑通态HMI屏编程软件》
背景介绍
- APRUS 在数据获取时,分为两部分,数据采集(CollrReg)和数据上报(CollpReg),为什么要分开呢,主要是由于提升采集效率而设定,数据采集过程中尽可能的把能连续采集的一次采集回来。
- 数据上报是将已经采集的数据进行必要的数据处理,然后上报到云端。
配置说明
3.1 config.lua
配置
config.lua
中APRUSX
表的字段由5大部分组成,ipmode、inet_addr、netmask、Luaver、devinfo
分别来介绍这5大部分的功能:
示例:
APRUSX={
ipmode="Manual",
inet_addr="192.168.1.234",
netmask="255.255.255.0",
Luaver="MAX.Lua.V030300.R",
devinfo="S7Dev",
},
APRUS Lua-S7配置说明
说明
序号 | 模块 | 说明 | 备注 |
---|---|---|---|
1 | ipmode | IP获取方式 | 默认Manual,不更改 |
2 | Inet_addr | APRUS IP | 与对接的设备保持相同网段,且同网段内IP不能重复 |
1 | netmask | 子网掩码 | 默认255.255.255.0,一般不修改,除非相同网段内没有足够的IP |
4 | Luaver | 脚本版本号 | 每次变更脚本都需更新版本,一边区分不同版本的区别;详见图1-1 |
5 | devinfo | 设备类型 | 对接的设备类型 |
图1-1 Luaver:脚本版本**
Luaver = "MAPRUS.L.V220.R"
Luaver设置当前脚本的版本号,每次更新都需要更改并向上增加版本号;
版本号在增加过程中,只需要修改主/子/阶段版本号即可;
主/子/阶段版本号不能为0,一般情况下如果只更新config.Lua
的配置无需更新主/子版本号;
只要修改阶段版本号就行,版本号一定是要向上叠加,这样才能保证之前的版本有备份,才能自动升级。
3.1.6 S7: Device: S7设备信息
Device={
Ip="192.168.1.102",
Port="102",
type="s7-1200",
}
S7设备信息:
序号 | 模块 | 值 | 说明 |
---|---|---|---|
1 | ip | 字符串; “192.168.1.157” | Modbus设备的IP地址 |
2 | port | 字符串; “502”/“1024” | Modbus设备的端口 |
1 | type | 字符串;“s7-1200” “s7-1500” “s7-300” “s7-400” “s7-200” | s7设备的类型 |
1.3 采集、上报结点— Node
节点信息
Node={
collect={
{reg="DB", dbnum=1, addr=0, len=100},
},
variable={
{reg="DB", dbnum=1, addr=100, len=30, dtype="bytes", pMode={1,5}, dStyle={"L102"}, dOffset={}, dExt={}},
}
}
1.3.1 collect:采集配置
参数 | 说明 | 备注 |
---|---|---|
CollrReg | 采集配置 | |
reg | 寄存器类型 | M /I/ Q /T /C /DB(V) |
addr | 寄存器类型的地址(起始地址) | |
dbnum | DB块区 | DB块区只有在对DB数据采集的时候才会有,数据可能保存在不同的DB块区,但对S7-200-SMART来说只有一个DB块区,即DB1块区 |
len | 从起始地址开始采集的数量 |
1.3.2 variable:上报配置
variable设置上报配置,上报配置时需要把采集到的数据处理成最终实际使用的数据;包括数据处理逻辑,上报逻辑,数据分类等等;由于采集时都是按照字节(BYTE)采集,所以在数据处理的时候需要注意。
注意:上报配置设置的地址,一定是在采集配置里面有的,否则数据不准确。
参数 | 说明 | 备注 |
---|---|---|
CollpReg | 上报配置 | |
reg | 寄存器类型 | reg=”DB” 寄存器:M/I/Q/T/C/DB(V) |
dbnum | DB块区 | dbnum=1 选填,DB块区只有在对DB数据采集的时候才会有;数据可能保存在不同的DB块区,但对S7-200-SMART来说只有一个DB块区,即DB1块区 |
addr | 需要上报的数据地址 | |
dtype | 变量数据类型 | bit, byte, short/ushort, Int/uint, float, Long/ulong, double |
pMode | 采集上报方式 | 详见附件一 |
dOffset | 数据偏移 | 数据偏移在关于bit处理的时候是不需要的,详见附件二 |
dBit | 位处理 | 选填,当dtype为bit时有效,范围 0~7 标识第几位 |
dExt | 附件报文处理 | (选填)改变上报条件限制, 当pMode为{2,0}时有效 |
dStyle | KEY | 自行设置 |
len | 字符串长度 | 当dtype为bytes时有效,表示字符串长度 |
附件一
模块 | 举例 | 参数1 | 参数2 |
---|---|---|---|
pMode | 上报类型 | 1:周期上报 | 自行设置上报周期 |
2:改变上报 | 0 |
附件二
模块 | 参数1 | 参数2 | 备注 |
---|---|---|---|
dOffset | 偏移参数1 | 偏移参数2 | “+” N, “-“, “*”, “/“, “.”, N |
注意:
- 如果无偏移计算,则无须填写此字段,或者填写为dOffset={}。
- 如果只有单层偏移,那么只需要设置参数1即可。
- 如果有双层偏移,那么需要设置参数1,参数2。
- 如果上报数据包含小数且需要保留指定的小数位数时,即可对参数1进行设置。
3.2 aprus.lua配置
说明:function start() 为主流程入口函数