NK260二次开发常用修改说明(一)
《NK260二次开发常用修改说明》系列文档共有三篇,主要针对版本号为NK260_XXX_WOOD的维宏木工产品线软件,指导在NK260二次开发过程中常见的修改和功能定制。
本文将指导您完成以下NK260二次开发任务:
- 修改端口定义
- 增加扩展端子板
- 设置LED灯关联输出端口
- 自定义界面端口指示
- 自定义系统消息
修改端口定义
修改NK260软件“端口”界面中各输入、输出端口的定义。需修改以下文件及内容:
- port.lua文件中的“usage”,即端口定义。
- PortConfigCHN.xml文件中的“Text”,即端口描述。
- luplc.luplc文件中的声明。
注意事项
自定义端口名称(usage)时,需注意:
- 定义必须语意明确
- 英文描述简洁明了
- 以in_开头表示输入
- 以out_开头表示输出
增加扩展端子板
NK260软件最多支持7块端子板,即1块主端子板和6块扩展端子板。扩展端子板支持10个输入8个输出。
修改说明
若需要增加扩展端子板,需要修改3个文件:
- Config\luplc\port.lua:端口定义文件。
- Config\xaml\ PortConfigCHN.xaml:端口中文描述文件,即“诊断”页面端口名称的描述文件。
- Config\luplc\luplc.luplc:luplc端口注册文件。
修改示例
按以下步骤,增加第一块端子板。
步骤一:修改输入、输出端口。
修改文件及内容:
port.lua文件中的“usage”标签值,即输入、输出端口的定义。
请以“in_”开头代表输入端口;以“out_”开头代表输入端口。
PortConfigCHN.xaml文件中“Text”标签值,即端口描述。
步骤二:修改端口注册文件luplc.luplc** **。
修改文件及内容:
文件标签说明
各文件中标签含义及修改说明如下:
port.lua文件
标签 含义 修改说明 tag - - usage 端口名称。 建议使用in_开头表示输入端口;out_开头表示输出端口。 description - 无意义,可以不修改。 index 端口的物理地址。 不可修改! PortConfigCHN.xaml文件
标签 含义 修改说明 Director 输入输出。 必须与port.lua文件中的“tag”一一对应。 Tag - - Name 端子板丝印名称。 - Polarity 端口极性。 - Dispaly 是否在“诊断”页面显示。 - Text 端口描述。 - luplc.luplc文件
I、O分别代表输入端口和输出端口。
I和Q注册的端口数量不能过多,故无用的端口注册应删除。
端子板输入输出物理地址定义
各端子板的输入输出物理地址定义见下表。
物理地址 | 输入 | 输出 |
---|---|---|
第一块端子板(主端子板) | 49-64 | 49-64 |
第二块端子板 | 65-74 | 65-72 |
第三块端子板 | 81-90 | 81-88 |
第四块端子板 | 97-106 | 97-104 |
第五块端子板 | 113-122 | 113-120 |
第六块端子板 | 129-138 | 129-136 |
第七块端子板 | 145-154 | 145-152 |
设置LED灯关联输出端口
一般情况下LED的显示和输出端口相互关联:
输出端口打开,LED亮;
输出端口关闭,LED灭。
set_port_indicate_led()函数
LED的显示是在set_port_indicate_led()函数中定义完成。其中,“usage”是端口名称,“led”是面板LED名称。
if luui.get_outport(usage) then
set_led_state(led, true)
else
set_led_state(led, false)
end
function set_led(usage, led)
if luui.get_outport(usage) then
set_led_state(led, true)
else
set_led_state(led, false)
end
end
修改示例
下为面板LED控制代码修改示例。
--面板LED灯控制
function set_port_indicate_led()
if luui.get_outport("nc_spin") then
set_led_state(led_table.LED_AXIS_PON, true)
set_led_state(led_table.LED_AXIS_OFF, false)
set_led_state(led_table.LED_AXIS_NON, false)
else
set_led_state(led_table.LED_AXIS_PON, false)
set_led_state(led_table.LED_AXIS_OFF, true)
end
set_led("nc_out2", led_table.LED_HUFF)
set_led("nc_lamp", led_table.LED_LAMP)
set_led("nc_oil", led_table.LED_LUBRICATE_OIL)
set_led("nc_cool", led_table.LED_WORKPIECE_COOL)
end
常用LED名称表
LED名称 | 含义 |
---|---|
led_table.LED_AXIS_NON | 主轴反转LED |
led_table.LED_AXIS_OFF | 主轴启动LED |
led_table.LED_SCRAP_NON | K5键LED |
led_table.LED_FUNC_K4 | K4键LED |
led_table.LED_FUNC_K3 | K3键LED |
led_table.LED_FUNC_K2 | K2键LED |
led_table.LED_FUNC_K1 | K1键LED |
led_table.LED_SCRAP_PON | 松夹刀LED |
led_table.LED_TOOLPAN_NON | 刀盘反转LED |
led_table.LED_TOOLPAN_PON | 刀盘正转LED |
led_table.LED_WORKPIECE_COOL | 切削液LED |
led_table.LED_LUBRICATE_OIL | 润滑油LED |
led_table.LED_LAMP | 照明灯LED |
led_table.LED_HUFF | 吹气LED |
自定义界面端口指示灯
NK260主页面、手动页面、回机械原点页面提供4个输出端口指示灯,指示端口的输出状态。通过修改luui-cfg.lua文件,使其和端口关联。
luui-cfg.lua文件
修改示例
修改要求:“自动”页面第一个指示灯,中文描述为“主轴”,英文描述为“Spindle”,端口的usage值为“nc_spin”。
auto_icon1 = "主轴:Spindle:nc_spin"
自定义系统消息
NK260按优先级从低到高提供T、D、P、M、W五种消息类别,优先级高的消息会覆盖优先级低的消息。
其中,需要特别注意的是:
- P类消息作为开启换刀提示,不能使用。
- M和W除了显示之外,还将消息写入日志。
- 如果指定非五种消息之外的其他类别,默认使用M类别。
定义消息类别
在public文件中使用M801
M801 "|D|主轴回固定点";
在luui-main文件中使用prompt_message
s_szAirAlm = {"|W|气压报警!", "|W|Air alarm!"};
luui.prompt_message(s_szAirAlm[luui.get_language_version()],false,true)
显示永久性黄色提示
当收到一个报警输入信号以后,要求报警提示并且提示信息永久存在,直到手动按Esc复位或调用reset_prompt函数复位。
在public文件中使用M801
s_szAirAlm = {"|W|气压报警!", "|W|Air alarm!"};
在luui-main文件中使用prompt_message
luui.prompt_message(s_szAirAlm[luui.get_language_version()],false,true)
提示: 此处消息调用中,第2个参数必须为false;第3个参数必须为true。
注意: 针对M和W类别消息,必须防止prompt_message多次重复调用,否则会写入大量相同日志。