Resolving SIMOTION D410 TO Alarm Display Issues in TIA Portal

David Krause19 min read
SiemensTIA PortalTroubleshooting
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

The SIMOTION D410 is a compact SIMOTION controller with integrated drive functionality that combines PLC logic, motion control, and technology object (TO) management in a single device. When commissioning a SIMOTION D410 with a TP1200 Comfort HMI, engineers frequently encounter a situation where the technological alarms generated by the axis objects (Speed-controlled axis, Positioning axis, Synchronous axis, External encoder, etc.) do not appear in the HMI alarm view, and the alarm numbers cannot be read into a connected S7 PLC for upstream diagnostics or line-level SCADA reporting.

The root cause in most field cases is a TIA Portal version mismatch: TIA Portal V11 cannot establish a tag or alarm subscription against a SIMOTION station, because the SIMOTION optional package for TIA Portal was not delivered until V13. Earlier projects configured with SIMATIC Manager (Step 7 V5.x) and TIA Portal V11 in parallel leave the HMI in a state where the TO alarms checkbox is simply not present in the runtime settings, and any tag referencing the SIMOTION device remains unresolved (displayed with red quality codes on the panel). This article documents the three working approaches to expose D410 TO alarms to a PLC program and a TP1200 Comfort HMI, the configuration parameters that govern the alarm path, and the firmware/TIA versions that are required for each method.

Problem Context

The reported symptom: a SIMOTION D410 controller (firmware V4.x or V5.x, depending on hardware index) is programmed in SCOUT, the project is integrated into a SIMATIC Manager (STEP 7 V5.5 / V5.6) master project, and a TP1200 Comfort panel is configured in TIA Portal V11 SP2. The PLC portion runs on a separate S7-300/S7-400 CPU that exchanges data with the D410 over PROFIBUS or PROFINET. Variables (e.g. axis actual position, velocity, torque) can be read from the D410 and made available to the S7 PLC through PUT/GET, but the technology alarms produced by the D410 axis objects (e.g. 20005, 20006, 20102, 50203) are not displayed on the HMI, and there is no apparent mechanism to extract the alarm number into the PLC tag table.

The expectation of the commissioning engineer is to have a list that matches the alarm buffer of the D410 (which can be inspected with SCOUT via Target system -> Alarm history or via the web server of the D410) to appear inside the HMI's Alarm view control, ideally with the same alarm class, acknowledgment bit, and timestamp. The same alarms are also required in the S7 PLC for the customer's central line SCADA, which polls the PLC every 250 ms via OPC DA.

Root Cause Analysis

Three distinct root causes are typically present at the same time in this configuration:

  1. SIMOTION optional package not present in TIA Portal V11. The integration of SIMOTION into the TIA Portal architecture (HMI tag subscription, alarm routing, and the ability to insert SIMOTION devices as partners in the device configuration) was introduced with the SIMOTION optional package for TIA Portal V13. Prior versions of TIA Portal can install HMI devices and S7 PLCs but cannot add a SIMOTION device to the project tree, and therefore cannot establish a direct HMI-to-SIMOTION alarm subscription.
  2. TO alarms checkbox missing in HMI runtime settings. When a Comfort panel project is created in TIA Portal V11 against an S7 PLC only, the runtime settings of the HMI contain a section named Alarms with a checkbox TO alarms. The checkbox is the gatekeeper for the panel to subscribe to technology object alarms. In V11, this checkbox is filtered out of the UI for projects that do not contain a SIMOTION device, so it is invisible to the user and cannot be activated.
  3. No HMI-side subscription to SIMOTION. Even if the PLC exchanges process data with the D410, the HMI cannot reach the SIMOTION device directly to read its alarm buffer, because the symbolic data interface of the D410 is not exposed to the TIA Portal project. The only way to push TO alarm information to the HMI is either through a SIMOTION device that the TIA Portal knows about, or by reading the alarm number inside the SIMOTION user program and shipping it to the PLC as a normal tag.

