第二章 运动控制指令-基础指令

当前运动指令正在执行时,后续调用的运动指令会自动缓冲起来,控制器每个轴可以支持最多达512级运动缓冲(不同型号控制器缓冲个数有区别),当缓冲全部占用时,后续调用的运动指令会阻塞当前任务,直到缓冲有空位。

每个运动指令都带有一个MOVE_MARK参数,通过MOVE_CURMARK可以知道当前缓冲运行到哪一个了。

MOVE等单轴运动指令采用SPEED等各自单轴的轴参数。

MOVE等多轴插补运动指令采用BASE主轴SPEED等轴参数作为矢量合成速度,但其有相应的SP指令,SP指令可以为每个运动指定不同的速度等参数(FORCE_SPEED,STARTMOVE_SPEED,ENDMOVE_SPEED),参见*SP

轴参数MERGE用来设置多轴插补指令中间是否减速到零,MERGE=ON时不减速,此时轴参数CORNER_MODE可以设置多轴插补之间是否自动减速到必要的速度。

控制器支持运动暂停,参见MOVE_PAUSE

控制器支持运动叠加,参见ADDAX

目录

 

BASE [选择运动轴]

AXIS [强制指定轴]

ADDAX [运动叠加]

DEFPOS [设置当量位置]

CANCEL [BASE轴停]

RAPIDSTOP [所有轴停]  


BASE [选择运动轴]

TYPE:

运动指令

 

DESCRIPTION:

选择要设置参数、参与运动的轴。

缺省值依次为:012…

程序中在下一条BASE指令被执行前,都以上一条BASE指令选择轴

每个任务拥有独立的轴列表,会记住任务中BASE选择的轴,用于不同机台的控制。

当插补运动的时候,第一个轴的运动参数作为插补参数。见EXAMPLE

如果在BASE指令中没有列出所有的轴,BASE指令自动将剩余轴顺序排列在后面。见EXAMPLE2

 

SYNTAX:

BASE(axis<,second axis><,third axis>...)

 

PARAMETERS:

axis

第一个轴

second axis

下一个轴

参数最多为控制器支持的轴数,参照对应控制器硬件手册

 

EXAMPLE:

BASE(0,1,2,3) '轴列表选择为:0,1,2,3

SPEED=100,10,20,30 '此时轴0,1,2,3设置了对应速度,但是插补

'运动时,只有主轴速度100起作用

MOVE(100,100,100,100) '轴0,1,2,3联合插补运动,合成运动的速度

'为100,各轴速度为分速度

 

EXAMPLE2:

BASE(1) '轴列表选择为:1

MOVE(100,100,100) '轴1,2,3做插补运动

 

EXAMPLE3:

BASE(0,2,5) '轴列表选择为:0,2,5

SPEED=100

MOVE(100,100,100) '0,2,5做插补运动

EXAMPLE4:

BASE(0,1)

ATYPE=1,1

UNITS=100,100

SPEED=100,100

ACCEL=1000,1000

DECEL=1000,1000 '减速度设为1000

FASTDEC=10000,10000 '快减减速度设为10000

MOVE(1000,100) '当前运动

base(1)

MOVE(-1000) '缓冲运动

?dpos

AXIS [强制指定轴]

TYPE:

辅助指令

 

DESCRIPTION:

临时修改一个运动指令或轴参数到一个指定轴上去执行。

对轴参数,可以AXIS可以省掉。

 

SYNTAX:

AXIS(expression)

 

PARAMETERS:

expression

临时修正的新轴号,执行完后,轴选择仍以BASE指令为准

 

EXAMPLE:

BASE(0)

SPEED=100,500

MOVE(1000) AXIS(1) '此时强制轴1运动1000units

MOVE(100) '0运动100units

 

 

EXAMPLE2:

BASE(1)

UNITS AXIS(0)=100 '强制指定轴0 UNITS设为100

'可简写为UNITS(0)=100

UNITS=10 '1 UNITS设为10

 

ADDAX [运动叠加]

TYPE:

单轴运动指令

 

DESCRIPTION:

运动叠加,把一个轴的运动叠加到另一个轴。

