Reading OpenPMC Simatic IT LDR Files: Troubleshooting Extracts

David Krause13 min read
Other TopicSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

An OpenPMC (Open Process Manufacturing Controller) extract can contain files that look like PLC source code to a Siemens engineer, but they are not. The .LDR files in an OpenPMC package are recipe/procedure ladder definitions belonging to the Simatic IT suite, not the S7 / TIA Portal programming environment. Attempting to import them into Step 7, the TIA Portal, or even the S7-PLCSIM environment will fail silently with an unsupported-format dialog, leaving the engineer convinced the files are damaged when in fact only the wrong tool has been used.

This article documents the file identity, the tool chain that owns the format, the diagnostic steps to confirm the file class, and a field procedure to recover and visualise the ladder content when the original Simatic IT Management Console and Historian 3 installations are corrupt or unavailable. Procedures apply to Simatic IT versions 4.x, 5.x, and 6.x as well as the OpenPMC controller that is a runtime target of those suites.

What Is an OpenPMC LDR File?

OpenPMC is the runtime engine of the SIMATIC PCS 7 / SIMATIC IT process manufacturing stack. It executes batch procedures, equipment phases, and recipe logic. The LDR extension refers to a ladder definition resource used by the Simatic IT production model, often also referred to as the "Cube" model in the Historian context.

Attribute Value
Product family SIMATIC IT, OpenPMC (Cube / Historian 3.0)
File extension .LDR (ladder definition), .CFG (configuration), .RCP (recipe), .PHASE (phase library)
Underlying model ISA-88 / IEC 61512 batch procedural model
Storage backend Microsoft SQL Server (Historian + Management Console database)
Target runtime OpenPMC controller (PCS 7 AS runtime + Simatic IT add-on)
Confused with S7 LAD source (.AWL), TIA Portal block export
Critical identification rule: A Simatic IT LDR file is recognised by its XML header (versions 5/6) or proprietary binary header (version 4) and references to procedure, formula, and parameter entities. An S7 LAD file references OB, FB, DB, or FC block numbers and uses the S7 block container signature. They are not interchangeable, and the wrong environment will not transcode them.

Why Step 7 and TIA Portal Cannot Open LDR Files

Step 7 (SIMATIC Manager) and the TIA Portal address the S7-300/S7-400/S7-1200/S7-1500 PLC firmware programming model. LDR files in a Simatic IT extract are not PLC program blocks; they are model artefacts that the Simatic IT engine compiles into OpenPMC runtime calls.

Environment Open behaviour with LDR Diagnostic
SIMATIC Manager (Step 7 V5.x) "Unknown file type" – no importer registered Dialog header shows "File cannot be opened"
TIA Portal V13..V19 No import filter; appears as unsupported binary Library / Project tree rejects the file
PLCSIM Refuses to load Logs "invalid block container"
Notepad / text editor XML with Simatic IT namespace Look for <SimaticITProcedure> or <LadderDef> tags
Simatic IT Management Console Opens via Ladder Configuration page Successful import into the procedure tree

To confirm the file is genuinely a Simatic IT ladder definition, inspect the first 256 bytes with a hex viewer or a text editor. A version 5/6 LDR begins with an XML preamble followed by the SimaticIT.Ladder or OpenPMC.LadderDef namespace. A version 4 LDR begins with the bytes 53 49 54 4C 44 52 ("SITLDR") followed by a 32-bit little-endian version word.

Required Software Stack

To read and visualise the ladder content of an OpenPMC extract, install the Simatic IT Management Console in a version that matches the extract. The Management Console embeds the Ladder Configuration editor that is the canonical viewer for these files.

Simatic IT Version Management Console build Minimum DB Notes
Simatic IT 4.x SIMATIC IT 4.0 SPx SQL Server 2005/2008 Binary LDR; uses 32-bit COM components
Simatic IT 5.x SIMATIC IT 5.0 / 5.1 / 5.2 SQL Server 2008 R2 XML LDR; introduces Cube schema
Simatic IT 6.x SIMATIC IT 6.0 / 6.1 / 6.2 / 6.3 SQL Server 2012/2014 Introduces UAI; compatible with PCS 7 V8.x/V9.x
Simatic IT Production Suite SIT PS 1.x / 2.x SQL Server 2016+ Successor product; same LDR schema

