Resolving SINA_POS "Invalid Data Type" Error in TIA Portal V14 with SINAMICS S110 over PROFINET
The SINA_POS function block shipped with the Siemens DriveLib library is the standard programming interface for commanding positioning moves on the SINAMICS S110 basic positioning drive over PROFINET. When porting a project that was originally built against TIA Portal V13 SP1 or V13 SP2 into a V14 environment, many integrators encounter an "invalid data type" compilation error on the SINA_POS instance data block or on the input connector at the setpoint slot. This article documents the root cause, the two official Siemens workarounds, the underlying HW_IO mechanism, and a full commissioning verification procedure.
1. Problem Description
During compilation or online download of an S7-1200/S7-1500 program that contains an instance of the SINA_POS function block, the TIA Portal V14 compiler reports a type-mismatch error similar to the following:
[Error] Block "DB_SinaPos" instance generation failed.
[Error] Input "HWIDSetpointSlot": Type "HW_IO" expected, "WORD" supplied.
[Error] Block compilation aborted: 1 error(s), 0 warning(s).
The error is raised by the TIA Portal PLC code generator when the symbolic I/O address of the SINAMICS drive's setpoint slot is wired to a plain WORD or INT tag rather than to a variable declared with the system type HW_IO (hardware identifier). The block signature shipped with the DriveLib V14 FB requires a hardware identifier at input HWIDSetpointSlot. Older V13 SP2 projects typically passed a plain INT tag, which was accepted by the V13 SP2 FB signature but is no longer type-compatible with V14.
1.1 Symptoms Observed in the Field
- Project compiles cleanly under TIA Portal V13 SP2 / V13 SP1 but fails immediately under V14.
- PLC goes to STOP with diagnostic buffer entry referencing
SINA_POSinstance DB. - Error reappears after every
Compile > Software (rebuild all blocks). - Updating only the firmware of the S7-1200/S7-1500 CPU does not clear the error.
2. Root Cause Analysis
The SINA_POS function block is delivered as part of the DriveLib package and is regenerated on import to match the active TIA Portal version. Between V13 SP2 and V14, Siemens tightened the type checking on hardware identifiers used for direct I/O access. Concretely:
-
V13 SP2 signature:
HWIDSetpointSlot : WORD -
V14 signature:
HWIDSetpointSlot : HW_IO
The V14 compiler rejects a value of type WORD at an input declared HW_IO. Because the block instance is regenerated each time the project is upgraded, simply re-importing the V13 SP2 FB into a V14 project will not fix the project – the regenerated block adopts the new signature, and the existing instance data block then mismatches the FB signature at compile time.
Two equivalent solutions are officially supported:
-
Workaround A (project-level): Replace the
WORD/INTtag wired toHWIDSetpointSlotwith a variable explicitly typedHW_IO, sourced from the device configuration's hardware identifier of the SINAMICS S110 setpoint telegram slot. - Workaround B (library-level): Download the latest DriveLib package from the Siemens Industry Online Support portal and replace the locally installed library; then recompile.
3. SINAMICS S110 PROFINET Integration Requirements
The SINAMICS S110 is a single-axis servo drive with built-in basic positioning functionality (EPos). Over PROFINET it exposes its setpoint and actual-value interfaces through telegram slots configured in the device view of TIA Portal. The S110 PROFINET control unit (CU305 PN, FW ≥ 4.4 for full EPos basic) supports the standard PROFIdrive telegram types listed in the table below.
| Telegram | Name | Setpoint Words (PZD) | Actual Value Words (PZD) | Use Case |
|---|---|---|---|---|
| 1 | Speed setpoint, 16-bit | 1 | 1 | Legacy speed control |
| 2 | Speed setpoint, 32-bit | 2 | 2 | Speed control w/ torque limit |
| 3 | Speed setpoint 32-bit + 2 actual | 2 | 4 | Speed control w/ encoder feedback |
| 5 | Speed setpoint 32-bit + 1 actual | 2 | 2+1 | DSC (Dynamic Servo Control) |
| 7 | Positioning, standard | 5 | 5 | Basic positioning (EPos) |
| 9 | Positioning, extended | 10 | 10 | Extended positioning with 2 encoders |
| 110 | Positioning, Siemens-specific | 10 | 10 | Equivalent to telegram 9 with Siemens mapping |
| 999 | Free mapping | User-defined | User-defined | BICO interconnections |
For EPos operation with SINA_POS, the default telegram is 111 (Siemens-specific positioning) or telegram 7 (standard PROFIdrive positioning). The setpoint slot address that must be passed to HWIDSetpointSlot is the hardware identifier of this telegram slot as assigned by TIA Portal during device configuration.
3.1 Hardware Identifier (HWID) Explained
A hardware identifier is a 32-bit system tag, type HW_IO, generated by TIA Portal for every I/O submodule, telegram slot, or submodule head. It is the runtime address handed to the PROFINET stack when RDREC/WRREC or direct slot access is performed. SINA_POS uses the setpoint slot HWID to issue WRREC writes to the drive's acyclic parameter channel and direct slot reads for cyclic PZD exchange.
The HWID can be retrieved from the device configuration by selecting the telegram slot and reading the value from the System Constants / Constants tab, or by inspecting the generated PLC tags under PLC > PLC tags > Default tag table.
4. Pre-Upgrade Audit Checklist
Before applying either workaround, validate the following:
- Drive FW ≥ 4.4 SP3 on the CU305 PN (required for full EPos basic compatibility with DriveLib V14).
-
PROFINET device name assigned to the S110 (e.g.,
s110-axis1) and matching the topology. -
Telegram type in the device view matches the drive parameter
p0922(or in Starter/SIMOTION Scout, the configured telegram). - DriveLib package version is recorded (Help > Installed software > Add-ons).
- CPU firmware of the S7-1200/S7-1500 is compatible with TIA V14: S7-1200 ≥ FW 4.2; S7-1500 ≥ FW 2.0.
5. Workaround A — Create a Proper HW_IO Variable
This is the recommended, project-level fix because it works regardless of which DriveLib build is currently installed and avoids dependency on external updates.
5.1 Create the HW_IO Tag
- In the TIA Portal project tree, expand the S7-1200/S7-1500 PLC and open PLC tags > Default tag table.
- Add a new tag with the following properties:
Name: s110_SetpointSlot_HWID Data type: HW_IO (system type, type "HW Submodule ID") Address: (leave blank — HWID is assigned by the device config) - Right-click the tag and select "Set as PLC constant" if you want to hard-wire the value, or leave it as a tag if multiple axes are present.
5.2 Source the HWID from Device Configuration
- Open Devices & Networks and select the SINAMICS S110 PROFINET node.
- In the device view, click the telegram submodule slot (e.g., telegram 111 submodule).
- Open Properties > System constants (or in older TIA builds, Properties > General > Constants).
- Locate the constant named
HWIDSetpointSlotor similar; note the numeric value (e.g.,259). - Assign this value to the tag created in 5.1. Alternatively, drag-and-drop the constant directly onto the
SINA_POSinput — TIA Portal will auto-create anHW_IOtag in the process.
5.3 Wire the Tag to SINA_POS
Open the SINA_POS instance DB or the FB call in your program. Replace the existing tag at input HWIDSetpointSlot with the new s110_SetpointSlot_HWID tag:
// Before (fails under V14):
"DB_SinaPos".HWIDSetpointSlot := 258; // plain INT literal — invalid
// After (compiles cleanly):
"DB_SinaPos".HWIDSetpointSlot := "s110_SetpointSlot_HWID"; // HW_IO
5.4 Recompile and Download
- Right-click the S7 program > Compile > Software (rebuild all blocks).
- Confirm that no errors reference the
HWIDSetpointSlotinput. - Download to the CPU; the CPU should leave STOP mode without the type-mismatch diagnostic.
6. Workaround B — Update the DriveLib Package
If multiple projects in a fleet exhibit the same fault, the cleaner remedy is to upgrade the DriveLib package installed in TIA Portal. The latest DriveLib V14 SP1 package contains the corrected SINA_POS FB with full V14 signature compliance and additional diagnostic outputs.
6.1 Download and Install
- Open the Siemens Industry Online Support portal and search for "DriveLib" entry ID 109475044. This is the canonical KB article for the DriveLib positioning blocks and lists every compatible TIA Portal version.
- Download the DriveLib V14 SP1 (or later) self-installing package.
- Close TIA Portal completely (no hidden instances).
- Run the installer as Administrator; restart the PC when prompted.
- Re-open TIA Portal and verify the new library appears under Libraries > Project library > Global libraries.
6.2 Update the Project
- In the project tree, open the global library containing the old
SINA_POS. - Right-click the block > Update.
- Choose "Replace all instances" so existing instance DBs are regenerated against the new signature.
- Compile the project; the type-mismatch error should disappear automatically.
7. SINA_POS Interface Reference (V14 Signature)
The input and output interface of the V14 SINA_POS FB (per Siemens manual section 5.1.5 of the DriveLib documentation) is summarized below.
7.1 Input Interface
| Signal | Type | Description |
|---|---|---|
EnableAxis |
BOOL | Master enable for axis motion. |
ExecuteMode |
INT | 0=Position relative, 1=Position absolute, 2=Setup/ jog, 3=Homing, … |
Position |
LREAL | Target position in user units (LU). |
Velocity |
LREAL | Traversing velocity in LU/min. |
Acceleration |
LREAL | Acceleration ramp in LU/s². |
Deceleration |
LREAL | Deceleration ramp in LU/s². |
Jerk |
LREAL | Jerk limit (S-ramp) in LU/s³. |
CancelTraversing |
BOOL | Abort active motion. |
IntermediateStop |
BOOL | Hold then resume. |
HWIDSetpointSlot |
HW_IO | Hardware ID of the SINAMICS telegram slot. |
HWIDParameterSlot |
HW_IO | HWID of the parameter access slot (often the same). |
AxisType |
INT | 0=Linear, 1=Modulo. |
7.2 Output Interface
| Signal | Type | Description |
|---|---|---|
AxisEnabled |
BOOL | Drive reports operational enable. |
AxisPosition |
LREAL | Current position feedback (LU). |
AxisVelocity |
LREAL | Current velocity feedback (LU/min). |
Error |
BOOL | TRUE if ErrorID ≠ 0. |
ErrorID |
WORD | DriveLib diagnostic word (see §10). |
Status |
DWORD | Bit-coded status word from SINAMICS ZSW1/ZSW2. |
Warn |
BOOL | DriveLib warning flag. |
8. Telegram Configuration Procedure (SINAMICS S110)
To ensure the telegram slot HWID is stable across recompiles, follow this procedure when first wiring the S110 to the project.
- In Devices & Networks, drag the SINAMICS S110 from the catalog (search "6SL3") onto the PROFINET network.
- Click the S110 node and switch to Device view.
- In the device catalog (right pane), navigate to PROFINET IO > Submodules and select Telegram 111 (or 7 for standard PROFIdrive).
- Insert the telegram submodule into the appropriate slot (typically slot 1).
- Verify the parameter list in the inspector matches the drive FW (use Compare values).
- Compile and download the device configuration. TIA Portal will now generate the HWID constants under PLC > PLC tags > System constants.
- Note the HWID; for example, on a typical configuration you may see:
s110_Telegram111_HWID HW_IO = 264
9. Verification and Commissioning
After applying either workaround, run this verification sequence to confirm correct operation:
-
Compile clean — no type errors referencing
SINA_POS. - Online > Go online with the CPU; verify connection is established and CPU is in RUN.
-
Monitor
AxisEnabled— should toggle TRUE when the drive returns ZSW1 bit 0 = "Ready to switch on". -
Run a homing sequence (
ExecuteMode= 3) and confirm the drive reaches the homing reference withoutErrorflagging. -
Execute a relative move (
ExecuteMode= 0) at low velocity (e.g., 1000 LU/min) and confirmAxisPositiontracks the commanded move. -
Trigger
CancelTraversingmid-motion and confirm the drive decelerates along the configured ramp. - Check the S110's STARTER / Web server diagnostic page — the cyclic PZD exchange should be active (p8812 = topology, no F08501 diagnostic).
F16xxx safety faults.10. Common SINA_POS Error Codes
The ErrorID word on the SINA_POS output returns DriveLib diagnostic values. Some frequently encountered codes:
| ErrorID (Hex) | Meaning | Remedy |
|---|---|---|
| 0x0000 | No error | — |
| 0x8001 | Invalid ExecuteMode
|
Verify mode value 0..6. |
| 0x8002 | HWIDSetpointSlot not configured | Recreate the HW_IO tag per §5. |
| 0x8003 | Drive not in EPos mode (r0108.4 = 0) | Activate basic positioner in Starter. |
| 0x8004 | Drive returns fault F08501 (PROFINET comm) | Check PROFINET cable and device name. |
| 0x8005 | Setpoint job rejected (ZSW1 bit 6 = 0) | Check ON/OFF1, OFF2, OFF3 commands. |
| 0x8006 | Following error | Increase p2544, reduce velocity. |
| 0x8007 | Encoder fault F3xxx | Check encoder wiring and parameter p0400. |
| 0x800A | Drive in commissioning mode (p0010 ≠ 0) | Exit commissioning with p0010 = 0. |
| 0x8010 | Torque limit exceeded | Verify p1520/p1521. |
11. Frequently Asked Questions
Why does SINA_POS fail to compile only after upgrading to TIA Portal V14?
The DriveLib SINA_POS block regenerated for V14 tightened the type of the HWIDSetpointSlot input from WORD to HW_IO. Older project tags are not auto-converted. Either replace the tag with one of system type HW_IO or install the latest DriveLib V14 package from Siemens Support entry 109475044.
Can I keep the old DriveLib V13 SP2 and continue using it in TIA Portal V14?
No. TIA Portal regenerates the block signature to match the active TIA version each time the library is opened. Downgrading the TIA Portal version or staying on V13 SP2 is the only way to avoid the signature change.
What telegram should I configure on the SINAMICS S110 for SINA_POS?
Use telegram 111 (Siemens-specific positioning, 10/10 PZD) for the most robust DriveLib compatibility, or telegram 7 (standard PROFIdrive positioning, 5/5 PZD) when interoperating with non-Siemens controllers. Both require EPos basic to be activated (r0108 bit 4 = 1).
Where do I find the HWID for the SINAMICS telegram slot?
Open the SINAMICS S110 device view in TIA Portal, click the telegram submodule, then look at Properties > System constants. The HWID is a numeric constant (e.g., 264) of system type HW_IO that can be dragged directly onto the SINA_POS input.
Does the S110 require a specific firmware for SINA_POS positioning?
Yes. Use SINAMICS S110 firmware 4.4 SP3 or later on the CU305 PN. Earlier firmware versions support EPos but may not include the parameter range or status bits assumed by DriveLib V14.
Can SINA_POS be used simultaneously with free telegrams (telegram 999)?
Yes, but the setpoint slot used by SINA_POS must remain on telegram 111 or 7. Telegram 999 (free BICO mapping) can be used in parallel for additional diagnostic data, but never as the setpoint slot for SINA_POS.
What is the difference between SINA_POS and SINA_SPEED?
SINA_POS is a positioning block requiring the EPos basic functionality of the SINAMICS S110. SINA_SPEED is a pure speed-control block and works with any SINAMICS family member including S110 without EPos activation. Choose SINA_POS when traversing axes between defined positions; choose SINA_SPEED for spindles or continuous speed-controlled drives.