运动协调变化动态 (MCCD)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
运动协调变化动态 (MCCD) 指令用于启动指定坐标系路径动态的变化。根据“运动类型”,MCCD 将更改当前在系统中处于激活状态的协调运动曲线。
重要提示: 用于指令运动控制属性的标签只能使用一次。在其他指令中重复使用运动控制标签可能导致意外操作,从而可能造成设备损坏或人员受伤。
重要提示: 速度和/或结束位置过冲的风险
如果通过任意方法动态更改运动参数,即通过更改运动动态(MCD 或 MCCD)或在上一条指令完成前启动新指令,请注意存在速度和/或结束位置过冲的风险。
如果在运动减速或接近减速点时最大减速度减小,则梯形速度曲线可能会过冲。
而在下列情况下,S 形速度曲线可能会过冲:
如果在运动减速或接近减速点时最大减速度减小;或者
最大加速急动度减小,且轴正在加速。但要记住,如果急动度以时间百分比的形式指定,则可间接更改
架构和安全支持
架构
标准
安全
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器
此为转换指令。使用时,请遵循以下步长:
  • 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由 false 转换为 true。
  • 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
可用语言
梯形图
L5K_MCCD_LD_avail_V31
功能块
此指令不可用于功能块中。
结构化文本
MCCD(CoordinateSystem, MotionControl, MotionType, ChangeSpeed, Speed, SpeedUnits, ChangeAccel, AccelRate, AccelUnits, ChangeDecel, DecelRate, DecelUnits, ChangeAccelJerk, AccelJerk, ChangeDecelJerk, DecelJerk, JerkUnits, Scope);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换
输入
下表介绍指令输入。
操作数
类型
格式
说明
Coordinate System
COORDINATE_SYSTEM
标签
已协调轴组。
对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。
Motion Control
MOTION_INSTRUCTION
标签
用于访问指令状态参数的结构。
Motion Type
DINT
立即数
1 = 协调运动
Change Speed
DINT
立即数
0 = 否
1 = 是
Speed
SINT、INT、DINT 或 REAL
立即数
标签
[坐标单位]
Speed Units
DINT
立即数
0 = 单位/秒
1 = 最大值百分比
4 = 单位/主轴单位
Change Accel
DINT
立即数
0 = 否
1 = 是
Accel Rate
SINT、INT、DINT 或 REAL
立即数标签
[坐标单位]
Accel Units
DINT
立即数
0 = 单位/秒
2
1 = 最大值百分比
4 = 单位/主轴单位
2
Change Decel
DINT
立即数
0 = 否
1 = 是
Decel Rate
SINT、INT、DINT 或 REAL
立即数标签
[坐标单位]
Decel Units
DINT
立即数
0 = 单位/秒
2
1 = 最大值百分比
4 = 单位/主轴单位
2
Change Accel Jerk
DINT
立即数
0 = 否
1 = 是
Accel Jerk
SINT、INT、DINT 或 REAL
立即数标签
必须始终输入“加速急动度”操作数的值。仅当将曲线操作数配置为 S 曲线时,此指令才会使用此值。
“加速急动度”表示坐标系统的加速急动度。
使用以下值开始操作。
加速急动度 = 100(时间百分比)
急动度单位 = 2
Change Decel Jerk
DINT
立即数
0 = 否
1 = 是
Decel Jerk
SINT、INT、DINT 或 REAL
立即数标签
必须始终输入减速急动度操作数的值。仅当将曲线操作数配置为 S 曲线时,此指令才会使用此值。
“减速急动度”表示坐标系统的减速急动度。
使用以下值开始操作。
减速急动度 = 100(时间百分比)
急动度单位 = 2
Jerk Units
DINT
立即数
0 = 单位/秒
3
1 = 最大值百分比
2 = 时间百分比(使用该值开始操作)
4 = 单位/主轴单位
3
6 = 时间主轴驱动百分比
Scope
DINT
立即数
0 = 激活运动
1 = 激活运动和待处理运动
结构化文本
在结构化文本中输入操作数值的枚举值时,若枚举值由多个单词构成,输入时不得包含空格。例如,输入“减速度单位”的值时,应采用 unitspersec
2
,而不是梯形图逻辑中显示的 Units per Sec
2
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法
对于具有枚举值的操作数,输入您的选择。
此操作数
可选择以下输入方式
输入文本
坐标系统
无枚举值
tag
运动控制
无枚举值
tag
运动类型 (Motion Type)
coordinatedmove
1 = Coordinated Move
Change Speed
no
yes
0 = No
1 = Yes
速度
无枚举值
immediate or tag
Speed Units
unitspersec
%ofmaximum
unitspermasterunit
0
1
4
更改加速度
no
yes
0 = No
1 = Yes
Accel Rate
无枚举值
immediate or tag
加速度单位
unitspersec2
%ofmaximum
unitspermasterunit2
0
1
4
Change Decel
no
yes
0 = No
1 = Yes
Decel Rate
无枚举值
immediate or tag
Decel Units
unitspersec2
%ofmaximum
unitspermasterunit2
0
1
4
更改加速急动度
no
yes
0 = No
1 = Yes
加速急动度
无枚举值
immediate or tag
You must always enter a value for the Accel operand. This instruction only uses the value if the Profile is configured as S-curve.
Use this value to get started.
Accel Jerk = 100 (% of Time)
更改减速急动度
no
yes
0 = No
1 = Yes
减速急动度
无枚举值
immediate or tag
You must always enter a value Decel Jerk operand. This instruction only uses the value if the Profile is configured as S-curve.
Use this value to get started.
Decel Jerk = 100 (% of Time)
Jerk Units = 2
Jerk Units
unitspersec3
%ofmaximum
%oftime
unitspermasterunit3
%oftimemasterdriven
0
1
2 (use this value to get started)
4
6
作用域
activemotion
activeandpendingmotion
0 = Active Motion
1 = Active and Pending Motion
输出
下表介绍指令输出。
助记符
说明
.EN (Enable) Bit 31
使能位,当梯级由假跳变为真时置位。当梯级由真跳变为假时复位。
.DN (Done) Bit 29
当梯级由假跳变为真时,完成位复位。当成功计算目标位置后,该位置位。
.ER (Error) Bit 28
当梯级由假跳变为真时,错误位复位。当未成功计算目标位置时,该位置位。
说明
MCCD 为跳变指令:
  • 在继电器梯形图中,每次要执行该指令时,梯级输入条件均会由假切换为真。
  • 在结构化文本中,为指令设置限定条件,以便仅在出现跳变时才执行此指令。
