可执行G代码的三轴运动控制器的研制运动伺服工业自动化控制247.docx
《可执行G代码的三轴运动控制器的研制运动伺服工业自动化控制247.docx》由会员分享,可在线阅读,更多相关《可执行G代码的三轴运动控制器的研制运动伺服工业自动化控制247.docx(10页珍藏版)》请在冰豆网上搜索。
![可执行G代码的三轴运动控制器的研制运动伺服工业自动化控制247.docx](https://file1.bdocx.com/fileroot1/2023-2/1/776eaba9-fbc9-425d-9115-229b5ef08fb0/776eaba9-fbc9-425d-9115-229b5ef08fb01.gif)
可执行G代码的三轴运动控制器的研制运动伺服工业自动化控制247
可执行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(片内资源丰富:
AVRATmega128单片机上有128KFlash、4KEEPROM、4KRAM、53个I/O,32个通用工作寄存器,以及定时/计数器、模拟比较器、AD转换器、步串行口等资源若干。
3(编程、下载程序方便:
有JTAG和ISP接口。
4(工作可靠、安全:
工作电压范围宽,4.5,5.5V;抗干扰能力强;程序存储器具有多重密码保护锁功能。
AVR运动控制器原理图如图1所示:
图1AVR运动控制器硬件原理图
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
语法:
G00XLYmZn
其中XL可选。
表示X轴从当前位置移动L毫米。
Ym可选。
表示Y轴从当前位置移动m毫米。
Zn可选。
表示Z轴从当前位置移动n毫米。
说明:
该指令使所选电机以固定速度的移动,启、停过程有加减速控制。
直线插补指令G01
语法:
G01XLYmZnFs
其中Fs可选。
若不选Fs,则直线的速度和前面指令中设定的速度相同。
顺圆插补指令G02
语法:
G02XmYnRLFs
其中XmYn表示圆弧终点相对于起点的坐标(m,n)。
RL表示圆弧半径为L毫米。
也可以在X,Z和Y,Z坐标里画顺园。
格式为:
G02XmZnRLFs
G02YmZnRLFs
逆圆插补指令G03
语法:
G03XmYnRLFs
G03XmZnRLFs
G03YmZnRLFs
延时指令G04
语法:
G04Pt
其中Pt必需。
t为延时长度,单位为秒。
(Pause)
等待电机停止指令G05
语法:
G05XYZ
其中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
语法:
G10XYZ
其中X、Y、Z可选。
表示X轴,或Y轴,或Z轴回原点。
说明:
该指令使平台以固定速度的返回原点。
移至曲线起点指令G12
语法:
G12
说明:
该指令使平台以固定速度移至人工设定的曲线起点。
2)辅助功能M指令
程序结束指令M02
语法:
M02
说明:
该指令表示程序结束,控制器退出自动控制状态。
开外设指令M80
语法:
M80Un
其中Un必需。
n为外设编号。
(Unit)
关外设指令M81
语法:
M81Un
外设开跳转指令M95
语法:
M95UiDm
其中Ui必需。
Ui表示第i号输入设备。
Dm必需。
m为程序跳转目的指令序号。
(Destination)
说明:
该指令让控制器查询输入设备Ri的状态,若Ri为开,程序跳转至序号为Nm的指令处;否则,控制器继续往下执行程序。
Dm的书写格式必须和目的指令序号的书写格式相同。
外设关跳转指令M96
语法:
M96UiDm
说明:
和M96类似,只是开改为关。
程序循环跳转指令M90
语法:
M90DmCnLx
其中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点胶轨迹曲线
程序代码如下:
N010M96R1D010等待“开始”按键按下
N020M80U1夹紧工装
N030G10XYZ回原点
N040G05XYZ等待X、Y、Z电机停止
N050G12移动至曲线起点
N060G05XY等待X,Y电机停止
N070G00Z10针头降下10mm
N080M80U2开始点胶
N090G04P0.2延时0.2秒
N100G01X0Y5F80G08NO.0直线插补,带加速
N110G01X10Y20NO.1直线插补,速度F=80mm/s
N120G02X30Y0R20NO.2圆弧插补,速度F=80mm/s
N130G01X10Y-20NO.3直线插补,速度F=80mm/s
N140G01X0Y-5G09NO.4直线插补,带减速
N150M81U2停止点胶
N160G00Z-10针头提起10mm
N170M81U1松开工装
N180M02程序结束
4、AVR运动控制器软件结构及算法
图4为AVR运动控制器软件结构图。
图4AVR运动控制器软件结构图
1)电机运动控制算法
电机的速度控制:
采用梯形速度曲线控制电机的加、减速,速度由查表法确定。
三维直线插补:
采用积分法进行直线插补,该算法在同一时刻,三个轴可以同时运动,所以,该算法运动较平稳,且误差小于半步。
[3]
二维圆弧插补:
采用单步跟踪法进行圆弧插补,该算法不需要乘法运算,只用加、减法就可完成圆弧插补运算,使圆弧插补运动速度和直线插补速度一样快。
[3]
实测AVR运动控制器,其控制步进电机运动的脉冲频率最小为2Hz,最大为13889Hz;步进电机驱动器设为4细分,即电机的分辨率为800步/转时,可控制步进电机的最大转速为1040rpm。
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(片内资源丰富:
AVRATmega128单片机上有128KFlash、4KEEPROM、4KRAM、53个I/O,32个通用工作寄存器,以及定时/计数器、模拟比较器、AD转换器、步串行口等资源若干。
3(编程、下载程序方便:
有JTAG和ISP接口。
4(工作可靠、安全:
工作电压范围宽,4.5,5.5V;抗干扰能力强;程序存储器具有多重密码保护锁功能。
AVR运动控制器原理图如图1所示:
图1AVR运动控制器硬件原理图
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口下载至控制器。