For a confirmation of this root-cause chain, refer to the SIMOTION SCOUT/TIA Portal documentation set, in particular the SIMOTION Programming and Operating Manual (entry ID 109751274 on the Siemens Industry Online Support portal) and the TIA Portal release notes for the SIMOTION optional package (entry ID 109476005).

Prerequisites

Before selecting a solution, verify the following prerequisites:

Item Required Value Verification
TIA Portal version V13 SP1 Update 9 or later (V15.1, V16, V17 recommended) Help -> About -> Installed software
SIMOTION optional package Installed for the TIA Portal version in use Start -> Programs -> Siemens Automation -> SIMOTION -> Information
SCOUT version SCOUT TIA V5.2 SP1 or later (matches TIA Portal version) SCOUT Help -> About
D410 firmware V4.4 or later (V5.x for current devices) Online -> Accessible nodes -> Device diagnostics
TP1200 Comfort firmware V13.0.1.0 or later for TO alarm subscription; V14.0.0.0 for V14 panels ProSave -> Device information
Project integration SIMOTION project is integrated as a station in the STEP 7 / TIA Portal master project SCOUT: Options -> Manage SIMOTION projects

If any of the above items do not match, the corresponding solution method below will fail with a specific symptom that is documented in the troubleshooting matrix at the end of this article.

Solution Method 1 — Direct HMI Subscription to SIMOTION (Recommended)

This is the cleanest solution and the one Siemens documents as the standard approach. It requires TIA Portal V13 or later and the SIMOTION optional package.

Step 1 — Upgrade the engineering framework

  1. Install TIA Portal V13 SP1 (or higher) and the matching SIMOTION optional package on a separate engineering PC, or upgrade the existing PC. Keep a backup of the V11 project before the upgrade, because the V11-to-V13 conversion is one-way.
  2. Open the existing project in TIA Portal V13 SP1. The project converter will report that the HMI device is now a TIA Portal native device and may require a re-installation of the HMI image if the runtime version was V11 specific.
  3. After conversion, install or update the TP1200 Comfort image using ProSave to the matching TIA Portal V13 SP1 runtime. The recommended firmware for a Comfort panel running TIA V13 SP1 is V13.0.1.0 or later; for TIA V15.1 it is V15.1.0.0.

Step 2 — Insert the SIMOTION D410 into the TIA Portal project

  1. In the TIA Portal project tree, right-click the project node and select Insert new device -> SIMOTION -> SIMOTION D410.
  2. Select the correct device version (e.g. 6AU1410-xAAxx-xAA0 for D410 PN, or 6AU1410-xABxx-xAA0 for D410 DP). The article number and MLFB must match the hardware label on the D410 module.
  3. Configure the PROFINET interface of the D410 with the same IP address and device name as used in the SCOUT project. The TIA Portal device configuration is independent of the SCOUT configuration; the runtime configuration is loaded by SCOUT, so the TIA Portal entry is only for the HMI subscription.

Step 3 — Enable TO alarms on the HMI

  1. Select the TP1200 Comfort device in the project tree.
  2. Open Runtime settings -> Alarms.
  3. Tick the checkbox Activate TO alarms (or, depending on the TIA Portal version, the equivalent option Subscribe to technological alarms of SIMOTION objects).
  4. Assign a non-zero alarm number range for TO alarms. The default range is typically 2-3, recommended 100-199 to avoid clashes with the S7 PLC alarm range.

Step 4 — Configure the alarm view

  1. Add an Alarm view control to the HMI screen.
  2. In the properties of the alarm view, set the alarm source to SIMOTION alarms in addition to the default HMI alarms. The control will now display two distinct lines per incoming alarm: one for the S7 PLC alarm and one for the SIMOTION TO alarm, both timestamped at the panel.
  3. Optionally, configure the alarm class (Errors, Warnings, Information) and the acknowledge strategy. SIMOTION TO alarms are typically mapped to the Errors class and require a Quit bit from the HMI that the panel writes back to the SIMOTION acknowledgment interface.

After loading the project to both the TP1200 and the D410, trigger a test alarm by commanding an axis error (e.g. over-acceleration limit) in SCOUT. The TO alarm should appear in the HMI alarm view within one communication cycle, typically 100-500 ms over PROFINET, and the corresponding alarm number will be displayed in the alarm text.

