Attention

IronPLC implements many parts of the IEC 61131-3 standard and is working toward full Structured Text support. Key features still missing include ranges, enum and I/O mapping.

P0011

Code

P0011

Message

Empty variable block requires –allow-empty-var-blocks flag

This error occurs when a variable block (VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_EXTERNAL, VAR_GLOBAL, etc.) contains no declarations. The IEC 61131-3 standard requires at least one variable declaration within each variable block.

Example

The following code will generate error P0011:

FUNCTION myFunc : INT
VAR
END_VAR
    myFunc := 1;
END_FUNCTION

The VAR block is empty and does not contain any variable declarations.

To fix this error, you have two options:

Option 1: Remove the empty variable block

FUNCTION myFunc : INT
    myFunc := 1;
END_FUNCTION

Option 2: Enable empty variable blocks with command line option

If your code is auto-generated and contains empty variable blocks, you can allow them with the --allow-empty-var-blocks command line option when running the compiler.