Fixed __SET_EXTERNAL_FB declaration in accessor.h, invoked when accessing EXTERNAL_BLOCK.VARIABLE. Macro was invoking __SET_VAR with wrong parameter count. Fixed corresponding code generator for ST. Seems similar codegen for IL is also broken, but fix would affect other (unknown) behviours -> didn't touch it.
FUNCTION WEIGH : WORD (* BCD encoded *)
VAR_INPUT (* "EN" input is used to indicate "scale ready" *)
weigh_command : BOOL;
gross_weight : WORD ; (* BCD encoded *)
tare_weight : INT ;
END_VAR
(* Function Body *)
LD weigh_command
JMPC WEIGH_NOW
ST ENO (* No weighing, 0 to "ENO" *)
RET
WEIGH_NOW: LD gross_weight
BCD_TO_INT
SUB tare_weight
INT_TO_BCD (* Return evaluated weight *)
ST WEIGH
END_FUNCTION (* Implicit "ENO" *)