坐标系统
“坐标系统”操作数指定用于定义坐标系统维度的一组运动轴。坐标系统最多支持三 (3) 个主轴。
运动类型 (Motion Type)
“运动类型”操作数确定要更改的运动曲线。“当前协调运动”为唯一可用选项。
“协调运动” - 选中该选项后,“协调移动”选项将更改坐标系统中当前激活运动的运动。
Change Speed
“更改速度”操作数确定是否更改协调运动曲线的速度。
  • “否”- 不更改协调运动的速度。
  • “是”- 按“速度”和“速度单位”操作数中定义的值更改协调运动的速度。
速度
“速度”操作数定义沿协调运动路径运动时的最大速度。
Speed Units
“速度单位”操作数定义“速度”操作数所用的单位,可直接定义为指定坐标系统的坐标单位,也可以定义为坐标系统中定义的最大值的百分比。
更改加速度
“更改加速度”操作数确定是否更改协调运动曲线的加速度。
  • “否”- 不更改协调运动的加速度。
  • “是”- 按“加速度”和“加速度单位”操作数中定义的值更改协调运动的加速度。
Accel Rate
“加速度”操作数定义沿协调运动路径运动时的最大加速度。
加速度单位
“加速度单位”操作数定义“加速度”操作数所用的单位,可直接定义为指定坐标系统的坐标单位,也可以定义为坐标系统中定义的最大值的百分比。
Change Decel
“更改减速度”操作数确定是否更改协调运动曲线的减速度。
  • “否”- 不更改协调运动的减速度。
  • “是”- 按“减速度”和“减速度单位”操作数中定义的值更改协调运动的减速度。
Decel Rate
“减速度”操作数定义沿协调运动路径运动时的最大减速度。
Decel Units
“减速度单位”操作数定义“减速度”操作数所用的单位,可直接定义为指定坐标系统的坐标单位,也可以定义为坐标系统中定义的最大值的百分比。
加速度和减速度值的变化对运动曲线的影响
下图所示为速度接近最大值时使用 MCCD 指令减小加速度时可能发生的情况。新的加速急动度减小,从而进一步限制加速度的最大变化。由于加速度达到零值所需的时间更长,因此会发生速度过冲。此时,生成另一条曲线,使速度恢复为设定的最大值。
加速度变化产生的影响
MCCD Effect of Change to Acceleration
下图所示为速度和位置接近目标端点时使用 MCCD 指令减小减速度时可能发生的情况。新的减速急动度减小。由于减速到零需要一段时间,因此会发生速度过冲,使速度达到零速并继续变为负值。轴运动也会反向,直到速度恢复零速。此时,生成另一条曲线,使位置恢复为设定的目标位置。
减速度变化产生的影响
MCCD Effect of Change to Deceleration
更改加速急动度
“更改加速急动度”操作数确定是否更改协调运动曲线的加速急动度。
  • 否 - 不更改协调运动的加速急动度。
  • 是 - 按“加速急动度”和“急动度单位”操作数中定义的值更改协调运动的加速度。
加速急动度
“加速急动度”定义了所设定运动的最大加速急动度。有关计算加速急动度的详细信息,请参见下文的“急动度单位”部分。
更改减速急动度
“更改减速急动度”操作数确定是否更改协调运动曲线的减速急动度。
  • 否 - 不更改协调运动的减速急动度。
  • 是 - 按“减速急动度”和“急动度单位”操作数中定义的值更改协调运动的减速度。
