【发布时间】:2017-07-13 02:10:33
【问题描述】:
对于我的一个程序,我需要梯形图中的常闭、定时关闭 (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 结束
ERROR 4250: F_TRIG (4): 另一个“ST”语句或 POU 结束
ERROR 4250: F_TRIG (7): 另一个“ST”语句或 POU 结束
错误 4250:F_TRIG (10):另一个“ST”语句或 POU 结束
ERROR 4250:F_TRIG (13):另一个“ST”语句或 POU 结束
我正确地将 POU 的类型配置为功能块,并将 POU 的语言配置为 ST。我怀疑我的语法生疏了,但我愿意接受建议。特别是如果我以一种完全错误的方式解决这个问题。
我觉得没问题。怎么了?
运行 Codesys 2.3。
【问题讨论】:
标签: timer plc codesys structured-text