1

所以我有一个问题,在我的 SFC 中它跳转到一个初始步骤,但在该步骤中写入的命令不会注册。

在 SFC 结束时,步将 5 输入到 A_Status(INT)。下一个转换检查 A_Status 的值是否为 5。到目前为止没有问题,但是在转换后跳转到 SFC 的开头,其中第一步应该将 0 输入到 A_Status 中,A_Status 保持在 5。

我的程序的循环时间是 100 毫秒。我曾尝试减慢周期,但没有奏效。这里似乎有什么问题?也许在这样的序列中使用的相同变量不起作用?

将不胜感激。

4

1 回答 1

0

您没有提及是否在进入/退出期间或在 SFC 步操作中写入值。但请注意,在某些情况下,上一步中的代码可能会比新步骤中的代码执行得晚。

这是一个链接,解释了调用顺序以及为什么有时部分代码会执行两次: https ://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/45035999420423563.html

我已经成功地在所有操作中添加了以下代码以防止这种情况发生。

IF STEP_NAME.x THEN // Only execute this while the step is active.
  // Insert code here.
END_IF
于 2020-01-15T09:15:51.450 回答