运动协调变换 (MCT)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
运动协调变换 (MCT) 指令用于启动将两个坐标系统连接在一起的变换。类似于双向传动。例如,该变换可使非笛卡尔坐标机器人运动到笛卡尔坐标位置。
重要提示: 用于指令运动控制属性的标签只能使用一次。在其他指令中重复使用运动控制标签可能导致意外操作,从而可能造成设备损坏或人员受伤。
架构和安全支持
架构
标准
安全
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器
可用语言
梯形图
MCT_LD_avail_v31
功能块
此指令不可用于功能块中。
结构化文本
MCT(Source System, Target System, Motion Control, Orientation, Translation);
操作数
梯形图和结构化文本
操作数
类型
格式
说明
Source System
COORDINATE_SYSTEM
标签
用于对运动进行编程的坐标系统。通常为笛卡尔坐标系统。
对用于对运动进行编程的坐标系统的引用。通常为笛卡尔坐标系统。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。
Target System
COORDINATE_SYSTEM
标签
控制实际设备的非笛卡尔坐标系统。
对用于对运动进行编程的坐标系统的引用。通常为笛卡尔坐标系统。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。
Motion Control
MOTION_INSTRUCTION
标签
指令的控制标签。
Orientation
REAL[3]
(单位 = 坐标单位)
数组
是否希望绕 X1、X2 或 X3 轴旋转目标位置?
If
No
将数组值保留为零。
Yes
将旋转度数输入数组中。将绕 X1 轴的旋转度数放入数组的第一个元素中,然后添加其他元素。
Use an array of three REALs even if a coordinate system has only one or two axes.
Translation
REAL[3]
(单位 = 坐标单位)
数组
是否希望沿 X1、X2 或 X3 轴偏移目标位置?
If
No
将数组值保留为零。
Yes
将偏移距离输入数组中。应以坐标单位输入偏移距离。将 X1 的偏移距离放入数组的第一个元素中,然后添加其他元素。
Use an array of three REALs even if a coordinate system has only one or two axes.
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法
MOTION_INSTRUCTION 数据类型
要查看是否出现以下情况
检查该位是否置位
数据类型
备注
梯级是否为真
EN
BOOL
有时,即使梯级变为假,EN 位仍保持置位。如果在指令完成之前梯级变为假或发生错误,则会发生这种情况。
RSL5K_MCTP EN bit
指令是否完成
DN
BOOL
指令完成后,变换继续运行。
是否发生错误
ER
BOOL
首先找到运动控制标签错误代码字段中的错误编号,然后查阅“运动错误代码”部分。
正在执行变换过程。
IP
BOOL
以下操作会取消变换并将 IP 位清零:
执行适用的停止指令
执行关闭指令
故障动作
MCT Transform controls
该变换最多可控制机器人的三个关节:J1、J2 和 J3。
两个坐标系统之间 MCT 指令的数据流
MCT 指令处于激活状态时,数据流如下图所示。CS1 是作为 MCT 指令源坐标系统的笛卡尔坐标系统,包含 X1、X2 和 X3 轴。CS2 是作为 MCT 指令目标坐标系统的关节坐标系统,包含 J1、J2 和 J3 轴。
所有轴单位均采用坐标单位
使用 MCTP 指令应遵循下列编程原则。
使用 MCT 指令执行运动时的数据流 - 正向变换
MCT Inverse Transform MCT Forward transform
使用 MCT 指令执行运动时的数据流 - 反向变换
编程原则
使用 MCT 指令应遵循下列编程原则。
重要提示: 避免机器人完全伸展或自身折返,否则其可能以非常快的速度开始运动。在这两种姿态下,机器人会失去其左臂或右臂配置,发生这种情况时,其可能以非常快的速度开始运动。
确定机器人的工作限位,使其在这些限位内运动。
MCT Programming Guidelines diagram
为机器人的笛卡尔坐标位置建立轴坐标系统
这些轴通常为虚拟轴。
MCT_Other_Pg436_v31
重要提示: 计算精度可能导致截断错误。同时满足以下条件时,会发生这种情况:
  • 在变换中,虚拟笛卡尔坐标轴的变换常数小,如 8000 计数/位置单位。
  • 非笛卡尔坐标系统的连杆长度小,如 0.5 英寸。
