快速入门 | 运动控制器基础轴参数与基础运动控制指令
一、材料准备与控制器接线参考
1、准备材料
(1)电脑一台,安装ZDevelop V3.10及以上版本软件。
(2)控制器一个,本文选用型号为ZMC432。
(3)24V直流电源1个。
(4)驱动器、电机若干。
(5)控制器接线端子若干。
(6)网线若干。
(7)连接线若干。
(8)输入输出设备、扩展模块、人机界面等根据实际需求选择。
2、控制器接线参考


2、ATYPE——轴类型
语法:ATYPE=类型值
设置轴的类型,提供轴类型列表,只能设置为当前轴具备的特性。
在程序初始化的时候就设置好ATYPE,ATYPE若不匹配会导致程序无法正常运行。
支持不同类型的轴混合插补。
例子:
BASE(0,1,2) '主轴为轴0
ATYPE=1,1,1 '按轴列表匹配,设为脉冲轴类型
ATYPE AXIS(4)=3 '轴4设为正交编码器类型
ATYPE(3)=65 '轴3设为ECAT周期位置模式65

7、SRAMP——加减速曲线
加减速过程S曲线设置,用于平滑加减速。
语法:SRAMP=平滑时间
平滑时间范围:0-250毫秒,设置后加减速过程会延长相应的时间
1)梯形曲线
SRAMP=0,速度曲线为梯形曲线,速度曲线按梯形曲线变化。保持速度、加减速度等参数值不变。

例子:
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=100,100
SPEED=100,100
ACCEL=1000,1000
DECEL=1000,1000
DPOS=0,0
MPOS=0,0
SRAMP(0)=0 '轴0梯形曲线
SRAMP(1)=200 '轴1S形曲线
TRIGGER
MOVE(100) AXIS(0) '轴0运动
MOVE(100) AXIS(1) '轴1运动

FASTDEC=2000

11、AXIS——临时轴选择
语法:AXIS(轴号)
AXIS临时修改一个运动指令或轴参数到一个指定轴上去执行,很多指令后方都可以加AXIS参数,在命令行或程序行特别有效。
例子:
PRINT MPOS AXIS(3) '打印轴3的MPOS,等效于PRINT MPOS(3)
PRINT MPOS(4) '打印轴4的MPOS
MOVE(300) AXIS(2) '轴2运动100
REP_DIST AXIS(1)= 100 '设置轴1的坐标循环位置
12、DPOS——轴指令位置
轴的虚拟坐标位置,或称需求位置,单位是UNITS。
此参数常用于监控运动指令的运行情况,写DPOS会自动转换为OFFPOS偏移,仅修改坐标,不会移动电机。
例子:
BASE(0,1)
DPOS=0,100
MOVE(100,0) '第一段
MOVE(-100,-100) '第二段
MOVE(100,0) '第三段,终点(100,0)

14、MERGE——开启连续插补
语法:MERGE = ON/OFF或1/0
开启连续插补功能,将运动缓冲区前后缓冲的运动连接到一起,使连续的多段插补运动之间不减速,用以提高加工效率。
若不开启连续插补,上一条插补运动完成后,会先减速停止到速度为0,再重新加速执行下一条插补运动。
例子:
BASE(0) '选择轴0
DPOS=0
UNITS=100
SPEED=100
ACCEL=500
DECEL=500
MERGE=ON '打开连续插补
TRIGGER '自动触发示波器
MOVE(100) '第一段运动
MOVE(100) '第二段运动

MERGE=OFF
当MERGE设置为ON时,多段插补间仍减速,可能原因如下:
1)可能MERGE并没有设置成功,可以打印查看或在轴参数窗口查看。
2)控制器是点位运动型号,运动功能简单,不支持连续插补。
3)设置了CORNER_MODE拐角减速,打印确认。
4)使用了带SP的运动指令,并设置了ENDMOVE_SPEED,STARTMOVE_SPEED,此时速度由这两条指令确定。
5)多条插补间切换了主轴,主轴速度参数改变。
6)多条插补间加入了MOVE_DELAY运动缓冲中延时指令,即使延时写0,也会导致减速。
三、常用轴参数的输入口设置

2、映射正/负限位输入
FWD_IN——映射正限位输入
REV_IN——映射负限位输入
分别设置正向/负向硬件限位开关对应的输入点编号,-1无效。
硬限位开关是物理开关元件,由指令映射到相应输入开关信号上。控制器限位信号生效后,会立即停止轴,停止减速度为FASTDEC。

