如何使功能块方法的输入可选?
How to make inputs of a function block method optional?
在调用功能块的方法时,是否可以将某些输入变量设为可选?如果我在没有为所有输入变量赋值的情况下调用 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);
这样您还可以减少方法的输入数量,从而使其更易于测试和使用。
在调用功能块的方法时,是否可以将某些输入变量设为可选?如果我在没有为所有输入变量赋值的情况下调用 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);
这样您还可以减少方法的输入数量,从而使其更易于测试和使用。