Problem Overview
Engineers generating AutomationML (AML) files for SIMATIC ET 200SP distributed I/O islands discover that the TIA Portal CAx export/import workflow does not carry the full module parameterization. The exported .aml package preserves the device topology, slot order, and module order numbers, but it drops two critical configuration classes:
- Potential group selection per baseUnit (BU): "New potential group" vs. "Power from previous module" (P0/P1 feed selection on the light-colored vs. dark-colored base unit).
- Channel-level parameters: measurement range (0–10 V, ±10 V, 0/4–20 mA, RTD/TC types), input limits, smoothing, diagnostics enable bits, value substitution, oversampling, and safety-related channel parameters (SIL/PL, discrepancy time, test pulse).
This affects TIA Portal V16, V17, V18, V19, and V20 engineering projects. Users who re-import an AML into a fresh project expect the I/O island to be fully wired and parameterized so that a PLC program drop-in works immediately. The missing data means manual re-parameterization of every AI/AO/DI/DQ channel and every baseUnit, which is error-prone on large islands with 30+ modules.
ET 200SP AML Export: What Is Actually Written
When you trigger Project → Export → CAx data on an ET 200SP head module (IM 155-6 PN ST, IM 155-6 PN HF, or IM 155-6 DP HF) the generated AML contains the following role class libraries (RCL) by default:
| Object Class | Exported? | Notes |
|---|---|---|
| Head module (IM 155-6 PN/DP) | Yes | Article number, firmware version, slot 0 |
| BaseUnit type (BU15, BU20, A0/B0 colored) | Partial | Color/potential-group flag is not exported as a property |
| I/O module article number + firmware | Yes | MLFB, hardware/firmware version, slot index |
| Module parameters (device-level) | Partial | Module-level diagnostics enable, isochronous mode, submodule ID |
| Channel configuration (0–10 V, 4–20 mA, RTD type, etc.) | No | Excluded from the AML role class |
| Potential group (P0/P1, new group, power from previous) | No | Excluded; baseUnit color is the only hint |
| Safety parameters (PROFIsafe address, SIL, discrepancy) | No | F-modules lose F-destination address and watchdog |
| Submodule / shared device / I-device configuration | Partial | Submodule count only; no transfer area mapping |
For the official scope of the channel export, see Export/Import of device with channels in the TIA Portal Help. The document explicitly states that channel objects can be exported when you target an empty project, but the property coverage is limited to the channel name, address, and IO type — not the channel value or diagnostic behavior.
Channel Configuration: What Is Missing
For each AI/AO channel the following properties are not carried in the standard CAx export. The list is derived from the parameter editor of representative ET 200SP modules:
Analog Input (e.g. AI 8×U/I/RTD/TC ST, 6ES7131-6KF00-0BA0)
- Measurement type (Voltage, Current 2-wire/4-wire, RTD 2/3/4-wire, TC type J/K/T/N/E/S/R/B, resistance)
- Range (e.g. 0–10 V, ±10 V, 0–20 mA, 4–20 mA, Pt100 standard/climate, Ni100, Cu10)
- Smoothing (None, Weak, Medium, Strong — typically 1/4/16/64 cycle filter)
- Overflow/underflow diagnostics enable
- Wire-break / short-circuit enable per channel
- Temperature unit (°C / °F / K)
- Noise suppression (50 Hz / 60 Hz / 400 Hz integration time)
- Limit value monitoring (high/low, hysteresis)
Analog Output (e.g. AQ 4×U/I ST, 6ES7132-6HD00-0BA0)
- Output type (Voltage, Current)
- Output range (0–10 V, ±10 V, 0/4–20 mA)
- Diagnostics: short-circuit, wire-break, overflow enable
- Substitute value behavior (last valid, substitute value, 0)
- Reaction to CPU STOP (Disable outputs / Apply substitute)
Digital Input (e.g. DI 16×24 V DC ST, 6ES7131-6BH00-0BA0)
- Input delay (0.05 ms – 20 ms typ. steps: 0.1/0.5/3/15 ms)
- Wire-break / short-circuit enable (on 24 V high-feature variants)
- Hardware interrupt enable (rising/falling edge)
- Value status (qualifier) enable per channel
Digital Output (e.g. DQ 8×24 V DC/0.5 A ST, 6ES7132-6BF00-0BA0)
- Reaction to CPU STOP (Disable / Apply substitute value / Keep last value)
- Substitute value per channel
- Diagnostics: wire-break, short-circuit to L+, ground fault enable
F-Modules (PROFIsafe ET 200SP)
- F-destination address (0…1022, default 1)
- F-monitoring time (1…65535 ms, default 150 ms)
- F-parameter signature (CRC, generated)
- Channel-level discrepancy time, short-circuit test pulse width, dark/light period for digital safe inputs
Potential Group: What Is Missing
The ET 200SP baseUnit carries the potential group decision in its color and position:
| BaseUnit type | Color | Typical use | Exported? |
|---|---|---|---|
| BU15-P16+A0+0B (6ES7193-6BP00-0DA0) | Light | Open new potential group, power feed | Color only |
| BU15-P16+A0+2B (6ES7193-6BP00-0DA1) | Dark | Pass-through of previous potential group | Color only |
| BU15-P16+A10+0B (6ES7193-6BP00-0DA0 with AUX) | Light | New group with separate AUX (10 A) | Color only |
| BU20-P12+A0+0B (12 mm slot width) | Light | 20 mm new group | Color only |
The electrical role — whether the baseUnit opens a new 24 V segment or passes the previous segment — is not carried in the AML. The re-imported project shows the baseUnit with default rule "new group", which can re-energize the wrong segment in the cabinet if the engineer does not re-check every feed point.
Root Cause: TIA Portal CAx Architecture
The CAx data exchange is built on the AutomationML standard (IEC 62714) and uses Siemens' role class libraries (RCL) for SIMATIC hardware. The role class library for ET 200SP was scoped to the engineering data needed for a topology exchange between mechanical (CAD), electrical (EPLAN), and PLC tools — not a full PLC re-engineering handoff. Three architectural reasons explain the gap:
-
Role class scope. The published SIMATIC ET 200SP RCL contains device, slot, and module-property classes, but the channel-property class is shallow. It carries
channelIdandioType, not the diagnostics/measurement parameter tree. - License gating. Certain import paths require a valid CAx license. If the license is missing and you attempt to import a configuration that needs it, the import is rejected or properties are silently dropped. See Import of CAx data.
- Round-trip limitation. The CAx export is primarily intended for the forward direction: TIA → EPLAN/Mechatronics. Round-tripping (export → modify → re-import into TIA) was not a design goal before V18, and even in V20 it remains partial.
Workarounds
There is no single setting that enables full channel and potential-group import. The three engineering approaches that work in practice are listed below in increasing complexity.
Workaround 1: TIA Portal Openness API (C#/VB.NET)
Use the TIA Portal Openness automation interface to script the parameterization after CAx import. The Openness API exposes IoConfig objects on every channel and the baseUnit's PotentialGroup property.
- Install the TIA Portal Openness option package (requires TIA Portal install media, included in V16+ as add-on).
- Add a reference to
Siemens.Engineering.dllin a .NET 4.8 / .NET 6 class library. - Open the project:
TiaPortalProcess proc = new TiaPortalProcess(); - Iterate
IoController→IoDevice(ET 200SP) →IoModuleslots. - For each
IoChannel, callchannel.GetAttribute("ChannelConfig.Type")and set values viaSetAttributeorGetService<IoConfigService>(). - For each
BaseUnit, setPotentialGroup = PotentialGroupType.NewGroup | PotentialGroupType.PowerFromLeft.
Minimal C# excerpt (representative — pin against the actual Openness reference assembly shipped with your TIA version):
// Pseudocode; actual API surface varies by TIA version
using Siemens.Engineering;
using Siemens.Engineering.HW;
using Siemens.Engineering.HW.Features;
using Siemens.Engineering.HW.Io;
using Siemens.Engineering.HW.Io.BaseUnits;
using var portal = new TiaPortalProcess().Attach();
var project = portal.Projects.Open(amlProjectPath);
foreach (var device in project.GetService<DeviceService>()
.Devices.OfType<IoDevice>())
{
foreach (var module in device.IoModules)
{
// 1. Channel parameters
foreach (var ch in module.Channels)
{
ch.SetAttribute("MeasurementType", MeasurementType.Voltage_0to10V);
ch.SetAttribute("Smoothing", Smoothing.Medium);
ch.SetAttribute("Diagnostics.WireBreak", true);
}
// 2. BaseUnit potential group (if part of slot hierarchy)
var bu = module.ParentBaseUnit;
if (bu != null && bu.Color == BaseUnitColor.Light)
bu.SetAttribute("PotentialGroup", PotentialGroupType.NewGroup);
else if (bu != null)
bu.SetAttribute("PotentialGroup", PotentialGroupType.PowerFromLeft);
}
}
project.Save();
Pin the exact attribute names to your Siemens.Engineering.dll build (V16 → V20 have stable but version-pinned enums). Document attributes in a sidecar CSV so the script is auditable.
Workaround 2: Export with CAx license, then post-process the AML
If you have a valid CAx export license the export produces an extended AML. The XML can be parsed and the channel tree rewritten. Steps:
- Generate CAx data with Project → Export → CAx data. Tick "Include channel configuration".
- Open the
.amlin a text editor. Channel values live under<caex:RoleClassLib>…<Attribute Name="ChannelParameter">…</Attribute>. - Diff the new AML against the gold-standard AML using a
git diffworkflow; this turns the missing parameters into a reviewable change set. - Re-import into a fresh TIA project. Verify in the inspector that each AI channel now shows the correct range.
Workaround 3: PLC tag generation + parameter set (PRONETA / TIA-Offline)
If the goal is PLC program consistency rather than HMI re-build, use Siemens PRONETA to discover the live station and reconcile the configuration. PRONETA 3.5+ supports Compare configuration offline / online for ET 200SP and can write the missing parameters back to the offline project. This is a maintenance workflow, not a bulk engineering one, but it catches the parameter gap during commissioning.
License Requirements
| Function | Required license | Behavior if missing |
|---|---|---|
| CAx export — device/slot topology | Standard TIA Portal | Always available |
| CAx export — channel parameters | CAx export add-on license | Channel objects omitted from AML |
| CAx import — full configuration | CAx import add-on license | Error message on import; see Import of CAx data |
| TIA Portal Openness | Openness option package (TIA Setup add-on) | API calls return EAccessDenied |
Per the official TIA Portal Help on Import of CAx data, the importer raises a dialog when the product license is missing and the configuration requires a license for creation. Confirm licensing in the TIA Administrator (Help → License management) before blaming the import logic.
TIA Portal Version Specifics
| Version | CAx channel export status | Recommended path |
|---|---|---|
| V16 (Update 9+) | Topology only; channel objects partial | Openness API script after import |
| V17 | Same as V16; ET 200SP RCL unchanged | Openness API |
| V18 | Channel export flag added in CAx dialog (gated by license) | CAx with license + Openness post-process |
| V19 | Channel export stable; safety addresses still excluded | CAx with license + F-destination manual |
| V20 | Channel objects export documented; property coverage still partial (see Export/Import of device with channels) | Combined: CAx with license + Openness for residual |
Verification Procedure
After any CAx import, run this checklist before downloading to the PLC.
- Device tree check. In the project tree, expand the IM 155-6 PN head module. Verify all I/O modules in correct slot order and baseUnit types.
- Potential group visual check. In the device view, look at the baseUnit color stripe. Light = new group, dark = pass-through. Cross-reference against the cabinet wiring diagram.
- Channel parameter spot-check. Open one AI module, click each channel, verify Measurement type, Range, Smoothing, and Diagnostics match the source AML.
- F-module verification. For each F-module (e.g. 6ES7136-6BA00-0CA0 F-DI 24 V), verify F-destination address and F-monitoring time in Properties → F-parameters.
- Compile clean. Right-click the PLC → Compile → Hardware (rebuild all). A clean compile proves the project is internally consistent.
- Online compare. Connect to the live station, run Online → Compare offline/online. Any difference flags a missing parameter.
- PRONETA scan. Run PRONETA network analysis to confirm the live device ID, firmware, and slot assignment match the project.
Best Practices
- Treat the AML as a topology artifact, not a configuration artifact. Use it to seed the device tree, then push the channel parameters from a versioned parameter set (CSV/SQL/JSON) that is the engineering single source of truth.
- Lock baseUnit color to potential-group mapping in the cabinet drawing. A 24 V segment is a safety-relevant decision; the AML should not be the only artifact that documents it.
- Version the Openness script with the project. Pin the script to the TIA Portal version in a CI/CD pipeline (e.g. TIA V18 + TIA Openness v18.0.0.0). A script compiled against V18 will fail against V19 due to assembly version locks.
- Run a round-trip test on a sample station. Export → re-import → compile → online compare. The result is the regression baseline for future TIA upgrades.
- Document the gap in the project header. Add a one-line note in the TIA project properties: "Channel & potential-group import manual; see Openness script rev X."
Troubleshooting Matrix
| Symptom | Likely cause | Action |
|---|---|---|
| AML import completes but every AI shows "0–10 V default" | Channel property class excluded from RCL | Re-export with CAx export license; fall back to Openness API |
| Import error: "Product license missing" | CAx import license absent | See Import of CAx data; install license or use base topology import |
| BaseUnit imported as "new group" everywhere | Potential-group property not exported | Manual review per slot; Openness post-process to set PotentialGroupType
|
| F-module loses F-destination address | Safety parameters excluded from CAx | Re-enter F-destination in Properties → F-parameters; recompile |
Openness script returns EAccessDenied
|
Openness option package not installed | Run TIA Setup → Add-ons → Openness; restart TIA Portal |
| Compile error after import: "Module parameter inconsistent" | Channel range mismatch with HW variant | Open module inspector, set the correct measurement type, recompile |
| Online compare shows "different module parameter" for all channels | Default vs. configured parameters | Expected behavior; push configuration from offline to online |
FAQ
Why does TIA Portal CAx export of an ET 200SP station not include channel configuration?
The published SIMATIC ET 200SP role class library in the AutomationML (AML) CAx export carries device, slot, and module properties but the channel-property class is intentionally shallow — it includes channel ID and I/O type but excludes measurement range, diagnostics enable, smoothing, and limit values. The export is scoped to topology exchange with electrical CAD, not full PLC re-engineering. See Export/Import of device with channels.
Which TIA Portal version first added channel parameters to the CAx export?
V18 introduced a "Include channel configuration" flag in the CAx export dialog, gated by the CAx export license. V19 and V20 keep the same mechanism with broader coverage but safety parameters (F-destination address, F-monitoring time) are still excluded. Confirm license presence under Help → License management.
How do I import the ET 200SP potential-group setting (new group vs. power from previous)?
The potential-group decision is encoded in the baseUnit color (light = new group, dark = pass-through) and is not carried in the AML property tree. Re-import defaults every baseUnit to "new group". Use TIA Portal Openness to call BaseUnit.SetAttribute("PotentialGroup", …) on each baseUnit, or set the value manually in the device view.
Can I automate the channel parameter import with TIA Portal Openness?
Yes. Openness exposes IoChannel with GetAttribute/SetAttribute for measurement type, range, smoothing, and diagnostics. Iterate the device's IoModules and write the values from a versioned parameter source. Pin the script to the TIA version (e.g. Openness assembly 18.0.0.0 for V18) to avoid API breakage across upgrades.
What happens to PROFIsafe parameters (F-destination address, F-monitoring time) on CAx import?
Safety parameters are not part of the CAx role class for ET 200SP F-modules and are dropped on import. After every import, open each F-module, set the F-destination address (1…1022) and F-monitoring time (1…65535 ms) in Properties → F-parameters, recompile, and verify the F-signature is regenerated. Always re-validate the F-program in the Safety Administration.