Verified: Coming from TIA Portal
Each claim the Coming from TIA Portal page makes, with the tests that
prove it in the last green CI run: 8 of 16 verified.
The claims live in docs/claims/tia-portal.yaml.
Last green CI run 16 Oct 2026, 14:48 UTC on c7618d3 · all runtime claims
CTIA-001 verified
Manifest tags (the PLC tag table) are in scope in every program without a declaration, `VAR_EXTERNAL` stays legal, and a function block reaches a tag only through its own `VAR_EXTERNAL`.
- pass
TestManifestTagsAreImplicitininternal/project - pass
TestFunctionBlocksDoNotSeeTagsImplicitlyininternal/project - pass
TestExplicitDeclarationMustAgreeWithTypedTagininternal/project
CTIA-002 verified
A tag's `type:` is any elementary type, a UDT or an `ARRAY`, and its `init:` must agree with it.
- pass
TestElementaryTagTypesininternal/project - pass
TestTagTypeAndInitMustAgreeininternal/project - pass
TestTimeMembersSeedFromInitininternal/project
CTIA-003 verified
`init:` seeds a TIME member from `T#2s`, `2s` or milliseconds, and an array member from a list.
- pass
TestTimeMembersSeedFromInitininternal/project
CTIA-004 verified
An error in one block is reported once, on its own line; the blocks that use it are not marked.
CTIA-005 partly verified
A library is files in `lib/`, composed ahead of every task.
CTIA-006 partly verified
`CASE` labels that are named constants (`VAR CONSTANT`, a project constant or an enumeration member) end their clause, and two labels with one value are an error naming both.
- pass
TestConformance/st-case-constantsinlang/conformance(4 of 4 passed) - pass
TestConformance/st-enuminlang/conformance(3 of 3 passed) - pass
TestCaseDuplicateConstantLabelDiagnosedinlang/conformance
CTIA-007 partly verified
Identifiers are case-insensitive: any casing names the one declaration, in ST, ladder, FBD and SFC; diagnostics, live values and the API show it as declared.
- pass
TestConformance/st-case-insensitiveinlang/conformance(3 of 3 passed) - pass
TestLowerCaseInsensitiveIdentifiersinlang/st - pass
TestCaseInsensitiveCallsKeepSpellinginlang/fbd
CTIA-008 verified
The SCL `#name` prefix is rejected everywhere with "the # prefix is Siemens SCL syntax; write the name without it".
- pass
TestHashPrefixRejectedEverywhereinlang/st - pass
TestHashPrefixDiagnosedinlang/conformance(3 of 3 passed)
CTIA-009 verified
`VAR_TEMP` starts every call (and every scan of a program) at its initial value, while `VAR` keeps its value.
- pass
TestConformance/st-var-tempinlang/conformance(3 of 3 passed)
CTIA-010 partly verified
`REGION ... END_REGION` groups statements and opens no scope; it folds in the editor and shows in the Outline.
- pass
TestConformance/st-regioninlang/conformance(3 of 3 passed)
CTIA-011 verified
User constants are declared with `VAR CONSTANT` in a block, or with `VAR_GLOBAL CONSTANT` in a `lib/` file for the whole project.
- pass
TestConformance/st-case-constantsinlang/conformance(4 of 4 passed) - pass
TestConformance/st-global-constantsinlang/conformance(4 of 4 passed)
CTIA-012 partly verified
`Word.%X3` bit access and `%B`/`%W`/`%D` partial access work, with Logix's `Word.3` as an alternative spelling, and writing a bit leaves the word's other bits alone.
- pass
TestConformance/st-partial-accessinlang/conformance(5 of 5 passed)
CTIA-013 verified
Standard timers carry the IEC pins: `t(IN := Run, PT := T#5S); Done := t.Q;` times PT and raises `Q`.
- pass
TestFBTONReachesQAfterPTinlang/st - pass
TestConformance/fb-toninlang/conformance(7 of 7 passed)
CTIA-014 partly verified
Any block takes `EN` (TRUE when unbound) and gives `ENO`.
- pass
TestConformance/fbd-en-enoinlang/conformance(8 of 8 passed)
CTIA-015 partly verified
Execution follows source order by network, with a block evaluated before its readers.
- pass
TestNetworksRunInOrderinlang/fbd
CTIA-016 partly verified
An unconnected input of a block call must be bound or dropped from the call.
- pass
TestPickerLeavesDefaultedInputsUnboundinlang/fbd