Solution Method 2 — Reading Alarm Numbers via TechnologicalFaultTask TaskStartInfo

When the HMI cannot subscribe directly to the SIMOTION alarms (for instance, because the project is on TIA Portal V11, or because the panel is a WinCC Flexible 2008 SP3 project without a TIA Portal HMI), the alarm information can be extracted inside the SIMOTION user program and forwarded to the S7 PLC as ordinary process tags.

Background — TechnologicalFaultTask and TaskStartInfo

Every technology object (TO) on a SIMOTION controller is monitored by the runtime. When a TO detects a fault (axis stalled, encoder loss, position limit exceeded, drive follower error too large, etc.) it raises an alarm and starts the TechnologicalFaultTask if it has been configured in the execution system. The TechnologicalFaultTask is a task of priority class 8 in SIMOTION and runs in the servo cycle (typically 1 ms or 2 ms, depending on the configured servo cycle time).

The TaskStartInfo is a system-provided structure that the runtime populates with the following fields before starting the task:

Field Type Meaning
.Number UDInt Alarm number as defined in the SIMOTION alarm concept (e.g. 20005, 50203)
.AlarmClass UDInt Class of the alarm (NO_ALARM, WARNING, FAULT, INFORMATION, MESSAGE)
.TO_ID UDInt TO index of the object that raised the alarm (corresponds to TO number in SCOUT)
.Reaction UDInt Configured reaction (NONE, STOP, STOP_WITH_RAMP, REMOVE_ENABLE)
.AdditionalInfo_1 UDInt Additional alarm parameter 1 (alarm-specific meaning)
.AdditionalInfo_2 UDInt Additional alarm parameter 2 (alarm-specific meaning)
.AdditionalInfo_3 UDInt Additional alarm parameter 3 (alarm-specific meaning)
.AdditionalInfo_4 UDInt Additional alarm parameter 4 (alarm-specific meaning)

The full layout is documented in section 5.3.6 of the SIMOTION SCOUT Programming and Operating Manual (entry ID 109751274 on Siemens Industry Online Support).

Step-by-step — Capture TaskStartInfo in the SIMOTION program

  1. In SCOUT, open the execution system of the D410 and add a new TechnologicalFaultTask if it does not already exist. Assign the appropriate priority class (the default is 8). Set the task to Sequential execution, not Cyclic.
  2. Create a program of type ST (Structured Text) and assign it to the TechnologicalFaultTask. Name it, for example, ToAlarmHandler.
  3. Declare a global data block (DB) of type ToAlarmBuffer that will hold the most recent alarm. The minimum record is 8 UDInts. For multiple alarm sources, use a ring buffer of N records (typical N = 16).
  4. Implement the handler program as follows. The code is intentionally compact and can be pasted into SCOUT:
PROGRAM ToAlarmHandler
// Called on every TechnologicalFaultTask start
VAR_TEMP
    tsi : _TASK_START_INFO;        // Provided by the runtime
    idx : UINT;                    // Buffer index
END_VAR

// Snapshot the system-provided TaskStartInfo into the global buffer
tsi := _taskstartinfo;             // SIMOTION intrinsic, populated at task start

// Determine the next free buffer slot (ring buffer of 16 records)
g_toAlarmBuffer.writeIndex := (g_toAlarmBuffer.writeIndex + 1) MOD 16;
idx := g_toAlarmBuffer.writeIndex;

g_toAlarmBuffer.records[idx].Number           := tsi.Number;
g_toAlarmBuffer.records[idx].AlarmClass       := tsi.AlarmClass;
g_toAlarmBuffer.records[idx].TO_ID            := tsi.TO_ID;
g_toAlarmBuffer.records[idx].Reaction         := tsi.Reaction;
g_toAlarmBuffer.records[idx].AdditionalInfo_1 := tsi.AdditionalInfo_1;
g_toAlarmBuffer.records[idx].AdditionalInfo_2 := tsi.AdditionalInfo_2;
g_toAlarmBuffer.records[idx].AdditionalInfo_3 := tsi.AdditionalInfo_3;
g_toAlarmBuffer.records[idx].AdditionalInfo_4 := tsi.AdditionalInfo_4;

