# APRUS Lua-FanucCNC 配置说明

## 概述

本章主要介绍APRUS Lua-FanucCNC协议的相关配置,该协议适用于支持Fanuc CNC协议的数控设备。APRUS适配器通过Fanuc CNC协议与对接设备通信。客户只需配置`config.lua`即可对支持Fanuc CNC协议的设备进行数据采集。修改`aprus.lua`内容时,请咨询技术人员以避免影响适配器正常工作。因此,本文档重点介绍`config.lua`的内容。

## 1 aprus.lua 配置说明

### 1.1 导入Fanuc CNC协议支持库

```lua
require "fanuccnc"

说明:导入fanuccnc协议支持库

1.2 加载config.lua配置文件

config = require "config"

说明:导入config.lua中的配置信息(下一节介绍config.lua)

1.3 创建fanuccnc对象

fanuccncobj = fanuccnc.new("fanuccnc")

说明:创建fanuccnc对象,返回fanuccncobj 供全局使用

1.4 配置fanuccnc对象接口参数

fanuccnc.config(fanuccncobj, cjson.encode(config.fanuccnc.Device))

说明:配置fanuccnc通信网卡参数

1.5 添加fanuccnc采集节点

fanuccnc_load_collectnodes(fanuccncobj,config.fanuccnc.Node)

说明:添加config.lua中所配置的采集节点

1.6 添加fanuccnc上报变量节点

fanuccnc_load_varnodes(fanuccncobj,config.fanuccnc.Node)

说明:添加config.lua中所配置的变量节点

1.7 运行fanuccnc实例

fanuccnc.run(fanuccncobj)

说明:在mqtt建立连接后 运行fanuccnc实例 即开始采集+运算

1.8 暂停fanuccnc实例

fanuccnc.stop(fanuccncobj)

说明:在mqtt连接断开时 暂停fanuccnc实例

1.9 等待fanuccnc事件

local r = user.waitmsg()

说明:启动事件等待,该接口会返回全局各种事件,包括fanuccnc对象事件

1.10 fanuccnc事件处理

elseif r.from == "fanuccnc" then
    fanuccnc_handle(r.obj, r.name, r.code, r.data)

说明:当接收到fanuccnc对象事件时,调用处理函数fanuccnc_handle
r.obj 即new时所返回的对象
r.name 即new时所配置的对象名称
r.code 事件码 区分改变上报事件 周期上报事件等等
r.data 事件数据

1.11 mqtt数据上报

function fanuccnc_handle(obj, name, code, data)
    mqtt.publish(m1, name, "r", data)
end

说明:若无需特殊处理,则直接将事件数据通过mqtt发送
如需要二次处理可将data展开做分析


2 config.lua配置说明

Demo示例:

Aprus = {
    ipmode = "manual",  --auto/manual/none
    inet_addr = "192.168.110.205",
    netmask = "255.255.255.0",
    luaver = "V00.R",
    devinfo = "fanuccncDev",
},

fanuccnc = {
    Device = {
        ip = "192.168.110.201",
        port = "8193",
        type = "FANUC-SERIES OI-MF PLUS"
    },
    Node = {
        {vartype = 1, cycle = 3, name = "L1"},  --加工数
        {vartype = 2, cycle = 3, name = "L2"},  --运行状态 3:运行中,非3:待机
        {vartype = 3, cycle = 3, name = "L3"},  --报警状态 0:未发生报警,非0:报警
        {vartype = 4, cycle = 3, name = "L4"},  --报警数据
        {vartype = 5, cycle = 3, name = "L5"},  --操作模式
        {vartype = 6, cycle = 3, name = "L6"},  --主轴倍率
        {vartype = 7, cycle = 3, name = "L7"},  --快速进给倍率
        {vartype = 8, cycle = 3, name = "L8"},  --开机时间 单位:秒
        {vartype = 9, cycle = 3, name = "L9"},  --X轴补偿数据
        {vartype = 10, cycle = 5, name = "L10"},  --Y轴补偿数据
        {vartype = 11, cycle = 5, name = "L11"},  --Z轴补偿数据
        {vartype = 12, cycle = 5, name = "L12"},  --X轴DC电压
        {vartype = 13, cycle = 3, name = "L13"},  --Y轴DC电压
        {vartype = 14, cycle = 3, name = "L14"},  --Z轴DC电压
        {vartype = 15, cycle = 3, name = "L15"},  --当前语句号
        {vartype = 16, cycle = 4, name = "L16"},  --刀具长度外形补偿1
        {vartype = 17, cycle = 4, name = "L17"},  --刀具长度外形补偿2
        {vartype = 18, cycle = 4, name = "L18"},  --刀具长度外形补偿3
        {vartype = 19, cycle = 4, name = "L19"},  --刀具长度外形补偿4
        {vartype = 20, cycle = 4, name = "L20"},  --刀具长度外形补偿5
        {vartype = 21, cycle = 4, name = "L21"},  --刀具长度外形补偿6
        {vartype = 22, cycle = 4, name = "L22"},  --刀具长度外形补偿7
        {vartype = 23, cycle = 4, name = "L23"},  --刀具长度外形补偿8
        {vartype = 24, cycle = 4, name = "L24"},  --刀具长度磨损补偿1
        {vartype = 25, cycle = 4, name = "L25"},  --刀具长度磨损补偿2
        {vartype = 26, cycle = 4, name = "L26"},  --刀具长度磨损补偿3
        {vartype = 27, cycle = 4, name = "L27"},  --刀具长度磨损补偿4
        {vartype = 28, cycle = 4, name = "L28"},  --刀具长度磨损补偿5
        {vartype = 29, cycle = 4, name = "L29"},  --刀具长度磨损补偿6
        {vartype = 30, cycle = 4, name = "L30"},  --刀具长度磨损补偿7
        {vartype = 31, cycle = 4, name = "L31"},  --刀具长度磨损补偿8
        {vartype = 32, cycle = 4, name = "L32"},  --刀具半径外形补偿1
        {vartype = 33, cycle = 4, name = "L33"},  --刀具半径外形补偿2
        {vartype = 34, cycle = 4, name = "L34"},  --刀具半径外形补偿3
        {vartype = 35, cycle = 4, name = "L35"},  --刀具半径外形补偿4
        {vartype = 36, cycle = 4, name = "L36"},  --刀具半径外形补偿5
        {vartype = 37, cycle = 4, name = "L37"},  --刀具半径外形补偿6
        {vartype = 38, cycle = 4, name = "L38"},  --刀具半径外形补偿7
        {vartype = 39, cycle = 4, name = "L39"},  --刀具半径外形补偿8
        {vartype = 40, cycle = 4, name = "L40"},  --刀具半径磨损补偿1
        {vartype = 41, cycle = 4, name = "L41"},  --刀具半径磨损补偿2
        {vartype = 42, cycle = 4, name = "L42"},  --刀具半径磨损补偿3
        {vartype = 43, cycle = 4, name = "L43"},  --刀具半径磨损补偿4
        {vartype = 44, cycle = 4, name = "L44"},  --刀具半径磨损补偿5
        {vartype = 45, cycle = 4, name = "L45"},  --刀具半径磨损补偿6
        {vartype = 46, cycle = 4, name = "L46"},  --刀具半径磨损补偿7
        {vartype = 47, cycle = 4, name = "L47"},  --刀具半径磨损补偿8
        {vartype = 48, cycle = 4, name = "L48"},  --运行时间1 单位:毫秒
        {vartype = 49, cycle = 4, name = "L49"},  --运行时间2 单位:分钟
        {vartype = 50, cycle = 4, name = "L50"},  --切削时间1 单位:毫秒
        {vartype = 51, cycle = 4, name = "L51"},  --切削时间2 单位:分钟
        {vartype = 52, cycle = 4, name = "L52"},  --主程序号
        {vartype = 53, cycle = 4, name = "L53"},  --子程序号
        {vartype = 54, cycle = 4, name = "L54"},  --进给轴转速
        {vartype = 55, cycle = 4, name = "L55"},  --主轴转速
        {vartype = 56, cycle = 4, name = "L56"},  --伺服1温度
        {vartype = 57, cycle = 4, name = "L57"},  --伺服2温度
        {vartype = 58, cycle = 4, name = "L58"},  --伺服3温度
        {vartype = 59, cycle = 4, name = "L59"},  --伺服4温度
        {vartype = 60, cycle = 4, name = "L60"},  --主伺服温度
        {vartype = 100, var1 = 48, var2 = 49, cycle = 4, name = "L100"},  --总运行时间 = (运行时间1)/1000 + (运行时间2)*60 单位:秒
        {vartype = 101, var1 = 50, var2 = 51, cycle = 4, name = "L101"},  --总切削时间 = (切削时间1)/1000 + (切削时间2)*60 单位:秒
    },
}

2.1 Aprus: 接口属性

参数 说明
ipmode “auto”/“manual”/“none” ip获取方式
inet_addr “192.168.110.205” Aprus的IP地址
netmask “255.255.255.0” 子网掩码
luaver “MAX.LUA.V032700.R” Aprus的Lua版本信息
devinfo “fanuccncDev” 与Aprus对接设备

2.2 fanuccnc-Device: 接口属性

参数 说明
ip 字符串 设备的ip
port 字符串 设备的端口号
type “FANUC-SERIES OI-MF PLUS” 设备的型号

2.3 fanuccnc-Node: 节点属性

vartype 说明
1 加工数
2 运行状态 3:运行中,非3:待机
3 报警状态 0:未发生报警,非0:报警
4 报警数据
5 操作模式
6 主轴倍率
7 快速进给倍率
8 开机时间(单位:秒)
9 X轴补偿数据
10 Y轴补偿数据
11 Z轴补偿数据
12 X轴DC电压
13 Y轴DC电压
14 Z轴DC电压
15 当前语句号
16~23 刀具长度外形补偿1~8
24~31 刀具长度磨损补偿1~8
32~39 刀具半径外形补偿1~8
40~47 刀具半径磨损补偿1~8
48 运行时间1(单位:毫秒)
49 运行时间2(单位:分钟)
50 切削时间1(单位:毫秒)
51 切削时间2(单位:分钟)
52 主程序号
53 子程序号
54 进给轴转速
55 主轴转速
56~60 伺服1~4温度及主伺服温度
100 总运行时间 = (运行时间1) /1000 +(运行时间2) * 60 单位:秒
101 总切削时间 = (切削时间1)/1000 + (切削时间2)*60 单位:秒
var1 整型:1~60 当vartype>=100时使用。本节点值= (var1节点值/1000) + (var2 节点值*60)
var2 整型:1~60 当vartype>=100时使用。本节点值= (var1节点值/1000) + (var2 节点值*60)
cycle 整型:0~n 单位:秒 精度:0.1
等于0:指定上报类型为改变上报
大于0:指定上报周期
name 字符串 上报名称
offset + - * / ~ 数字 例如:offset=”*10; +5.123; ~1” 表示乘以10 再加5.123 结果保留1位小数
文档更新时间: 2025-01-10 16:08   作者:CGL