>XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器,XPLC系列运动控制器可应用于各种需要脱机或联机运行的场合。
XPLC006E自带6个电机轴,最多12轴运动控制(含虚拟轴数),支持12轴直线插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等功能。 XPLC006E支持多任务同时运行,同时可以在PC上直接仿真运行,编程方式多种可选,支持ZDevelop软件的Basic/PLC梯形图/HMI组态和常用上位机软件编程。 XPLC006E只支持EtherCAT总线轴,不支持脉冲轴和编码器轴。采用EtherCAT总线与驱动器通讯,1ms的刷新周期。 XPLC006E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。 →此款产品有XPLC004E、XPLC006E、XPLC008E三个不同轴数的型号可选。
XPLC864E在XPLC006E的功能基础上做了升级(即上节介绍的XPLC006E的功能都支持),部分资源空间优于XPLC006E,使用方法基本一致,不同之处在于XPLC864E,硬件支持32点输入、32点输出、2个ADC、2个DAC,支持脉冲轴和总线轴混合使用,总实轴轴数为8,除了带EtherCAT接口之外,输出口硬件上可配置为8个轴的脉冲方向信号输出,另带两路编码器输入,可由输入口配置 XPLC864E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
XPLC系列经济型EtherCAT总线运动控制器支持多种编程方式,支持使用正运动技术自主研发的ZDevelop开发环境的Basic语言和PLC梯形图,上一节讲解了控制器的运动缓冲,本节内容主要讲解控制器的轴参数与运动指令说明。
控制轴的运动除了要发送运动指令之外(运动指令),显然我们还需要指定轴的运动的速度,确定轴运动的快慢,速度参数我们也可以把他叫做轴参数,轴参数是轴运动所必须的参数,常用的轴参数有速度、加速度、减速度、脉冲当量、轴类型等,以上轴参数作用各不相同,参见下文的说明。 1.BASE--轴选择/轴组选择 BASE指令用于选择相应的轴号进行参数设置和运行控制,每一个过程有其自己的BASE基本轴组,每个程序都能单独赋值。
在设置轴参数或者运行轴的时候,都要在最开始的地方,用BASE指令选择相应的轴号,默认BASE选择的第一个轴为主轴。 运动不指定轴号时,默认发送给最新扫描的BASE指令选择的第一个轴。 语法:BASE(轴0,轴1,轴2,...) 例子: BASE(0,1,2) '将XYZ平台的三个轴分别绑定为轴号012 MOVE(100,200,240) BASE(0) '选择轴0 MOVE(136) BASE(3,0,1,2)) '选择四个轴,轴次序没有严格要求,但一般顺序选择不易混淆 MOVE(10,50,50,0)
多轴的场合,在发送运动指令之前,最好先BASE指定当前运动指令发送给哪个轴,例如,在上例中,我们想让Y轴单独运动100个单位,若发送MOVE(100),则发给了X轴,导致运动错误了,正确做法如下,这样做能保证运动不出错。 BASE(1) '选择Y轴 MOVE(100) '给Y轴单独发脉冲
2.ATYPE--轴类型 ATYPE是对轴功能的定义,通常在程序初始化时定义好轴的功能,可定义为无编码反馈类型、有编码器反馈类型、编码器+Z信号反馈类型、EtherCAT总线类型等。若ATYPE设置异常,会导致轴运行异常或者程序无法正常运行。 语法:ATYPE=类型值或ATYPE (轴号)=类型值 下表是对轴类型ATYPE定义的详细说明。 ATYPE=1/7是脉冲输出类型; ATYPE=4/5是脉冲输出+编码器输入类型; ATYPE=3/6是编码器输入类型; ATYPE=65/66/67是EtherCAT总线轴的类型; ATYPE=50/51/52是RTEX总线轴的类型。ATYPE数值 | 功能描述 | 0 | 虚拟轴 | 1 | 脉冲方向方式的步进或伺服,无编码器输入反馈 | 2 | 模拟信号控制方式的伺服 | 3 | 正交编码器 | 4 | 脉冲方向输出+正交编码器输入 | 5 | 脉冲方向输出+脉冲方向编码器输入 | 6 | 脉冲方向方式的编码器 | 7 | 脉冲方向输出+EZ信号输入 | 8 | ZCAN扩展脉冲方向输出 | 9 | ZCAN扩展正交编码器 | 10 | ZCAN扩展脉冲方向方式的编码器 | 21 | 振镜轴类型 | 50 | RTEX周期位置模式 | 51 | RTEX周期速度模式 | 52 | RTEX周期力矩模式 | 65 | EtherCAT周期位置模式 | 66 | EtherCAT周期速度模式 | 67 | EtherCAT周期力矩模式 | 70 | EtherCAT自定义操作,只读取编码器,需支持EtherCAT |
3.UNITS--脉冲当量在运动控制装置中,当机械结构确定以后,电机和机械装置的传动关系也就固定了,电机每转一圈产生的机械位移量也就固定了。脉冲当量UNITS是每单位对应的脉冲数,可以是单位距离、单位角度等,支持5位小数精度。 控制器以UNITS作为基本单位,运动的目标位置、速度、加减速度等都是以UNITS作为基础单位来进行运算执行,UNITS修改后,目标位置、速度、加减速度等会随UNITS改变成比例变化。 语法:UNITS=变量或UNITS (轴号)=变量 例子:UNITS=10000 常见的几种机械传动的UNITS参考计算方式见下表。 如设置脉冲当量为1000,速度SPEED以设置的脉冲当量为单位,则每秒按照当前设置速度值*1000进行发送脉冲给执行机构。 此时若直线运动指令的距离参数写2,则发送2*1000个脉冲,2000个脉冲能让电机转多少角度,需要参考电机的一圈脉冲数(电机转动一圈需要的脉冲数量)的设置,若电机的一圈脉冲数为10000,则2000个脉冲能让电机转72°,这样运动指令的实际运动距离就能被换算出来了。 以上为脉冲当量UNITS的设置方法,总而言之,设置前先要查出电机的一圈脉冲数,再结合机械结构的特点进行设置。 一般而言,步进电机的一圈脉冲数较小,伺服电机的一圈脉冲数较大,需要十万或百万级的脉冲数才能驱动电机转一圈,故伺服的精度较高,相对于的成本也高一些。 4.SPEED--运动速度轴运行时的速度,单位为UNITS/s。 当单轴运动时,运动速度的加速度为单轴的速度,当多轴运动时,作为插补运动的合成矢量速度。 SPEED修改后,立刻生效,可以实现动态变速,平滑变速也可以使用SPEED_RATIO指令来调节倍率。 语法:SPEED=变量 或 SPEED(轴号)=变量 例子:SPEED=100 '每秒下发脉冲个数为100*UNITS 5.ACCEL--加速度轴的运行由起始速度到目标速度的过程中,每秒达到的速度数值,单位为UNITS/s^2,加速度越大,达到目标速度的时间越短。 当单轴运动时,运动速度的加速度为单轴的加速度,当多轴运动时,插补运动的加速度为多轴矢量合成的加速度。 语法:ACCEL=变量 或 ACCEL(轴号)=变量 例子:ACCEL =1000 '加速度为1000 UNITS/s^2 6.DECEL--减速度轴的运行由运行速度到停止的过程中,每秒达到的速度数值,单位为UNITS/s^2,减速度越大,达到停止速度的时间越短。 当单轴运动时,运动速度的减速度为单轴的减速度,当多轴运动时,插补运动的减速度为多轴矢量合成的减速度。 语法:DECEL=变量 或 DECEL(轴号)=变量 7.DPOS--目标位置
轴的目标位置或需求位置,以UNITS作为单位,作为当前轴的位置参考,正向运动时值增大,反向运动时轴减小,DPOS参数回零完成后会自动清零,DPOS为0表示在原点位置,若手动改DPOS的值,会自动转换为OFFPOS偏移,不会移动电机。 正负软限位限制的便是DPOS的范围,超过设置的DPOS自动报警,停止轴运动。 8.MPOS--反馈位置
轴的反馈位置,接了反馈此参数才有效,一般有编码器测量反馈,无反馈的情况MPOS的值自动复制DPOS的值,不具备参考价值。若手动改DPOS的值,会自动转换为OFFPOS偏移。 一般MPOS与DPOS之间是有一定的误差的,伺服性能越好,这个误差便越小,理论上不可以完全消除,但可以十分接近。 相对应的,SPEED为目标速度,MSPEED为编码器测得的真实运动速度。 注意,部分回零模式回零之后,DPOS会自动清零,但MPOS不会,需要手动清零MPOS,否则可能导致后续运动出错。 9.AXIS--指定轴号
熟悉了上面的内容,我们知道SPPED(1)=1000的含义是指定轴1的运动速度为1000,SPEED=1000因为未指定轴号,默认设置BASE的第一个轴。 但MOVE(100)这类的命令括号是运动参数,不能填入轴号了,这种参数我们可以写做MOVE(100) AXIS(0),通过添加AXIS指令去指定当前参数设置到哪个轴上。 BASE(1) '选择Y轴 MOVE(100) '给Y轴单独发脉冲 MOVE(100) AXIS(0) '给X轴单独发脉冲
10.轴参数设置示例RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) '选择轴号 ATYPE=1,1 '轴类型设置 UNITS=10000,10000 '脉冲当量设置 SPEED=100,200 '速度设置 ACCEL=1000,2000 '加速度设置 DECEL=1000,2000 '减速度设置 DPOS=0,0 '当前位置清0 MPOS=0,0 '反馈位置清0 TRIGGER '触发示波器采样 MOVE(200) AXIS(0) '轴0运动 MOVE(100) AXIS(1) '轴1运动 END
在这些参数作用下的软件示波器采样不同参数随时间变化的波形如下图所示。通过速度曲线能反映加减速度的情况。 DPOS(0)和MSPEED(0)分别为轴0的位移轨迹和速度轨迹;DPOS(1)和MSPEED(1)分别为轴1的位移轨迹和速度轨迹。
1.单轴运动
单轴运动的特点是每个轴的运动是独立的,,由各轴自己的运动参数控制,与其他轴没有联系,单轴运动也分几类,单轴寸动、单轴点动、单轴持续运动、回零也属于单轴运动。 (1)寸动寸动由MOVE指令给单个轴发有限个脉冲,例如MOVE(100),100个单位走完之后,轴减速停止。 MOVE指令控制多个轴运动的时候,属于插补运动,多轴是联动的。(寸动例程参见上文) (2)JOG点动JOG点动是个简单的单轴运动,由外部输入信号控制以指定的速度正向运动或负向运动。 JOG点动需接入外部输入信号,使用FWD_JOG指令映射正向JOG输入,REV_JOG指令映射负向JOG输入,检测到有输入信号时以JOGSPEED指令速度运动,无输入立即停止。 注意映射JOG开关后,对于OFF信号有效的控制器,一定要INVERT_IN反转电平,例如ZMC系列控制器是OFF信号有效,若不反转,则导致信号接入时为OFF,控制器判断有输入,立即控制轴运动;对于ON有效的型号则不需要反转。 A.点动例程 RAPIDSTOP(2) WAIT IDLE(0) BASE(0) '选择轴0 ATYPE=1 '脉冲轴类型 DPOS=0 '坐标清0 UNITS=100 '脉冲当量 SPEED =100 '主轴速度 ACCEL=1000 '加速度 DECEL=1000 '减速度 SRAMP=100 'S曲线 TRIGGER '自动触发示波器 JOGSPEED=50 'JOG速度50 FWD_JOG=0 'IN0作为正向JOG开关 REV_JOG=1 'IN1作为负向JOG开关 INVERT_IN(0,ON) '输入0信号反转 INVERT_IN(1,ON) '输入1信号反转 END
B.运行效果如下图 输入0口有信号输入时,轴0正向运行,速度为50。 输入1口有信号输入时,轴0负向运行,速度为50。 (3)持续运动控制器有专用的持续运动指令,控制器持续发脉冲,控制轴以指定的速度和方向持续运动,持续运动常用的指令为VMOVE,以运动速度SPPED持续运动,此时停止轴运动使用CANCEL或RAPIDSTOP指令。 VMOVE的指令参数可选择正向或负向运动,VMOVE(1)正向,VMOVE(-1)负向,下一条VMOVE会自动替换前面的VMOVE指令。 持续运动例程: RAPIDSTOP(2) WAIT IDLE(0) BASE(0) '选择轴号 ATYPE=1 '轴类型设置 UNITS=100 '脉冲当量设置 SPEED=100 '速度设置 ACCEL=1000 '加速度设置 DECEL=1000 '减速度设置 SRAMP=100 'S曲线 DPOS=0 '当前位置清0 TRIGGER WHILE 1 '循环运动 IF MODBUS_BIT(0) = ON THEN 'MODBUS_BIT(0)有效往左运动 VMOVE(-1) ELSEIF MODBUS_BIT(1) = ON THEN 'MODBUS_BIT(1)有效往右运动 VMOVE(1) ELSEIF MODBUS_BIT(0) = OFF OR MODBUS_BIT(1) = OFF THEN CANCEL(2) 'MODBUS_BIT无效时停止运动 ENDIF WEND END
2.插补插补是一个实时进行的数据密化的过程,控制器根据给定的运动信息进行数据计算,不断计算出参与插补运动的各坐标轴的进给指令,然后分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动。 插补最常见的两种方式是MOVE直线插补和MOVECIRC圆弧插补。插补运动至少需要两个轴参与,进行插补运动时,将规划轴映射到相应的机台坐标系中,运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。 插补运动的特点是参与插补运动的所有轴,在进行一段插补运动时,同时启动同时停止,插补运动参数采用主轴的运动参数(速度、加速度等),主轴为BASE指令选择的第一个轴。 插补运动指令会存入主轴的运动缓冲区,不进入从轴的运动缓冲区,再依次从主轴的运动缓冲区中取出指令执行,直到插补运动全部执行完。 (1)直线插补--MOVE单轴直线运动或多轴直线插补运动,相对运动距离。绝对运动使用MOVEABS指令,SP运动使用MOVESP指令。 插补运动参数采用主轴参数,插补运动缓冲在主轴的运动缓冲区。 语法:MOVE(distance1 [,distance2 [,distance3 [,distance4...]]]) 例子:二轴直线插补 RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) '选择轴0,轴1 ATYPE=1,1 UNITS=100,100 SPEED=100,100 '运动速度 ACCEL=1000,1000 DECEL=1000,1000 SRAMP=100,100 'S曲线 MERGE=ON '开启连续插补 TRIGGER '自动触发示波器 DPOS=100,0 '坐标偏移 MOVE(-50,100) '第一段相对运动 MOVE(-100,0) '第二段相对运动 MOVE(-50,-100) '第三段相对运动 MOVE(50,-100) '第四段相对运动 MOVE(100,0) '第五段相对运动 MOVE(50,100) '第六段相对运动 END 直线插补合成轨迹如下图:起点和终点均为(100,0),逆时针加工。(2)平面圆弧插补--MOVECIRC
两轴圆弧插补,起点、终点、圆心三点画弧,起点使用轴当前坐标,相对运动。绝对圆弧插补使用MOVECIRCABS指令。SP圆弧插补使用MOVECIRCSP指令。 MOVECIRC2指令使用当前点、中间点、终点画弧。 圆弧插补指令适用于二轴运动。 语法:MOVECIRC(end1, end2, centre1, centre2, direction) (end1, end2):终点坐标 (centre1, centre2):圆心坐标 direction:方向,0-逆时针,1-顺时针。 当起点坐标与终点坐标相同时,画出整圆。圆弧相关的指令要保证给出的圆心和终点坐标与当前点一起可以正确的描述一段圆弧,否则会报错,无法画弧,错误码1006。 例子: 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 SRAMP=100,100 'S曲线 MERGE=ON TRIGGER '自动触发示波器 MOVECIRC(100,0,50,0,1) '半径50顺时针画半圆,终点坐标(100,0),圆心坐标(50,0) MOVECIRC(-200,0,-100,0,1) '半径100顺时针画半圆,终点坐标(-100,0),圆心坐标(0,0) END
圆弧插补合成轨迹如下图: (3)空间圆弧--MSPHERICAL空间圆弧插补运动,相对运动,空间圆弧起点为当前点,第二、第三个点由指令指定。绝对运动使用MSPHERICALABS指令,自定义速度的连续插补运动可以使用SP后缀的指令。 语法: MSPHERICAL(end1,end2,end3,centre1,centre2,centre3,mode[,distance4][,distance5]) (end1, end2, end3):第二个点坐标 (centre1, centre2, centre3):第三个点坐标 mode:指定前面两个坐标点的意义,如下表 distane4:第四轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算 distane5:第五轴螺旋的功能,指定第5轴的相对距离,此轴不参与速度计算表 mode值 | 描述 | 0 | 当前点,中间点,终点三点定圆弧 end指定圆弧终点,centre指定圆弧的中间点 | 1 | 当前点,圆心,终点定圆弧 走最短的圆弧 end指定圆弧终点,centre指定圆弧的圆心 | 2 | 当前点,中间点,终点三点定整圆 end指定圆弧终点,centre指定圆弧的中间点 | 3 | 当前点,圆心,终点定整圆 先走最短的圆弧,再继续走完整圆 end指定圆弧终点,centre指定圆弧的圆心 |
例子:
RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) WAIT IDLE(2) BASE(0,1,2) ATYPE=1,1,1 '设为脉冲轴类型 UNITS=100,100,100 DPOS=0,0,0 SPEED=100,100,100 '主轴速度 ACCEL=1000 ,1000,1000 '主轴加速度 DECEL=1000 ,1000,1000 TRIGGER MSPHERICAL(120,160,400,240,320,300,0) '终点(120,160,400),中间点(240,320,300) END
mode 0:当前点,中间点,终点三点定圆弧,如下图。 mode 3:当前点,圆心,终点定整圆,如下图。 MSPHERICAL(120,160,400,120,160,150,3) '终点(120,160,400),圆心(120,160,150),先走最短的圆弧(红色部分),再走完整圆。 3.同步运动同步运动描述的是不同轴之间的运动是联动的,比如电子齿轮,电子凸轮,自动凸轮等。 (1)电子齿轮电子齿轮功能用于两个轴的连接,将主轴与从轴按照一个常数齿轮比建立连接,不需要物理齿轮,使用指令直接设置电子齿轮的比值,由于是使用软件实现的,故电子齿轮比可以随时更改。 电子齿轮功能通过指令CONNECT、CONNPATH实现,将一个轴按照一定比例连接到另一个轴上做跟随运动,一条运动指令就能驱动两个电机的运行,通过对这两个电机轴移动量的检测,将位移偏差反馈到控制器并获得同步补偿,这样能使两个轴之间的位移偏差量控制在精度允许范围内。 电子齿轮连接的是脉冲个数,例如主从轴连接比例为1:5,给主轴发送1个脉冲,此时对应给从轴发送5个脉冲。 CONNPATH与CONNECT的相同点:二者的使用语法相同,连接的都是脉冲个数,CONNPATH连接到单个轴的运动的效果与CONNECT相同。 CONNPATH与CONNECT的区别:CONNECT连接的是单个轴的目标位置。CONNPATH是连接的是插补轴的矢量长度,此时需要连接在插补运动的主轴上,连接到插补从轴上无法跟随插补运动。CONNPATH会跟踪XY轴插补的的矢量长度变化,而不是跟踪单独的X轴或者Y轴。 语法:CONNECT/CONNPATH(比率,被连接轴) AXIS(连接轴) 电子齿轮的连接比率:比率可正可负,可为小数,连接的是脉冲个数,要考虑不同轴UNITS的比例。比率可以通过重复调用CONNECT/CONNPATH指令动态变化(连接成功后保持连接状态),取消连接时用CANCEL或RAPIDSTOP指令。 →假设连接轴0的UNITS为10,被连接轴1的UNITS为100,使用CONNECT连接,比率ratio为1,CONNECT(1,1) AXIS(0) 当轴1运动S1=100时,轴0运动S0=S1*UNITS(1)*ratio/UNITS(0)=100*100*1/10,此时运动1000。 例子: RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) ATYPE=1,1 UNITS=10,100 DPOS=0,0 SPEED=100,100 ACCEL=1000,1000 DECEL=1000,1000 SRAMP=100,100 TRIGGER '自动触发示波器 MOVE(100) AXIS(1) '轴1运动100,此时轴0不动 WAIT IDLE(1) '上一段运动不连接 DELAY(10) '延时10ms CONNECT(0.5,1) AXIS(0) '轴0连接到轴1,比例为0.5 MOVE(100) AXIS(1) '轴1运动100,轴0运动500 END
DPOS(0)=DPOS(1)*UNITS(1)*ratio/UNITS(0)=100*100*0.5/10=500。 2.电子凸轮凸轮的作用是将旋转运动转换为线性运动,包括直线运动、摆动、匀速运动和非匀速运动。电子凸轮属于多轴同步运动,这种运动是基于主轴外加一个或多个从轴系统,是在机械凸轮的基础上发展而来,电子凸轮多用于周期性的曲线运动场合。 电子凸轮是利用构造的凸轮曲线来模拟机械凸轮,以达到与机械凸轮系统相同的凸轮轴与主轴之间相对运动的软件系统,通过控制器控制伺服电机来模拟机械凸轮的功能,不需要另外安装如下左图所示的凸轮机械结构。 如下右图所示,机械凸轮按照凸轮的轮廓可以得出一段转动角度与加工位置运动轨迹,此轨迹为弧线,将该段弧线分解成无数个直线或圆弧轨迹,组合起来得到一串趋近于该弧线的运动轨迹,电子凸轮直接将此段轨迹运动参数装入运动指令,即可控制轴走出目标轨迹。 电子凸轮用软件来控制信号,改变程序的相关运动参数就能改变运动曲线,应用灵活性高,工作可靠,操作简单,不需要额外安装机械构件,因而不存在磨损的情况。 凸轮指令有CAM凸轮表运动,CAMBOX跟随凸轮表运动,MOVELINK和MOVESLINK自动凸轮运动。 以CAM凸轮表运动指令为例,所谓凸轮表运动就是将凸轮运动的轨迹点,以数据的形式存储在TABLE寄存器区域,CAM指令再调用TABLE表的数据运动,形成运动轨迹,凸轮轴需要与其他轴配合使用,才能做柔顺曲线加工。
两个或多个CAM指令可以同时使用同一段TABLE数据区进行操作。TBALE数据需要手动设置,第一个数据为引导点,建议设为0。 凸轮表指令运动完调用的TABLE数据点后,凸轮运动结束,需要周期执行的场合,将凸轮表指令写在WHILE循环中。 CAM指令含义:根据存储在TABLE中的数据来决定轴的运动,这些TABLE数据值对应运动轨迹的位置,是相对于运动起始点的绝对位置。
指令语法:CAM(start point, end point, table multiplier, distance) 参数 | 说明 | start point | 起始点TABLE编号,存储第一个点的位置 | end point | 结束点TABLE编号 | table multiplier | 位置乘以这个比例,一般设为脉冲当量值,TABLE数据*table multiplier值=实际发出的脉冲数 | link_distance | 参考轴运动的距离,总时间=distance/轴speed |
电子凸轮例程: RAPIDSTOP(2) WAIT IDLE(0) BASE(0) '选择第0轴 ATYPE=1 '脉冲方式步进或伺服 DPOS = 0 UNITS = 100 '脉冲当量 SPEED = 200 ACCEL = 2000 DECEL = 2000 '计算TABLE的数据 DIM deg, rad, x, stepdeg stepdeg = 2 '可以通过这个来修改段数,段数越多速度越平稳 FOR deg=0 TO 360 STEP stepdeg rad = deg * 2 * PI/360 '转换为弧度 X = deg * 25 + 10000 * (1-COS(rad)) '计算每小段位移 TABLE(deg/stepdeg,X) '存储TABLE TRACE deg/stepdeg,X NEXT deg TRIGGER '触发示波器采样 WHILE 1 '循环运动 CAM(0, 360/stepdeg, 0.1, 300) '虚拟跟踪总长度300 WAIT UNTIL IDLE '等待运动停止 WEND END
运动轨迹如下图:每个凸轮指令运动总时间=distance/speed=300/200=1.5s
在实际生产过程中遇到紧急情况和一些意外情况我们需要让轴运动及时的停下来,这时候我们就需要发送运动取消指令给控制器取消轴的运动,防止意外事故的发生。
运动取消分针对单轴的指令CANCEL和针对所有轴的指令RAPIDSTOP,两个指令功能相同,唯一不同的是一个针对单个轴,一个是针对所有轴的,故单轴取消在使用的时候养成添加轴号的习惯,否则可能作用到其他轴上。 语法:CANCEL(模式)或RAPIDSTOP(模式) 模式值 | 说明 | 0(缺省) | 取消当前运动,缓冲运动还能执行 | 1 | 取消缓冲的运动,当前运动执行完停止 | 2 | 取消当前运动和缓冲区的运动,轴立即停止 | 3 | 立即中断脉冲发送,轴立即停止 |
模式2急停的减速度按FASTDEC快减速和DECEL减速度中最大的值,使用指令之后要调用绝对位置运动,必须先WAIT IDLE 等待停止完成。 RAPIDSTOP(2) WAIT IDLE(0) BASE(0) DPOS=0 ATYPE=1 UNITS=10000 SPEED=500 ACCEL=1000 DECEL=1000 '减速度 FASTDEC=10000 '快减速 TRIGGER MOVE(1000) '当前运动 MOVE(-1000) '缓冲运动 DELAY(1000) '延时1s后CANCEL生效 CANCEL(0) END CANCEL(0)效果如下:MOVE(1000)执行1s之后被取消,缓冲运动继续运行。CANCEL(1)效果如下:MOVE(1000)执行完,缓冲运动被取消。
CANCEL(2)效果如下:MOVE(1000)执行1s之后急停,急停减速度FASTDEC。
CANCEL(3)效果如下:MOVE(1000)执行1s之后急停。
本次,正运动技术经济型EtherCAT运动控制器(八):轴参数与运动指令,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
经济型EtherCAT运动控制器(六):数据储存 经济型EtherCAT运动控制器(五):多任务运行 经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯 经济型EtherCAT运动控制器(三):PLC实现多轴直线插补与电子凸轮
经济型EtherCAT运动控制器(二):ZBasic实现多轴直线插补运动
经济型EtherCAT运动控制器(一):功能简介与应用场景
运动控制+机器视觉Demo软件框架(三):视觉纠偏+连续插补的配方编辑
运动控制+机器视觉Demo软件框架(二):移动标定和形状匹配
运动控制+机器视觉Demo软件框架(一):机械参数和配方文件的管理
运动控制+机器视觉Demo软件框架系统概述
开放式激光振镜+运动控制器(六):双振镜运动
开放式激光振镜+运动控制器(五):ZMC408SCAN控制器硬件介绍
开放式激光振镜+运动控制器(四):PSO位置同步输出在激光振镜加工中的应用
开放式激光振镜+运动控制器(三):振镜矫正 开放式激光振镜+运动控制器(二):振镜填充 开放式激光振镜+运动控制器(一):硬件接口
EtherCAT运动控制器之ZMIO300模块的使用 EtherCAT运动控制器的PLC编程(四) 电子凸轮
EtherCAT运动控制器的PLC编程(三) 电子齿轮
EtherCAT运动控制器的PLC编程(二) 圆弧插补
EtherCAT运动控制器的PLC编程(一) 直线插补
快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
快速入门 | 篇二十一:正运动技术运动控制器自定义通讯
快速入门 | 篇二十:正运动技术运动控制器MODBUS通讯
快速入门 | 篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介
快速入门 | 篇十八:正运动技术脉冲型运动控制器的使用
快速入门 | 篇十七:运动控制器多轴插补运动指令的使用
快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门
快速入门 | 篇十五:运动控制器运动缓冲简介
快速入门 | 篇十四:运动控制器基础轴参数与基础运动控制指令
快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用
快速入门 | 篇十一:正运动技术运动控制器中断的应用
快速入门 | 篇十:运动控制器多任务运行特点 快速入门 | 篇九:如何进行运动控制器示波器的应用?
快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门 | 篇六:如何进行运动控制器数据与存储的应用?
快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用?
快速入门 | 篇四:如何进行运动控制器与触摸屏通讯?
快速入门 | 篇三:如何进行运动控制器ZPLC程序开发?
快速入门 | 篇二:如何进行运动控制器ZBasic程序开发?
快速入门 | 篇一:如何进行运动控制器固件升级?
G代码在运动控制器上的应用 运动控制器的自定义G代码编程应用
离线仿真调试,加快项目进度!
8轴EtherCAT轴扩展模块EIO24088的使用 运动控制器之追剪应用Demo
运动控制器激光振镜控制 ZMC运动控制器SCARA机械手应用快速入门 运动控制器RTEX总线使用入门
正运动技术CAD导图软件配合控制器的使用方法 EtherCAT总线运动控制器应用进阶一
EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续
EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
EtherCAT运动控制卡开发教程之python
EtherCAT运动控制卡的SCARA等机器人指令的应用 EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步 EtherCAT运动控制卡硬件比较输出以及编码器锁存 EtherCAT运动控制卡IO动作与运动控制的同步 EtherCAT运动控制卡实时程序的运行和读写控制
EtherCAT运动控制卡的运动暂停、恢复与系统安全设置 EtherCAT运动控制卡小线段前瞻的连续插补运动 EtherCAT运动控制卡的多轴插补运动和手轮运动 EtherCAT运动控制卡的辅助调试工具与方法介绍 EtherCAT运动控制卡的总线轴参数设置和轴运动 EtherCAT运动控制卡的硬件接线与C#的硬件外设读写与回零运动 EtherCAT运动控制卡的硬件接线与C#的单轴运动控制
简单易用的运动控制卡(十六):螺距补偿和反向间隙补偿 简单易用的运动控制卡(十五):PC启停控制器的实时程序
简单易用的运动控制卡(十四):PWM、模拟量输出与运动控制的同步
简单易用的运动控制卡(十三):IO动作与运动控制的同步
简单易用的运动控制卡(十二):运动控制系统的安全设置
简单易用的运动控制卡(十一):运动的暂停恢复和速度倍率设置
简单易用的运动控制卡(十):连续插补和小线段前瞻
简单易用的运动控制卡(九):圆弧插补和螺旋插补
简单易用的运动控制卡(八):直线插补和手轮运动
简单易用的运动控制卡(七):一次性加载多条连续小线段数据
简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工
简单易用的运动控制卡(五):IO配置与回零运动
简单易用的运动控制卡(四):函数库的封装
简单易用的运动控制卡(三):轴参数配置和单轴运动控制
简单易用的运动控制卡(二):外设读写与ZDevelop诊断 简单易用的运动控制卡(一):硬件接线和上位机开发
运动控制卡在ROS上的应用(下)
运动控制卡在ROS上的应用(上)
EtherCAT运动控制卡和LabVIEW构建智能装备(五) EtherCAT运动控制卡和LabVIEW构建智能装备(四) EtherCAT运动控制卡和LabVIEW构建智能装备(三) EtherCAT运动控制卡和LabVIEW构建智能装备(二) EtherCAT运动控制卡和LabVIEW构建智能装备(一) EtherCAT运动控制卡在LabVIEW中的运动控制与数据采集
运动控制卡应用开发教程之MATLAB 运动控制卡应用开发教程之C++ 运动控制卡应用开发教程之Python 运动控制卡应用开发教程之C# 运动控制卡应用开发教程之Linux 运动控制卡应用开发教程之VB.NET
运动控制卡应用开发教程之VB6.0 运动控制卡应用开发教程之VC6.0 运动控制卡应用开发教程之使用Qt 运动控制卡应用开发教程之LabVIEW 运动控制卡应用开发教程之激光振镜控制 运动控制卡应用开发教程之硬件比较输出
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业,主要产品有运动控制器、运动控制卡、视觉运动控制一体机、人机界面以及扩展模块等。 正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。 正运动技术背靠蓬勃发展的制造业,与时俱进,富有创新,致力于智能制造设备商和终端用户不断提升技术应用和制造水平。经过众多合作伙伴多年的应用开发,产品广泛应用于国内外的3C电子、半导体、印刷包装、纺织服装、激光加工、机械加工、机器人、新能源、医疗保健、舞台娱乐等领域。 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |