资源描述
GALIL 数字运动控制器
应用编程指南(V1.0)
目录:
一、概述 3
二、程序的编辑、存储、下载及执行 3
1、程序编辑 3
2、程序存储 3
3、下载程序 3
4、执行程序 4
三、基于GALIL两字符命令集的编程应用举例 4
(一)、GALIL两字符命令集 4
(二)、运动编程 9
1、概述 9
2、命令格式 9
3、运动命令 10
4、运动编程 10
1)、PTP定位 10
2)、JOG方式 10
3)、2D直线和圆弧插补 11
4)、进给率修调 12
5)、直线插补 14
6)、阵列 15
7)、电子齿轮 16
8)、比例运动 17
9)、控制变量 18
10)、I/O接口 18
11)、多任务 19
12)记录数据方式 20
13)AUTOCAD图形文件.DXF转化成.DMC程序 21
(三)、应用编程举例 24
四、基于VB语言的编程及其ActiveX控件 31(一)、概述 31
(二)、在VB开发界面下添加ActiveX控件 31
(三)、VB语言的编程举例 32
五、基于VC/C/C++语言的编程及其动态链接库(DLLs) 34
附录: 35
一、 概述
DMC数字运动控制器是一种智能型控制器,内部有32位高速处理器、Flash存储器和动态RAM,能够进行高速插补运算、数据处理、I/O事件管理、存储用户程序、参数、变量、数组阵列;GALIL公司为广大用户提供了多种编程应用方法:(1)、基于两字符命令集的编程应用;(2)、基于VB语言的编程及其ActiveX控件;(3)基于VC/C/C++语言的编程及其动态链接库DLLS。
以上几种方法可以在当前所有版本的DOS、Windows、Linux、NT、LabView环境下运行。对于一些高级应用,还提供了AUTOCAD生成的.DXF文档自动转换软件,将.DXF格式文档转换成运动控制命令,控制各坐标轴作轨迹运动;也可以将.PLT格式的文档转换成运动控制命令;G code TO DMC软件工具是将G代码转换成运动控制命令。另外,还提供了电子凸轮生成软件工具ECAM,只要简单的将所要求的参数输入表格内即可自动生成ECAM运动控制程序。
二、 程序的编辑、存储、下载及执行
1、 程序编辑
当设备需要进行复杂的运动时,就需要根据所运动的轨迹来编写程序。编写程序有一个编辑窗口,在Terminal的界面下,有两种方法可以进入编辑窗口。一是用鼠标点击Editor按钮,立即出现编辑窗口;二是在Terminal下输入命令“ED”(注:命令必须用大写的英文字母,否则为无效的命令)也可进入编辑页面。编写程序时,一定要注意,程序开头要有标号,标号是以#XXXXXX表示,XXXXXX中第一位必须是大写的英文
字母,后面的五位既可以是英文字母,也可以是数字,或是两者的结合。但不能超过六位,如果超过了六位,程序只认前六位。另外,在一个程序中不能出现两个相同的程序标号(例如程序中的子程序),否则程序出错。
另外,程序结尾必须有结束命令“EN”,否则程序运行时出错。程序的命令详见后面的命令集;编程格式见后面的应用编程举例。
2、 程序存储
当程序编写完毕以后,为了防止误操作造成程序丢失或其他人员修改编写的程序,编程人员都需要保存编写的程序。点击“File”菜单,其下拉菜单中有“Save”,点击出现一窗口,输入要保存的文件名,点击“保存”,程序就保存在计算机的硬盘上,其后缀名为.DMC。
3、 下载程序
程序编写完毕以后,必须把程序下载到数字运动控制器中方可运行程序。其下载方法是:点击“File”菜单,其下拉菜单中有“Download File”,点击出现计算机忙的图标,稍等几分钟,当忙的图标变成可以运行的图标
以后,程序就下载完毕,关闭编辑窗口,退回到“Terminal”窗口。在“Terminal”窗口下输入命令“BP”把程序烧录到控制器的Flash中,防止突然停电或执行命令“RS”,造成程序丢失。可以用命令“LS”读控制器中的程序是不是所编写的程序。
4、 执行程序
一切都准备完毕(GALIL与伺服的接线都已完成,I/O触发信号所需要的接线都接好,例如输入/输出点的公共电源)假设程序的标号为#A,要执行该程序,输入命令“XQ#A”,所编写的程序如果没有错误,程序就开始执行。否则就会出现程序的某一命令处出现错误,这时就需要根据报警的提示检查程序。检查无误后,重新执行程序。
当需要设备一上电,程序就执行。只要把程序的标号编写成“#AUTO”即可。只要这个程序已经烧录到控制器中,控制器一上电或执行命令“RS”以后,该程序就开始执行。
三、 基于GALIL两字符命令集的编程应用举例
(一) 、GALIL两字符命令集
以下的命令集只是简单的介绍,要了解命令的格式、详细的介绍以及命令的定义范围。见GALIL的各种型号的“Command Reference”。
运 动 命 令
AB
Abort motion
急停
AC
Acceleration
设定加速度
BG
Begin motion
开始运动
CD
Contour data
轮廓数据(连续路径之位移增量)
CM
Contour mode
轮廓方式(连续路径方式)
CR
Circle
圆弧运动(半径、角度之设定)
CS
Clear motion sequence
清除矢量程序
DC
Deceleration
减速度
DT
Contour time interval Delta, Time
取样时间间隔(轮廓方式)
EA
Select Master cam axis
选定凸轮运动的主动轴
EB
Enable cam mode
激活凸轮运动方式
EC
ECAM Counter
设定凸轮原点
EG
Start cam motion (ECAM GO, Engage)
开始凸轮运动
EM
Modulus for CAM (CAM cycles)
从动轴的位移增量(凸轮运动)
EP
Master counts per table entry
主动轴的起点及增量(凸轮运动)
EQ
Stop cam motion
停止凸轮运动
ES
Ellipse scaling
椭圆运动
ET
Cam table entry
从动轴位移函数(凸轮运动)
FE
Find edge
寻边
FI
Find index
寻找原点
GA
Master axis for gearing
设定主动轴(电子齿轮)
GM
Gantry Mode
电子齿轮方式
GR
Gear ratio
齿速比(电子齿轮)
HM
Home
返回原点
IP
Increment position
增量位置(在运动状态下)
IT
Smoothing time constant-independent
平滑时间常数(平滑运动 ,S curve)
JG
Jog mode
点动方式(速度控制方式)
KS
Stepper smoothing
步进平滑常数(平滑的步进运动)
LE
Linear interpolation end
结束直线插补
LI
Linear interpolation distance
直线插补距离
LM
Linear interpolation mode
直线插补方式
PA
Position absolute
绝对位置
PR
Position relative
相对位置
SP
Speed
速度
ST
Stop
停止
TN
Tangent
正切
VA
Vector acceleration
矢量加速度
VD
Vector deceleration
矢量减速度
VE
Vector sequence end
结束矢量运动
VM
Coordinated motion mode
矢量方式
VP
Vector position
矢量位置
VR
Vector speed ratio
矢量速度的倍率
VS
Vector speed
矢量速度
VT
Smoothing time constant-vector
矢量时间平滑常数(平滑的矢量运动)
程 序 流 程
AD
After distance
等待某位置到达
AI
After input
等待某个输入点ON
AM
After motion complete
等待运动完成
AP
After absolute position
等待某绝对位置到达
AR
After relative distance
等待某相对位置到达
AS
At speed
在……速度
AT
After time
等待某相对时间到达
AV
After vector distance
等待某矢量位置到达
EI
Enable Interrupts
激活中断方式
ELSE
IF …….ELSE
逻辑判断语句
EN
End program
结束程序
ENDIF
Endof IF conditional statement
结束逻辑判断
HX
Halt task
中断程序
IF
IF conditional statement
假设
II
Input interrupt
中断输入
IN
Input variable
输入变量
JP
Jump to program location
跳到指定的程序
JS
Jump to subroutine
跳到子程序
MC
After"In Position", Motion Complete
定位完毕
MF
Forward motion past position
正向移动到某一个位置
MG
Message
显示信息
MR
Reverse motion past position
反向移动到某一个位置
NO
No operation
作批注.无作用
RE
Return from error subroutine
从处理错误返回主程序
RI
Return from interrupt
从中断点返回主程序
TW
Time out for "In Position"
Time-out 事件
UI
User Interrupt
用户中断输入
WC
Wait for contour data
等待轮廓数据
WT
Wait
等待
XQ
Execute program
执行程序
ZS
Zero subroutine stack
返回原始位置
#CMD
ERR
Bad command given
指令错误处理子程序
#ININT
Interrupt Subroutine
中断处理子程序
#LIMSWL
LIMIT Subroutine
限位处理子程序
#MCTIME
Motion complete timeout occurred
逾时暂停处理子程序
#POSERR
Error Subroutine
错误处理子程序
设 定
AF
Analog feedback
模拟反馈
AL
Arm latch
位置锁存
BA
Brushless Axis
正弦波分割(无刷电机)
BB
Brushless Phase Begin
角度补偿(无刷电机)
BC
Brushless Calibration
电机补偿(无刷电机)
BD
Brushless Degree
分割相位角(无刷电机)
BI
Brushless Inputs
输入(无刷电机)
BM
Brushless Modulo
定义磁线宽度(无刷电机)
BN
Burn parameters
将参数存入FLASH
BO
Brushless Offset
偏置(无刷电机)
BP
Burn program
将程序存入FLASH
BS
Brushless Setup
安装(无刷电机)
BV
Burn variables
将变量存入FLASH
BZ
Brushless Zero
零点(无刷电机)
CB
Clear bit
清除I/O点的状态
CC
Configure communication port2
设定Slave 通讯端口
CE
Configure encoder type
设定encoder型式
CI
Communication interrupt
中断通讯
CN
Configure switches and stepper
设定开关和步进电机
CO
Configure outputs
设定输出点
DA
Deallocate arrays
定义数组大小
DE
Define dual encoder position
定义辅助encoder的位置
DL
Download
下载程序
DM
Dimension arrays
定义数组
DP
Define position
定义位置
DR
Configure 2nd Communication Channel and the data update rate
设定DMA或Polling
ED
Edit mode
编辑方式
EO
Echo off
关闭响应
LA
List Arrays
显示数组名及大小
LL
List Labels
显示程序的标号
LV
List Variables
显示变量名称及记忆值
LS
List Program
显示程序的指令内容
LZ
Leading zeros
将有效值之前的零点移除
MO
Motor off
电机关断
MT
Motor type
定义电机类型
OB
Define output bit
定义输出点
滤 波 器 设 定
DV
Damping for dual loop
双回路控制阻尼
FA
Acceleration feedforward
加速度前馈
FV
Velocity feedforward
速度前馈
GN
Gain
增益值
IL
Integrator limit
积分极限
KD
Derivative constant
微分常数
KI
Integrator constant
积分常数
KP
Proportional constant
比例常数
OF
Offset
零点补偿
PL
Pole
低通滤波的PID补偿
SH
Servo here
激活伺服状态(servo on)
TL
Torque limit
转矩极限
TM
ZR
Sample time
采样时间
Zero
零点
状 态
CW
(1)Copyright information
查询版权信息
(2)Data Adjustment bit on/off
数据调整位状态
QZ
Return DMA information
查询DMA资料
RP
Report command position
返回命令位置
RI
Report latch
显示锁存位置
RL
Report Latched Position
返回最新的锁存位置
SC
Stop code
响应(传回,查询)电机停止的原因
TB
Tell status byte
响应状态位
TC
Tell error code
响应错误码
TD
Tell dual encoder
响应辅助Encoder位置
TE
Tell error
响应误差
TI
Tell input
响应输入点
TP
Tell position
响应位置
TR
Trace
响应轨迹
错 误 极 限
BL
Reverse software limit
负向软限位
ER
Error limit
最大误差极限
FL
Forward software limit
正向软限位
OE
Off on error
位置错误关断电机
编 辑 器
ED
Edit mode
编辑方式
(return)
Save line
储存
(cntrl)P
Previous line
上一行
(cntrl)I
Insert line
插入一行
(cntrl)D
Delete line
删除一行
(cntrl)O
Quit editor
退出编辑器
函 数 运 算
@SIN
Sine
正弦函数
@COS
Cosine
余弦函数
@ABS
Absolute value
绝对值
@FRAC
Fraction portion
分数
@INT
Integer portion
整数
@RND
Round
循环
数 据 记 录
_BG
Return the status of motion complete
运动是否完成
_BN
Serial number of the board
控制卡序号
_DA
Number of arrays available
可用的数组大小
_DL
Number of available labels for programming
可用的编程序号
_DM
Available array memory
可用的数组内存大小
_HM
Status of Home switch
回零开关状态
(二)、运动编程
1. 概述
鉴于运动控制技术不断发展,应用也就变得比以往更为迫切,目前,各种各样的场合均采用伺服系统,如用旋转刀切割材料,在显微镜下对半导体晶片定位,同步贴标器等等。运动控制经常必须与其它事件(如点火继电器,指轮,监控开关等)进行同步。
为了进一步提高速度、精度和技术先进性的需要,新一代智能化运动控制器应运而生,这种控制器具有坐标联动、电子齿轮、板上程序存储器、符号化变量、与外部事件同步的可编程I/O等功能。
DMC运动控制器提供了功能强大且使用方便的编程语言,使用户能快速编程来解决任何运动控制方面的难题。能够把程序下载到DMC存储器,无需主机干预,即可执行。多任务功能同时执行8个用户程序,允许各独立任务同时执行。用DMC来执行复杂程序,让主计算机执行其它任务 ;不过,即使在程序正在执行中,控制器仍能随时接收来自主计算机的命令。
除标准运动命令外,DMC还提供许多命令,使其做出自行决定,这些命令包含各种跳转、事件触发及子程序。DMC还提供了用于检测、修正系统误差及处理来自外部开关的中断的自动子程序。
为了更高的编程灵活性,DMC提供了用户自定义变量、阵列及算术函数。
2. 命令格式
为了各种运动形态和应用,DMC提供了广泛的指令集,用2字符ASCII
命令代表这些指令,使编程简单得尤如英语ABC。例外,让X、Y轴开始运
动的指令规定为BGXY。
可以用指令来指定运动,对输出编程、检查输入状态,使运动与事件同步,如经过的时间、运动完成或输入等。关于整个命令列表,请参见产品目录中各种型号的运动控制器的对应部分。对于一些特殊应用,也能开发专用指令。
3、运动命令
主计算机能对运动控制器发命令来实现所控制的电机进行的运动。最简单
的运动是下例中所示的梯形包络速度轮廓运动,这个运动完整地由距离、转速、加/减速度来表达。
指定这些运动参数的最基本形式是通过“位置分辨率单位”。
4、 运动编程
1)、PTP定位
可以使各轴任意组合以PTP方式运行,只要对各轴分别指定目标位置(PA
或PR)、速度(SP)、加速度(AC)和减速度(DC)即可。任何一个轴的运动均可分别起动和停止。一旦开始运动(BG),控制器就产生梯形速度包络线,在运动期间,可随时改变速度和加速度。例如:我要设备的X轴移动10mm,丝杠螺距为5mm,编码器的分辨率为2500cts/转,经过GALIL四倍频以后,电机旋转一转需要10000cts。X轴移动1mm需要10000/5=2000cts/mm,所以要移动的距离为20000cts。其程序如下:
指令 说明
#A 程序标号
AC2000000 指定加速度
DC2000000 指定减速度
SP20000 指定运动速度
PR20000 指定距离
BGX X轴开始运动
EN 程序结束
执行上述程序,X轴就移动10mm。
2)、 JOG方式
例1、按给定速度一直运行
在JOG方式,对各轴给出JOG速度和方向(JG)、加速度(AC)、减速度(DC),一旦开始运动(BG),控制器就以预定的加速度按梯形包络加速到JOG速度;用平滑处理功能避免速度突变。停止指令(ST)使运动以预定的减速度停止。在运动当中,可随时改变JOG速度、方向、加速度和减速度,用TV指令可随时查询平均速度。例如:一个系统编码器分辩率为4000cts/r,要求电机以600rpm(10r/s)的速度运转, 且必须在100ms内加速到所要求的速度。简单计算表明:速度是40000cts/s,加速度为400000cts/s2。
指令 说明
#A 标号
JG40000 JOG速度
AC400000 加速度
BGX 开始X轴运动
EN 程序结束
执行上述程序以后,X轴按40000cts/s的速度一直运行。
例2、 电位器进行速度控制
要想对电机速度进行控制,连接一个电位器到模拟输入口#1,并读取其电
压值。按模拟输入比例大小设置电机速度,10V输入对应最大速度100,000cts/s;
限制加速度、减速度为500000cts/s2。其程序如下:
指令 说明
#A 标号
JG0 初始速度
AC500000 加速度
DC500000 减速度
BGX 开始运动
#LOOP 标号
JGAN〔1〕*10000 读取电位器电压值并更新速度
JG#LOOP 循环
EN 程序结束
例3、 用输入点启动/停止速度控制
假设,只有等到起动脉冲(用输入口1),X轴开始运动;当检测到该输入点为0时,X轴停止。
指令 说明
#A 标号
JG5000 速度
AI1 等待起动信号
BGX 开始运动
AI-1 等待输入变低
STX 停止运动
AMX 等待X轴完成
EN 程序结束
3)、2D直线和圆弧插补
矢量运动方式(VM)是非常有用的一种运动方式,这种方式能够描述由直线(VP)和圆弧(CR)组成的任意两维轨迹。在运动开始之前,可以给出多达511个直线或圆弧段; 在运动期间,可以发送附加段,无需停止即可实现很长的运动轨迹,对矢量速度(VS)、 矢量加速度(VA)、矢量减速度(VD)和运动平滑(VT)进行预先设定;在运动当中,可随时改变矢量速度,允许进给率修调,在拐角处减速,对指定的运动段分配不同速度。通过设定矢量速度为零可以很方便地实现运动期间的暂停,而增大矢量速度到100%来回复正常速度。
用规定运动平面为S和T的CA指令能够使两个坐标轴同时运行矢量方式。用户通过设置两组坐标运动,即能用一个控制器来实现完全分离的坐标系运动任务,它甚至能处理更为复杂的运动控制功能,如防撞运动。
矢量方式的另一个功能是切线跟踪,让第三轴与运动轨迹保持正切,这对于切割刀具而言是非常理想的。通过命令第三轴以相同速率跟随坐标轨迹还能实现螺旋线运动。
例1. 坐标运动
沿图示轨迹运动,起点A向B反时针运动。设矢量速度为匀速:5000cts/s,沿矢量方向的加、减速率:500000cts/s2。
命令 说明
#PATH 标号
VMXY 定义平面为XY
VA500000 加速度
VD500000 减速度
VS5000 矢量速度
VP40000 运动AB
CR500,-90,180 运动BC
VP-1000,1000 运动CD
CR500,90,180 运动DE
VP0,0 运动EA
VE 指示轨迹终点
BGS 开始运动
EN 程序结束
D(-1000,1000) C(4000,1000)
E(-1000,0) A(0,0) B(4000,0)
4)、进给率修调
在某些场合,需要让机械操作人员能调整机器速度,这就称之为进给率修调。例如,当初次开动机器时,操作人员想逐渐提高速度,这个功能就很有用。
往往用一个电位计输出0~10V电压来实现速度控制,当电位计输出满量程10V时,机器就以全速运转,在任何情况下,速度均应与电位计电压成正比例。
为了实现这一功能,运动控制器读取电位计电压,按比例调整进给率。下例是用DMC来实现这个功能的说明。
例1:进给率修调
重复上例,加入进给率修调功能,操作人员产生0~10V的电压,把这个电压加到模拟输入口#1,设置进给率与电压成正比。
用两个程序实现这个运动,#MOVE和#SPEED两个程序以多任务(有关多任务见后面的多任务的举例)同时运行。程序#SPEED读取模拟输入,并不断调整矢量速度,第二个程序#MOVE除指定矢量速度外,其余与上例相同,两个程序列表如下。
指令 说明
#SPEED 标号
A=@AN〔1〕 读取模拟电压
V=A*2000 设定进给率
VSV 更新进给率
JP#SPEED 重复过程
EN 程序结束
#MOVE 标号
VMXY 指定XY平面
VP6000,0 移动到B点
CR1000,270,180 移动到C点
VP-6000,2000 移动到D点
CR1000,90,180 移动到E点
VP0,0 返回到A点
VE 轨迹终点
VA 100000 矢量加速度
VD 100000 矢量减速度
BGS 开始运动
EN 程序结束
例2:以最大进给率进行坐标运动
重复前例,设定进给率为允许的最大值。出于精度考虑,在圆弧段BC和
DE,必须将矢量速度限制在5000计数单位/sec;在直线段电机速度限制在25000计数单位/sec。使用控制器的功能对各运动段给出上限速度和下
展开阅读全文