点击上方“正运动小助手”,随时关注新动态!
之前正运动技术与大家分享了,运动控制器的固件升级、ZBasic程序开发、ZPLC程序开发、与触摸屏通讯和输入/输出IO的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用、U盘接口的使用以及ZDevelop 编程软件的使用等。
今天,我们来讲解一下正运动技术运动控制器的基础轴参数与基础运动控制指令。视频——正运动技术基础运动控制指令
![e9fa3b93-9623-eb11-8da9-e4434bdf6706.gif](http://p03.5ceimg.com/content/e9fa3b93-9623-eb11-8da9-e4434bdf6706.gif)
以下是图文详解
一
材料准备与控制器接线参考
二
常用轴参数的设置
语法:BASE(轴1,轴2,轴3,...)
最大可用轴数根据控制器实际硬件决定。
BASE指令用于导向下一个运动指令轴的参数读/写入特定轴或轴组。
每一个过程有其自己的BASE基本轴组,每个程序能单独赋值。ZBasic 程序与控制轴运动的运动发生器分开。
每个轴的运动发生器有其独立的功能,因此每个轴能以自己的速度、加速度等进行编程。轴可以通过叠加运动、同步运动或者通过插补链接在一起,插补运动的速度等参数采用主轴的参数,默认BASE选择的第一个轴为主轴。
例子:
BASE(0,1,2,3) '轴列表选择:0,1,2,3,轴0为主轴BASE(3,2,5) '轴列表选择:3,2,5,轴3为主轴
![a4123499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/a4123499-9623-eb11-8da9-e4434bdf6706.png)
语法:ATYPE=类型值
设置轴的类型,提供轴类型列表,只能设置为当前轴具备的特性。
在程序初始化的时候就设置好ATYPE,ATYPE若不匹配会导致程序无法正常运行。
支持不同类型的轴混合插补。
例子:BASE(0,1,2) '主轴为轴0ATYPE=1,1,1 '按轴列表匹配,设为脉冲轴类型ATYPE AXIS(4)=3 '轴4设为正交编码器类型ATYPE(3)=65 '轴3设为ECAT周期位置模式65
语法:UNITS=脉冲数 UNITS(轴号)=脉冲数
控制器以UNITS作为基本单位,指定每单位发送的脉冲数,支持5位小数精度。
UNITS是用户单位与脉冲单位之间的纽带,UNITS=10000,MOVE(2) 等效给电机20000个脉冲。
若电机不带机械负载,电机转的圈数取决于电机转一圈需要的脉冲数:
例1:电机转一圈需要10000脉冲数,MOVE(3)想让电机转3圈,则UNITS=10000。
例2:电机转一圈需要2^17脉冲数,MOVE(2)想让电机转2圈,则UNITS=2^17。
例3:电机转一圈需要10000脉冲数,该电机连着10mm丝杆,则1000个脉冲表示丝杆前进1mm, 则UNITS=1000,MOVE(5)就表示前进5mm。
设置参考:
假设电机U=3600脉冲转一圈,电机转1°对应的UNITS:UNITS=U/360=3600/360=10,此时MOVE(1),电机转1°。
假设电机U=3600脉冲转一圈,丝杠一圈丝杆走一个螺距,螺距P=2mm,工作台走1mm对应的UNTIS:UNITS=U/P=3600/2=1800,此时MOVE(1),工作台走1mm。
机台存在减速比时,要把减速比算上,假设减速比i=2:1,UNITS=U*i/P=3600*2/2=3600。
4、SPEED——轴速度轴运动时的速度,单位UNITS/S。
5、ACCEL——加速度轴每秒达到的速度,越大到达目标速度SPEED的时间越短。
单位UNITS/S^2。
6、DECEL——减速度轴的减速度原理与ACCEL相同,不设置时减速度自动等于加速度值。
速度、加速度、减速度修改之后立即生效,建议在初始化时设置好。
例子:
RAPIDSTOP(2)WAIT IDLE(0)UNITS(0)=1000SPEED(0)=100ACCEL(0)=400DECEL(0)=400SRAMP(0)=0DPOS(0)=0TRIGGER MOVE(100) AXIS(0)
1)梯形曲线
SRAMP=0,速度曲线为梯形曲线,速度曲线按梯形曲线变化。保持速度、加减速度等参数值不变。2)S型曲线
通过设置SRAMP的值来设定合适的加减速变化率,使得速度曲线平滑,在机械启停或加减速时减少抖动。SRAMP值的范围在0-250毫秒之间,设置后加减速过程会变长相应的时间,时间越长速度曲线越平滑。设置时间若超过250毫秒,按照250毫秒进行平滑。例子:
RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100 SPEED=100,100ACCEL=1000,1000DECEL=1000,1000DPOS=0,0MPOS=0,0SRAMP(0)=0 '轴0梯形曲线SRAMP(1)=200 '轴1S形曲线TRIGGERMOVE(100) AXIS(0) '轴0运动MOVE(100) AXIS(1) '轴1运动
![b3123499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/b3123499-9623-eb11-8da9-e4434bdf6706.png)
RAPIDSTOP(2)WAIT IDLE(0)BASE(0) '选择轴0DPOS=0UNITS=100SPEED=100 '速度ACCEL=500DECEL=500 '减速度FASTDEC=2000 '快减减速度TRIGGER '自动触发示波器VMOVE(1) '持续正转DELAY (1000) '等待1sCANCEL(2) '快速停止
FASTDEC=0 急停按照DECEL减速
9、CREEP——爬行速度 轴回零时爬行速度,用于原点搜寻,单位为units/s。使用方法参见下方DATUM单轴找原点指令说明。 10、LSPEED——起始速度 轴起始速度,同时用于停止速度,缺省0,单位为units/s。 当多轴运动时,作为插补运动的起始速度。 当需要追求效率时,可以考虑设置起始速度。 例子:BASE(0,1) '选择轴0为主轴DPOS=0,0UNITS=100,100 '脉冲当量100SPEED=100,100 '主轴速度ACCEL=1000,1000DECEL=1000,1000LSPEED(0)=40 '起始速度TRIGGER '自动触发示波器MOVE(100,80) '各轴运动距离
PRINT MPOS AXIS(3) '打印轴3的MPOS,等效于PRINT MPOS(3)PRINT MPOS(4) '打印轴4的MPOSMOVE(300) AXIS(2) '轴2运动100REP_DIST AXIS(1)= 100 '设置轴1的坐标循环位置
12、DPOS——轴指令位置
轴的虚拟坐标位置,或称需求位置,单位是UNITS。
此参数常用于监控运动指令的运行情况,写DPOS会自动转换为OFFPOS偏移,仅修改坐标,不会移动电机。
BASE(0,1)DPOS=0,100MOVE(100,0) '第一段MOVE(-100,-100) '第二段MOVE(100,0) '第三段,终点(100,0)
例子:
BASE(0) '选择轴0DPOS=0UNITS=100SPEED=100ACCEL=500DECEL=500MERGE=ON '打开连续插补TRIGGER '自动触发示波器MOVE(100) '第一段运动MOVE(100) '第二段运动
三
常用轴参数的输入口设置
BASE(0,1,2,3) '选择轴0,1,2,3FWD_IN=6,7,8,9 '分别设置正向限位开关INVERT_IN(6,ON) '反转信号INVERT_IN(7,ON)
输入口6、7设置信号反转,给输入口6、8输入信号,输入口状态如图所示。
例子:
BASE(0,1,2,3) '选择轴0,1,2,3FWD_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、7INVERT_IN(6,ON) '把原点信号反转INVERT_IN(7,ON)ALM_IN = 10,11 '将轴0、1告警信号分别定义到输入口10、11INVERT_IN(10,ON) '信号反转INVERT_IN(11,ON)
RAPIDSTOP(2)WAIT IDLE(0)BASE(0) '选择轴0DPOS=0 '坐标清0UNITS=100ATYPE=1ACCEL=500 '加速度DECEL=500SPEED=100 '速度FHSPEED=50 '保持速度FHOLD_IN(0)=0 '轴0的保持输入设为IN0口INVERT_IN(0,ON) '反转电平TRIGGER '自动触发示波器MOVE(10000) '运动
BASE(0) '选择轴0ATYPE=1 '脉冲轴类型DPOS=0 '坐标清0UNITS=100 '脉冲当量SPEED =100 '主轴速度ACCEL=1000 '加速度DECEL=1000 '减速度TRIGGER '自动触发示波器JOGSPEED=50 'JOG速度50FWD_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正向运行。例子:
BASE(0) '选择轴0DPOS=0 '坐标清0UNITS=100ATYPE=1 SPEED=100 '设置速度为100 units/sACCEL=500 '加速度为500units/s/sJOGSPEED=200 '点动速度设为200units/sFAST_JOG(0)=0 '轴0的快速输入设为IN0口FWD_JOG(0)=1 '正向点动开关设为IN1口INVERT_IN(0,ON) '反转电平INVERT_IN(1,ON)TRIGGER '自动触发示波器
IN0无输入时,按下IN1并保持,轴速度为JOGSPEED=200
IN0有输入时,按下IN1并保持,
轴速度为SPEED=100
四
常用轴运动的运动状态
![50133499-9623-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/50133499-9623-eb11-8da9-e4434bdf6706.png)
![53133499-9623-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/53133499-9623-eb11-8da9-e4434bdf6706.png)
![54133499-9623-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/54133499-9623-eb11-8da9-e4434bdf6706.png)
RAPIDSTOP(2)WAIT IDLEBASE(0,1,2)ATYPE=1,1,1UNITS=100,100,100SPEED=100,100,100 ACCEL=1000,1000,1000DECEL=1000,1000,1000DPOS = 0,0,0OP(0,OFF)TRIGGERMOVE(100,100) '轴0和轴1直线插补MOVE(200) AXIS(2) '轴2运动WAIT UNTIL IDLE(0) AND IDLE(1) AND IDLE (2)'等待轴0,1,2都停止OP(0,ON)
例子:
BASE(0,1)ATYPE=1 ,1DPOS=0 ,0 '坐标清0UNITS=100,100 '脉冲当量SPEED =100,100 '主轴速度ACCEL=1000,1000 '加速度DECEL=1000,1000 '减速度TRIGGER '自动触发示波器MOVE(100,100) '两轴各运动100
运行效果:
插补运动轴0为主轴,VP_SPEED(0)返回插补运动合成速度。
![60133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/60133499-9623-eb11-8da9-e4434bdf6706.png)
五
常用运动控制指令
![67133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/67133499-9623-eb11-8da9-e4434bdf6706.png)
例子:
BASE(0) '选择轴0ATYPE=1 '脉冲轴类型DPOS=0 '坐标清0UNITS=100 '脉冲当量SPEED =100 '主轴速度ACCEL=1000 '加速度DECEL=1000 '减速度TRIGGER '自动触发示波器VMOVE(1) AXIS(0) '轴0以SPPED速度正向运动,等效FORWARD指令VMOVE(-1) AXIS(0) '轴0以SPPED速度负向运动,等效REVERSE指令DELAY(1000)CANCEL(2) AXIS(0) '取消AXIS(0)的当前运动。WAIT IDLE(0) '等待轴0运动停止
![6a133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/6a133499-9623-eb11-8da9-e4434bdf6706.png)
例子:
BASE(0) '选择轴0ATYPE=1 '脉冲轴类型DPOS=0 '坐标清0UNITS=100 '脉冲当量SPEED =100 '主轴速度ACCEL=1000 '加速度DECEL=1000 '减速度TRIGGER '自动触发示波器FS_LIMIT=200 '设置正向软限位200unitsFORWARD AXIS(0) '让轴0一直以SPPED的速度正向运动
FS_LIMIT=200 '正向软限位200
FORWARD AXIS(0) '正向运动
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。![76133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/76133499-9623-eb11-8da9-e4434bdf6706.png)
输入口映射方法:
BASE(0,1)DATUM_IN =6,7 '将轴0,1原点输入对应到输入口6,7INVERT_IN(6,ON) '把原点信号反转INVERT_IN(7,ON) '把原点信号反转FWD_IN=2,3 '将轴0,1正向限位开关输入对应到输入口2,3INVERT_IN(2,ON) '把正向限位信号反转INVERT_IN(3,ON) '把正向限位信号反转REV_IN=4,5 '将轴0,1负向限位开关输入对应到输入口4,5INVERT_IN(4,ON) '把负向限位信号反转INVERT_IN(5,ON) '把负向限位信号反转
ZMC控制器输入OFF有效,表示到达原点/限位,常开类型信号需要采用INVERT_IN反转电平。ECI控制器与之相反,输入ON有效。
![78133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/78133499-9623-eb11-8da9-e4434bdf6706.png)
例子:
BASE(0)DPOS=0ATYPE=1SPEED = 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)
![7b133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/7b133499-9623-eb11-8da9-e4434bdf6706.png)
例子:
BASE(0)DPOS=0ATYPE=4SPEED = 100 '找原点速度CREEP = 10 '找到原点后反向爬行速度ACCEL=1000,1000 DECEL=1000,1000 SRAMP=100,100 '加减速平滑DATUM_IN=5 '输入IN5作为原点开关INVERT_IN(5,ON) '反转IN5电平信号,常开信号进行反转(ZMC控制器)TRIGGER '自动触发示波器DATUM(103)
模式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=0SRAMP=0ATYPE=1UNITS=100SPEED=500ACCEL=1000DECEL=1000 '减速度FASTDEC=10000 '快减速TRIGGERMOVE(1000) '当前运动MOVE(-1000) '缓冲运动'DELAY(1000) '延时CANCEL(0)
以CANCEL指令为例,四种模式执行效果如下图。
![82133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/82133499-9623-eb11-8da9-e4434bdf6706.png)
![83133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/83133499-9623-eb11-8da9-e4434bdf6706.png)
![87133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/87133499-9623-eb11-8da9-e4434bdf6706.png)
![8c133499-9623-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/8c133499-9623-eb11-8da9-e4434bdf6706.png)
例子:
BASE(0,1)ATYPE=1,1UNITS=100,100 SPEED=100,100ACCEL=1000,1000DECEL=1000,1000SRAMP=100,100DPOS=0,0MPOS=0,0TRIGGERMOVE(150,200)
插补运动主轴为轴0,DPOS(0)、DPOS(1)各轴运动距离,MSPEED(0)、MSPEED(1)分轴速度,VP_SPEED(0)主轴的合成速度。
XY模式显示两轴插补合成轨迹
7、MOVECIRC——起点终点圆心三点圆弧插补 语法:MOVECIRC(end1,end2,centre1,centre2,direction) (end1,end2)终点坐标;(centre1,centre2)圆心坐标;direction方向:0-逆时针,1-顺时针。 两轴圆弧插补,起点、终点、圆心三点画弧,起点使用轴当前坐标,相对运动。绝对圆弧插补使用MOVECIRCABS指令。 当起点坐标与终点坐标相同时,画出整圆。例子:
BASE(0,1)ATYPE=1,1 '设为脉冲轴类型UNITS=100,100DPOS=0,0SPEED=100,100ACCEL=1000,1000DECEL=1000,1000TRIGGER '自动触发示波器MOVECIRC(200,0,100,0,1) '半径100顺时针画半圆'MOVECIRC(0,0,100,0,0) '半径100逆时针画整圆
![9a133499-9623-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/9a133499-9623-eb11-8da9-e4434bdf6706.png)
MOVECIRC(200,0,100,0,1)'半径100顺时针画半圆
MOVECIRC(0,0,100,0,0)'半径100逆时针画整圆
8、MOVECIRC2——起点中间点终点三点圆弧插补语法:MOVECIRC2(mid1,mid2,end1,end2)
(mid1,mid2)中间点坐标;(end1,end2)终点坐标
与上面的指令不同之处在于本指令采用起点、中间点、终点三点画弧,起点使用轴当前坐标,相对运动。绝对圆弧插补使用MOVECIRC2ABS指令。
此指令不能进行整圆插补运动,整圆使用MOVECIRC相对圆弧,或连续使用两条此类指令。
例子:
BASE(0,1)ATYPE=1,1 '设为脉冲轴类型UNITS=100,100DPOS=0,0SPEED=100,100ACCEL=1000,1000DECEL=1000,1000TRIGGER '自动触发示波器MOVECIRC2(100,100,200,0) '半径100顺时针画半圆'MOVECIRC2(100,-100,200,0) '半径100逆时针画半圆
正运动技术运动控制器的基础轴参数与基础运动控制指令就讲到这里。更多学习视频及图文请关注我们的公众号“正运动小助手”。
本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
往期精彩回顾
正运动技术丨高精度硬件比较输出在视觉飞拍上的应用 正运动技术丨UVW 对位平台控制算法在视觉引导上的应用 运动控制卡应用开发教程之Python 运动控制卡应用开发教程之LabVIEW 运动控制卡应用开发教程之VC6.0 运动控制卡应用开发教程之使用Qt 正运动技术XPLC516E 的开放式Linux 平台使用(上) 正运动技术XPLC516E 的开放式Linux 平台使用(下) 快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用 快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用 快速入门 | 篇十一:正运动技术运动控制器中断的应用 快速入门 | 篇十:运动控制器多任务运行特点 快速入门 | 篇九:如何进行运动控制器示波器的应用? 快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用? 快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用? 快速入门 | 篇六:如何进行运动控制器数据与存储的应用? 快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用? 快速入门丨篇四:如何进行运动控制器与触摸屏通讯? 快速入门 | 篇三:如何进行运动控制器ZPLC程序开发? 快速入门 | 篇二:如何进行运动控制器ZBasic程序开发? 快速入门 | 篇一:如何进行运动控制器固件升级?关于正运动技术
正运动技术是一家专注于运动控制技术研发与应用的国家级高新技术企业,主要从事运动控制器、运动控制卡、IO扩展模块、运动显控一体机等系列产品的研发、生产、销售和服务。
公司汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校致力于运动控制技术研究与应用,是国内工控领域发展最快的企业之一,也是国内完整掌握运动控制核心技术和实时工控软件平台技术的企业。