GrafcetMaker
打开编辑器

故障排除

GrafcetMaker 会在您工作时检查项目。右上角的计数器显示错误(红色)和警告(橙色)的数量;单击它们可打开问题列表。单击某个问题可跳转到对应元素,如果有修复按钮,可以使用它。有问题的元素在图表上也会带有一个徽标:将指针悬停在上面可查看详细信息。

错误

Grafcet G1 没有初始步。 任何步都永远不会激活。选中第一个步并按修复按钮将步 … 设为初始步,或将其类型设为初始步。

多个步的编号相同。 在一个 grafcet 中编号必须唯一,否则 Xn 会有歧义。使用重新编号步,或按 F2 更改编号。

转换条件为空。 每个转换都需要一个条件。对恒为真的转换请使用 1(修复按钮会替您完成)。

未知变量。 该名称未声明(文件是在别处编写的,或变量已被删除)。您在转换条件或动作中输入的名称会被自动创建;对于其他名称,请使用修复按钮创建它,如果是拼写错误,请选择建议的名称。

表达式问题(意外的字符、缺少括号……)。字段下方的问题框会标出位置并给出提示。一个常见的问题是:/ 放在条件前表示 NOT,因此“a 且非 b”应写作 a * /b。请参阅编写转换条件。

动作对输入赋值。 输入来自过程,不能被写入。请更改该变量的方向或使用另一个变量。

强制命令指向不存在的 grafcet 或步。 请检查命令中的 grafcet 名称和步编号。

强制命令构成了循环。 grafcet 不能强制一个直接或通过其他 grafcet 强制它的 grafcet。请移除其中一条命令,或让第三个 grafcet 同时强制这两个。

宏步和封装步构成了循环。 grafcet 不能包含自身:某个宏步或封装步直接或通过其他 grafcet 又回到了它自己所在的 grafcet。将该步设为_步_后再改回来:它会得到属于自己的子 grafcet。

宏步 … 没有展开 grafcet(或封装步 … 没有被封装的 grafcet)。它的子 grafcet 已被删除。将该步的类型设为步,再改回宏步(或封装步)即可得到一个新的子 grafcet,或者让它保持为普通步。

Grafcet … 被多个步使用。 每个宏步和封装步都需要自己的子 grafcet。将其中一个步设为_步_后再改回来:它会得到属于自己的子 grafcet。

警告

步 … 永远不会被激活。 没有从初始步通往它的路径。请将它连线,或删除它。

步 … 没有后续转换。 一旦激活,它就会永远保持激活。通常是缺少一个回路(L)。

选择分支不互斥。 两个转换条件可能同时为真,这会同时激活两个分支。请使它们互斥,例如 a 和 /a * b,或使用修复按钮优先 …。

可能存在无限的瞬态演变。 一个回路中的转换可能同时全部为真,因此 grafcet 将永远无法稳定。请添加一个不能保持为真的条件,通常是边沿(↑start)。

输出由可能同时激活的步的连续动作设置。 两个并行分支驱动同一个输出。请只从一个地方驱动它,或使用存储型动作。

无步的动作是停用时的存储型动作。 没有步时,该动作始终有效、从不停用,因此它永远不会执行。请将其附加到某个步,或更改其类型。

输出由一个无步的动作以及另一个动作设置。 只要其中任一个为真,输出就为真。请确认这正是您想要的。

事件触发的存储型动作没有事件。 请在属性面板中输入事件(例如 ↑b)。

条件动作没有条件。 在您于属性面板中输入其条件之前,它的作用与连续动作相同。

宏步上的存储型动作会被忽略。 宏步通过其展开而激活:请将存储型动作放在展开中的某个步上。

被强制为空情况,且永远不会恢复。 G2{} 这样的命令会停用 G2 的每个步,而没有任何东西会再次激活它们。请使用 G2{INIT} 让 G2 在其初始情况下重新开始。

展开(或被封装的 grafcet)… 未被使用。 没有任何宏步或封装步指向它。如果您不再需要它,请删除它的标签页。

展开需要恰好一个入口步和一个出口步。 在宏步展开中,入口步上方没有转换,出口步下方没有转换。

信息

变量 … 未被使用。 它已声明,但没有任何表达式使用它。可以用修复按钮删除它,或保留以备后用。

其他问题

仿真因瞬态循环而停止。 请参阅上面的警告:仿真器在 1000 次迭代仍未稳定后停止,停止时间会显示出来。

我的定时器不运行。 定时器只在时钟运行时前进:按 F5 运行,或按 F10 跳到下一个定时器。

某个转换一次又一次地实现。 如果它的转换条件保持为真,grafcet 就会以最快的速度循环。使用边沿 ↑a,每次按下只响应一次。

我的工作丢失了。 请查看 文件 › 本地历史:快照保存在浏览器中。重新加载或崩溃后,GrafcetMaker 会自动重新打开您的上一个项目,包括未保存的更改。

文件打不开。 GrafcetMaker 可打开它自己的 .grafcet.json 文件和 grafcet.io 文件(.grafcetio);消息会说明文件被拒绝的原因。由更新版本的 GrafcetMaker 保存的文件需要用该更新版本打开。