E0010: a name that nothing declares
Every variable a POU uses is declared in one of its VAR blocks
(Ed.3 6.5). A global variable is seen in a POU only through a
VAR_EXTERNAL declaration of it (Ed.3 6.5.2.2); a step’s flags are
step.X and step.T; an enumerated value is its name or
Type#Value.
PROGRAM p
VAR x : INT; END_VAR
y := x; (* E0010: y is not declared *)
END_PROGRAM
A member that a type does not have, such as timer.QQ on a TON, and
the internal VAR of a function block read from outside it, are E0010
too; so is a name in an instance’s initial value that is not one of
its inputs, outputs or PUBLIC variables (Ed.3 6.6.3.3): c : Count := (limit := 5) is E0010 when limit is in the block’s plain VAR.