Skip to content

CIF to PLC transformation should not generate formal argument for 'NOT'

When transforming the Unary Inverse operator from CIF to PLC, we do

genFuncCall("NOT", true, "IN1", left);

However, NOT doesn't support a formal argument name in TwinCAT or Siemens S7.

As a result, when we enable formal function invocation we end up with syntax that is not supported:

#state1.dvar_M_aut_b := NOT (IN1 := DB.state0.dvar_M_aut_b);

We should set the formal argument name to null. We do that for ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, and ATAN as well.

Edited by Ferdie Reijnen