# 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_handler.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