// Bump the rolling sequence counter for the PLC handshake
g_toAlarmBuffer.sequence := g_toAlarmBuffer.sequence + 1;

END_PROGRAM

Step 3 — Map the buffer to the S7 PLC

  1. Export the global DB g_toAlarmBuffer as a symbolic data source in SCOUT (right-click the DB -> Export to OPC XML-DA or simply Copy as symbolic address).
  2. In the SIMATIC Manager, open the S7 PLC and create tags that map to the same memory area. With PROFINET, the SIMOTION device is a PN IO device to the S7 PLC and exposes its I/O slots. With PROFIBUS, the slot-based I/O mapping of the D410 is used. In both cases, configure a PZD slot that contains the contents of the buffer (typically 16 records * 32 bytes = 512 bytes of process data, sent on each PROFIBUS/PROFINET cycle).
  3. Alternatively, use the SIMOTION PUT/GET services over S7 communication: on the S7 side, configure a PUT block (FB15) that periodically writes the buffer from a passive S7 DB into the SIMOTION area, and a GET block (FB14) that reads the current buffer back. The cycle time is configurable; typical values are 100-500 ms.
  4. On the S7 PLC side, copy the alarm number into a tag in the S7 DB and connect that tag to the HMI. The HMI alarm view is configured to display the alarm text corresponding to the alarm number; the alarm text list is exported from SCOUT and imported into the HMI as a text library (CSV file with alarm_number;alarm_text format).

Step 4 — Acknowledge the alarm from the HMI

  1. Add a writeable tag on the HMI (e.g. PLC_QuitToAlarm) and bind it to a button in the HMI alarm view's Acknowledge event.
  2. On the S7 side, write the tag value to a SIMOTION process tag g_toAlarmQuit.
  3. In the SIMOTION user program, call the system function _alarmAcknowledge(toId := g_toAlarmBuffer.records[idx].TO_ID) when the sequence counter changes. This sends an acknowledgment to the technology object, and the alarm is cleared from the buffer.

Solution Method 3 — WinCC Flexible / WinCC (TIA) Built-in TO Alarm Subscription

If the HMI is a WinCC Flexible 2008 SP3 panel (or a WinCC V7.x SCADA) and the engineering tool is not the TIA Portal, the panel can subscribe to SIMOTION alarms directly through the WinCC Flexible configuration, provided that:

  1. The connection from the panel to the SIMOTION device is configured as SIMOTION (not S7). In WinCC Flexible, this is set in the connection editor under Communication driver -> SIMOTION.
  2. The SIMOTION symbolic interface is enabled on the D410. In SCOUT, this is done by selecting the D410 and toggling Symbolic access in the properties dialog.
  3. The alarm source is configured on the panel side under Alarms -> Settings -> SIMOTION alarms, with the Active flag set.

Once configured, the panel polls the SIMOTION device for active alarms at the configured polling rate (typical 250-1000 ms), and the alarms are shown in the alarm view. The same approach works for WinCC V7.x SCADA stations connecting to a SIMOTION OPC XML-DA server that is enabled on the D410 (the OPC server runs by default on port 80 of the D410 and serves the active alarm list).

Solution Method 4 — Use the SIMOTION MessageHandling Application

Siemens ships a sample application called MessageHandling on the SCOUT Update & Automation (U&A) CD. The application implements a complete alarm buffer, alarm text resolution, and a user-defined alarm queue. To use it:

  1. Open SCOUT and select Options -> Open sample project (or open the supplied project from the U&A CD directly).
  2. Copy the MessageHandling library into the D410 project via the project navigator (right-click Libraries -> Insert library).
  3. Configure the alarm destination: the library can write to a SIMOTION DB, to the HMI tag list, or to an OPC server. The configuration is done in the ConfigData DB of the library.
  4. Load the project and observe the alarm handling in the SCOUT online view.

This approach is the most code-light, but it ties the project to a specific SCOUT version and is not recommended for new developments in TIA Portal V13 or later.

Configuration Parameters Reference

Parameter Location Default Recommended
Servo cycle time D410 -> Execution system 2 ms 1 ms for high-dynamic axes; 2 ms for general purpose
TechnologicalFaultTask priority Execution system 8 8 (do not change without Siemens approval)
TO alarm range HMI Runtime settings -> Alarms 2-3 100-199
PUT/GET cycle S7 PLC -> FB15/FB14 100 ms 100-250 ms
PROFINET update time Device configuration of D410 1 ms 1-2 ms
Symbolic access D410 properties Off On (required for HMI and OPC access)
OPC XML-DA server D410 web server Disabled Enabled on a non-standard port if exposed to plant network

Verification Procedure

After implementing any of the solutions above, run the following verification sequence:

  1. Compile and load. Compile the SCOUT project, the S7 PLC project, and the HMI project. Load all three devices and check for compile or load errors. A common failure is a missing optional package on the engineering PC; the error message in TIA Portal is "Device of type SIMOTION D410 is not supported by the current TIA Portal version".
  2. Establish online connection. In TIA Portal, go online to the D410. The online view should show the technology objects and the current operating state. If the online connection fails, the most common cause is a wrong PROFINET device name; assign the device name with TIA Portal's Assign PROFINET device name function.
  3. Force a known alarm. In SCOUT, force a TO error by setting the axis to Hold axis and then issuing a command that violates the software limit switch. The expected alarm number, for example 20102 — Software limit switch minus approached, should appear in the SCOUT Alarm history within 1 second.
  4. Verify on the HMI. Switch to the alarm view on the TP1200 Comfort. The alarm should be visible, with the correct text and timestamp, and the alarm class should be Error (red).
  5. Verify on the PLC. In the S7 PLC, monitor the DB that holds the alarm number. After the alarm is forced in step 3, the tag should change to 20102 within one PUT/GET cycle (100-250 ms).
  6. Acknowledge and clear. Press the Acknowledge button on the HMI. The alarm should disappear from the HMI alarm view, the S7 PLC tag should be reset to 0, and the SCOUT Alarm history should show the alarm as acknowledged.

Troubleshooting Matrix

Symptom Likely Cause Resolution
TO alarms checkbox is missing in HMI runtime settings TIA Portal V11, or no SIMOTION device in the project Upgrade to TIA Portal V13 SP1, install the SIMOTION optional package, and insert the D410 into the project
HMI shows S7 alarms but not SIMOTION alarms TO alarms checkbox is enabled, but the D410 symbolic access is off Enable symbolic access on the D410 in SCOUT, reload the project
TIA Portal reports "SIMOTION D410 not supported" SIMOTION optional package not installed or wrong version Install the optional package that matches the TIA Portal version, restart TIA Portal
Alarm number 0 in the S7 PLC after forced alarm TaskStartInfo not captured (TechnologicalFaultTask not configured) Add TechnologicalFaultTask in SCOUT execution system and assign the handler program
Alarm appears in SCOUT but not on the HMI PROFINET connection is up but the symbolic interface is filtered by a firewall Open UDP port 34964 (PN DCP) and TCP ports 102, 443 between the panel and the D410
Alarm text shows as alarm number only (e.g. "20102") Alarm text list not imported into the HMI Export the alarm text list from SCOUT and import it into the HMI text library
Acknowledge from the HMI does not clear the alarm SIMOTION acknowledgment not connected to the alarm source Wire the PLC acknowledge bit to the _alarmAcknowledge system function in SIMOTION
TP1200 Comfort firmware mismatch error on load Panel image older than the project requires Update the panel image with ProSave to the matching TIA Portal V13 SP1 / V15.1 runtime
Variable values from D410 are not visible in the HMI SIMATIC Manager project and TIA Portal project are not integrated Integrate the SCOUT project into the STEP 7 / TIA Portal master project via Options -> Manage SIMOTION projects
Multiple alarms overwrite each other in the S7 buffer Ring buffer too small or index never advanced Increase ring buffer size to at least 16 records, ensure write index increments on every task start

