APRUS Lua-MitsuFx 配置说明

第一章 概述

1.1 文档说明

  1. 文档概述:APRUS Lua-MitsuFx协议相关配置说明,APRUS 的Lua包含APRUS.luaconfig.lua两个文件。APRUS 通过MitsuFx协议与三菱FX系列PLC通信,然后配置config.lua即可采集需要的数据。
  2. 修改提示:如需修改APRUS.lua文件的内容时,请咨询相关的技术人员,随意修改会导致适配器不能正常工作,所以此文档主要介绍config.lua内容。
  3. 目的:为了让相关人员清楚如何通过对脚本的配置实现对应协议的数据采集,详细介绍config.lua的相关内容,如遇到新的需求或者处理不当的地方联系相关负责人。

1.2 适用对象

本文档的目的读者是所有通过适配器对三菱Fx系列PLC(MitsuFx协议)进行数据采集的人员。

1.3 术语和缩略词

序号 术语名称 其它名称 术语说明
1 APRUS Advanced Programmable Remote Utility Server 高级可编程远程数据适配终端

1.4 参考资料

  • [1].《HslCommunicationDemo》
  • [2].《昆仑通态HMI屏编程软件》

第二章 背景介绍

  1. 数据获取两部分:APRUS 在数据获取时分为数据采集(CollrReg)和数据上报(CollpReg),主要是为了提升采集效率而设定。
  2. 数据上报:将已经采集的数据进行必要的数据处理,然后上报到云端。

第三章 配置说明

3.1 config.lua 配置

config.lua由5大部分组成,分别是ipmodeinet_addrnetmaskLuaverdevinfo。下面将分别介绍这5大部分的功能。

示例

APRUS X={
    ipmode="Manual",    
    inet_addr="192.168.1.234",
    netmask="255.255.255.0",
    Luaver="MAX.Lua.V030300.R",
    devinfo="MitsuFxDev",
},

说明

  1. ipmode: IP获取方式

    ipmode=”Manual”。
    ipmode为APRUS 的ip获取方式,默认为Manual,手动模式,人为填写APRUS的ip。

  2. Inet_addr: APRUS IP

    Inet_addr=”192.168.1.234”。
    Inet_addr为APRUS 的ip,手动填写ip,需要同对接设备保持在相同的网段内,否则无法与对接设备通信。

  3. netmask: 子网掩码

    netmask=”255.255.255.0”,
    netmask为子网掩码,默认为255.255.255.0,与客户设备保持一直,一般情况下均为255.255.255.0不变。

  4. Luaver: 脚本版本号

    Luaver = “MAPRUS.L.V030005.R”。
    Luaver设置当前脚本的版本号,每次更新都需要更改并向上增加版本号;版本号在增加过程中,只需要修改主/子/阶段版本号即可,其他无需修改,主/子/阶段版本号不能为0,一般情况下如果只更新config.Lua的配置无需更新主/子版本号,只要修改阶段版本号就行,版本号一定是要向上叠加,这样才能保证之前的版本有备份,才能自动升级。

  5. devinfo: 设备类型

    devinfo= “MitsuFxDev”。
    devinfo设置设备类型,由于对接的设备类型不同,因此为了方便使用,知道对接的是哪类设备,我们设定了设备类型。

3.1.6 MitsuFx:Device: MitsuFx设备信息

  1. MitsuFx设备信息

    Device={

    Rate=38400,
    DataBit=8,
    StopBit=1,
    Parity="None", -- None/Odd/Even
    format=0, --0 No CR LF  1 Use CR LF
    checksum=1 --0 No CheckSum 1 Use CheckSum

    },
    序号 模块 说明
    1 Rate=38400 波特率
    2 DataBit=8 数据位:5/6/7/8
    3 StopBit=1 停止位:1/2
    4 Parity=”None” 校验位:None/Odd/Even
    5 Format=0 Fx协议格式:0不追加cr lf 1 启用cr lf
    6 Checksum=1 Fx协议:0 不使用校验 1 使用校验

