运动控制器的自定义G代码编程应用

G代码简介

ZMC系列运动控制器作为一个多轴运动控制器,部分控制器支持标准的计算机数控(Computerized Numerical Control,检称CNC)功能,实现简易的数控机床控制,同时也可应用于其它一些通过G代码进行定位及路径规划的场合。

G代码(G-code)是最为广泛使用的计算机数控编程语言,主要在计算机辅助制造中用于控制自动机床。G代码指令是数控机床加工的核心,功能代码由字母G和一个两位数整数表示(例如G01、G02)。

G代码有多样性的特点,每个公司的数控机床都有各自定义的G代码和M代码含义,其核心的运动指令虽格式略有区别,但控制原理基本类似。

ZBasic支持G代码形式的SUB过程,支持标准格式的G代码。可根据实际加工需求来自定义G代码功能,形成GSUB形式来解析CNC文件。

支持UG、MasterCam、ArtCAM等多种CAD/CAM软件生成的NC加工代码,可应用于雕铣机、精雕机、钻攻中心和加工中心等机床加工场合。

一、材料准备

1.硬件

A.ZMC406控制器一台。

B.电脑一台。

C.带屏蔽层网线一根。

D.24V直流电源一个。

E.伺服驱动器+电机若干。

F.接线端子与连接线若干。

2.软件

A.ZDevelop V3.10版本控制器编程软件。

B.ZmotionCAD V1.0导图工具。

均从正运动官网www.zmotion.com.cn下载压缩包,解压后直接运行应用程序,无需安装。

二、硬件接线

运动控制器接线:

举例使用运动控制器ZMC406,脉冲轴和总线轴均支持。

A.主电源:

将控制器主电源接线端子上的E+24V端子接入24V直流电源正极,将EGND端子接入24V直流电源负极。

B.以太网EtherNET端口接线:

使用一根网线将控制器的EtherNET端口与电脑的以太网口相连。

C.驱动器与控制器接线:

将脉冲型驱动器按要求接入到脉冲轴接口上,EtherCAT总线驱动器接到总线接口。

运动控制器的自定义G代码编程应用_第1张图片

三、G代码指令

在正运动控制器上,ZBasic支持G代码形式的SUB过程,将需要用到的G代码,在GSUB函数里使用运动指令编写G代码的控制过程。

G代码执行时,将运动参数传入GSUB,GSUB执行控制轴按要求动作。每一个G代码和M代码由用户使用GSUB函数编写其动作。

常见G的代码举例:

运动控制器的自定义G代码编程应用_第2张图片

1.自定义GSUB语法

GSUB label([char1] [,char2]…) '编写G代码功能

END SUB

语法参数:

label:过程名称,不能与现有的关键词冲突

char1:过程调用时传入的字母参数,自动作为LOCAL局部变量

char2:过程调用时传入的字母参数,自动作为LOCAL局部变量

2.读取G代码传入参数

GSUB_PARA(char)

char:GSUB定义时传入的字母参数

3.判断G代码参数是否传入

GSUB_IFPARA(char)

char:GSUB定义时传入的字母参数

返回值:-1-传入,0-未传入

4.G代码示例
G01 X100 Y100 Z100 U100      '调用G01直线插补

END                          '主程序结束

GLOBAL GSUB G01(X,Y,Z,U)     '定义GSUB过程G01

    PRINT  GSUB_PARA(X),GSUB_PARA(Y),GSUB_PARA(Z),GSUB_PARA(U)

    IF coor_rel THEN                      '相对位置

        MOVE(GSUB_PARA(X),GSUB_PARA(Y),GSUB_PARA(Z),GSUB_PARA(U))  

    ELSE                                  '绝对位置

        LOCAL xdis, ydis, zdis, udis

        IF GSUB_IFPARA(X) THEN      '判断是否有参数传入GSUB

            xdis = GSUB_PARA(X)

        ELSE

            xdis = ENDMOVE_BUFFER(0)

        ENDIF

        IF GSUB_IFPARA(Y) THEN

            ydis = GSUB_PARA(Y)

        ELSE

            ydis = ENDMOVE_BUFFER(1)

        ENDIF

        IF GSUB_IFPARA(Z) then

            zdis = GSUB_PARA(Z)

        ELSE

            zdis = ENDMOVE_BUFFER(2)

        ENDIF

        IF GSUB_IFPARA(U) then

            udis = GSUB_PARA(U)

        ELSE

            udis = ENDMOVE_BUFFER(3)

        ENDIF

        MOVEABS(xdis,ydis,zdis,udis)   '绝对位置

    ENDIF

END SUB

四、生成G代码

CAD导图软件是正运动自主研发的一款根据图形导出加工代码的软件,在正运动官方网站下载CAD导图软件,打开软件后,导入图形(支持的文件格式:.dxf、.plt、.ai)。

或打开文件(导图软件生成的.zmo文件),文件加载后,软件自动生成加工数据,若不满意自动加工数据,可自定义设置后再刷新数据,重新生成加工轨迹数据。

数据达到要求后可直接发送数据到控制器运行,或保存数据到磁盘,应用在其他场景。

CAD导图软件根据上方图形生成的G代码文件如下图所示:

运动控制器的自定义G代码编程应用_第3张图片

运动控制器的自定义G代码编程应用_第4张图片

五、G代码应用案例

1.项目架构

本项目应用于6轴G代码加工,主要展示G01直线插补功能,程序主要由四大部分组成。

A.主程序:

编写项目的功能,进行参数定义,轴参数初始化,执行启动,停止,急停等过程。

B.G代码解析程序:

使用GSUB编写G00,G01等G代码的控制器过程,等待被G代码调用时执行。

C.三次文件加载:

搜索U盘或FLASH里的三次文件(.z3p)加载到控制器,启动加工时调用三次文件内的G代码执行。

D.HMI组态界面:

人机交互,在界面上选择盘符里的三次文件,手动控制加工的启停,展示加工过程与控制器的状态等信息。

运动控制器的自定义G代码编程应用_第5张图片

运动控制器的自定义G代码编程应用_第6张图片

2.项目配置

本项目支持6个轴加工,分三个任务。主要用到TABLE寄存器临时存储G代码要显示在触摸屏上的数据,支持连接到仿真器控制器上运行。

A.任务0:

上电自动运行的主任务,用于程序初始化,控制启停等。

B.任务1:

HMI组态界面任务。

C.任务3:

回零任务和G代码加工任务,上电先执行回零,待回零完成才能加工。

◆不同的功能同一个任务号运行的时候,注意不要同时运行,否则会导致任务重复开启,控制器报错。

运动控制器的自定义G代码编程应用_第7张图片

运动控制器的自定义G代码编程应用_第8张图片

3.ZDevelop软件操作演示视频

运动控制器的自定义G代码编程应用

本次,正运动技术运动控制器的自定义G代码编程应用,就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

你可能感兴趣的:(工控,运动控制卡,嵌入式硬件)