The Management Console installer is normally distributed through the Siemens Industry Online Support portal (SIOS) under entry ID 109748233 (Simatic IT Historical Versions). Engineers needing a read-only view of a 4.x extract can install the 4.x Management Console in a Windows 7 / Windows Server 2008 R2 virtual machine, since the COM components are 32-bit and incompatible with Windows 10 1903 and later.

Prerequisites

  1. Read access to the entire OpenPMC extract directory tree (typically a ZIP archive). Do not delete or rename files – the LDR may reference companion CFG / RCP / PHASE artefacts by relative path.
  2. Simatic IT Management Console installer (matching the version of the extract) plus its license key or a temporary evaluation license.
  3. Microsoft SQL Server (Express is sufficient) instance where the Management Console will create the empty configuration database.
  4. Local administrator rights on the engineering workstation – the Management Console installs several COM and DCOM services.
  5. Original extract directory mapped to a known path such as C:\OpenPMC\Extract\. Avoid paths containing spaces; the 4.x COM components truncate them.

Step-by-Step Recovery Procedure

  1. Identify the Simatic IT version. Open the extract and look for version.xml, manifest.xml, or a top-level INSTALL.LOG. The string <ProductVersion> or the BuildNumber attribute will indicate 4.0, 5.2, 6.0, etc.
  2. Inspect the LDR file with Notepad. Confirm the namespace matches the declared version. If the LDR is XML and the Management Console is binary (v4), do not force-open – the schemas are not forward-compatible.
  3. Install the matching Simatic IT Management Console on a clean host. Do not co-install multiple major versions; they share COM GUIDs and will conflict.
  4. Launch the Management Console and connect to a fresh SQL Server instance. Allow the installer to create the SimaticITDB schema (default name in v5/v6, SimaticIT in v4).
  5. From the main tree, select Production Model → Ladder Configurations. The right-hand pane exposes a button labelled Import LDR in versions 5/6 and Load Ladder File in version 4.
  6. Browse to the extract and select the LDR file. The console validates the schema, resolves cross-references to PHASE and RCP files in the same directory, and loads the ladder definition into the in-memory editor.
  7. Use the Ladder Configuration editor to view the rung-by-rung logic. Each rung carries transition conditions, parameter assignments, and procedure calls in the ISA-88 style. The editor prints to PDF and exports to .XML for documentation.
  8. If the import wizard reports "companion PHASE not found", locate the missing artefacts in the extract; they typically share the procedure name with a different extension. Copy them into the same directory and re-import.
  9. Save the recovered ladder into the Management Console database. From this point the configuration can be redeployed to a fresh OpenPMC controller using Deploy to OpenPMC.

Handling a Corrupt Simatic IT Installation

When the customer's Management Console and Historian 3 installers are corrupt, the engineer must rebuild the tool chain before the LDR files can be read. The following matrix maps failure modes to remediation paths.

Symptom Likely cause Remediation
Installer aborts with 0x80070005 Missing admin rights or blocked CAB Run as administrator, unblock the file in Properties → Unblock
Installer aborts with 0x80070002 Damaged MSI / nested CAB Re-download the cumulative package from SIOS; verify SHA-1
Service SimaticITHistorian fails to start SQL Server collation mismatch Recreate the DB with SQL_Latin1_General_CP1_CI_AS collation
Management Console opens but tree is empty Database attached but schema not initialised Run SIT_DBInit.exe /s <server> /d SimaticITDB
"Cannot load LDR – schema version too new" Extract from newer version than installed Console Upgrade the Management Console to the matching major version
"Cannot load LDR – schema version too old" Extract is from an older major Use the older Console; do not attempt in-place upgrade
LDR opens but rungs render as empty boxes Missing PHASE library Import the corresponding .PHASE archive first

If the original Media Pool ISO is unavailable, the Simatic IT cumulative installers are still distributed through the Siemens support portal under "SIMATIC IT – Historical Versions." Each cumulative contains every prerequisite Service Pack; do not chain multiple Service Packs manually – run the cumulative in a single pass.