ADDAX指令叠加的是脉冲个数,而不是设置的units单位。

转换关系:叠加轴运动距离*叠加轴UNITS/被叠加轴UNITS=被叠加轴运动距离。

假设轴AUNITS100,轴BUNITS50,叠加轴运动100

把轴A的运动叠加到轴B,此时轴A显示运动了100,轴B运动了100*100/50=200

把轴B的运动叠加到轴A,此时轴B显示运动了100,轴A运动了100*50/100=50

轴之间不能相互同时叠加,A叠加到B后,B不能再叠加到A

叠加时速度从被叠加轴开始变化,加减速按照叠加轴加减速及两轴units比例确定。

ADDAX 在轴MTYPEFRAME, REFRAME的时候不起作用。

在轴ATYPE为纯编码器类型的时候, 不起作用。

 

SYNTAX:

ADDAX(axis)

 

PARAMETERS:

axis

轴号

 

EXAMPLE:

BASE(0,1)

ATYPE=1,1

UNITS=100,200 '轴0 UNITS设100,轴1 UNITS设200

SPEED=100,100 '速度设100

ACCEL=1000,1000 '加速度1000

DECEL=1000,1000 '减速度1000

ADDAX(0)AXIS(1) '轴0的运动叠加到轴1,按脉冲个数叠加

DPOS=0,0 '设置位置为0,0

TRIGGER '自动触发示波器

MOVE(100) '轴0运动100,此时轴1运动 100*100/200=50

'要考虑到两轴UNITS的转换

WAIT IDLE '等待运行完

ADDAX(-1)AXIS(1) '取消叠加

 

EXAMPLE2:

BASE(0,1)

ATYPE=1,1

UNITS=100,200 '0 UNITS100,轴1 UNITS200

SPEED=100,100 '速度设1000

ACCEL=1000,1000 '加速度10000

DECEL=1000,1000 '减速度10000

ADDAX(0)AXIS(1) '0的运动叠加到轴1,按脉冲个数叠加

DPOS=0,0 '设置位置为0,0

TRIGGER '自动触发示波器

MOVE(500)AXIS(1)

MOVE(100) '0运动100,此时轴1运动 100*100/200=50

'要考虑到两轴UNITS的转换

WAIT IDLE '等待运行完

ADDAX(-1)AXIS(1) '取消叠加

 

DEFPOS [设置当量位置]

TYPE:

坐标指令

 

DESCRIPTION:

设置当前位置为一个新的绝对位置值,不会对已运行/进入缓冲区的运动产生影响。

 

SYNTAX:

DEFPOS(pos1 [,pos2[, pos3[, pos4.....]]])

 

PARAMETERS:

pos1

绝对位置,采用unit定义单位。

Pos2

下一轴的绝对位置,采用unit定义单位。

 

EXAMPLE:

BASE(0,1) '选择轴0,轴1

ATYPE=1,1

UNITS=100,100 'UNITS设为100

DPOS=0,0 '把DPOS清0

MOVE(100,100) '轴0和轴1运动100

WAIT IDLE

?DPOS(0),DPOS(1) '此时DPOS都为100

DEFPOS(0,10) '设置当前位置

?DPOS(0),DPOS(1) '此时DPOS为0,10

 

EXAMPLE2:

'OFFPOS相对改变不同,DEFPOS是改变为绝对位置

BASE(0,1) '选择轴0,轴1

DPOS=100,100 '设置当前位置为100,100

?DPOS(0),DPOS(1) '打印确认

DEFPOS(10,20) '设置当前位置为10,20

?DPOS(0),DPOS(1) '当前位置为10,20

DEFPOS(10,20) '多次调用DEFPOS

DEFPOS(10,20)

?DPOS(0),DPOS(1) '此时当前位置仍为10,20

OFFPOS=10,20 '多次调用OFFPOS

OFFPOS=10,20

?DPOS(0),DPOS(1) '此时当前位置变为30,6010+10+10,20+20+20

CANCEL [BASE轴停]

TYPE:

多轴运动指令

 

DESCRIPTION:

BASE轴减速停止,如果轴参与插补,也停止插补运动。

Mode0~2减速度按FASTDEC和DECEL中最大的值。

CANCEL后要调用绝对位置运动,必须先WAIT IDLE 等待停止完成。

 

注意:停止的缓冲运动包括指令缓冲和运动缓冲。

 

SYNTAX:

CANCEL(mode)

 

PARAMETERS:

mode

  1. 取消当前运动
  2. 取消缓冲的运动
  3. 取消当前运动和缓冲运动。
  4. 立即中断脉冲发送。

EXAMPLE:

BASE(0)

ATYPE=1

DPOS=0

UNITS=100

SPEED=100

ACCEL=1000

DECEL=1000 '减速度设为1000

FASTDEC=10000 '快减减速度设为10000

MERGE = ON

MOVE(1000) '当前运动

MOVE(-1000) '缓冲运动

WA 1000

CANCEL(0) '此时轴取消当前运动,减速度为10000 ,继续执行下一个运动。

 

EXAMPLE2:

BASE(0)

ATYPE=1

DPOS=0

UNITS=100

SPEED=100

ACCEL=1000

DECEL=1000 '减速度设为1000

FASTDEC=10000 '快减减速度设为10000

MERGE = ON

MOVE(1000) '当前运动

MOVE(-1000) '缓冲运动

CANCEL(1) '此时轴只执行完MOVE(1000),减速度为10000

EXAMPLE3:

BASE(0)

ATYPE=1

DPOS=0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MERGE = ON

MOVE(10000) '当前运动10000

DELAY(2000) '延时2秒

CANCEL(3) '此时直接切断脉冲发送,轴立即停止。

EXAMPLE4:

BASE(0)

ATYPE=1

DPOS=0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(10000) '当前运动10000

BASE(1)

ATYPE=1

DPOS=0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(10000) '当前运动10000

DELAY(2000) '延时2秒

CANCEL(3) '此时直接切断脉冲发送,轴1立即停止,仅停止base(1)轴。

EXAMPLE5:

BASE(0,1)

ATYPE=1,1

DPOS=0,0

SPEED=1000

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(1000,1000) '插补运动

DELAY(1000) '延时1秒

CANCEL(2)AXIS(1) '停止轴1,轴1参与了插补,插补运动也停止

RAPIDSTOP [所有轴停]  

TYPE:

多轴运动指令

 

DESCRIPTION:

所有轴立即停止,如果轴参与插补,也停止插补运动。

Mode0~2减速度按FASTDECDECEL中最大的值。

RAPIDSTOP后要调用绝对位置运动,必须先WAIT IDLE 等待停止完成。

 

注意:停止的缓冲运动包括指令缓冲和运动缓冲。

 

SYNTAX:

RAPIDSTOP (mode)

 

PARAMETERS:

mode

取消当前运动

  1. 取消缓冲的运动
  2. 取消当前运动和缓冲运动。
  3. 立即中断脉冲发送。

 

EXAMPLE:

BASE(0,1,2)

ATYPE=1,1,1

UNITS=100

SPEED=100 '插补合成运动速度100

ACCEL=1000

DECEL=1000 '减速度设为1000

FASTDEC=10000 '快减减速度设为10000

MOVE(1000,1000,1000) '当前运动

MOVE(-1000,-1000,-1000) '缓冲运动

RAPIDSTOP (1) '此时轴只执行完当前运动,减速度为10000

EXAMPLE2:

BASE(0,1)

ATYPE=1,1

DPOS=0,0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(10000,10000) '插补运动10000

DELAY(2000) '延时2秒

RAPIDSTOP (3) '此时直接切断脉冲发送,轴立即停止。

EXAMPLE3:

BASE(0)

ATYPE=1

DPOS=0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(10000) '当前运动10000

BASE(1)

ATYPE=1

DPOS=0

SPEED=100

ACCEL=1000

DECEL=1000

FASTDEC=1000

MOVE(10000) '当前运动10000

DELAY(2000) '延时2秒

RAPIDSTOP (3) '此时直接切断脉冲发送,全部轴立即停止。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值