<< 点击显示目录 >> 主页 mappServices帮助手册 > mapp Sequence: 机器流程动态化 > 概念 > 动态联锁的定义 |
动态联锁可以用来保护工具或产品。动态联锁检查序列是否被正确执行。这意味着它们检查在要执行的步骤之前的所有步骤是否被正确执行,并且没有更多的轴被移动。这确保没有轴被另一个程序部分或机械地移动到序列之外,因为这将阻止序列的正确运行。
一个轴的状态总是与当前命令之前执行的命令的 "FinalState "相比较,并使用联锁轴。
如果同一轴被用于几个并行分支, MpSequenceCore不能 再确保在并行执行中和之后查询到轴的正确状态,因为不能确定哪个运动先结束。只有当一个轴只在一个分支中移动时,才有可能再次明确决定必须查询轴的哪个状态。
如果在序列的第一步已经使用了动态联锁,那么轴的状态必须与使用该轴的最后一条命令的 "最终状态 "进行比较。
在 配置中定义了4个轴 。动态联锁的定义是,所有轴都相互联锁。
Configuration of the axes |
Configuration of the interlocks |
步骤的代表。
当前步骤的编号也被用作该步骤的 "FinalStep"。在这种情况下,步骤 "1 "的定义如下。
互锁轴 "定义了当前状态与 "FinalState "比较的轴。
使用的序列:
由于动态互锁,每个步骤都必须检查其他各轴的状态。不过,由于是平行分支,这里也有例外情况。
•在这个序列中,"Axis2 "只被移动了一次(步骤2)。由于这个原因,第2步的 "FinalState "必须与 "Axis2 "在这一步的状态进行比较。
•"Axis3 "在步骤7中最后一次被移动。为此,第7步的 "FinalState "必须与本步中 "Axis3 "的状态进行比较。
•在这个序列中,"Axis4 "只被移动了一次(步骤6)。出于这个原因,第6步的 "FinalState "必须与这一步中 "Axis4 "的状态进行比较。
第2步包含一个平行分支。由于这里没有定义联锁轴的状态,所以这里需要检查的联锁较少。
•"Axis1"。在第1步中移动了。为此,步骤1的 "FinalState "与本步骤中 "Axis1 "的状态比较。
•"Axis3"。在一个平行分支(步骤3和步骤5)中执行 "Axis3 "的移动。由于这个原因,轴的状态不能被识别。
•"Axis4"。轴4 "的运动是在一个平行分支中进行的(步骤6)。由于这个原因,轴的状态不能被识别。
•"Axis1"。在一个平行分支中执行了 "Axis1 "的运动(步骤4)。由于这个原因,轴的状态无法被识别。
•"Axis2"。Axis2 "的运动在一个平行分支中执行(步骤2)。由于这个原因,轴的状态不能被识别。
•"Axis4"。该轴没有在平行分支中使用。出于这个原因,该轴的状态可以与步骤6的 "FinalState "进行比较。
•"Axis2"。不在平行分支中使用。为此,轴的状态与步骤2中的 "FinalState "进行比较。
•"Axis3"。在一个并行分支中执行 "Axis3 "的运动(步骤3和步骤5)。由于这个原因,轴的状态不能被识别。
•"Axis4"。轴4 "的运动是在一个平行分支中进行的(步骤6)。由于这个原因,轴的状态不能被识别。
•"Axis1"。在一个平行分支中执行 "Axis1 "的运动(步骤4)。由于这个原因,轴的状态无法被识别。
•"Axis2"。Axis2 "的运动在一个平行分支中执行(步骤2)。由于这个原因,轴的状态不能被识别。
•"Axis4"。在一个平行分支中执行 "Axis4 "的运动(步骤6)。由于这个原因,轴的状态不能被识别。
•"Axis1"。在一个平行分支中执行了 "Axis1 "的运动(步骤4)。由于这个原因,轴的状态无法被识别。
•"Axis2"。Axis2 "的运动在一个平行分支中执行(步骤2)。由于这个原因,轴的状态不能被识别。
•"Axis3"。轴3 "的运动在一个平行分支中执行(步骤5)。由于这个原因,轴的状态不能被识别。
•"Axis1"。该轴的状态与步骤4的 "FinalState "进行比较。
•"Axis2"。该轴的状态与步骤2中的 "FinalState "进行比较。
•"Axis4"。该轴的状态与步骤6的 "FinalState "进行比较。