运动协调路径运动 (MCPM)

运动协调路径运动 (MCPM) 指令用于针对笛卡尔坐标系统的指定主轴(X、Y、Z)和姿态轴(Rx、Ry、Rz)启动多维协调路径运动。该指令用于对支持姿态控制的机器人的笛卡尔运动进行编程。
架构和安全支持
架构
标准
安全
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器
此为转换指令。使用时,请遵循以下步长:
  • 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由 false 转换为 true。
  • 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
可用语言
梯形图
MCPM_LD_avail lang_v31
功能块
此指令不可用于功能块中。
结构化文本
MCPM (CoordinateSystem, MotionControl, Path, Length, Dynamics, LockPosition, LockDirection);
操作数
重要提示: 在同一程序中,切勿将同一标签名称用于多个指令。在任何情况下,均不要对任何指令输出标签执行写操作。
警告: 如果在运行模式下更改指令操作数,必须接受待处理的编辑内容,控制器模式必须从编程模式循环切换到运行模式,以便更改生效。
配置
下表给出了用于配置指令的操作数。运行期间无法更改这些操作数。
操作数
数据类型
格式
说明
Coordinate System
COORDINATE_SYSTEM
标签
用于对运动进行编程的笛卡尔坐标系统。
Reference to Cartesian coordinate system used to program the moves.For controllers that support the REF_TO motion data types, the coordinate system operand type can be replaced by the REF_TO_COORDINATE_SYSTEM type.
Motion Control
MOTION_INSTRUCTION
标签
用于访问指令状态参数的结构。
有关配置坐标系统的详细信息,请参见《运动坐标系用户手册》(出版号 MOTION-UM002)。
输入
下表介绍指令输入。输入可能是来自输入设备的现场设备信号,也可能源自用户逻辑。
操作数
数据类型
格式
说明
Path
PATH_DATA
标签
请参见 PATH_DATA 结构
Length
DINT
立即数标签
该输入为立即数,用于指示 PATH_DATA 输入的长度。
小贴士: 将长度设置为 1。保留大于 1 的值,以供将来使用。
Dynamics
DYNAMICS_DATA
标签
请参见 DYNAMICS_DATA 结构
Lock Position
REAL
标签
这是主轴上的位置,在从轴坐标系统上启动运动后,从轴将从该位置开始跟随主轴运动。
提醒事项: 仅当在主轴驱动速度控制模式下使用 MCPM 指令时,锁定位置才有效。
Lock Direction
UINT32
标签
指定锁定的激活条件。
小贴士: 仅当在主轴驱动速度控制模式下使用 MCPM 指令时,锁定方向才有效。
PATH_DATA 结构
操作数
滚动栏、列表或复选框
数据类型
默认值
备注
Interpolation Type
由点到点 (0) 和连续线性路径 (1) 构成的列表
DINT
0
点到点运动
2
连续线性路径
请参见下文的“插补类型”相关主题。
Position [X, Y, Z, Rx, Ry, Rz]
常量或变量列表
REAL [9] 1
0
采用坐标单位的 [X,Y,Z],
以度为单位的 [Rx, Ry, Rz] X-Y-Z 固定角度格式
索引 0:X
1:Y
2:Z
3:Rx
4:Ry
5:Rz
6:*
2
7:*
2
8:*
2
请参见下文的“位置”相关主题。
Robot Configuration
位值列表:
位 0
– 机器人配置变化 (1)/不变 (0)
位 1
– 左臂 (1)/右臂 (0)
位 2
– 向上 (1)/向下 (0)
位 3
– 切换 (1)/不切换 (0)
DINT
0
位 0 至 3
– 仅适用于关节式和 SCARA 几何结构。将 Delta 几何结构设置为零。
请参见“机器人配置”。
Turns Counters
变量列表
INT 16 [4]
0
索引 0:J1
1:J4
2:J6
3
2
关节轴圈数计数器。各个整数均为有符号值 (±127)。
Move Type
绝对式 (0) 和增量式 (1) 列表
DINT
0
选择运动类型。
有关此操作数的更多信息,请参见运动协调性线性移动 (MCLM) 部分。
Termination Type
列表:
实际公差 (0)
不进入稳态 (1)
给定公差(6)
DINT
0
有关此操作数的更多信息,请参见运动协调性线性移动 (MCLM) 部分。
Command Tolerance Linear
常量或变量列表
REAL
0
仅适用于笛卡尔主轴位置。
线性坐标单位
DYNAMICS_DATA_STRUCTURE
操作数
滚动栏、列表或复选框
数据类型
默认值
备注
Units Mode
列表,0 = 最大值百分比
1 = 坐标单位(每)
DINT
0
请参见“单位模式”部分。
Time
Units
列表,0 = 秒
1 = 主轴单位
DINT
0
如果将最大值百分比选作单位模式,则不适用。
仅适用于速度、加速度和减速度。
请参见“时间单位”部分。
Profile
列表,0 = 梯形
1 = S 曲线
REAL
0
1
请参见“曲线”部分。
Speed
常量或值列表
REAL
0
1
最大值百分比或坐标单位/时间单位。
Acceleration
常量或值列表
REAL
0
1
最大值百分比或坐标单位/时间单位
2
Deceleration
常量或值列表
REAL
0
1
最大值百分比或坐标单位/时间单位
2
Acceleration Jerk
常量或值列表
REAL
0
加速时间百分比
始终用于所有轴
请参见下文的“加速急动度”部分。
适用于加速度和姿态加速度。
Deceleration Jerk
常量或值列表
REAL
0
减速时间百分比
始终用于所有轴。
适用于减速度和姿态减速度。
Orientation Speed
常量或值列表
REAL
0
表示为姿态速度最大值百分比(坐标系统配置中)或度/时间单位。
Orientation Acceleration
常量或值列表
REAL
0
表示为姿态加速度最大值百分比(坐标系统配置中)或度/时间单位^2。
Orientation Deceleration
常量或值列表
REAL
0
表示为姿态减速度最大值百分比(坐标系统配置中)或度/时间单位^2。
1
单位模式指定协调运动的动态参数的单位,而非单个轴的单位。用户可通过这两个选项直接以坐标单位或最大值百分比(在坐标系统标签中配置)的形式进行设定。所有主轴可采用不同的用户单位进行配置,例如毫米、英寸和厘米,而姿态轴则以度为单位。
2
保留供将来使用。
路径数据
插补类型
  • 点到点
    :在这类运动中,工具中心点 (TCP) 的终点位置被指定,但用于到达终点位置的路径不相关。通常,这是使 TCP 运动到目标位置的最快方式。这类插补仅适用于将来版本中的关节式和 SCARA 类型几何结构。
  • 连续线性路径
    :在这类运动中,TCP 从起始位置沿直线运动到给定终点。在直线运动期间,TCP 的姿态持续从起始姿态位置变为给定姿态位置。
