直接跳到内容

运动控制指令

运动控制指令是实现某种运动过程的指令集合,包含单轴指令、多轴指令、高级指令等。本章将详细介绍各种指令的用法。

单轴指令

MC_Power

轴使能(上电),只有当轴使能后,才能投送运动控制指令,否则投送指令将报错。因此在投送任何指令之前先确保轴使能成功。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
EnableBOOL使能引脚。高电平使能,低电平失能。
输出参数名称数据类型含义
StatusBOOL使能状态,TRUE:使能,FALSE:失能。
ValidBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

使用举例

当输入参数Enable=TRUE,轴PositionControl_Axis_0被使能,被控伺服电机动力线上电,可以投送运动控制指令控制伺服电机运动。当Enable=FALSE,轴将失能,被控伺服电机动力线断电,轴将不再处理运动指令。

img

MC_Home

轴按照回零页面配置的参数回原点。轴在进入正常工作前必须先进行回原点动作,找到轴机械原点位置。回原点后轴才会有确定的坐标系位置。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
PositionLREAL零点相对偏量
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

使用举例(例程路径:安装目录\example\运动控制\Home)

当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照回零页面配置的参数执行回原点动作。当Done=TRUE时,表示轴PositionControl_Axis_0回原点成功并设置该位置为Position值 。

img

MC_SetPosition

修改轴当前位置,达到移动坐标系的作用。例如轴当前坐标为10000,用户想让此位置变为0坐标,就可以调用此指令设定当前位置为0。

例如:轴当前坐标为10000,想要修改当前位置为0坐标,在Relative=FLASE的情况下,Position=0。在Relative=TRUE的情况下,Position=10000。因此Relative=FLASE时轴位置将被定义为Position位置值,Relative=TRUE时Position位置被定义为新的0原点位置,轴当前位置将按照新原点位置进行偏移。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
PositionLREAL修改位置
RelativeBOOL修改模式。TRUE:相对位置;FALSE:绝对位置。
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

使用举例

假设轴当前位置为100,当输入参数Execute上升沿时,Position=900,在 Relative=FALSE时,轴PositionControl_Axis_0当前位置被修改为Position位置值900 。在 Relative=TRUE时,轴PositionControl_Axis_0当前位置被修改为100-Position= -800位置值 。

img

MC_Stop

轴停止,撤销轴缓存所有指令,轴按照设定减速度减速停止后进入停止状态。停止状态下投送指令无效。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
DecelerationLREAL减速度
JerkLREAL加加速度
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

使用举例

当输入参数Execute上升沿时,将清除轴PositionControl_Axis_0缓存中所有运动指令,按照Deceleration减速度减速停止(在未完全停止之前,还可以再次修改Deceleration减速度,重新触发Execute上升沿,轴将按照新的Deceleration减速度继续减速停止),当Done=TRUE时,表示轴停止完成 。此时轴将进入Stopping状态,不再执行任何运动指令。如果在此状态下投送运动指令将会返回错误。当输入参数Execute=FALSE, 轴将从Stopping状态切换到StandStill状态,此时将可以执行运动指令。

img

MC_Halt

轴暂停,撤销轴当前指令,轴按照设定减速度减速停止后继续执行缓存中的后续指令。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
DecelerationLREAL减速度
JerkLREAL加加速度
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

使用举例

当输入参数Execute上升沿时,将清除轴PositionControl_Axis_0当前运动指令,按照Deceleration减速度减速停止(在未完全停止之前,还可以再次修改Deceleration减速度,重新触发Execute上升沿,轴将按照新的Deceleration减速度继续减速停止),当Done=TRUE时,表示清除当前指令完成 。轴将继续执行缓存中的后续指令。

img

MC_Reset

复位轴错误,清除轴当前错误。例如轴因为限位或位置偏差超限减速停止,进入Error状态。此时需要清除错误后才能再次投送指令。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

使用举例

当输入参数Execute上升沿时,将清除轴PositionControl_Axis_0错误,使轴从 ErrorStop状态切换为StandStill状态 。例如:轴因为位置偏差报错进入ErrorStop状态,可通过该指令清除该错误,否则轴将不再执行任何指令。

img

MC_MoveRelative

轴按照设定的速度、加速度、减速度运动一段相对位移量(正负均可)。在运动过程中,可以实时修改轴设定速度(SetValue.SetVelocity)、加速度(SetValue.SetAcceleration)、减速度(SetValue.SetDeceleration)。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
DistanceLREAL相对位移量,可正可负。
VelocityLREAL目标速度
AccelerationLREAL加速度
DecelerationLREAL减速度
JerkLREAL加加速度
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

img

img

img

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\MoveRelative)

假设轴当前位置为100,Distance= -50。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度、加速度、减速度负向位移50,轴当前位置就变为了50。

假设轴当前位置为100,Distance= 50。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度、加速度、减速度正向位移50,轴当前位置就变为了150。

指令执行后,此功能快的输入速度参数将不再实时生效。如果需要修改轴的运动速度,只能修改轴对象参数。例如:PositionControl_Axis_0.SetValue.SetVelocity。

img

MC_MoveAbsolute

轴按照设定的速度、加速度、减速度运动到指定的绝对位置(正负零均可)。在运动过程中,可以实时修改轴设定速度(SetValue.SetVelocity)、加速度(SetValue.SetAcceleration)、减速度(SetValue.SetDeceleration)。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
PositionLREAL绝对位置,可正可负可0。
VelocityLREAL目标速度
AccelerationLREAL加速度
DecelerationLREAL减速度
JerkLREAL加加速度
DirectionMC_DIRECTION位移方向(具体说明参考下面MC_DIRECTION说明)
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_DIRECTION:仅对旋转轴有效,线性轴此参数无效。

含义
DIRECTION_Negative负向运动到绝对位置
DIRECTION_ShortestWay按最短距离方向运动到绝对位置
DIRECTION_Positive正向运动到绝对位置
DIRECTION_Current按当前方向运动到绝对位置
DIRECTION_FastestWay等效DIRECTION_ShortestWay

MC_BUFFER_MODE:

含义
mcAborting非缓存模式,立即执行,当前指令将被终止。【暂不支持】
mcBuffered缓存模式,当前运动结束后执行;
mcBlendingLow缓存模式,速度与两个指令的最低速度混合。
mcBlendingPrevious缓存模式,速度与当前指令速度混合
mcBlendingNext缓存模式,速度与下一个指令速度混合
mcBlendingHigh缓存模式,速度与两个指令的最高速度混合。

img

img

img

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\MoveAbsolute)

假设轴当前位置为100,Position= -50。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度、加速度、减速度位移到-50,轴当前位置就变为了-50。

假设轴当前位置为100,Position= 50。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度、加速度、减速度位移到50,轴当前位置就变为了50。

指令执行后,此功能快的输入速度参数将不再实时生效。如果需要修改轴的运动速度,只能修改轴对象参数。例如:PositionControl_Axis_0.SetValue.SetVelocity。

img

MC_MoveVelocity

轴按照设定的速度、加速度、减速度持续运动。在运动过程中,可以实时修改轴设定速度(SetValue.SetVelocity)、加速度(SetValue.SetAcceleration)、减速度(SetValue.SetDeceleration)。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
VelocityLREAL目标速度
AccelerationLREAL加速度
DecelerationLREAL减速度
JerkLREAL加加速度
DirectionMC_DIRECTION位移方向(具体说明参考下面MC_DIRECTION说明)
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InVelocityBOOL到达目标速度Velocity标志,TRUE:表示轴当前速度=目标速度Velocity。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_DIRECTION:

含义
DIRECTION_Negative负向运动
DIRECTION_ShortestWay无效
DIRECTION_Positive正向运动
DIRECTION_Current按当前方向运动
DIRECTION_FastestWay无效

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\MoveVelocity)

假设Direction=DIRECTION_Negative。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度参数持续负向运动。

假设Direction=DIRECTION_Positive。当输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度参数持续正向运动。

指令投送后将一直运转,除非遇到限位、位置偏差超限、调用Stop或Halt指令终止时,轴才会停止运动。

指令执行后,此功能快的输入速度参数将不再实时生效。如果需要修改轴的运动速度,只能修改轴对象参数。例如:PositionControl_Axis_0.SetValue.SetVelocity。

img

MC_MoveAdditive

轴按照设定的速度、加速度、减速度在当前指令目标位置上叠加一段位移量(可正可负),只对相对和绝对运动指令有效。如果当前没有指令,那么等效投送了一条相对运动指令。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
DistanceLREAL叠加位移量
VelocityLREAL目标速度
AccelerationLREAL加速度
DecelerationLREAL减速度
JerkLREAL加加速度
BufferModeMC_BUFFER_MODE缓存模式(对此指令无效)
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\MoveAdditive)

假设轴当前位置为100,当前正在执行一个相对位移200的指令。当Distance=50,输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度参数修改当前指令位置增量为200+50=250,轴运动结束后的位置就变为了100+200+50=350。

假设轴当前位置为100,当前正在执行一个相对位移200的指令。当Distance= -500,输入参数Execute上升沿时,轴PositionControl_Axis_0将按照设定的速度参数修改当前指令位置增量为200+(-500)= -300,由于修改后增量位置和轴当前位置相反,因此轴会先减速停止,然后再反向运动到修改后的增量位置。最终轴运动结束后的位置就变为了100+200+(-500)= -200。

指令执行后,此功能快的输入速度参数将不再实时生效。如果需要修改轴的运动速度,只能修改轴对象参数。例如:PositionControl_Axis_0.SetValue.SetVelocity。

img

MC_TouchProbe

实现轴位置捕获功能,当捕获信号触发后,将返回当时的轴位置值。包含软捕获和硬捕获两种方式,软捕获为运动控制算法任务周期查询捕获,捕获值存在一个伺服周期的误差,轴转速越高误差越大。硬捕获是直接由伺服电机自身通过自己的硬件IO信号实现捕获,无捕获误差。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
TriggerInputMC_TRIGGER_REF触发参数(详见MC_TRIGGER_REF类型描述)
ExecuteBOOL触发引脚,上升沿投送指令。
WindowOnlyBOOL窗口使能,TRUE:窗口有效,FALSE:窗口无效。
FirstPositionLREAL窗口起始位置
LastPositionLREAL窗口结束位置
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。
PositionPosLREAL上升沿捕获值
PositionNegLREAL下降沿捕获值

MC_TRIGGER_REF:

参数名称数据类型含义
TriggerNumberUINT触发通道;仅在 FastLatching=TRUE有效,取值范围1或2;
FastLatchingBOOLFALSE:捕获在任务中由Input触发信号完成捕获;TRUE:伺服驱动器中完成捕获,具体方式参考Mode变量描述;。
InputBOOL触发信号,当FastLatching=FALSE时有效。
ModeINT0:上升沿捕获;1:下降沿捕获;2:双沿捕获
InputTypeINT0:DI捕获;1:Z相捕获。(FastLatching=TRUE有效)

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

窗口功能使用注意事项:

1、FastLatching=TRUE时,不支持窗口功能,使能窗口投送捕获指令时会报错;

2、当FirstPosition<LastPosition时,轴位置在≥FirstPosition且≤LastPosition区间内才启动捕获功能,即窗口内捕获;

​ 当FirstPosition>LastPosition时,轴位置在≥FirstPosition或≤LastPosition区间内才启动捕获功能,即窗口外捕获;

3、捕获指令最多允许投送20个。当20个捕获指令投送满后,当有一个捕获指令结束后,才可再投送一个捕获指令;

4、捕获指令投送后,如果在捕获未结束前需要结束捕获,那么需要调用MC_AbortTrigger指令终止捕获;

使用举例(例程路径:安装目录\example\运动控制\TouchProbe)

默认捕获模式为软捕获,触发信号上升沿有效。可以修改TriggerInput参数实现其它捕获模式。

img

MC_AbortTrigger

终止捕获功能,当捕获未结束前可使用该功能块终止捕获。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
TriggerInputMC_TRIGGER_REF触发参数(详见MC_TRIGGER_REF类型描述)
ExecuteBOOL触发引脚,上升沿投送指令。
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_TRIGGER_REF:

参数名称数据类型含义
TriggerNumberUINT触发通道;仅在 FastLatching=TRUE有效,取值范围1或2;
FastLatchingBOOLFALSE:捕获在任务中由Input触发信号完成捕获;TRUE:伺服驱动器中完成捕获,具体方式参考Mode变量描述;。
InputBOOL触发信号,当FastLatching=FALSE时有效。
ModeINT0:上升沿捕获;1:下降沿捕获;2:双沿捕获
InputTypeINT0:DI捕获;1:Z相捕获。(FastLatching=TRUE有效)

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

注意事项:Axis和TriggerInput参数与MC_TouchProbe中的Axis和TriggerInput参数为同一变量时才能终止对应的捕获功能;

使用举例

终止Axis_X轴捕获。

img

多轴指令

MC_GearIn

从轴与主轴建立齿轮关系,从轴按照设定的齿轮比、速度、加速度、减速度与主轴保持齿轮比例关系。

img

参数说明

输入参数名称数据类型含义
MasterAXIS_REF主轴名称,例如:PositionControl_Axis_0。
SlaveAXIS_REF从轴名称,例如:PositionControl_Axis_1。
ExecuteBOOL触发引脚,上升沿投送指令。
RatioNumeratorDINT齿轮比分子
RatioDenominatorDINT齿轮比分母
MasterValueSourceMC_SOURCE主轴位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
AccelerationLREAL加速度
DecelerationLREAL减速度
JerkLREAL加加速度
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InGearBOOL齿轮啮合结束标志,TRUE:表示啮合结束,反之从轴正在啮合中。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\Gear)

假设要求从轴PositionControl_Axis_1与主轴PositionControl_Axis_0保持1:2的齿轮关系,即从轴一直保持主轴位移增量的1/2。

当输入参数Execute上升沿时,从轴PositionControl_Axis_1将按照设定的速度参数与主轴保持齿轮关系,保持成功后InGear将为TRUE,表示齿轮啮合成功。

齿轮指令投送后将一直存在,除非遇到限位、位置偏差超限、调用Stop、Halt、GearOut指令终止时,齿轮指令才会清除。

img

MC_GearOut

从轴与主轴齿轮关系解除,从轴将减速停止。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。 使用举例

当输入参数Execute上升沿时,从轴PositionControl_Axis_1与主轴的齿轮关系将解除并减速停止,Done=TRUE时表示齿轮解除并停止成功。

img

MC_CamIn

从轴与主轴建立凸轮关系,从轴按照凸轮表(CamTable)与主轴保持凸轮关系。

img

参数说明

输入参数名称数据类型含义
MasterAXIS_REF主轴名称,例如:PositionControl_Axis_0。
SlaveAXIS_REF从轴名称,例如:PositionControl_Axis_1。
CamTableMC_CamTable凸轮表(具体说明参考下面MC_CamTable说明)
ExecuteBOOL触发引脚,上升沿投送指令。
MasterValueSourceMC_SOURCE主轴位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InSyncBOOL凸轮啮合结束标志。TRUE:表示啮合结束,反之从轴正在啮合中。
EndOfProfileBOOL凸轮末尾标志。TRUE:从轴到达凸轮末尾,反之从轴未到达凸轮末尾。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_CamTable:

参数名称数据类型含义
TableCountDWORD凸轮数组元素个数(二维数组中第一维的元素个数)
TableArrayPOINTER TO BYTE凸轮数组指针(凸轮数组为二维数组,第一维是主轴位置,第二维是从轴位置。元素数据间为增量变化,且主轴元素数据必须单调递增变化。)凸轮数组数据必须为LREAL类型。
MasterScalingLREAL主轴比例系数(从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
SlaveScalingLREAL从轴比例系数 (从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
PeriodicBOOL周期模式。TRUE:周期模式;FALSE:单次模式。
CamEnableSettingMC_CamEnableSetting凸轮启动方式。(具体说明参考下面MC_ CamEnableSetting说明)

MC_CamEnableSetting:

参数名称数据类型含义
EnableModeMC_CAM_ENABLE_MODE凸轮启动模式。mcEnableImmediate:立即启动;mcEnableInPosition:指定位置启动;mcEnableBySignal:信号启动。
EnablePositionLREAL指定位置启动模式下,主轴的指定位置值。
EnableSignalBOOL信号启动模式下,信号变量值。
EnableRisingEdegeBOOL信号启动模式下,信号的有效电平。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\Gam)

假设主轴每增量位移1000,从轴正向位移50再负向位移50回到原位。凸轮元素个数11个,循环凸轮,立即启动模式。投送凸轮前,需要先给凸轮数组指针赋值。当输入参数Execute上升沿时,从轴PositionControl_Axis_1将按照设定的参数投送凸轮,成功后InSync将为TRUE,表示凸轮啮合成功。之后主轴增量位移500,从轴增量位移50,主轴再次增量位移500,从轴增量位移-50,如此循环下去。

凸轮指令投送后将一直存在,除非遇到限位、位置偏差超限、调用Stop、Halt、CamOut指令终止时,凸轮指令才会清除。

img

MC_CamOut

从轴与主轴齿轮关系解除,从轴将减速停止。

img

参数说明

输入参数名称数据类型含义
AxisAXIS_REF轴名称,例如:PositionControl_Axis_0。
ExecuteBOOL触发引脚,上升沿投送指令。
输出参数名称数据类型含义
DoneBOOL指令结束标志,TRUE:表示指令结束,反之未结束。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例

当输入参数Execute上升沿时,从轴PositionControl_Axis_1与主轴的凸轮关系将解除并减速停止,Done=TRUE时表示凸轮解除并停止成功。

img

MC_CombineAxes

从轴与主轴1和主轴2按照设定的比例绑定运动。绑定后从轴位移=主轴1位移主轴1比例+主轴2位移主轴2比例。

img

参数说明

输入参数名称数据类型含义
Master1AXIS_REF主轴1名称,例如:PositionControl_Axis_0。
Master2AXIS_REF主轴2名称,例如:PositionControl_Axis_1。
SlaveAXIS_REF从轴名称,例如:PositionControl_Axis_2。
ExecuteBOOL触发引脚,上升沿投送指令。
RatioNumeratorM1DINT从轴与主轴1绑定的齿轮比分子
RatioDenominatorM1DINT从轴与主轴1绑定的齿轮比分母
RatioNumeratorM2DINT从轴与主轴2绑定的齿轮比分子
RatioDenominatorM2DINT从轴与主轴2绑定的齿轮比分母
MasterValueSourceM1MC_SOURCE主轴1位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
MasterValueSourceM2MC_SOURCE主轴2位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InSyncBOOL绑定结束标志,TRUE:表示绑定结束,反之从轴正在绑定中。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

使用举例(例程路径:安装目录\example\运动控制\CombineAxes)

假设要求从轴PositionControl_Axis_2与主轴1PositionControl_Axis_0和主轴2PositionControl_Axis_1保持绑定关系,与主轴1为1:2的齿轮关系,与主轴2为1:4的齿轮关系。

当输入参数Execute上升沿时,从轴PositionControl_Axis_2将按照设定的参数与两个主轴保持绑定关系,保持成功后InSync将为TRUE,表示绑定成功。之后主轴1位移100,主轴2位移200,那么从轴位移=100*(1/2)+200*(1/4)=100。

绑定指令投送后将一直存在,除非遇到限位、位置偏差超限、调用Stop、Halt指令终止时,绑定指令才会清除。

img

从轴跟随主轴按照带有分离的加减速阶段进行凸轮运动,可在追剪应用场景中使用。

img

参数说明

输入参数名称数据类型含义
MasterAXIS_REF主轴名称,例如:PositionControl_Axis_0。
SlaveAXIS_REF从轴名称,例如:PositionControl_Axis_1。
ExecuteBOOL触发引脚,上升沿投送指令。
MasterValueSourceMC_SOURCE主轴位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
SlaveDistanceLREAL从轴运动距离
MasterDistanceLREAL主轴运动距离(>0)
MasterDistAccLREAL从轴加速段主轴位移量(>0)(MasterDistAcc+MasterDistDec<=MasterDistance)
MasterDistDecLREAL从轴减速段主轴位移量(>0)
AccDecModeBOOL加减速模式(FALSE:梯形,TRUE:S形。)
PeriodicBOOLTRUE:周期凸轮;FALSE:单次凸轮
MasterScalingLREAL主轴比例系数(从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
SlaveScalingLREAL从轴比例系数 (从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
EnableSettingMC_CamEnableSetting启动方式。(具体说明参考下面MC_ CamEnableSetting说明)
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InSyncBOOL凸轮啮合结束标志。TRUE:表示啮合结束,反之从轴正在啮合中。
EndOfProfileBOOL凸轮末尾标志。TRUE:从轴到达凸轮末尾,反之从轴未到达凸轮末尾。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_CamEnableSetting:

参数名称数据类型含义
EnableModeMC_CAM_ENABLE_MODE凸轮启动模式。mcEnableImmediate:立即启动;mcEnableInPosition:指定位置启动;mcEnableBySignal:信号启动。
EnablePositionLREAL指定位置启动模式下,主轴的指定位置值。
EnableSignalBOOL信号启动模式下,信号变量值。
EnableRisingEdegeBOOL信号启动模式下,信号的有效电平。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

规划曲线

1、MasterDistAcc + MasterDistDec < MasterDistance,从轴运动轨迹包含加速、均速、减速三个阶段:

img

2、MasterDistAcc + MasterDistDec = MasterDistance,从轴运动轨迹包含加速、减速两个阶段,无匀速阶段:

img

3、MasterDistAcc = MasterDistance,MasterDistDec = 0,从轴运动轨迹只有加速阶段:

img

4、MasterDistAcc=0,MasterDistDec = MasterDistance,从轴运动轨迹只有减速阶段:

img

5、MasterDistAcc=0,MasterDistDec = 0,从轴运动轨迹只有匀速阶段:

img

假设裁切长度10米,裁刀移动行程3米,裁刀最大速度1米/秒,各阶段加减速时间都为1秒,则计算可得:

加速阶段从轴位移量=减速阶段从轴位移量=0.5米;

加速阶段主轴位移量=减速阶段主轴位移量=1米;

同步段从轴位移量=同步段主轴位移量=裁刀行程 - (加速阶段从轴位移量 + 减速阶段从轴位移量)=3 - 0.5 * 2 =2米;

裁刀正向运动主轴位移=裁刀负向运动主轴位移=1+2+1=4米;

裁刀等待阶段主轴位移=裁切长度 - (裁刀正向运动主轴位移 + 裁刀负向运动主轴位移)=10 - 4*2=2米;

img

组态思路:

1、将整个过程拆分成等待阶段、加速阶段、同步阶段、减速阶段、返回阶段;

2、每个阶段可以使用一个Movelink组态:

​ 等待阶段:SlaveDistance = 0,MasterDistance = 2,MasterDistAcc = MasterDistDec = 0;

​ 加速阶段:SlaveDistance = 0.5,MasterDistance = 1,MasterDistAcc = 1,MasterDistDec = 0;

​ 同步阶段:SlaveDistance = 2,MasterDistance = 2,MasterDistAcc = MasterDistDec = 0;(同步阶段可启动裁刀动作)

​ 减速阶段:SlaveDistance = 0.5,MasterDistance = 1,MasterDistAcc = 0,MasterDistDec = 1;

​ 返回阶段:SlaveDistance = -3,MasterDistance = 4,MasterDistAcc = MasterDistDec = 1;

img

组态逻辑:

img

从轴跟随主轴按照有基本跟随和带有分离加减速的叠加进行凸轮运动,可在旋切应用场景中使用。

img

参数说明

输入参数名称数据类型含义
MasterAXIS_REF主轴名称,例如:PositionControl_Axis_0。
SlaveAXIS_REF从轴名称,例如:PositionControl_Axis_1。
ExecuteBOOL触发引脚,上升沿投送指令。
MasterValueSourceMC_SOURCE主轴位置源。mcSetValue:从轴参考主轴目标位置;mcActualValue:从轴参考主轴实际位置。
SlaveBaseDistLREAL从轴恒速跟随位移
SlaveAddDistLREAL从轴叠加运动总位移
MasterSumDistLREAL主轴运动总位移(>0)
MasterBeforeDistLREAL叠加运动开始时主轴已完成位移(>0)(MasterBeforeDist+MasterAfterDist+MasterDistAcc+MasterDistDec<=MasterSumDist)
MasterAfterDistLREAL叠加运动结束时主轴剩余位移(>0)
MasterDistAccLREAL从轴叠加运动加速阶段主轴移动位移(>0)
MasterDistDecLREAL从轴叠加运动减速阶段主轴移动位移(>0)
AccDecModeBOOL加减速模式(FALSE:梯形,TRUE:S形。)
PeriodicBOOLTRUE:周期凸轮;FALSE:单次凸轮
MasterScalingLREAL主轴比例系数(从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
SlaveScalingLREAL从轴比例系数 (从轴最终输出值=解算值*( 主轴比例系数/ 从轴比例系数 ))
EnableSettingMC_CamEnableSetting启动方式。(具体说明参考下面MC_ CamEnableSetting说明)
BufferModeMC_BUFFER_MODE缓存模式(具体说明参考下面MC_BUFFER_MODE说明)
输出参数名称数据类型含义
InSyncBOOL凸轮啮合结束标志。TRUE:表示啮合结束,反之从轴正在啮合中。
EndOfProfileBOOL凸轮末尾标志。TRUE:从轴到达凸轮末尾,反之从轴未到达凸轮末尾。
BusyBOOL指令忙碌标志,TRUE表示指令块忙碌中,不可再次触发投送指令。
ActiveBOOL激活标志,TRUE表示指令正在执行。反之表示指令等待执行。
CommandAbortedBOOL终止标志,TRUE表示指令被终止,原因可能是限位或者用户调用Stop、Halt指令终止当前指令。
ErrorBOOL错误标志,TRUE表示轴有错误。
ErrorIDMC_ERROR_ID错误ID,可通过错误ID查看具体错误原因。

MC_CamEnableSetting:

参数名称数据类型含义
EnableModeMC_CAM_ENABLE_MODE凸轮启动模式。mcEnableImmediate:立即启动;mcEnableInPosition:指定位置启动;mcEnableBySignal:信号启动。
EnablePositionLREAL指定位置启动模式下,主轴的指定位置值。
EnableSignalBOOL信号启动模式下,信号变量值。
EnableRisingEdegeBOOL信号启动模式下,信号的有效电平。

MC_BUFFER_MODE:

含义
mcAborting立即开始,当前指令将被终止。【暂不支持】
mcBuffered当前运动结束后执行;
mcBlendingLow速度与两个指令的最低速度混合。
mcBlendingPrevious速度与当前指令速度混合
mcBlendingNext速度与下一个指令速度混合
mcBlendingHigh速度与两个指令的最高速度混合。

注意:同一个功能块未执行结束前,不能再次触发执行新的指令。

规划曲线

1、SlaveAddDist > 0 , MasterDistAcc >0 ,MasterDistDec >0,MasterBeforeDist + MasterAfterDist + MasterDistAcc + MasterDistDec < MasterSumDist,从轴叠加部分包含加速、均速、减速三个阶段,且叠加时从轴速度变大:

img

2、SlaveAddDist < 0 , MasterDistAcc >0 ,MasterDistDec >0,MasterBeforeDist + MasterAfterDist + MasterDistAcc + MasterDistDec < MasterSumDist,从轴叠加部分包含加速、均速、减速三个阶段,且叠加时从轴速度变小:

img

3、SlaveAddDist = 0 , 从轴无叠加部分,从轴与主轴保持比例关系运动:

img

img1、当SlaveBaseDist = MasterSumDist时, 以上轨迹图中叠加前阶段和叠加后阶段主从轴将保持同步,即叠加前和叠加后轨迹重叠;2、当SlaveBaseDist = SlaveAddDist = 0时, 从轴将保持静止,可实现从轴等待功能;

假设切刀周长60厘米,切刀接触材料到离开材料的位移为15厘米(此期间切刀和材料速度需同步):

img

一、短料旋切

裁切长度 =40厘米( < 切刀周长60厘米),计算数据如下:

叠加前阶段 = 叠加后阶段 = 切刀接触材料到离开材料的位移为15厘米 / 2 = 7.5厘米;

MasterBeforeDist = MasterAfterDist = 7.5

从轴恒速跟随位移 = 主轴运动总位移 = 裁切长度40厘米 (裁切长度);

SlaveBaseDist = MasterSumDist = 40

从轴叠加运动总位移 = 切刀周长 - 从轴恒速跟随位移 = 60 - 40 = 20厘米;

SlaveAddDist = 20

从轴叠加运动加速阶段主轴移动位移 = 从轴叠加运动减速阶段主轴移动位移 =( 40 - 15 )/ 2 = 12.5厘米 (叠加阶段无匀速段);

MasterDistAcc = MasterDistDec = 12.5

二、中料旋切

裁切长度 =80厘米( >切刀周长60厘米),计算数据如下:

叠加前阶段 = 叠加后阶段 = 切刀接触材料到离开材料的位移为15厘米 / 2 = 7.5厘米;

MasterBeforeDist = MasterAfterDist = 7.5

从轴恒速跟随位移 = 主轴运动总位移 = 裁切长度80厘米 (裁切长度);

SlaveBaseDist = MasterSumDist = 80

从轴叠加运动总位移 = 切刀周长 - 从轴恒速跟随位移 = 60 - 80 = - 20厘米;

SlaveAddDist = - 20

从轴叠加运动加速阶段主轴移动位移 = 从轴叠加运动减速阶段主轴移动位移 =( 80 - 15 )/ 2 = 32.5厘米 (叠加阶段无匀速段);

MasterDistAcc = MasterDistDec = 32.5

三、长料旋切

裁切长度 =150厘米( 远大于切刀周长60厘米),计算数据如下:

从轴叠加阶段减速到0时的临界裁切长度 = 叠加前阶段 + 叠加后阶段 + [切刀周长 - (叠加前阶段 + 叠加后阶段)] * 2 = 15 + (60 - 15)*2 = 105厘米;

切刀叠加减速到0等待的距离 = 裁切长度 - 从轴叠加阶段减速到0时的临界裁切长度 = 150 - 105 = 45厘米;

叠加前阶段 = 叠加后阶段 = 切刀接触材料到离开材料的位移为15厘米 / 2 = 7.5厘米;

MasterBeforeDist = MasterAfterDist = 7.5

从轴恒速跟随位移 = 主轴运动总位移 = 裁切长度150厘米 (裁切长度);

SlaveBaseDist = MasterSumDist = 150

从轴叠加运动总位移 = 切刀周长 - 从轴恒速跟随位移 = 60 - 150 = -90厘米;

SlaveAddDist = - 90

从轴叠加运动加速阶段主轴移动位移 = 从轴叠加运动减速阶段主轴移动位移 =( 150 - 15 - 45 )/ 2 = 45厘米 (叠加阶段无匀速段);

MasterDistAcc = MasterDistDec = 45

组态思路:

1、裁切长度 =150厘米,计算数据如下:

​ MasterBeforeDist = MasterAfterDist = 7.5;

​ SlaveBaseDist = MasterSumDist = 150;

​ SlaveAddDist = - 90

​ MasterDistAcc = MasterDistDec = 45

img

组态逻辑:

img

运动控制指令已经加载完毕