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多次重复调用,否则会写入大量相同日志。

相关文章

NK260二次开发常用修改说明(二)

NK260二次开发常用修改说明(三)

维宏股份

维宏云