例子:
BASE(0,1,2,3) '选择轴0,1,2,3
FWD_IN=6,7,8,9 '分别设置正向限位开关
INVERT_IN(6,ON) '反转信号
INVERT_IN(7,ON)
INVERT_IN(8,ON)
INVERT_IN(9,ON)
软件限位用于限制轴的DPOS位置范围,用于软件的安全限位。
FS_LIMIT——正向软限位设置
FS_LIMIT(0)=200 '设置轴0正向软限位200units
RS_LIMIT——负向软限位设置
RS_LIMIT(0)=-300 '设置轴0负向软限位-300units
3、DATUM_IN——映射原点输入
通用输入口设置为原点开关信号,-1无效。
在轴回零过程中此信号输入才生效。
4、ALM_IN——映射报警输入
驱动器告警对应的输入口编号,-1无效。
控制器报警信号生效后,会立即停止轴,停止减速度为FASTDEC。
例子:
BASE(0,1)
DATUM_IN =6 ,7 '将轴0、1原点输入分别定义到输入口6、7
INVERT_IN(6,ON) '把原点信号反转
INVERT_IN(7,ON)
ALM_IN = 10,11 '将轴0、1告警信号分别定义到输入口10、11
INVERT_IN(10,ON) '信号反转
INVERT_IN(11,ON)

7、映射正/负JOG输入
FWD_JOG——映射正向JOG输入;
REV_JOG——映射负向JOG输入。
正向/负向JOG输入对应的输入口编号,-1无效。
当有正向JOG信号输入时,对应轴按照JOGSPEED速度正向运动。
当有正向JOG信号输入时,对应轴按照JOGSPEED速度负向运动。
正负信号同时有效时,正向运动。
JOGSPEED——JOG速度。
JOG时的速度,单位为units/s。
当REV_JOG/FWD_JOG被设置,对应输入点按下时,并保持当前输入状态,电机将以JOGSPEED慢速运动,输入点松开运动停止。
例子:
BASE(0) '选择轴0
ATYPE=1 '脉冲轴类型
DPOS=0 '坐标清0
UNITS=100 '脉冲当量
SPEED =100 '主轴速度
ACCEL=1000 '加速度
DECEL=1000 '减速度
TRIGGER '自动触发示波器
JOGSPEED=50 'JOG速度50
FWD_JOG=0 'IN0作为正向JOG开关
REV_JOG=1 'IN1作为负向JOG开关
INVERT_IN(0,ON) '反转信号
INVERT_IN(1,ON)
运行效果:
输入0口有信号输入时,轴0正向运行,速度为50。
输入1口有信号输入时,轴0负向运行,速度为50。
输入0、1同时有信号输入时,轴0正向运行。

IN0无输入时,按下IN1并保持,轴速度为JOGSPEED=200

轴的运行状态可以通过轴参数窗口监控,或者读取对应指令的返回值判断轴状态。
1、MTYPE——当前运动类型
读取当前正在进行的运动指令类型。只读参数,获取指令返回值查表得出当前轴的运动类型。
语法:VAR1 = MTYPE
当插补联动时,对从轴总是返回主轴的运动指令类型。
2、NTYPE——下一条运动类型
读取当前正在进行的运动指令后面的第一条指令类型。只读参数,获取指令返回值后查表。
语法:VAR1 = MTYPE
当插补联动时,对从轴总是返回主轴的运动指令类型。

4、MSPEED——实际反馈速度
轴的测量反馈位置速度,单位是UNITS/S,只读参数。
插补运动时,读取的是各个轴的分速度。
5、VP_SPEED——当前运动速度
回轴当前运动的速度,单位为UNITS/S,只读参数。
当多轴运动时,主轴返回的是插补运动的速度,不是主轴的分速度。非主轴返回的是相应的分速度,与MSPEED效果一致。
VP_SPEED在默认情况下是为显示多轴合成速度设计的,是没有负值的,除非把SYSTEM_ZSET指令的bit0的值设置为0,就可以用来显示单轴的命令速度,可正可负。
例子:
BASE(0,1)
ATYPE=1 ,1
DPOS=0 ,0 '坐标清0
UNITS=100,100 '脉冲当量
SPEED =100,100 '主轴速度
ACCEL=1000,1000 '加速度
DECEL=1000,1000 '减速度
TRIGGER '自动触发示波器
MOVE(100,100) '两轴各运动100
运行效果:
插补运动轴0为主轴,VP_SPEED(0)返回插补运动合成速度。

五、常用运动控制指令