位置
这是一个一维数组,其维度定义为至少等于坐标系统中指定的轴数,笛卡尔坐标系统中为 6 维,其中 X、Y、Z、Rx、Ry 和 Rz 是 TCP 参照参考坐标系的值。位置数组定义新的绝对位置或增量位置。
下面是 TCP 点的示例,其在 X、Y 和 Z 轴上发生平移,而后在 Z 轴上旋转 (Rz = 90°),进而使 TCP 的 X 轴与参考坐标系的 Y 轴对齐。
有关笛卡尔坐标系统的更多详细信息,请参见“配置笛卡尔 XYZRxRyRz 坐标系统”部分。
RSL5K_MCPM_Position_v31.png
机器人配置
机器人可到达某个目标终点位置(基于不同关节位置以及确定的关节限制范围内的不同机器人配置)。如果用户想要机器人在连续路径 (CP) 模式下运动至某个位置(基于特定配置),则需指定终点位置以及所需机器人姿势。
  • 向右 (RIGHTY) 与向左 (LEFTY)
  • 向上 (ABOVE) 与向下 (BELOW)
  • 翻转 (FLIP) 与不翻转 (NOFLIP)
有关更多详细信息,请参见《运动坐标系用户手册》(出版号 MOTION-UM002)以获取 SCARA 独立 J1J2J3J6 机器人、关节式非独立 J1J2J3J6 机器人和关节式独立 J1J2J3J4J5J6 机器人的配置部分。
动态数据
Profile
  • 梯形 (0):当该值设置为 0 时,曲线设置会先于加速急动度和减速急动度的值(默认值为 0%),因此速度曲线始终为梯形。有关详细信息,请参见运动协调性线性移动 (MCLM) 中的“曲线”信息。
  • S 曲线 (1):当该值设置为 1 时,将考虑加速急动度和减速急动度的值。规划器会试图达到由动态设置计算得到的加速度和减速度值。有关详细信息,请参见运动协调性线性移动 (MCLM) 中的“曲线”信息。
