P9999

Code

P9999

Message

Capability is not implemented (yet!)

Analyzing the IEC 61131-3 source failed because the source contains elements that are not supported by this compiler. The elements are probably valid.

Because the compiler does not support the elements, the solution normally requires adding support for the elements to the IronPLC compiler.

  • avoid the particular elements (this is usually not feasible)

  • verify that you have the latest version of the IronPLC compiler

  • report the program so support can be added (see below).

Reporting the program

We can only add support for an unsupported capability once we can see the program that needs it. Sending us the program gives the best results, so please do — there are two ways, and no GitHub account is required:

  • From the IronPLC Playground (easiest). When a program produces P9999, a Submit Code button appears next to the diagnostic. Clicking it sends the program directly to the IronPLC team.

  • As a GitHub issue. Attach the source file (or paste it) so we can reproduce the problem.

Note

Whichever route you choose, the program you submit is shared with the IronPLC team and may become public — for example in a GitHub issue. Do not submit anything confidential.

Known Limitations

The following features are not yet supported in code generation and will produce this error:

  • ARRAY element access

  • STRUCT member access

  • FUNCTION_BLOCK with SFC bodies

  • STRING pass-by-reference (VAR_IN_OUT)

  • Direct variables (hardware-mapped I/O such as %IX0.0)

  • Enumerated values in expressions and CASE selectors

Think IronPLC is wrong about this?

If you believe this diagnostic is incorrect, open an issue on GitHub with a small sample that demonstrates the problem.