调用功能块的方法时,是否可以使某些输入变量可选?如果我在没有对所有输入变量进行赋值的情况下调用 fbA.methA(),TwinCAT 会抛出错误:“函数 methA 需要精确的 'x' 个输入。” 有时某些输入是不必要或不相关的,但到目前为止,我必须为这些输入分配虚拟值才能编译代码。
我认为这是不可能的。您可以创建全部调用基本方法的额外方法。
例如:
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)
这样,您还可以减少方法的输入数量,从而使其更易于测试和使用。