| 4001 | Variable '<name>' not declared | Declare variable locally or globally. |
| 4010 | Type mismatch: Cannot convert '<t1>' to '<t2>' | Add explicit conversion function. |
| 4011 | Type mismatch in parameter '<name>' | Use type conversion or correct variable. |
| 4017 | 'MOD' is not defined for 'REAL' | Use MOD only with integer/bitstring types. |
| 4021 | No write access to variable '<name>' | Use writable variable. |
| 4029 | Nested calls of same function not possible | Use intermediate variable: nTemp := fun1(b,c); nResult := fun1(a, nTemp); |
| 4030 | Expressions and constants not allowed as operands of ADR | Use a variable or direct address. |
| 4031 | ADR not allowed on bits! Use BITADR | Replace ADR with BITADR. |
| 4034 | Division by 0 | Division by zero in constant expression. |
| 4050 | POU '<name>' is not defined | Define the POU or correct the name. |
| 4052 | '<name>' must be a declared instance of FB '<name>' | Declare an instance of the correct FB type. |
| 4060 | VAR_IN_OUT parameter needs variable with write access | Provide writable variable. |
| 4061 | VAR_IN_OUT parameter must be used | Always provide a variable for VAR_IN_OUT parameters. |
| 4070 | POU contains too complex expression | Simplify using intermediate variables. |
| 4110 | '^' needs a pointer type | Declare variable as POINTER TO. |
| 4111 | '[index]' needs array variable | Indexing only works on ARRAY OF variables. |
| 4114 | Constant index not within array range | Fix index to be within declared bounds. |
| 4120 | '.' needs structure variable | Left side of . must be STRUCT, FUNCTION_BLOCK, FUNCTION, or PROGRAM. |
| 4121 | '<name>' is not a component of <object> | Component not found in struct/FB definition. |
| 4250 | Another ST statement or end of POU expected | Line doesn't start with valid ST instruction. |
| 4251 | Too many parameters in function '<name>' | More parameters than declared. |
| 4252 | Too few parameters in function '<name>' | Fewer parameters than declared. |
| 4253 | IF/ELSIF requires BOOL expression | Condition must evaluate to BOOL. |
| 4257 | FOR variable must be of type INT | Counter must be integer or bitstring type. |
| 4258 | FOR expression is no variable with write access | Counter must be writable. |
| 4262 | EXIT outside a loop | EXIT only inside FOR, WHILE, or REPEAT. |
| 4264 | CASE requires selector of integer type | Use integer/bitstring type for CASE selector. |
| 4267 | FB call requires function block instance | Declare an instance of the FB. |
| 4270 | CASE constant '<n>' already used | Each selector value used only once. |
| 4271 | Lower border greater than upper border | Fix range bounds. |
| 4273 | CASE range '<a>..<b>' already used in '<c>..<d>' | Ranges must not overlap. |
| 4274 | Multiple ELSE branch in CASE statement | Only one ELSE permitted. |