对于我的一个程序,我需要梯形图中的常闭、定时关闭 (NCTC) 继电器。
我不知道实现这种方法的标准方法,所以我正在尝试自己构建一个。我目前的方法需要一个下降沿检测。我在一本书的后面找到了这种检测器的代码:“IEC 61131-3:工业系统编程”(第 2 版,第 327 页)。看起来像这样:
FUNCTION_BLOCK F_TRIG (* falling edge *)
VAR_INPUT
CLK : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR RETAIN
MEM : BOOL := 1; (* initialise edge flag *)
END_VAR
Q := NOT CLK AND NOT MEM; (* recognise falling edge *)
MEM := NOT CLK; (* reset edge flag *)
END_FUNCTION_BLOCK
这给了我 5 个错误(忽略构建失败):
错误 4250:F_TRIG (1):另一个“ST”语句或 POU 结束
错误 4250:F_TRIG (4):另一个“ST”语句或 POU 结束
错误 4250:F_TRIG (7):另一个“ST”语句或预期 POU 结束
错误 4250:F_TRIG (10):预期另一个“ST”语句或预期 POU 结束
错误 4250:F_TRIG (13):预期另一个“ST”语句或 POU 结束
我正确地将 POU 的类型配置为功能块,并将 POU 的语言配置为 ST。我怀疑我的语法生疏了,但我愿意接受建议。特别是如果我用一种完全错误的方法来解决这个问题。
在我看来没问题。怎么了?
运行 Codesys 2.3。