Docs / Siemens TIA Portal

Siemens TIA Portal audit guide

SCL / AWL / UDT text exports parse end-to-end. .ap14 – .ap18 binary projects extract every textual blob (SCL / AWL / UDT XML) from the SQLite container and route them through the same parser pipeline, with FB and DB merge so cross-block references resolve. HW Config and proprietary binary blocks stay on the partial-decode badge.

Supported formats

Structured Control Language

stable

.scl

Statement List

stable

.awl

Including code-generator-driven templates with `{ARG.id}` / `{%macro%}` placeholders.

User-Defined Type

stable

.udt

TIA Portal project (V14-V18)

stable

.ap14 – .ap18

SQLite container. Every textual blob (SCL / AWL / UDT XML) extracts end-to-end and feeds parseSiemensBundle, so FUNCTION_BLOCK and DATA_BLOCK declarations from different tables merge into one project with cross-block references resolved. The blob extraction layer surfaces tag-axis findings, FB-axis findings (R039 / R048), DB-axis findings (R042 / R097), and per-routine body findings (R082 / R083 / R084 / R090 / R092). HW Config layout, F-CPU safety routing, and proprietary STL binary blocks remain on the partial-decode badge — those areas would need TIA Portal's own format spec to audit, and Siemens does not publish one.

Siemens TIA Portal-specific rules

These rules are vendor-gated and only fire on Siemens TIA Portal sources. Vendor-neutral rules (R001–R007, R014, R022, etc.) also apply.

R082

Inline hex magic literal (W#16#...)

R083

Inline binary magic literal (2#...)

R084

Compound assignment (TIA V14+, portability)

R092

Zero-duration TIME literal (also Mitsubishi)

Known limitations

F-CPU safety-IO routing not yet rule-encoded.

Multi-vendor symbol cross-references (HMI ↔ controller) not tracked.

Siemens ODK external-binding calls (ODK_ExcS / ODK_Load / etc.) recognised as stdlib; no R035 fires.

Workflow

1. In TIA Portal: right-click the block → Generate source from blocks → save the .scl / .awl / .udt files.

2. For .ap14-.ap18 binary projects: upload the archive directly. Coverage badge will indicate partial-decode.

3. Findings include cross-FB references and call-graph cycles.