Attention
IronPLC supports IEC 61131-3 Structured Text excluding I/O mapping.
P4033¶
- Code
P4033
- Message
Partial-access syntax (.%Xn) requires –allow-partial-access-syntax flag
This error occurs when a source uses the IEC 61131-3:2013 partial-access bit
syntax (.%Xn) without enabling it. Partial-access syntax is standardized
in Edition 3 of IEC 61131-3 but is not part of Edition 2, so it is gated
behind the --allow-partial-access-syntax flag (also enabled by the
rusty and iec61131-3-ed3 dialect presets).
Example¶
The following code will generate error P4033:
PROGRAM main
VAR
b : BYTE;
r : BOOL;
END_VAR
r := b.%X0;
END_PROGRAM
To fix this error, either use the Edition 2 short form .n:
r := b.0;
Or enable partial-access syntax with one of:
--allow-partial-access-syntax--dialect=iec61131-3-ed3--dialect=rusty
Scope¶
IEC 61131-3:2013 defines partial access at five granularities — .%Xn
(bit), .%Bn (byte), .%Wn (word), .%Dn (double word), and
.%Ln (long word). IronPLC currently implements only the bit form
.%Xn behind this flag. The wider forms are recognized as partial-access
syntax and therefore also raise P4033 when the flag is off; they are not
yet accepted when the flag is on and still produce a lexer error there. See
Bit Access for the full feature
description and current support status.