单位模式
  • 最大值百分比 (0):将单位模式选择为最大值百分比时,6 个动态参数(如下表中的第 1 列所示)会被设为坐标系统“动力学”(Dynamics) 选项卡中定义的内容(如下表中第 2 列所示)的百分比。
    例如,如果将单位模式设置为最大值百分比,速度设置为 50,并且最大矢量速度设置为 100mm/s:则 MCLM 的最大线速度可以达到最大速度的 50%,即 50mm/s。此选项仅适用于 CP 运动(将来会支持 PTP)。
    动态数据参数
    坐标系统参数规范
    速度
    最大矢量速度(主轴)
    加速度
    最大矢量加速度(主轴)
    减速度
    最大矢量减速度(主轴)
    Orientation Speed
    最大矢量速度(姿态轴)
    姿态加速度 (Orientation Acceleration)
    最大矢量加速度(姿态轴)
    姿态减速度 (Orientation Deceleration)
    最大矢量减速度(姿态轴)
  • 坐标单位 (1):6 个参数(如上表中的第 1 列所示)的速度采用坐标单位/时间单位的设定单位,由时间单位参数定义。
    • 速度单位设为坐标单位/秒,或坐标单位/主轴单位。
    • 加速度和减速度的单位为坐标单位/秒
      2
      ,或坐标单位/主轴单位
      2
    • 姿态速度单位设为度/秒或度/主轴单位。
    • 姿态加速度和减速度的单位为度/秒
      2
      ,或度/主轴单位
      2
时间单位
  • 秒 (0):时间单位为秒
  • 主轴单位 (1):在主从配置中,主轴的速度/加速度/减速度决定了 MCPM 指令的最终主轴和姿态轴速度/加速度/减速度。
例如,当使用 MDCC 指令在主轴和从坐标系统之间建立联动关系时。主轴正通过 MAM 指令进行运动,且 MCPM 指令正在执行:产生的速度/加速度/减速度值可按下式进行计算。
  • 用来将速度从 [单位/主轴单位] 转换为 [单位/秒] 的公式:
    V
    S
    [SU/TU] = V
    S
    [SU/MU] * VM[MU/TU]
    如果从轴以 3 度/MU 运行,主轴以 2 MU/秒运行,则从轴的速度为:3*2 = 6 度/秒。
  • 加速度和减速度单位从 [单位/主轴单位^2] 转换为 [单位/秒^2] 的公式:
    aS[SU/TU2] = aS[SU/MU2] * VM
    2
    [MU/TU] + VS[SU/MU] * aM[MU/TU2]
    • 如果从轴以 5 度/MU^2 加速运行,主轴以 2 MU/秒匀速运行 (aM=0),则从轴的加速度为:5*2*2 = 20 度/秒^2。
    • 如果从轴以 5 度/MU^2 加速运行,其瞬时速度为 3 度/MU,且主轴以 2 MU/秒的速度运行,且加速度为 4 MU/秒^2,则从轴加速度为:5*2*2 + 3*4 = 32 度/秒^2。
加速急动度 (Acceleration Jerk)
此参数指定 MCPM 路径应用来计算 MCPM 路径运动的加速急动度的加速度的时间百分比。其单位始终被设为时间百分比的形式。
有关如何将时间百分比转换为工程单位的信息,请参见下面的“急动度单位”主题。
有关详细信息,请参见 MCLM 文档中的“加速急动度”主题。
减速急动度 (Deceleration Jerk)
此参数指定 MCPM 路径应用来计算 MCPM 路径运动的减速急动度的减速度的时间百分比。其单位始终被设为时间百分比的形式。
有关如何将时间百分比转换为工程单位的信息,请参见下面的“急动度单位”主题。
有关更多详细信息,请参见 MCLM 文档中的“减速急动度”主题。
急动度单位:时间百分比
若要将时间百分比转换为工程单位,可使用以下公式。
  • 要采用工程单位进行加速急动度计算,请使用以下计算公式:
MCPM Jerk unit percent of time_formula 1
  • 要采用工程单位进行减速急动度计算,请使用以下计算公式:
