APRUS Lua-AKIO 配置说明
概述
本章主要概述 APRUS Lua-AKIO 协议的相关配置说明。AKIO 是一套开关量和模拟量采集接口,支持开关量输入的电平检测、脉冲计数、电平时长统计,以及模拟量电流信号的采集。APRUS 的 Lua 环境包含 AKioInf.lua 和 config.lua 两个核心文件,用户只需配置 config.lua 即可实现上述功能,通过特定配置可实现数据运算、条件上报等扩展功能。如需修改 AKioInf.lua 文件,请咨询技术人员,随意修改可能导致设备无法正常工作。本文档主要介绍 config.lua 的配置方法。
config.lua
示例return {AprusX = {ipmode = “none”, – auto/manual/noneinet_addr = “192.168.1.234”,netmask = “255.255.255.0”,luaver = “V00.R”,devinfo = “AKIODev”,},AKIO = {node = {– 模拟量电流输入配置{m = “II”, index = 1, direction = “in”, interval = 100, dtype = “val”, cntmode = “normal”, pMode = { 1, 5}, dStyle = { “ADC1_val” }, dExt = {} },– 开关量输入配置(带偏移计算){ m = “DI”, index = 1, direction = “in”, interval = 100, dtype = “val”, cntmode = “normal”, pMode = { 1, 5 }, dStyle = { “DI1_Offset” }, dOffset = { { “+”, 10 }, { “”, 5 } }, dExt = {}},
– 开关量计数配置(上升沿)
{ m = “DI”, index = 1, direction = “in”, interval = 100, dtype = “count”, cntmode = “rise”, pMode = { 1, 5 }, dStyle = { “DI1_count_rise” }, dOffset = { { “”, 2 } }, dExt = {} }}}}
AKIO 配置与功能
1.1 AprusX 属性
参数 值 说明ipmode “auto”/“manual”/“none” IP 获取方式inet_addr “192.168.1.234” 设备 IP 地址netmask “255.255.255.0” 子网掩码luaver “V00.R” Lua 版本信息devinfo “AKIODev” 设备标识信息
1.2 AKIO-node : 上报节点属性
参数 取值范围 说明m “DI” 开关量输入模式(支持 1-8 号通道)”II” 模拟量电流输入模式(支持 1-8 号通道)”DO” 开关量输出模式(暂不支持)”UI” 模拟量电压输入模式(暂不支持)direction “in” 输入模式(当前仅支持输入)index 1-8 通道索引,对应设备上的物理通道编号interval 0~n 采集间隔(单位:ms),所有类型节点均需配置cntmode “rise”/“fall”/“normal” 计数模式:
“rise”:上升沿计数
“fall”:下降沿计数
“normal”:正常模式(默认)
仅当 dtype=”count” 时生效
dtype “val” 常规电平值采集(原始值)
“count” 边沿计数功能(需配合 cntmode 使用)
“time” 电平持续时长统计(不区分边沿)
pMode {1, n} 周期上报模式:
第一个值为 1(固定)
第二个值为上报周期(单位:采集间隔数)
例:{1,5} 表示每 5 个采集间隔上报一次
{2, 0} 变化上报模式:
第一个值为 2(固定)
第二个值无效(填 0)
当数据变化且满足 dExt 条件时上报
dStyle {“ADC1_val”} 等字符串数组 节点唯一标识名称,用于上报数据的键名
dOffset {{op, val}, …} 数据偏移计算(可选):
支持操作符:”+”(加)、”-“(减)、”*”(乘)、”/“(除)、”.”(保留小数位数)
例:{{“+”, 10}, {“*”, 5}} 表示先加 10 再乘 5
无偏移时可省略或设为空表 {}
dExt {{cond, val}, …} 条件上报规则(可选):
仅当 pMode={2,0} 时生效
支持比较符:”>”(大于)、”<”(小于)、”=”(等于)
例:{{“>”, 15}} 表示数据变化量大于 15 时上报
模块类型说明
2.1 模拟量电流输入(m=”II”)
用途:采集电流信号的原始值
支持配置:dtype=”val”(仅支持此类型)、interval(采集间隔)、pMode(上报模式)
特点:无需配置 cntmode(默认 normal),通常无需 dOffset(原始值采集)
示例:
{m = “II”, index = 1, direction = “in”, interval = 100, dtype = “val”, cntmode = “normal”, pMode = { 1, 5}, dStyle = { “ADC1_val” }, dExt = {} }
2.2 开关量输入(m=”DI”)
用途:支持电平值采集、边沿计数、持续时长统计
细分配置场景:
常规值采集(dtype=”val”):
采集开关通断状态(0/1)
可配合 dOffset 进行数值运算
示例:
{m = “DI”, index = 1, direction = “in”, interval = 100, dtype = “val”, cntmode = “normal”, pMode = { 1, 5}, dStyle = { “DI1_Offset” }, dOffset = { { “+”, 10 }, { “*”, 5 } }, dExt = {} }
边沿计数(dtype=”count”):
需配置 cntmode 指定上升沿 / 下降沿
可通过 dOffset 对计数值进行运算
示例:
{m = “DI”, index = 1, direction = “in”, interval = 100, dtype = “count”, cntmode = “rise”, pMode = { 1, 5}, dStyle = { “DI1_count_rise” }, dOffset = { { “*”, 2 } }, dExt = {} }
持续时长(dtype=”time”):
统计电平保持的时间(单位:ms)
cntmode 配置无效(忽略边沿设置)
示例:
{m = “DI”, index = 2, direction = “in”, interval = 100, dtype = “time”, pMode = { 1, 10}, dStyle = { “DI2_time” }, dOffset = { { “/“, 1000 } }, dExt = {} }
AKioInf.lua 核心接口
3.1 AKioInf.new功能:创建 AKIO 实例示例:local akioObj = AKioInf.new ()返回值:AKIO 实例对象
3.2 AKioInf.add_node功能:添加采集节点配置示例:AKioInf.add_node (session, cjson.encode (node), node.pMode, node.dStyle, node.dOffset, node.dExt)参数:
session:AKIO 实例对象
cjson.encode (node):节点基础配置的 JSON 字符串
node.pMode:上报模式配置表
node.dStyle:节点标识配置表
node.dOffset:偏移计算配置表(可选)
node.dExt:条件上报配置表(可选)
3.3 AKioInf.run功能:启动 AKIO 采集服务示例:AKioInf.run (akioObj)参数:
akioObj:AKIO 实例对象
3.4 AKioInf.stop功能:停止 AKIO 采集服务示例:AKioInf.stop (akioObj)参数:
akioObj:AKIO 实例对象
3.5 AKioInf.set_event_cb功能:设置数据事件回调函数示例:AKioInf.set_event_cb (akioObj, ioevent_handle, akioObj)参数:
akioObj:AKIO 实例对象
ioevent_handle:回调函数(处理采集到的数据)
最后一个参数:回调函数的用户参数
配置注意事项
模块支持限制:当前仅支持 m=”DI”(开关量输入)和 m=”II”(模拟量电流输入),”DO” 和 “UI” 暂不支持。
参数匹配规则:
cntmode 仅在 dtype=”count” 时有效,其他 dtype 配置无效。
dtype=”time” 时,cntmode 的 rise/fall 设置无效(仅统计持续时长)。
偏移计算合理性:
开关量原始值为 0/1,配置 dOffset 时需注意运算结果的合理性(如避免出现负数或超出实际需求的范围)。
模拟量电流输入通常为 4-20mA 对应 0-100% 等量程,偏移运算应符合实际业务需求。
条件上报有效性:
dExt 仅在 pMode={2,0}(变化上报)时生效。
比较条件应与 dOffset 运算后的结果范围匹配(如开关量经运算后不太可能大于 8,则 {{“>”, 8}} 会导致永不触发上报)。
通道索引范围:index 值需在 1-8 之间,超出范围会导致节点创建失败。
- Aprus适配器===工业网关===编程手册
- Aprus适配器===用户编程手册-基础篇
- Aprus适配器===协议采集模块编程手册
- 协议采集模块---Modbus
- 协议采集模块---PPI(西门子)
- 协议采集模块---S7(西门子)
- 协议采集模块---ADIOInf(IO模块)
- 协议采集模块---DLT645(97-07)
- 协议采集模块---FanucCNC(发那科)
- 协议采集模块---FinsTCP(欧姆龙)
- 协议采集模块---Hostlink(欧姆龙)
- 协议采集模块---MitsuCNC(三菱)
- 协议采集模块---MitsuFx(三菱)
- 协议采集模块---MitsuMC(三菱)
- 协议采集模块---modbus3(捷豹空压机)
- 协议采集模块---Modbus服务器
- 协议采集模块---OpcUA
- 协议采集模块---PPI服务器
- 协议采集模块---AKioInf(8AI_8DI)
- Aprus适配器===附加功能编程手册
- Aprus适配器===硬件接口文档
- Aprus控制器===工业控制器===编程手册
- 适配器lua示例
- Aprus常见问题答疑
暂无相关搜索结果!
本文档使用 MinDoc 发布
协议采集模块---AKioInf(8AI_8DI)
文档更新时间: 2025-10-11 16:20 作者:CGL