维宏LOGO
搜索结果

    二次开发应用案例 | NK260增加自动上下料功能

    本文档以增加自动上下料功能为例,介绍如何使用维宏 NK260 进行功能的二次开发。供加工现场技术人员使用。

    • 产品及型号:维宏 NK260 集成数控系统
    • 目标:定制自动上下料功能

    需求分析

    进行功能定制前,建议先详细分析需求,可以从以下方面展开:

    • 机床动作
    • 端口定义
    • 参数

    以定制上下料功能为例,建议先整理绘制上下料完整动作流程图,并根据流程图定义所需输入输出端口及参数。

    上下料流程图

    详细的上下料动作流程图如下,示例仅供参考。

    上下料动作流程图

    输入端口

    基于上述上下料动作流程图分析,所需的输入端口见下表。

    端口名称 含义
    吸板检测 吸板开始信号输入
    定位桩气缸到位检测 定位桩气缸到位信号输入
    后定位气缸到位检测 后定位气缸到位信号输入
    右定位气缸到位检测 右定位气缸到位信号输入
    推料检测 推料开始信号输入
    吸盘气缸上到位信号 吸盘气缸上到位信号输入
    吸盘气缸下到位信号 吸盘气缸下到位信号输入
    推料气缸上到位信号 推料气缸上到位信号输入
    推料气缸下到位信号 推料气缸下到位信号输入
    后推料推出到位信号 后推料推出到位信号输入
    后推料收回到位信号 后推料收回到位信号输入
    侧推料推出到位信号 侧推料推出到位信号输入
    侧推料收回到位信号 侧推料收回到位信号输入
    上料台有料信号 上料台有料信号输入
    推料气缸下位信号 推料气缸下位信号输入

    输出端口

    基于上述上下料动作流程,所需的输出端口见下表。

    端口名称 含义
    真空吸附 真空吸附开闭输出
    真空破坏 真空破坏开闭输出
    推料气缸 推料气缸开闭输出
    前定位气缸 前定位气缸开闭输出
    侧定位气缸 侧定位气缸开闭输出
    侧推料气缸 侧推料气缸开闭输出
    后推料气缸 后推料气缸开闭输出
    吸盘气缸 吸盘气缸开闭输出
    推料气缸 推料气缸开闭输出
    台面真空电磁阀 台面真空电磁阀开闭输出
    吸盘真空电磁阀 吸盘真空电磁阀开闭输出

    参数

    基于上述上下料动作流程,所需的参数见下表。

    参数名称 含义
    上料起始点Y 上料起始点Y轴坐标
    下料起始点Y 下料起始点Y轴坐标
    上料结束点Y 上料结束点Y轴坐标
    下料结束点Y 下料结束点Y轴坐标
    上料速度 上料时的速度
    下料速度 下料时的速度
    真空吸附延时 真空吸附开启的时间
    真空破坏延时 真空破坏开启的时间
    定位气缸延时 定位气缸开启的时间
    加工结束后是否自动上料 是:加工结束后自动上料,否:加工结束后不执行自动上料
    加工结束后是否自动下料 是:加工结束后自动下料,否:加工结束后不执行自动下料

    操作步骤

    完成需求分析后,可以开始具体的二次开发操作。以 NK260 增加 自动上下料 功能为例,主要操作步骤如下:

    1. 屏蔽端口
    2. 端口存放
    3. 自定义参数
    4. public子程序编程
    5. 绑定K键

    屏蔽端口

    由于 NK260 输入输出端口有限,自动上下料 需要的端口较多,需要屏蔽一些不常用端口功能,自定义新的端口功能。

    屏蔽端口的方式有两种:

    • 推荐:修改端口映射
    • 直接屏蔽

    注意:直接屏蔽可能会出现屏蔽不全,导致软件不能运行或者是操作过程中出现严重问题。若不明确端口使用位置,不推荐使用。

    以 修改端口映射 方式屏蔽端口为例,操作如下:

    1. 用文本工具打开 Config\xaml 文件夹下的 PortConfig.xaml 文件。

    2. 找到可以屏蔽的不常用输入/输出端口,修改相应的 text 端口描述信息,并记录该端口的 tag。

      修改示例:

      输入端口:
      <INFO Director="INPORT" Tag="GIVEMUL1" Name="GX01(EXTRA)" Polarity="1" Display="0" Text="上料台有料信号"/>
      
      输出端口:
      <INFO Director="OUTPORT" Tag="OUT1" Name="GY13(OUT1)" Polarity="0" Display="1" Text="推料气缸"/>
      
    3. 用文本工具打开 config\luplc 文件夹下的 port.lua 文件。

    4. 使用步骤2中已记录的 tag,修改端口映射。操作如下:

      1. 将 tag 改成一个新的 tag 值。

        一般在原有 tag 后加上 1 即可。

      2. 将原来端口的 index 改为无效地址。

        可改为不常用端子板任意端口的 index。通常改为第五块端子板的 index,即113-128之间的值。

      3. 在程序行下方新建一行,要求如下:

        • tag 等于原有的 tag。
        • usage 等于新端口的 usage。
        • index 等于原有的 index。

      修改实例:

      输入端口:
      {tag = "GIVEMUL11", usage = "nc_zplim", description = "无效端口", index = 114},
      {tag = "GIVEMUL1", usage = "in_feed", description = "上料气缸有料信号", index = 55},
      
      输出端口:
      {tag = "OUT11", usage = "nc_fa",  description = "无效端口", index=120},
      {tag = "OUT1", usage = "out_pushCy", description = "推料气缸", index=61},
      

      提示:usage跟tag一一对应,一般会修改usage的内容与端口功能相近,方便理解。为了后期修改方便,可添加 description 信息。

    5. 保存 PortConfig.xaml 文件和 port.lua 文件。

    端口存放

    完成端口屏蔽后,将新端口放入对应的 PLC 寄存器,端口就可以使用了。

    端口存放操作如下:

    1. 用文本工具打开 config\luplc 文件夹下的 luplc.luplc 文件。

    2. 将新输入端口的 usage 加入 module mainplc 下的 I 寄存器。

    3. 将新输出端口的 usage 加入 module mainplc 下的 Q 寄存器。

      操作示例:将 usage = "in_feed" 加入输入端口,usage = "out_pushCy" 加入输出端口。

      module mainplc
      I:nc_fa, nc_fb, nc_fc, nc_fd,in_feed 
      Q:out_Cylinder1, out_Cylinder2,out_Spindle1, out_Spindle2,out_pushCy
      
    4. 保存 luplc.luplc 文件。

    其它端口的存放操作与此类似。

    自定义参数

    NK260 安装文件中提供了一个用户自定义参数配置文件,用户可在该文件中添加最多 20 个自定义参数。自定义参数可以在 public.dat 和 luui-main.lua 配置文件中进行读取,其值只能通过参数列表修改。

    以添加参数 上料速度 为例,操作如下:

    1. 用文本工具打开 Config\xaml 文件夹下的 Userparam.xaml 文件。

    2. 添加自定义参数,格式要求如下:

      <PARAM>
      <ITEM name="USERPARAM1" type="2" value="500" unit="mm/min" multiple="1" text="上料速度"/>
      </PARAM>
      
    3. 保存 Userparam.xaml 文件。

    添加参数命令中,各字段含义如下:

    name : 参数名称。必须严格为USERPARAMn,最后的n为序号。

    type : 参数类型。0:布尔型(是或否),1:整数, 2:浮点数。

    unit : 单位。用于在参数类表中进行显示。

    multiple : 显示放大倍数。参数列表显示时会将参数的值乘于放大倍数。

    Text : 参数描述信息。

    public子程序编程

    在 public.dat 文件中添加自动上下料子程序,实现自动上下料动作。

    为方便书写自动上下料子程序,可将一些检测程序也写成子程序,再通过 M 代码对其进行调用。

    编写自动上下料子程序,操作如下:

    1. 用文本工具打开 public.dat 文件。

      • 中文系统在 CHN\files 文件夹中打开。
      • 英文系统在 ENG\files 文件夹中打开。
    2. 编写相关检测子程序。

      提示: 自定义子程序时,不要使用已经定义过的子程序,避免和已有的子程序冲突。

      以添加“吸盘气缸上到位检测”为例,子程序书写格式如下:

      '吸盘气缸上到位检测
          O3001
               G906 H=#PLC.in_ChunkCylUp P1 L20000
               IF(#SYNTIMEOUT<0) M801 "|W|未检测到吸盘气缸上到位!"; M30;
          M17
      
    3. 使用 G 代码或通过调用 M 代码,完成自动上下料子程序。

    4. 保存 public.dat 文件。

    编程时注意事项:

    • 在编写子程序时,一定不要忘记 M17 结束子程序。
    • 使用 M 代码编写刀路时,M 代码的范围限制在1~999或大于2000,子程序号O与M的关系为:M+200 = O。
    • 0~999 系统级子程序,仅供系统使用,用户只可修改参数或进行调用,不可使用这些程序号自行编写子程序。
    • 1000~9999 用户子程序,用户可以自由编写,自由调用。

    绑定K键

    可选步骤。

    若实际使用过程中,运行M指令的方式不够便捷,可以将运行M代码的指令与 NK260 操作面板上的 K 键绑定。

    绑定 K 键,操作如下:

    1. 用文本工具打开 config\luui 文件夹下的 luui-main.lua 文件。

    2. 在需要绑定的 K 功能键程序块中,写入运行 M 代码的语句。

      以绑定 K1 功能键为例。

      原 K1 功能键程序块:

      --K1功能键
          function nc_k1()
          if led_table[led_table.LED_FUNC_K1]  == '1' then
       	  set_led_state(led_table.LED_FUNC_K1, false)
          else
       	  set_led_state(led_table.LED_FUNC_K1, true)
          end
          return
          end
      

      修改后的 K1 功能键程序块:

      --K1功能键
          function nc_k1()
          if luui.is_kernel_idle()  then
       	luui.run_gcode("M200")  
          return
          end
      
    3. 保存 luui-main.lua 文件即完成了K键绑定。

    成功完成K键绑定后,按下K键,若系统为空闲状态,将运行 M200 子程序。

    至此,您已完成二次开发中增加自动上下料功能的所有操作步骤,可成功在 NK260 中添加自动上下料功能。直接使用 M200 或者 按面板上 K1 键即可控制机床自动上下料。

    本文内容
    回到顶端 Shanghai Weihong Electronic Technology Co., Ltd.