Licensing note: A read-only inspection of a LDR file does not require a fully licensed OpenPMC runtime. A development license for the Simatic IT Management Console is sufficient for diagnosis and documentation. Deployment to a live OpenPMC controller requires a runtime license keyed to the controller's serial number.

File Format Internals

Understanding the LDR internals allows recovery even when the Management Console cannot be installed. The format is intentionally documented for system integrators and was the subject of several SIOS Knowledge Base articles (notably entry 109757741 for the v5 schema and 109765120 for the v6 schema).

Version 4 (Binary)

  • Header: 53 49 54 4C 44 52 (6 bytes, "SITLDR")
  • Version word: uint32 little-endian, value 0x00040000 for v4
  • Flags word: bit 0 encrypted, bit 1 compressed, bit 2 signed
  • Body: length-prefixed TLV records; each rung encoded as a sequence of contacts, coils, and comparator opcodes

Version 5 and 6 (XML)

The body is a UTF-8 XML document with the namespace http://www.siemens.com/automation/simatic-it/ladder/v5. A minimal ladder contains one <LadderDef> root with child elements <Rung>, each of which references a <PhaseCall>, <Transition>, or <ParameterAssignment>. A version 6 LDR adds the <UAINamespace> element used by the OPC UA interface.

<?xml version="1.0" encoding="UTF-8"?>
<LadderDef xmlns="http://www.siemens.com/automation/simatic-it/ladder/v6"
           version="6.2" id="PROC_REACTOR_FEED">
  <Header>
    <Author>plant.eng</Author>
    <Created>2021-03-14T08:11:00Z</Created>
    <Modified>2024-09-02T14:22:00Z</Modified>
  </Header>
  <Rung id="R1">
    <Contact ref="tag:PUMP_01_RUN"/>
    <Coil   ref="tag:VALVE_03_OPEN" set="true"/>
    <Transition expression="TIC_201.PV > 75.0"/>
  </Rung>
</LadderDef>

For emergency documentation when no tool is available, the XML form can be rendered with any XSLT stylesheet. Siemens ships LadderExport.xslt in the install media under Tools\Export; it produces an HTML ladder view that can be opened in any browser.

Cross-Version Compatibility Matrix

From LDR version Target Console Result
4.x 5.x Migration wizard converts; audit required
4.x 6.x Migration wizard converts via 5.x intermediate
5.0 5.2 Direct import; minor schema additions only
5.x 6.x Conversion required; UAI namespace added
6.0 5.x Rejected – newer schema elements unknown
6.2 6.0 Rejected if UAINamespace used

Diagnostic Checklist

Run through this list before declaring a file unrecoverable.

  1. Verify the file is genuinely .LDR and not a renamed .LAD, .AWL, or .SCL block export. S7 block exports from the S7-300/400 family have distinct signatures (the S7 block header 70 70 70 70 70 70 70 70 "pppppppp").
  2. Check file size. A LDR is rarely below 2 KB; a 200-byte file is almost certainly an empty stub or a pointer record.
  3. Confirm the extract contains companion files. A bare LDR with no PHASE / RCP / CFG siblings usually cannot be interpreted standalone – it references transition tags and parameter sets defined elsewhere.
  4. Search the binary for readable strings. Names such as tag:, PROCEDURE_, PHASE_, and UNIT_ are reliable markers of a Simatic IT ladder definition.
  5. Cross-check the modification timestamps. A ladder edited after the last site acceptance test (SAT) may not match the deployed runtime – confirm against the OpenPMC controller's published hash if the historian is online.
  6. If the LDR is encrypted (flag bit 0 set in v4 or attribute encrypted="true" in v5/v6), the Management Console must be pointed at the same certificate store used at export time. Without the matching certificate, only the header and rung count can be recovered.

Verification Procedure

After a successful import, validate the recovered ladder with the following checks before redeploying it to a controller.

  1. Open the ladder in the Ladder Configuration editor and confirm every rung renders without red markers. A red marker indicates a missing transition tag or a parameter type mismatch.
  2. Use Validate Against Procedure Model to compare the imported ladder with the live Procedures schema in the database. Warnings about deprecated opcodes indicate the LDR pre-dates a Service Pack.
  3. Export the validated ladder to PDF and to XML, and store both alongside the original extract for audit traceability. The PDF is the human-readable artefact; the XML is the long-term machine-readable artefact.
  4. Run the Management Console's Static Analysis pass. The analyser produces a report listing unused tags, undefined references, and unreachable rungs. Review the report before promoting the configuration to a test OpenPMC controller.
  5. Deploy to a staging OpenPMC controller and run an idle recipe cycle to confirm the engine accepts the recovered configuration without rejecting any phase call.

Common Pitfalls

  • Trying to convert LDR to S7 LAD. The two formats describe entirely different execution models. Simatic IT compiles LDR to OpenPMC calls at deploy time; an S7 LAD is interpreted by the S7 CPU firmware.
  • Co-installing major versions. Versions 5 and 6 share the COM class id {C9D7C7E0-3A11-4B91-B6E0-7F4F2D2A1B6B} and will silently overwrite one another. Use a virtual machine per major version.
  • Reading LDR outside the Management Console. Third-party XML viewers will display the markup but will not resolve tag: references against the production database, producing the appearance of broken rungs.
  • Restoring only the database. If the SQL database is recovered from backup but the Management Console binaries are corrupt, the LDR is unreachable – the database stores configuration, not the raw LDR file the extract contained.
  • Misidentifying the OpenPMC runtime as a Siemens PLC. OpenPMC is an application-level runtime sitting on top of an S7-400 / S7-1500 CPU. Its program artefacts (PHASE, LDR, RCP) live in the Simatic IT database, not in the PLC's offline block container.

Field-Commissioning Notes

When the recovered LDR is destined for a new OpenPMC controller, perform the deploy in a controlled sequence: import the ladder into a clean Management Console database, run static analysis, deploy to a staging OpenPMC, exercise the procedure under simulation, then promote to the production controller. Do not bypass the staging step; an unreferenced tag in a ladder will fault the OpenPMC runtime with code 0x80047207 ("Tag not subscribed") and the batch will be held.

For long-term archival, store both the raw LDR file and the PDF export. The raw LDR is the only authoritative source if the Management Console schema is later upgraded; the PDF is the only artefact readable without any Siemens tooling.

FAQ

Can I open an OpenPMC LDR file directly in TIA Portal?

No. LDR files belong to the Simatic IT production model, not the S7 / TIA Portal programming environment. Import them into the Simatic IT Management Console using the Ladder Configuration page – any version of Simatic IT (4, 5, or 6) that matches the extract's schema will open them.

The customer's Management Console installer is corrupt – how do I read the LDR files?

Re-download the matching Simatic IT cumulative installer from the Siemens Industry Online Support portal (entry 109748233). Install on a clean Windows host together with a fresh SQL Server Express instance, allow the installer to create the SimaticIT database, then import the LDR through the Ladder Configuration editor. Do not attempt to repair the corrupt installer with the Windows Installer cleanup utility – the COM registrations will be inconsistent.

Is an OpenPMC LDR the same as an S7 LAD file?

No. An S7 LAD file is a PLC program block interpretable by the S7 CPU firmware. An OpenPMC LDR is a procedure-level ladder definition compiled by the Simatic IT engine into OpenPMC runtime calls. They share the word "ladder" and a similar visual style, but the file format, namespace, and execution model are completely different.

Which Simatic IT version produced my LDR file?

Open the LDR in Notepad. If the file begins with <?xml and contains a namespace .../ladder/v5 or .../ladder/v6, it is from Simatic IT 5 or 6. If the file is binary and starts with the bytes 53 49 54 4C 44 52 ("SITLDR"), it is from Simatic IT 4.x. The exact version is recorded in the version attribute of the root element or in the 32-bit version word following the header.

Can I read an encrypted LDR file without the original certificate?

No. Encrypted LDR files (flag bit 0 in v4 or attribute encrypted="true" in v5/v6) require the certificate used at export time. The Management Console will load the header and rung count for diagnosis, but the rung contents remain sealed. Re-export from the source site with a fresh unencrypted copy if long-term archival is required.

Why does my Management Console show "schema version too new" when importing a 6.2 LDR?

The installed Console is older than the LDR's major version. Install the matching Simatic IT Management Console (6.2 or later 6.x) – the LDR schema is not backward-compatible. Always match the major version of the Console to the LDR, then use the migration wizard for any sub-version differences.

Back to blog