Safety and Operational Considerations

Warning — Do not route safety alarms through the HMI. The TO alarms described in this article are diagnostic alarms. Safety-relevant stop categories (STO, SS1, SS2, SLS) are handled by the integrated safety functions of the D410 (SINAMICS Safety Integrated) and must be wired directly to the safety relay or safety PLC through the dedicated PROFIsafe slot. The HMI is not a safety operator interface under any standard (IEC 61508, ISO 13849-1). Any diagnostic information displayed on the HMI is for operator information only.
Caution — Symbolic access on a D410 exposes the full TO interface to the network. When symbolic access is enabled, any HMI or OPC client that can reach the D410 over PROFINET can read the entire technology object data set, including the actual position, velocity, and torque. If the D410 is on a control network that is not physically isolated from the office or external network, place the D410 behind a managed switch with ACL rules, and disable the OPC XML-DA server if it is not required.

Engineers should also be aware that the TechnologicalFaultTask runs in the servo cycle, so any code in the handler must complete within the servo cycle time. If the handler contains heavy logic (e.g. alarm text resolution from a lookup table), move that logic to a background task and only record the alarm number in the TechnologicalFaultTask.

FAQ

Why does the TO alarms checkbox not appear in TIA Portal V11 for a TP1200 Comfort project?

The TO alarms runtime option for SIMOTION was introduced in TIA Portal V13 with the SIMOTION optional package. In TIA Portal V11 and V12, the panel cannot subscribe to SIMOTION technological alarms because the integration of SIMOTION devices into the TIA Portal project tree was not delivered. Upgrade to TIA Portal V13 SP1 (or later) and install the matching SIMOTION optional package to make the checkbox visible.

Can a SIMOTION D410 alarm be read directly into a third-party S7 PLC without TIA Portal V13?

Yes. Capture the alarm number inside the SIMOTION user program by reading the intrinsic _taskstartinfo structure at the start of a TechnologicalFaultTask (priority 8). Store the alarm number in a SIMOTION global DB, then map the DB to PROFINET/PROFIBUS process data or use the S7 PUT/GET services (FB15/FB14) to copy the value into the S7 PLC. The typical cycle is 100-250 ms, and the alarm number (UDInt) is sufficient to drive an HMI text list lookup on the S7 side.

Which TIA Portal version is the minimum to display SIMOTION D410 alarms on a TP1200 Comfort panel?

TIA Portal V13 SP1 with the SIMOTION optional package installed, combined with a TP1200 Comfort runtime image of V13.0.1.0 or later. Newer projects should use TIA Portal V15.1, V16, or V17 with the corresponding SIMOTION optional package, and the panel image should be updated to the matching runtime version. Mixing the engineering version and the runtime version causes a load error of type "Configuration does not match the device firmware".

What is the difference between a TO alarm and an S7 diagnostic alarm on a D410?

A TO alarm originates in the SIMOTION technology object layer (axis, encoder, cam, formula object) and is reported with a SIMOTION-specific alarm number and an alarm class (NO_ALARM, WARNING, FAULT, INFORMATION, MESSAGE). An S7 diagnostic alarm originates in the SIMOTION firmware (similar to an S7 CPU diagnostic buffer entry) and uses the standard S7 diagnostic alarm numbering. For motion faults, the TO alarm is the relevant one; for PROFIBUS/PROFINET diagnostic events, the S7 diagnostic alarm is the relevant one. Both can be displayed simultaneously on the HMI alarm view if both subscriptions are configured.

How many TO alarms can the SIMOTION D410 hold in the alarm buffer?

The SIMOTION D410 maintains an active alarm list of up to 512 entries per technology object group, and a historical alarm list of 512 entries in non-volatile storage. The runtime exposes the active list through the symbolic interface and through the OPC XML-DA server. The local SCOUT view (Target system -> Alarm history) shows both the active and the historical list. The size of the user-defined ring buffer in the S7 PLC should be at least 16 records to absorb network jitter, and up to 64 records if the PLC scan time is above 250 ms.

Back to blog