RSL5K_MCPM Jerk unit percent of time_formula 2.png
Orientation Speed
姿态速度为矢量速度,其值被用作单个姿态矢量,由 Rx、Ry 和 Rz 正交分量组成。例如,如果姿态速度为 5 度/秒。
MCMP_orientation speed formula_v31
姿态加速度和减速度
姿态加速度/减速度为矢量值,其值被用作单个姿态矢量,由 Rx、Ry 和 Rz 正交分量组成。例如,如果姿态加速度或减速度设置为 5 度/秒
2
,则
MCMP_orientation accel and decel formula_v31
锁定方向
指定主轴在通过锁定位置时为激活锁定而所需的运动方向。
小贴士: 将时间单位设置为主轴单位时,在此字段中设置的值应为主轴方向。有关锁定方向操作数的更多信息,请参见 MCLM 指令。
锁定位置
指定当从轴锁定到主轴时对应的主轴位置。
输出
不适用
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。对于数组索引故障,请参阅 数组索引编制
执行
梯形图
条件/状态
执行的操作
预扫描
与梯级输入条件为假时相同。
梯级输入条件为假
.EN、.DN 和 .ER 设置为假。
梯级输入条件为真,.EN 位为假
.EN 位设置为真,指令执行。
梯级输入条件为真,.EN 位为真
不适用
后扫描
不适用
结构化文本
条件/状态
执行的操作
预扫描
请参阅“梯形图”表中的“预扫描”行。
正常执行
请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。
后扫描
请参见“梯形图”表中的“后扫描”行。
错误代码
有关运动指令,请参阅 运动错误代码 .ERR
扩展错误代码
“扩展错误代码”针对许多指令通用的“错误代码”提供指令特定的附加信息。有关运动指令,请参阅 运动错误代码 .ERR。“扩展错误代码”的含义取决于其关联的错误代码。
错误代码
(.ERR)
扩展错误代码
(.EXERR)
说明
7
0 至 5
关闭状态错误
对于运动协调指令,请查看扩展错误代码 (EXERR),通过这些信息可以确定引发错误的轴。
示例:如果 EXERR 为零,检查维度为零的轴。
11
0 至 5
轴未配置
对于单轴指令:
MAG、MDAC、MAPC、MAM、MAJ、MATC 和 MCD 的扩展错误代码定义如下:
1 = 从轴
2 = 主轴
对于时间驱动模式下的 MAM、MCD 和 MAJ 指令,正在运动的轴为从轴:
对于多轴指令:
MCPM、MDCC、MCLM、MCCM 和 MCCD 的扩展错误代码定义如下:坐标系统中的轴编号:
0 = 第一个轴
2 = 主轴或第三个从轴
13
2、3、5
参数超出范围
EXERR = 0 表示指令的第一个操作数超出范围。
16
0 至 5
轴正在进行归零。
扩展错误代码指示导致错误的轴。
25
0 至 5
尝试执行的指令不正确。
扩展错误代码指示导致错误的轴
小贴士: 如果轴配置为转矩模式,则 MCPM 会返回此错误。
53
0 至 5
轴已禁用
对于单轴指令,MAG、MDAC、MAPC、MAM、MAJ、MATC 和 MCD 的扩展错误代码定义如下:
1 = 从轴
2 = 主轴
对于时间驱动模式下的 MAM、MCD 和 MAJ 指令,正在运动的轴为从轴:
对于多轴指令,MCPM、MDCC、MCLM、MCCM 和 MCCD 的扩展错误代码定义如下:
坐标系统中的轴编号:
0 = 第一个轴
2 = 主轴或第三个从轴
65
0 至 5
轴位置溢出
位置的范围取决于轴的转换常数。
最大正向位置 = 2,147,483,647 / 轴的转换常数。
最大负向位置 = -2,147,483,648 / 轴的转换常数。
选择 2,097,152 个计数/英寸作为转换常数。在这种情况下:
  • 最大正向位置 = 2,147,483,647 / 2,097,152 个计数/英寸 = 1023 英寸。
  • 最大负向位置 = -2,147,483,648 / 2,097,152 个计数/英寸 = -1023 英寸。