3.1.7 Node节点信息

  1. Node节点信息

    node={
    collect={

     {ID=1, reg="M", addr=0, cnt=32},

    },
    variable={

    {ID=1,reg="M",addr=1,dtype="byte",pMode={1,5},dStyle={"L1_M_1_O1"}, dOffset={{"*",10}},dExt={}},

    },

1.collect:采集配置

collect设置采集配置,采集配置主要有几个参数构成。
采集配置 参数 说明 备注
CollrReg ID 设备ID
reg 寄存器类型 M/S/D/X/Y TC/TR/TN/TS CC/CR/CN/CS
addr 采集地址起始 当寄存器类型不为D时实际地址为 addr*16 当寄存器类型为D时实际地址为 addr
cnt 采集长度 D寄存器最大采集长度64 M/S/D寄存器最大采集长度32

2.variable:上报配置

variable设置上报配置,上报配置时需要把采集到的数据处理成最终实际使用的数据,包括数据处理逻辑,上报逻辑,数据分类等等;由于采集时都是按照双字(short)采集,所以在数据处理的时候要需要注意。
注意:上报配置设置的地址,一定是在采集配置里面有的,否则数据不准确。
采集配置 参数 说明 备注
CollpReg ID 设备ID ID = 1
reg MitsuFx寄存器功能码 寄存器类型 M/S/D/X/Y TC/TR/TN/TS CC/CR/CN/CS
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}} 数据偏移在关于bit处理的时候是不需要的,详见附件二
dBit 位处理 dBit=5 位标识,详见附件三
dExt 附件报文处理 dExt={{0,0},{0,0}} (选填)改变上报条件限制, 当pMode为{2,0}时有效,{“>”, 100} 表示 当原始数据发生改变 并且改变值大于100时上报,{“<”, 100} 表示 当原始数据发生改变 并且改变值小于100时上报,{“=”, 100} 表示 当原始数据发生改变 并且改变值等于100时上报
dStyle KEY dStyle={“L1_3_0_0”} 自行设置
len 字符串长度 len=5 当dtype为bytes时有效,表示字符串长度

3.2 apurs.lua配置

  1. 说明

    function start() 为主流程入口函数

3.2.1 user 全局通用/配置类

  1. 本机网络配置方法

    user.ipconfig(config.APRUSX.ipmode,config.APRUSX.inet_addr,config.APRUSX.netmask)

  2. 消息捕获方法

    msg = user.waitmsg()
    msg.from:消息来源 mqtt-sys 来自mqtt系统消息 mqtt-msg 来自mqtt数据消息 mitsufx 来自mitsufx管理器的消息

  3. 以下为 msg.from为 modbus、opcua、mitsufx、mitsumc、dlt645、s7等协议时通用

    msg.session: 消息会话对象
    msg.code:消息号
    msg.style_L:变量名称
    msg.val_L:变量值
    msg.style_E:事件变量名称
    msg.val_E:事件变量值
    msg.z:条件改变标志位

  4. 以下为 msg.from为 mqtt时使用

    msg.topic:mqtt话题
    msg.payload:mqtt消息数据

  5. 以下为 msg.from为 mqtt-sys时使用

    msg.code:mqtt事件 0: mqtt断开 1: mqtt 连接

  6. 设置Lua版本信息

    user.setLuaver(Luaver)

  7. 设置设备信息

    user.setdevinfo(devinfo)

3.2.2 mqtt对象方法

  1. 创建mqtt对象实例

    mqttobj = mqtt.new()

  2. 配置mqtt连接信息 (选填)

    mqtt.config(mqttobj, “mqtt_1”, “192.168.1.159”, “1883”)
    param 1 mqtt对象实例
    param 2 实例id
    param 3 mqtt服务器ip
    param 4 mqtt 服务器端口
    注:此配置选填,如果不填,则通过gards 服务器自动指定

  3. 话题订阅

    mqtt.subscribe(mqttobj, “p2p”)

  4. 发布消息

    mqtt.publish (mqttobj, reserve, topic, payload)
    reserve: 预留参数,必须有,可填nil。

  5. mqtt运行

    mqtt.run(mqttobj)
    备注:支持多实例,最大可创建3个mqtt对象

3.2.3 MitsuFx 对象方法

  1. 创建MitsuFx对象实例

    mitsufxobj = mitsufx.new()

  2. MitsuFx对象配置

    mitsufx.config(mitsufxobj, rate, databit, stopbit, parity, format, checksum)
    param 1 MitsuFx对象实例
    param 2 fx设备波特率
    param 3 fx设备数据位
    param 4 fx设备停止位
    param 5 fx设备校验
    param 6 fx协议格式设置
    param 7 fx协议校验控制

  3. MitsuFx添加采集节点

    mitsufx.add_collectnode(mitsufxobj, ID, reg, addr, cnt)
    param 1 MitsuFx对象实例
    param 2 寄存器操作码
    param 3 寄存器地址
    param 4 采集长度

  4. MitsuFx添加变量节点

    mitsufx.add_collectnode (mitsufxobj, ID, reg, addr, dtype, dBit, len, pMode, dStyle, dOffset, dExt)
    param 1 MitsuFx对象实例
    param 2 设备ID
    param 3 寄存器类型
    param 4 寄存器地址
    param 5 变量类型
    param 6 位偏移 (只有当数据类型为bit时有效 但此字段必须有)
    param 7 变量长度 (只有当数据类型为bytes时有效 但此字段必须有)
    param 8 采集上报模式
    param 9 采集上报名称
    param 10 数据补偿计算
    param 11 改变上报条件限制

  5. Mitsufx向被指定节点写入数据

    mitsufx.write(mitsufxobj, style, val)
    param 1 MitsuFx对象实例
    param 2 变量名称
    param 3 变量值

  6. Mitsufx 实例启动

    mitsufx.run(mitsufxobj)

  7. Mitsufx 实例停止

    mitsufx.stop(mitsufxobj)
    备注 : mitsufx 仅支持单实例模式

文档更新时间: 2025-01-10 17:17   作者:CGL