如何使功能块方法的输入可选?

kol*_*yur 4 twincat

调用功能块的方法时,是否可以使某些输入变量可选?如果我在没有对所有输入变量进行赋值的情况下调用 fbA.methA(),TwinCAT 会抛出错误:“函数 methA 需要精确的 'x' 个输入。” 有时某些输入是不必要或不相关的,但到目前为止,我必须为这些输入分配虚拟值才能编译代码。

Roa*_*ald 6

我认为这是不可能的。您可以创建全部调用基本方法的额外方法。

例如:

FUNCTION_BLOCK Multiplier

METHOD Multiply : REAL
VAR_INPUT
    number1 : REAL;
    number2 : REAL;
END_VAR

METHOD MultiplyByTwo : REAL
VAR_INPUT
    number : REAL;
END_VAR

MultiplyByTwo := Multiply(2, number);
Run Code Online (Sandbox Code Playgroud)

这样,您还可以减少方法的输入数量,从而使其更易于测试和使用。

  • 罗尔德是对的。然而,未来我们有一些希望:/sf/answers/4393812811/ (3认同)