对于运动协调指令,请查看扩展错误代码 (EXERR),通过这些信息可以确定引发错误的轴。
76
0 至 5
最大减速急动度设置为零
如果轴的最大减速急动度为零,则不能启动使用 S 曲线的运动。
(EXERR)。通过这些信息可以确定引发错误的轴。
138
0
MCPM 路径数据值无效
MCPM 路径数据插补类型
如果设置的插补类型并非 0 或 1,指令将报告该错误。
138
1
MCPM 路径数据值无效。
如果以下任一条件为真,则指令将报告错误。
  • 终点位置为无穷大或 NAN
  • Kinematic 变换处于激活状态
    • 对于绝对运动,终点位置 Rx 不在 +/-180 度之间
    • 对于绝对运动,终点位置 Rz 不在 +/-180 度之间
    • 对于绝对运动,终点位置 Ry 不在 +/-90 度之间
  • Kinematic 变换处于激活状态,且机器人几何结构为 Delta J1J2J6(3 轴 Delta)或 Delta J1J2J3J6(4 轴 Delta)
    • 如果对于绝对运动,终点位置 Rx 不是 180Degrees symbol
    • 如果对于绝对运动,终点位置 Ry 不是 0Degrees symbol
  • Kinematic 变换处于活动状态,且机器人几何结构为 Delta J1J2J3J4J5(5 轴 Delta)
    • 如果对于绝对运动,终点位置 Rx 不是 0 或 180Degrees symbol
138
2
MCPM 路径数据机器人配置中的 MCPM 路径数据值无效
如果指定的机器人配置无效(除 0、1、2、3 以外的其他位置位),则指令将报告该错误。
138
3
MCPM 路径数据圈数计数器中的 MCPM 路径数据值无效
如果圈数计数器的值不在 +/-127 范围内,则指令将报告该错误。
138
4
MCPM 路径数据运动类型中的 MCPM 路径数据值无效
如果运动类型不是绝对式或增量式,则指令将报告该错误。
138
5
MCPM 路径数据终止类型中的 MCPM 路径数据值无效
如果指定的终止类型并非 0、1 或 6,则指令将报告该错误。
138
6
MCPM 路径数据给定公差中的 MCPM 路径数据值无效
如果指定的给定公差为负值、INF 或 NAN,则指令将报告该错误。
139
0
MCPM 动力学数据单位模式中的 MCPM 动力学数据值无效
如果指定的单位模式并非 0、1 或 2,则指令将报告该错误。
139
1
MCPM 动力学数据时间单位中的 MCPM 动力学数据值无效
如果指定的时间单位并非 0 或 1,则指令将报告该错误。
139
2
MCPM 动力学数据曲线中的 MCPM 动力学数据值无效
如果指定的曲线并非 0(梯形)或 1(s 曲线),则指令将报告该错误。
139
3
MCPM 动力学数据速度中的 MCPM 动力学数据值无效
如果速度为负值、INF 或 NAN,指令将报告该错误。
139
4
MCPM 动力学数据加速度中的 MCPM 动力学数据值无效
如果加速度为零、负值、INF 或 NAN,指令将报告该错误。
139
5
MCPM 动力学数据减速度中的 MCPM 动力学数据值无效
如果减速度为零、负值、INF 或 NAN,指令将报告该错误。
139
6
MCPM 动力学数据加速急动度中的 MCPM 动力学数据值无效
如果急动度单位为时间百分比,且加速急动度为 INF、NAN、小于等于零或大于 100%,则指令将报告该错误。
小贴士: 这类错误仅适用于 s 曲线。
139
7
MCPM 动力学数据值无效
MCPM 动力学数据减速急动度
如果急动度单位为时间百分比,并且减速急动度为 NAN、小于等于零,则指令将报告该错误。
小贴士: 该错误仅适用于 s 曲线。
139
8
MCPM 动力学数据值无效
MCPM 动力学数据姿态速度
如果姿态速度为负值、INF 或 NAN,指令将报告该错误。
139
9
MCPM 动力学数据值无效
MCPM 动力学数据姿态加速度
如果姿态加速度为零、负值、INF 或 NAN,指令将报告该错误。
139
10
MCPM 动力学数据值无效
MCPM 动力学数据姿态减速度
如果姿态减速度为零、负值、INF 或 NAN,指令将报告该错误。
155
不支持 MCPM 机器人几何结构
如果用户尝试在关节式独立 J1J2J3J4J5J6 机器人系统上运行 MCPM 指令,则指令将报告该错误。
157
不支持 MCPM 关节方向检测
如果用户尝试设置关节方向检测并运行 MCPM 指令,则指令将报告该错误。
诊断代码与纠正措施
不适用
示例
梯形图
MCPM_LD_Example_v31
结构化文本
MCPM (CS1, MCPM1, MyPath1, 1, MyDynamics1, 0, 0);
小贴士: 要进一步了解如何创建有姿态支持的几何结构,请参见《运动坐标系统用户手册》(出版号 MOTION-UM002)。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal