GrafcetMaker
打开编辑器

动作

动作是步右侧的矩形。它们说明系统在步激活期间或在步激活时做什么。选中一个步并按 A 即可添加一个动作;在某个动作上再次按 A 可添加下一个。使用属性面板中的图片按钮选择它的类型:每个按钮都显示图表如何绘制该类型。

连续动作

最常见的类型。文本是一个输出(或内部变量)的名称,例如 Pump。在步激活期间该输出为真,一旦没有激活的步驱动它,它就立即为假。

选择条件类型可添加一个条件(即赋值条件):它的输入框出现在类型按钮下方,输出在步激活且条件为真期间为真。条件画在方框上方的一条短线上。

步 4 激活期间 Lamp 亮;仅当 alarm 也为真时 Horn 响 4 Lamp Horn alarm
步 4 激活期间 Lamp 亮;仅当 alarm 也为真时 Horn 响

条件中的定时器可实现其他记法中的延时动作和限时动作:

  • 5s/X4:延时,输出在步 4 激活 5 s 后打开。
  • /(5s/X4):限时,仅在步 4 的前 5 s 内打开。

注意:在瞬态演变中被越过的步(请参阅 GRAFCET 基础)不执行其连续动作。

存储型动作

存储型动作一次性更改某个值,该值保持不变,直到另一个动作更改它。它的文本是一个赋值:C := C + 1、Motor := 0、Speed := 2.5。要将 BOOL 变量设为 TRUE,只写它的名称就够了:Motor 表示 Motor := 1。

  • 激活时:在步变为激活时执行。画成方框上方的 ↑ 箭头。
  • 停用时:在步变为非激活时执行。画成方框下方的 ↓ 箭头。
  • 事件:在步激活期间,每次事件发生时执行,例如 ↑reset。画成右上角的一个旗标,旁边是事件。在“属性”面板中输入事件;没有事件的事件触发动作永远不会执行,并会被报告为问题。
激活时(↑)、停用时(↓)和事件触发(旗标)的存储型动作 5 C := C + 1 Motor := 0 C := 0 ↑reset
激活时(↑)、停用时(↓)和事件触发(旗标)的存储型动作

激活时和停用时的动作也可以带条件:只有该条件在那一刻为真时才执行。

即使是在瞬态演变中仅被越过的步,其存储型动作也会执行。可用它们来计数、锁存一个值(在一个步中 Motor := 1,在另一个步中 Motor := 0),或记住某件事已经发生。

强制命令

强制命令在其步激活期间将某个情况强加给另一个局部 grafcet:G2{8} 只激活 grafcet G2 的步 8,G2{*} 将 G2 冻结在当前情况,G2{} 停用它的所有步,G2{INIT} 将它恢复到初始情况。强制命令画成双框。请参阅宏步、封装步和强制。

无步的动作

动作不一定要属于某个步。在未选择任何内容时按 A(或选择动作工具),然后单击画布的空白处:动作单独绘制,没有连线,并且始终有效。

  • 无步的连续动作只要其赋值条件为真就设置其输出,与步无关:带条件 a * b 的 Lamp 就是逻辑 Lamp = a · b。没有条件时,输出始终为真。
  • 事件触发的存储型动作在每次事件发生时运行,例如在 ↑pulse 上执行 C := C + 1 可对脉冲计数。激活时的动作在仿真开始时运行一次。停用时的动作永远不会运行,因为该动作从不停用。

拖动任何动作即可移动它:拖到某个步上可将其附加到该步(该步会高亮,并有一个标记显示它在该步各动作中的位置),拖到画布空白处则使其不属于任何步。

多个动作

一个步可以有任意数量的动作;它们并排绘制。沿着这一行拖动某个动作可改变它们的顺序,也可以在“属性”面板中使用将动作左移 / 右移;在该面板中,选中的步会以紧凑的行列出其动作(单击某一行可展开)。按 Del 删除动作。

小心:当两个可能同时激活的步都用连续动作驱动同一个输出时,结果难以理解。GrafcetMaker 会就此向您发出警告。