减速急动度
“减速急动度”定义所设定运动的最大减速急动度。有关计算减速急动度的详细信息,请参见“急动度单位”部分。
Jerk Units
“急动度单位”定义在“加速急动度”和“减速急动度”操作数中输入的值所用的单位。这些值可以采用指定坐标系统的位置单位直接输入,也可以采用百分比形式输入。当配置为使用最大值的百分比时,急动度按在坐标系统属性中指定的“最大加速急动度”和“最大减速急动度”操作数的百分比进行应用。当配置为使用时间的百分比时,该值是根据指令中指定的速度、加速度和减速度确定的百分比。
若要将工程单位转换为时间百分比,可使用以下公式。
L5K_MCCD_Jerk units equation 1
若要将时间百分比转换为工程单位,可使用以下公式。
MCCD_Jerk units equation 2
作用域
若将“作用域”操作数设为“激活运动”,则将指定,这些更改仅影响激活的协调运动指令的运动动力学参数。若选择“激活运动和待处理运动”,则将指定,这些更改会影响队列中激活的协调运动指令和所有待处理协调运动指令的运动动力学参数。当前,队列长度仅限于激活指令之后一条指令。
主轴驱动速度控制 (MDSC) 中 MDSC 与时间驱动模式之间的切换
使用 MCCD 指令时,不能在主轴驱动模式与时间驱动模式之间切换。如果尝试切换模式,则会发生运行错误。
故障代码
对于主轴驱动速度控制 (MDSC) 功能,如果尝试将系统模式由主轴驱动切换为时间驱动或由时间驱动切换为主轴驱动,则在运行时会发生错误。
扩展错误代码
扩展错误代码有助于进一步明确特定指令给出的错误消息。其特性取决于所关联的错误代码。
伺服关闭状态 (5)、关闭状态 (7)、轴类型非伺服 (8)、轴未配置 (11)、归零过程中的错误 (16) 和非法轴数据类型 (38) 错误的扩展错误代码都以相同的方式工作。对于扩展错误代码,将显示 0...n 之间的数字。该数字是坐标系统的索引,用于指示处于错误状态的轴。请参见运动指令的运动错误代码 (ERR)。
对于 MCCD 指令,错误代码 13 - 参数超出范围的扩展错误将返回一个数字,该数字对应于面板中自上而下按数字顺序列出的参数编号(从零开始),用于指示对应的参数不合要求。例如,2 指示运动类型的参数值出错。
引用的错误代码和对应的数字
扩展错误数字指示符
指令参数
说明
参数超出范围 (13)
2
运动类型
运动类型小于 0 或大于 1。
参数超出范围 (13)
4
速度
速度小于 0。
参数超出范围 (13)
7
Accel Rate
加速度小于或等于 0。
参数超出范围 (13)
10
减速度
减速度小于或等于 0。
对于错误代码 54 - 最大减速度值为零,如果扩展错误返回正数 (0-n),则指示坐标系统中不合要求的轴。转到“坐标系统属性”(Coordinate System Properties) 的“常规”(General) 选项卡,查看“轴网格”(Axis Grid) 的方括号 ([ ]) 列,确定最大减速度值为 0 的轴。单击不合要求的轴旁边的省略号按钮,访问“轴属性”(Axis Properties) 画面。转到“动力学”(Dynamics) 选项卡,对最大减速度值进行适当更改。如果扩展错误返回的数字为 -1,则表示坐标系统的最大减速度值为 0。转到“坐标系统属性”(Coordinate System Properties) 的“动力学”(Dynamics) 选项卡,更正最大减速度值。
MCCD 状态位变化:
对于主轴驱动速度控制 (MDSC) 功能,当执行 MCCD 时(进入 IP 状态),CalculatedDataAvailable (CDA) 状态位将清零(由 MCCD 指令的“作用域”变量指定),在每个 MCLM 和 MCCM 指令标签中,该状态位表示已计算出事件距离。(“作用域”变量指定是激活运动指令还是激活和待处理运动指令(即,队列中的所有指令))。
MCCD 指令执行完成并重新计算出事件距离后,CalculatedDataAvailable 状态位再次置位。因此,可在 MCCD 指令执行完成后查看 CalculatedDataAvailable 状态位,确定何时可以使用重新计算出的事件距离。
如果执行 MCCD 指令(进入 IP 状态),则 CDA 位清零。使用新的动力学参数重新计算运动的计算数据。计算完成后,CDA 位再次置位。重新计算出的计算数据是使用由 MCCD 指令更改后的新动力学参数从初始运动起始点 (MSP)(而不是从执行 MCCD 的点开始)到达到事件距离点测量而得。
请注意,如果 MCCD 将速度更改为 0,则不会重新计算事件距离;CDA 位不置位。如果发出第二条 MCCD 指令以重新开始运动,则将重新计算事件距离。重新计算后获得的计算数据包括已停止运动的持续时间。
如果将事件距离设为 0,则将计算数据设置为等于与运动距离相等的位置。由于存在内部延迟,可能会在一个或两个近似更新周期后再将 PC 位置位。终点位置通常是在近似更新周期的一半达到,从而向延时额外增加一个近似更新周期。因此,如果主轴的运动距离等于计算数据,则必须等待多达 2 次迭代,从轴运动的 PC 位才会置位。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。对于数组索引故障,请参阅 数组索引编制
执行
梯形图
条件/状态
执行的操作
预扫描
.EN、.DN 和 .ER 位设置为假。
梯级输入条件为假
如果 .DN 或 .ER 位为真,则 .EN 位设置为假。
梯级输入条件为真
.EN 位设置为真,指令执行。
后扫描
不适用
结构化文本
条件/状态
执行的操作
预扫描
请参阅“梯形图”表中的“预扫描”行。
正常执行
请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。
后扫描
请参见“梯形图”表中的“后扫描”行。
示例
梯形图
MCCD_LD_ex_v31
结构化文本
MCCD(myMccdCoordinateSystem, myMccdMotionControl, CoordinatedMove, Yes, MyMccdSpeed, Unitspersec, Yes, MyMsccdAccelRate, Unitspersec2, Yes, MyMccdDecelRate, Unitspersec2, Yes, 100.0, Yes, 100.0, %ofTime, ActiveMotion);
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal