admin 管理员组

文章数量: 887021


2024年1月24日发(作者:c高级教程讲解)

可执行G代码的三轴运动控制器的研制_运动伺服_工业自动化控制_247

可执行G代码的三轴运动控制器的研制_运动伺服_工业自

动化控制

1、引言

近年来,国外、国内多家公司先后推出了独立工作式运动控制器,这些控制器有显示屏、有按键、不需要PC机就可以工作;其核心芯片有各种形式,如:ARM、DSP以及FPGA和专用芯片,并配有函数库或其自己制定的指令集。客户使用函数库编写程序或使用专用的指令集编成,都比较麻烦。

国内进行自动化设备设计、维护的工程师,多数为机电类专业人员,他们对数控机床及数控指令十分熟悉。针对这一特点,作者在AVR单片机运动控制器上,以数控加工指令代码(G指令、M指令)为基础,充分利用G代码运动控制的优势,并增加了I/O控制指令、条件判断和循环控制指令,使独立式运动控制器的指令使用起来十分简单、方便。

2、AVR运动控制器硬件系统

为了设计出性价比高的硬件,选用了AVR单片机为硬件系统的核心芯片。AVR单片机是ATMEL公司在单片机市场竞争白热化的形式下,发挥其FLASH存储器技术特长,并吸取了PIC及8051单片机的优点,于1997年由A先生和V先生采用RISC结构,共同研发出AVR单片机。AVR单片机有以下主要优点[1]:

1(速度快:在相同时钟频率下比8051快12倍;AVR最大时钟频率为16MHz。

2(片内资源丰富:AVR ATmega128单片机上有128K Flash、4K EEPROM、4K

RAM、53个I/O,32个通用工作寄存器,以及定时/计数器、模拟比较器、AD转换器、步串行口等资源若干。

3(编程、下载程序方便:有JTAG和ISP接口。

4(工作可靠、安全:工作电压范围宽,4.5,5.5V;抗干扰能力强;程序存储器具有多重密码保护锁功能。

AVR运动控制器原理图如图1所示:

图1 AVR运动控制器硬件原理图

J6、J7、J8为三个运动轴的控制端口,每个端口上都有一组控制步进电机的脉冲和方向信号,运动轴的原点信号和前、后限位信号。

J4为8路数字输出信号端口,为提高系统的抗干扰能力,每一路信号都采用了光电隔离电路;J5为8路数字输入信号端口,每一路信号不但采用了光电隔离电路,而且还加入了RC低通滤波器。

J3是按键端口及LCD端口。

J2是RS232通讯端口,J1是JTAG端口。

图2为该控制器应用于点胶机的面板图。其上有一个4行20列文本显示屏,有25个按键。

图2 点胶机控制面板

3、运动控制指令集

本运动控制器的指令集采用ISO数控代码,符合ISO-1056-1975E标准,该标准在数控程序编制中已被广泛使用,它通过G、M等指令代码,描述加工工艺过程和数控机床的运动特征[2]。I/O控制、条件判断和循环控制等指令是根据数控代码的标准自定义的指令。目前共有16条数控代码,在此基础上还可以继续扩充。

在编程中全部采用增量坐标系,即运动轨迹的终点坐标以其起点计量,坐标的单位为毫米。

程序可以在控制器面板上输入并编辑;也可以在PC机上编写好后,通过RS232口下载至控制器。

1)准备功能G指令:

点定位指令G00

语法: G00 XL Ym Zn

其中 XL 可选。表示X轴从当前位置移动L毫米。

Ym 可选。表示Y轴从当前位置移动m毫米。

Zn 可选。表示Z轴从当前位置移动n毫米。

说明:该指令使所选电机以固定速度的移动,启、停过程有加减速控制。

直线插补指令G01

语法: G01 XL Ym Zn Fs

其中 Fs 可选。若不选Fs,则直线的速度和前面指令中设定的速度相同。

顺圆插补指令G02

语法: G02 Xm Yn RL Fs

其中 Xm Yn 表示圆弧终点相对于起点的坐标(m,n)。

RL 表示圆弧半径为L毫米。

也可以在X,Z和Y,Z坐标里画顺园。格式为:

G02 Xm Zn RL Fs

G02 Ym Zn RL Fs

逆圆插补指令G03

语法: G03 Xm Yn RL Fs

G03 Xm Zn RL Fs

G03 Ym Zn RL Fs

延时指令G04

语法: G04 Pt

其中 Pt必需。t为延时长度,单位为秒。(Pause)

等待电机停止指令G05

语法: G05 X Y Z

其中 X、Y、Z可选。表示等待X轴或Y轴或Z轴电机停止。

说明:该指令让控制器不断查询电机的状态,等待指定的电机停止。该指令

一般在G00、G10和G12之后,或G01、G02和G03之前使用。

设置该指令的目的是:在G00、G10和G12指令执行的时候,控制器还可以

进行I/O控制。

加速指令G08

语法: G08

说明:该指令不能单独使用,只能写在G01、G02、G03代码的尾部,表示电

机开始运动时有加速过程。

减速指令G09

语法: G09

说明:该指令不能单独使用,只能写在G01、G02、G03代码的尾部,表示电

机结束运动时有减速过程。

回原点指令G10

语法: G10 X Y Z

其中 X、Y、Z 可选。表示X轴,或Y轴,或Z轴回原点。

说明:该指令使平台以固定速度的返回原点。

移至曲线起点指令G12

语法: G12

说明:该指令使平台以固定速度移至人工设定的曲线起点。

2)辅助功能M指令

程序结束指令M02

语法: M02

说明:该指令表示程序结束,控制器退出自动控制状态。

开外设指令M80

语法: M80 Un

其中 Un必需。n为外设编号。(Unit)

关外设指令M81

语法: M81 Un

外设开跳转指令M95

语法: M95 Ui Dm

其中 Ui必需。Ui 表示第i号输入设备。

Dm必需。m为程序跳转目的指令序号。(Destination)

说明:该指令让控制器查询输入设备Ri的状态,若Ri为开,程序跳转至序号为Nm的指令处;否则,控制器继续往下执行程序。Dm的书写格式必须和目的指令序号的书写格式相同。

外设关跳转指令M96

语法: M96 Ui Dm

说明:和M96类似,只是开改为关。

程序循环跳转指令M90

语法: M90 Dm Cn Lx

其中 Dm 必需。m为程序跳转目的指令的序号。m的书写格式必须和目的指

令序号的书写格式相同。(Destination)

Cn 可选。n为从序号为Nm的指令到M90前一条指令段的循环次数。(Count)

Lx 可选。表示不同的循环跳转指令,x为0或1。(Loop)

3)数控程序格式

一个完整的数控程序由若干行指令组成。每行指令以N加序号开头;一行指令结束必须回车换行。一行只能写一个指令。程序的最后一行指令一定要是M02。

指令序号大小不限,序号可以有间隔,如:N010,N020,N030„,以便于修改程序时,程序中添加指令。

在PC机上编写程序时,程序中可以加注释。注释以 ’ 符号开头。既可以加在指令后也可以单独写一行;程序中允许有空行。但在控制器上不显示注释和空行。

4)程序示例

点胶机上,X、Y轴控制点胶针头的运动,Z轴控制点胶针头的上下;电磁阀U1控制工装加紧、松开,电磁阀U2控制点胶针管加压的开关;R1为“开始”按钮。点胶曲线如下图3红线所示,灰线为起点定位的轨迹。

图3 点胶轨迹曲线

程序代码如下:

N010 M96 R1 D010 等待“开始”按键按下

N020 M80 U1 夹紧工装

N030 G10 X Y Z 回原点

N040 G05 X Y Z 等待X、Y、Z电机停止

N050 G12 移动至曲线起点

N060 G05 X Y 等待 X ,Y 电机停止

N070 G00 Z10 针头降下10mm

N080 M80 U2 开始点胶

N090 G04 P0.2 延时0.2秒

N100 G01 X0 Y5 F80 G08 NO. 0 直线插补,带加速

N110 G01 X10 Y20 NO. 1 直线插补,速度F=80 mm/s

N120 G02 X30 Y0 R20 NO. 2 圆弧插补,速度F=80 mm/s

N130 G01 X10 Y-20 NO. 3 直线插补,速度F=80 mm/s

N140 G01 X0 Y-5 G09 NO. 4 直线插补,带减速

N150 M81 U2 停止点胶

N160 G00 Z-10 针头提起10mm

N170 M81 U1 松开工装

N180 M02 程序结束

4、AVR运动控制器软件结构及算法

图4为AVR运动控制器软件结构图。

图4 AVR运动控制器软件结构图

1)电机运动控制算法

电机的速度控制:采用梯形速度曲线控制电机的加、减速,速度由查表法确定。

三维直线插补:采用积分法进行直线插补,该算法在同一时刻,三个轴可以同时运动,所以,该算法运动较平稳,且误差小于半步。[3]

二维圆弧插补:采用单步跟踪法进行圆弧插补,该算法不需要乘法运算,只用加、减法就可完成圆弧插补运算,使圆弧插补运动速度和直线插补速度一样快。[3]

实测AVR运动控制器,其控制步进电机运动的脉冲频率最小为2Hz,最大为13889Hz;步进电机驱动器设为4细分,即电机的分辨率为800步/转时,可控制步进电机的最大转速为1040 rpm。

2)LCD编辑功能

为在LCD上方便的编辑程序,软件可实现按键功能切换、滚动浏览、插入、删除等功能:

按键状态切换:按[Shift]键,光标在“_”和“?”之间切换。

光标在“_”状态:输入数字、光标移动、删除(Del);

光标在“?”状态:输入字母、Space(空格)。

光标上下移动:按 [ ? ]、[ ? ] 键,控制光标上下移动;当光标在第一行或第四行时,可以控制屏幕向上或向下翻滚一行,以便于浏览。

光标左右移动:按 [?]、[?] 键,控制光标左右移动;当光标移动第1行第

1列处,不能再左移;当光标移动第4行最后一列处,不能再右移。

回车换行: 按[Ent]键,回车换行。如果光标后面有字符,将被删除。

插入行: 光标在“?”状态下,当光标在第1列时,按[Ent]键,将在此行前插入一行。

删除字符、行:按[Del]键一次,将光标前的字符删除一个;当光标在第1列时,按[Del]键,将此行删除。

3)运动控制指令的编译

在执行程序之前,要进行一次预处理,将程序的行号、指令中的十进制数据由ACSII码转换成16进制的数值;再将每行的行号和其启始地址存入RAM中的一个2维数组,以便于执行跳转指令。

在执行指令时,利用G代码和M代码的指令号进行散转控制;只有M02和其它M指令号相差较大,要特殊处理一下。

1、引言

近年来,国外、国内多家公司先后推出了独立工作式运动控制器,这些控制器有显示屏、有按键、不需要PC机就可以工作;其核心芯片有各种形式,如:ARM、DSP以及FPGA和专用芯片,并配有函数库或其自己制定的指令集。客户使用函数库编写程序或使用专用的指令集编成,都比较麻烦。

国内进行自动化设备设计、维护的工程师,多数为机电类专业人员,他们对数控机床及数控指令十分熟悉。针对这一特点,作者在AVR单片机运动控制器上,以数控加工指令代码(G指令、M指令)为基础,充分利用G代码运动控制的优势,并增加了I/O控制指令、条件判断和循环控制指令,使独立式运动控制器的指令使用起来十分简单、方便。

2、AVR运动控制器硬件系统

为了设计出性价比高的硬件,选用了AVR单片机为硬件系统的核心芯片。AVR单片机是ATMEL公司在单片机市场竞争白热化的形式下,发挥其FLASH存储器技术特长,并吸取了PIC及8051单片机的优点,于1997年由A先生和V先生采用RISC结构,共同研发出AVR单片机。AVR单片机有以下主要优点[1]:

1(速度快:在相同时钟频率下比8051快12倍;AVR最大时钟频率为16MHz。

2(片内资源丰富:AVR ATmega128单片机上有128K Flash、4K EEPROM、4K

RAM、53个I/O,32个通用工作寄存器,以及定时/计数器、模拟比较器、AD转换器、步串行口等资源若干。

3(编程、下载程序方便:有JTAG和ISP接口。

4(工作可靠、安全:工作电压范围宽,4.5,5.5V;抗干扰能力强;程序存储器具有多重密码保护锁功能。

AVR运动控制器原理图如图1所示:

图1 AVR运动控制器硬件原理图

J6、J7、J8为三个运动轴的控制端口,每个端口上都有一组控制步进电机的脉冲和方向信号,运动轴的原点信号和前、后限位信号。

J4为8路数字输出信号端口,为提高系统的抗干扰能力,每一路信号都采用了光电隔离电路;J5为8路数字输入信号端口,每一路信号不但采用了光电隔离电路,而且还加入了RC低通滤波器。

J3是按键端口及LCD端口。

J2是RS232通讯端口,J1是JTAG端口。

图2为该控制器应用于点胶机的面板图。其上有一个4行20列文本显示屏,有25个按键。

图2 点胶机控制面板

3、运动控制指令集

本运动控制器的指令集采用ISO数控代码,符合ISO-1056-1975E标准,该标准在数控程序编制中已被广泛使用,它通过G、M等指令代码,描述加工工艺过程和数控机床的运动特征[2]。I/O控制、条件判断和循环控制等指令是根据数控代码的标准自定义的指令。目前共有16条数控代码,在此基础上还可以继续扩充。

在编程中全部采用增量坐标系,即运动轨迹的终点坐标以其起点计量,坐标的单位为毫米。

程序可以在控制器面板上输入并编辑;也可以在PC机上编写好后,通过RS232口下载至控制器。


本文标签: 指令 运动 控制器