2、FORWARD——持续正向运动
语法:FORWARD [AXIS(轴号)]
让轴一直以SPPED的速度正向运动,必须CANCEL后才能切换REVERSE。
3、REVERSE——持续负向运动
语法:FORWARD [AXIS(轴号)]
让轴一直以SPPED的速度负向运动,必须CANCEL后才能切换FORWARD。
例子:
BASE(0) '选择轴0
ATYPE=1 '脉冲轴类型
DPOS=0 '坐标清0
UNITS=100 '脉冲当量
SPEED =100 '主轴速度
ACCEL=1000 '加速度
DECEL=1000 '减速度
TRIGGER '自动触发示波器
FS_LIMIT=200 '设置正向软限位200units
FORWARD AXIS(0) '让轴0一直以SPPED的速度正向运动

RS_LIMIT=-300 '负向软限位-300
REVERSE AXIS(0) '负向运动
4、DATUM——单轴找原点
语法:DATUM (模式值)
单轴找原点运动,多个轴回零需要多次调用此指令,提供多种模式供选择。
下图模式值加10表示碰到限位后反找, 不会碰到限位停止,例如13=模式3+限位反找10,用于原点在正中间的情况。
下图模式值加100(模式100+n和110+n分别对应n和10+n),ATYPE=4或65,表示接入编码器后可以自动清零MPOS(仅限4系列),其他模式只能手动清零MPOS。

例子:
BASE(0)
DPOS=0
ATYPE=1
SPEED = 100 '找原点速度
CREEP = 10 '找到原点后反向爬行速度
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100 '加减速平滑
DATUM_IN=5 '输入IN5作为原点开关
INVERT_IN(5,ON) '反转IN5电平信号,常开信号进行反转(ZMC控制器)
TRIGGER '自动触发示波器
DATUM(3)

模式103:接入真实编码器,轴以SPEED速度正向运行,直到碰到原点开关,然后以CREEP速度反向运动,直到再次回到原点开关的位置停下,此时回零完成,轴的DPOS和MPOS自动置0,若中途碰到限位开关,轴立即停止。
5、CANCEL & RAPIDSTOP——轴停止
语法:CANCEL(模式)/RAPIDSTOP (模式)
CANCEL和RAPIDSTOP 均有四种模式,二者的区别是CANCEL为单轴/轴组停止指令,RAPIDSTOP为停止所有轴。
模式1:CANCEL=CANCEL(0) 取消当前运动,继续取缓冲区指令指令
模式2:CANCEL(1) 取消缓冲区的运动,当前运动仍然要执行完
模式3:CANCEL(2) 取消当前运动和缓冲区的运动,轴立即停止
模式4:CANCEL(3) 立即中断脉冲的发送
模式2减速度按FASTDEC快减速和DECEL减速度中最大的值,使用指令之后要调用绝对位置运动,必须先WAIT IDLE 等待停止完成。
加上轴号停止目标轴CANCEL AXIS(1),当想要让电机快速停止时,建议使用RAPIDSTOP(2) 或CANCEL(2)。
使用CANCEL指令停止插补运动中的主轴或者BASE轴列表中的任意一个轴,都会停止轴组的插补运动。
例子:
BASE(0)
DPOS=0
SRAMP=0
ATYPE=1
UNITS=100
SPEED=500
ACCEL=1000
DECEL=1000 '减速度
FASTDEC=10000 '快减速
TRIGGER
MOVE(1000) '当前运动
MOVE(-1000) '缓冲运动
'DELAY(1000) '延时
CANCEL(0)
以CANCEL指令为例,四种模式执行效果如下图。

CANCEL(1)取消缓冲运动

CANCEL(3)中断脉冲发送
6、MOVE——直线插补
语法:MOVE(distance1 [,distance2 [,distance3 [,distance4...]]])
单轴直线运动或多轴直线插补运动,相对运动距离。绝对直线插补用MOVEABS指令。
插补是一个实时进行的数据密化的过程,根据给定的信息进行数字计算,不断计算出参与运动的各个坐标轴的进给量,分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动。
插补运动时只有主轴速度参数有效,主轴是BASE的第一个轴,运动参照这个轴的参数,插补运动指令进入主轴的运动缓冲区。
支持不同类型的轴混合插补。
插补运动距离:

插补运动主轴为轴0,DPOS(0)、DPOS(1)各轴运动距离,MSPEED(0)、MSPEED(1)分轴速度,VP_SPEED(0)主轴的合成速度。

MOVECIRC(200,0,100,0,1)'半径100顺时针画半圆

MOVECIRC2(100,100,200,0)'半径100顺时针画半圆

MOVECIRC2(100,-100,200,0)'半径100逆时针画半圆