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

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);

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