【发布时间】:2021-05-16 16:34:57
【问题描述】:
我有一个功能块A,它有一个变量output(在FUNCTION_BLOCK A 方法中定义)和这个FB_init 方法:
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
END_VAR
VAR_OUTPUT
output : REAL := 0;
END_VAR
THIS^.output := output;
当我如下调用这个构造函数时:
a : A(output => outputLocal);
- 我收到语法错误:
Identifier 'output' not defined。但我确实定义了 构造方法中的 this 参数。 - 当我尝试编译项目时出现另一个错误:
No matching FB_init method found for instantiation of A - 有谁知道问题出在哪里?以及如何将变量传递为 功能块的输出参数?
- 我基本上想在 FB 构造函数中将
localoutput链接到变量output(FBA)。
【问题讨论】:
-
这个很奇怪的电话给我
a : A(output => outputLocal);你哪里有这样的构造?a :是什么?它看起来像声明,但你不能在声明中调用 FB。如果是作业,而你错过了=,那么它也没有意义。 -
这是一个声明,我正在调用
FB_init方法。我想将FB的内部变量output链接到局部变量outputlocal -
据我了解,方法可以访问所有 FB 局部变量。您可以在方法中
outputlocal := 1。
标签: plc twincat st structured-text iec61131-3