最好为变换中的虚拟笛卡尔坐标轴设置较大的转换常数,如 100,000 或 1,000,000 计数/位置单位。机器人的最大行程限位为:
MCT maximum travel limit of the robot
为机器人的实际关节建立另一坐标系统
MCT_Other_Pg437_v31
使机器人运动至左臂或右臂的起始位置
希望机器人采用左臂还是右臂运动模式?
MCT move left or right arm postion
启动变换之前,使机器人运动到所需臂侧(左或右)的静止位置。
启动变换并在源坐标系统中启动笛卡尔坐标运动后,机器人会始终采用左臂或右臂运动模式。如果启动时采用左臂运动模式,则会保持左臂运动模式。如果启动时采用右臂运动模式,则会保持右臂运动模式。可随时将机器人从左臂运动模式切换为右臂运动模式,反之亦然。直接使关节运动即可。
将梯级由假跳变为真可执行该指令
此为跳变指令。在梯形图中,每次要执行该指令时,将梯级输入条件由假切换为真。
执行该指令时,变换启动,IP 位置位。
MCT_LD_ex3_v31
执行该指令后,可使梯级变换为假。变换保持激活状态。
在结构化文本中,为指令设置限定条件,以便仅在转换时才执行此指令
在启动任何运动之前启动变换。
在结构化文本中,指令会在每次被扫描时执行。调整指令,使其仅在跳变时执行。可使用下列方法之一:
  • SFC 操作的限定符
  • 结构化文本结构
如果运动过程正在控制源坐标系统或目标坐标系统的轴,则无法启动变换。
示例:启动齿轮传动或凸轮传动之前启动变换。
预期源坐标系统与目标坐标系统之间进行双向运动
使用 MCS 指令取消变换。
变换具有双向性。
MCT Bi directional motion
启动变换后,源坐标系统的位置会进行变更,匹配目标坐标系统的相应位置。此后,如果任一坐标系统运动,另一坐标系统也会相应地运动。
即使停止扫描 MCT 指令或其梯级变为假,控制器仍会继续控制轴。使用运动协调停止 (MCS) 指令停止坐标系统中的运动、取消变换或同时执行这两项操作。
如果更改姿态或变换,再次执行 MCT 指令
MCT_LD_ex4_v31
然后,再次执行该指令。要执行该指令,将梯级输入条件由假切换为真。
如果要更改设备的几何结构,再次执行该指令。
在 MCTP 指令的姿态操作数中可指定多个姿态角并执行
MCT LD ex5 dcba
按照以下顺序输入绕 X、Y 和 Z 轴的旋转度数:
第一个 MCTP 姿态操作数数组的第一个元素用于指定绕 X 轴的旋转度数。
第二个 MCTP 姿态操作数数组的第二个元素用于指定绕 Y 轴的旋转度数。
第三个 MCTP 姿态操作数数组的第三个元素用于指定绕 Z 轴的旋转度数。
示例
下表所示为旋转的先后顺序。请注意,n 维数组中的旋转顺序不可交换。
旋转:V20 或更高版本
矩阵乘法顺序:(Z*(YX)
绕 X 轴旋转,然后绕 Y 轴选择,最后绕 Z 轴旋转:
旋转笛卡尔坐标 => 笛卡尔坐标
Logix Designer
V20 或更高版本
MCT 姿态 [x,y,z]
MCT 起始位置
得到的姿态位置
一维旋转
起始位置 = [1, 2, 3]
MCT 姿态=[90, 0, 0]
旋转:绕 X 轴旋转 90 度(顺时针)。
= [1, 3, -2]
MCT 姿态=[0, 90, 0]
旋转:绕 Y 轴旋转 90 度(顺时针)。
= [-3, 2, 1]
MCT 姿态=[0, 0, 90]
旋转:绕 Z 轴 90 度(顺时针)。
= [2, -1, 3]
二维旋转
起始位置 = [1, 2, 3]
MCT 姿态=[90, 90, 0]
旋转:绕 X 轴旋转 90 度(顺时针)
然后绕 Y 轴旋转 90 度(顺时针)。
= [-3, 1, -2]
MCT 姿态=[90, 0, 90]
旋转:绕 X 轴旋转 90 度(顺时针)
然后绕 Z 轴旋转 90 度(顺时针)。
= [2, 3, 1]
MCT 姿态=[0, 90, 90]
旋转:绕 Y 轴旋转 90 度(顺时针)
然后绕 Z 轴旋转 90 度(顺时针)。
= [-3, -1, 2]
三维旋转
起始位置 = [1, 2, 3]
MCT 姿态=[90, 90, 90]
旋转:绕 X 轴旋转 90 度(顺时针)
然后绕 Y 轴旋转 90 度(顺时针)
然后绕 Z 轴旋转 90 度(顺时针)。
= [-3, 2, 1]
MCT 姿态=[-90, -90, -90]
旋转:绕 X 轴旋转 90 度(逆时针)
然后绕 Y 轴旋转 90 度(逆时针)
最后绕 Z 轴旋转 90 度(逆时针)。
= [3, -2, 1]
MCT 指令原则
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。有关操作数相关的故障,请参阅 通用属性
执行
梯形图
条件/状态
执行的操作
预扫描
.EN、.DN、.ER 和 .IP 位设置为假。
梯级输入条件为假
如果 .DN 或 .ER 位为真,则 .EN 位设置为假。
梯级输入条件为真
.EN 位设置为真,指令执行。
后扫描
不适用
结构化文本
条件/状态
执行的操作
预扫描
请参阅“梯形图”表中的“预扫描”行。
正常执行
请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。
后扫描
请参见“梯形图”表中的“后扫描”行。
错误代码
有关运动指令,请参阅 运动错误代码 .ERR
扩展错误代码
有关运动指令,请参阅 运动错误代码 .ERR。使用扩展错误代码 (EXERR) 可获取有关错误的更多说明。
ERR
EXERR
纠正措施
备注
61
1
将两个坐标系统均分配给运动组。
2
检查使用的源坐标系统和目标坐标系统是否正确。
不可将同一坐标系统同时用作源坐标系统和目标坐标系统。
3
将源坐标系统的变换维度设为系统中的轴数,最大为三。
4
将目标坐标系统的变换维度设为目标坐标系统中的轴数,最大为三。
5
使用其他源坐标系统。
仅可将一个坐标系统用作一个激活变换的源。
6
使用其他目标坐标系统。
仅可将一个坐标系统用作一个激活变换的目标。
7
查找已在另一变换中使用的源轴或目标轴。使用坐标系统中的其他轴。
仅可将一个轴用于一个源坐标系统和一个目标坐标系统。
8
使用不是此变换链源的坐标系统作为目标坐标系统。
不可创建返回初始源坐标系统的环形变换链。
9
检查分配给每个坐标系统的轴是否正确。
不可在源坐标系统和目标坐标系统中使用相同的轴。
10
停止两个坐标系统中所有轴的所有运动过程(例如点动、运动和传动)。
如果任何运动过程正在控制源轴或目标轴,则无法启动变换。
11
资源不足,无法启动变换连接。
12
设置连杆长度。
不可将零用作连杆长度。
13
查找处于关闭状态的源轴或目标轴。使用运动轴关闭复位 (MASR) 指令或直接命令进行轴复位。
14
取消禁用所有源轴或目标轴。
15
检查为 Delta 或 SCARA Delta 机器人的基点偏移和末端执行器偏移配置的值。
对于 Delta 和 SCARA Delta 机器人,(X1b-X1e) 均不可小于 0.0。
对于 Delta 机器人,如果 L1 + (X1b-X1e) 的值大于 L2,也会发生此错误。
16
检查 SCARA 独立和 SCARA Delta 机器人配置,确保:
源坐标系统的变换维度配置为 2。
为源坐标系统和目标坐标系统配置的第三个轴相同。
17
检查源坐标系统和目标坐标系统,确认源坐标系统的变换维度等于目标坐标系统的变换维度。
状态位变化
指令执行时会更改以下这些状态位。
要查看是否出现以下情况
检查相应标签
以及此位
目标
坐标系统是否为激活变换的源。
坐标系统
TransformSourceStatus
接通
坐标系统是否为激活变换的目标。
坐标系统
TransformTargetStatus
接通
轴是否为激活变换的一部分。
TransformStateStatus
接通
轴是否因变换而正在运动。
ControlledByTransformStatus
接通
示例
梯形图
MCT_LD_ex6_v31
结构化文本
MCT(myMctSourceSystem,myMctTargetSystem,myMctMotionControl,myMctOrientation,myMctTranslation);
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal