Resolving SINA_SPEED Error 8600 and DIAGID 80B1 in TIA Portal V15

David Krause12 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

Problem Overview

The Siemens SINA_SPEED function block (FB 285 / SINA_SPEED, part of the SINAMICS blocks library) is the standard interface for cyclic speed control of SINAMICS drives (S120, G120, G130, G150, S210) from SIMATIC controllers (S7-1200, S7-1500, ET 200SP) over PROFINET / PROFIdrive. The block hides the underlying DPRD_DAT (read) and DPWR_DAT (write) record calls but inherits their parameter constraints.

When the drive telegram is configured as a free telegram instead of a standard telegram, the user must match the cyclic I/O length manually. A mismatch produces:

  • Error code #8600 on the SINA_SPEED output Error (WORD) and Status (WORD) with ErrorId / DIAGID indicating the internal DPRD_DAT call failed.
  • DIAGID 80B1 at parameter DIAGID (WORD), which decodes to "length error in record read" in the PROFIdrive diagnostic table.

This article documents the root cause, the exact diagnostic chain, the fix in TIA Portal V15, and how to verify the corrected configuration.

Affected Products and Versions

Component Version / Article Notes
SINAMICS blocks for TIA Portal V14, V15, V15.1, V16, V17 SINA_SPEED, SINA_POS, SINA_INFEED shipped with the library
TIA Portal engineering V15, V15.1 and higher V14 online help does not contain the SINA_XXXX block help; switch to V15+
SINA_SPEED FB FB 285 (renumbered across versions) Instance DB carries Error, Status, DIAGID
Drives SINAMICS S120, G120, G120C, G120P, G130, G150, S210 Any drive with PROFINET PROFIdrive profile and free telegram support
PLC S7-1200 / S7-1500 / ET 200SP CPU Must support PROFINET IRT or RT class 1+

Standard Telegram Assignments for SINA_XXXX Blocks

The SINAMICS blocks library assumes the following default cyclic telegrams unless explicitly overridden:

Function Block Default Telegram Direction Purpose
SINA_SPEED (FB 285) Telegram 1 (Standard Telegram 1, PZD-2/2) Speed setpoint / actual Cyclic speed control, 2 control words + 2 status words
SINA_POS Telegram 111 (SIEMENS Telegram 111, PZD-12/12) Positioning with EPOS Basic Positioner (EPOS) interface
SINA_INFEED Telegram 370 (SIEMENS Telegram 370, PZD-14/14) Infeed unit control Active Line Module (ALM) interface

If you configure the drive with a different (free) telegram and the controller is wired to that telegram via PROFINET, every cyclic word is still consumed - but the layout no longer matches the block's offsets. This alone does not trigger error 8600; the issue arises from the parameter RECORD length mismatch between PLC and drive.

Root Cause Analysis

Error code 8600 originates inside the DPRD_DAT (read record data) call that SINA_SPEED makes on each OB1 cycle to fetch the cyclic process data from the drive's PROFINET interface. The Siemens documentation states:

"The length of the specific target range at parameter RECORD is shorter than the configured user data length."

Two separate definitions of length must agree:

  1. PLC side: the byte length of the ANY pointer passed into RECORD at the DPRD_DAT call inside SINA_SPEED.
  2. Drive side: the configured cyclic I/O length (sum of all PZD words) of the telegram selected in the SINAMICS drive (e.g. p0922, p2071, p2079).

If the PLC side is shorter than the drive side, the read fails because the PROFIdrive stack cannot fit the incoming frame into the buffer. The block then sets:

  • Error = 1
  • Status = 8600 (decimal) = 0x2198
  • DIAGID = 80B1 hex = 32945 decimal

DIAGID 80B1 in the SINAMICS diagnostic mapping corresponds to length error in record read / parameter access. It indicates the record index or the record length passed by the PLC does not match the parameter access definition of the drive object.

Diagnostic Chain Inside SINA_SPEED

Internally SINA_SPEED performs, per call:

  1. Build the request RECORD ANY pointer at HWIDSTW / HWIDZSW offsets.
  2. Call DPRD_DAT(LADDR := HWID, RECORD := pInData, RET_VAL := tmpRet) to read the receive PZD area.
  3. Evaluate tmpRet and the BUSY / DONE outputs of DPRD_DAT.
  4. Map any non-zero RET_VAL to the block outputs Error, Status, and DIAGID.
  5. If tmpRet = W#16#8600, the drive rejects the record because the PLC buffer length (RECORD) is shorter than the configured telegram length (drive parameter p0922 / p2071).

The mapping inside SINA_SPEED for the most common failure modes is:

Status (hex) Status (dec) DIAGID Meaning Likely Cause
0x7000 28672 0000 No job active Normal idle
0x7001 28673 0000 First call, job running Normal in-flight read
0x7002 28674 0000 Subsequent call, job running Normal in-flight read
0x0000 0 0000 Job completed without error Normal
0x8600 34304 80B1 DPRD_DAT length error RECORD too short / telegram mismatch (this article)
0x8601 34305 80B0 / 80FF Drive reports WARN / FAULT in ZSW1 Drive-side fault, check r2139, r2135
0x8090 32912 0000 No module / wrong HWID PROFINET device not configured or HWID wrong
Note: exact Status / DIAGID codes vary between SINAMICS blocks V14 and V15+. Always cross-check the active library version's help file (*.alhlp) for the precise mapping shipped with your TIA Portal installation.

Prerequisites Before Troubleshooting

  1. TIA Portal V15, V15.1, V16, or V17 installed. (V14 ships without the integrated SINA_XXXX block online help; the library must be opened from the standalone PDF.)
  2. Siemens SINAMICS blocks library V15 or later installed (e.g. SINAMICS_Blocks_V15.zip).
  3. Access to the SINAMICS drive commissioning tool: SINAMICS S120 Commissioning Manual (109475044) or STARTER / Startdrive for G120.
  4. The PROFINET device name and IP address of the drive.
  5. The current p0922 value of the drive (telegram selection) and the configured PZD layout (p2051 / p2061).

Step-by-Step Resolution

Step 1 - Confirm the error and capture DIAGID

Online, with the PLC in RUN, open the SINA_SPEED instance DB and force a monitor to the following tags:

"iDB".Error      // BOOL  -> must be TRUE
"iDB".Status     // WORD  -> must show 8600 (decimal) / 0x2198
"iDB".DIAGID     // WORD  -> must show 80B1 (hex) / 32945 (decimal)
"iDB".AxisEnabled // BOOL  -> usually FALSE
"iDB".ActVelocity // REAL  -> stays at 0.0

Capture a screenshot of the instance DB. The DIAGID value is the authoritative diagnostic; Status alone is ambiguous because the same decimal value can appear in different SINA_XXXX blocks for different reasons.

Step 2 - Verify the PROFINET telegram on the drive side

In the SINAMICS drive (S120, G120, etc.) check:

p0922 = 999  // free telegram configured (not 1)
// OR
p0922 = 1    // standard telegram 1 - this is what SINA_SPEED expects

Record all PZD assignments:

p2051[0..15]  // transmit (drive -> PLC) PZD word mapping
p2061[0..15]  // receive (PLC -> drive) PZD word mapping

Count the total number of active words. Example for a 6-word free telegram (12 bytes):

Word p2051 (Tx) p2061 (Rx)
0 r2089[0] - ZSW1 p2089[0] - STW1
1 r2089[1] - NIST_A p2089[1] - NSOLL_A
2 r2089[2] - ZSW2 p2089[2] - STW2
3 r2089[3] - actual torque p2089[3] - torque limit
4 r2089[4] - fault code p2089[4] - reserved
5 r2089[5] - reserved p2089[5] - reserved

Total receive length = 6 words = 12 bytes. Total transmit length = 6 words = 12 bytes.

Step 3 - Verify the PROFINET telegram on the PLC side

In TIA Portal, open Devices & Networks, select the drive's PROFINET interface, and inspect the Device configuration > Module parameters > Telegram configuration. The PROFINET slot must show:

  • Same number of input PZD words as the drive's p0922 / p2051 configuration.
  • Same number of output PZD words as p2061.

If the slot shows "Standard telegram 1" but the drive is set to "free telegram 999", the PROFINET stack on the drive will still try to send/receive the p0922 layout, and the PLC will read into a buffer sized for telegram 1 (4 words = 8 bytes). The PLC buffer is too short for the drive's real layout - this triggers exactly the 8600 / 80B1 combination.

Step 4 - Adjust either the PLC telegram or the drive telegram so both agree

Choose one of two paths:

Path A - Use the standard telegram (recommended for SINA_SPEED):

  1. On the drive, set p0922 = 1 and copy/activate factory defaults (p0010 = 30, p970 = 1).
  2. In TIA Portal, change the drive device configuration so the slot uses Standard telegram 1 (PZD-2/2). The IO length becomes 4 words each direction.
  3. Recompile and download the project. The SINA_SPEED defaults (4-word layout) now match.

Path B - Keep the free telegram and tell SINA_SPEED the exact length:

  1. Keep p0922 = 999 on the drive.
  2. In TIA Portal, configure the drive slot with the matching free telegram layout (same word count as the drive).
  3. In the SINA_SPEED call, ensure the input ConfigAxis and the data block layout match. SINA_SPEED does not automatically detect the telegram length; it uses the ANY pointer generated at compile time from the PROFINET slot assignment. Therefore the slot length must be identical to the drive-side p0922 layout.
  4. Recompile, download, monitor DIAGID - it should now show 0000.
Critical: SINA_SPEED assumes the first two words are STW1/STW2 (Rx) and ZSW1/ZSW2 (Tx). If your free telegram reorders or removes these signals, the drive will not enable even though the error code disappears. Always keep word 0 and word 1 mapped to control/status word 1 for SINA_SPEED to function.

Step 5 - Recompile and download

  1. In TIA Portal, mark the PLC and choose Compile > Hardware (rebuild all).
  2. Download the hardware configuration to the PLC.
  3. Download the program blocks (or do a full download).
  4. Cold restart the drive if you changed p0922 (p0009 = 0; p0976 = 1).

Step 6 - Verify the fix

Online, with the PLC in RUN and the drive in cyclic communication:

  1. Confirm iDB.Error = FALSE.
  2. Confirm iDB.Status = 0000 or 7000 (idle).
  3. Confirm iDB.DIAGID = 0000.
  4. Confirm iDB.ActVelocity tracks the drive's actual speed (read via STARTER / Startdrive r0063).
  5. Toggle iDB.EnableAxis = TRUE (or iDB.Enable depending on block version). Drive should run to iDB.SetVelocity.

Manual Locations for SINA_XXXX Help

Common Pitfalls When Migrating From V14 to V15

Pitfall Symptom Fix
V14 project upgraded to V15 without reinstalling the library Block help missing, DIAGID unknown Install SINAMICS_Blocks_V15.zip from Siemens support
Drive uses telegram 1, PLC slot uses free telegram 8600 / 80B1 at first cycle Align both sides to telegram 1 or both to the same free layout
Drive I/O configured in slot 0 of the PROFINET device instead of the dedicated telegram slot DPRD_DAT reports 8090 (no module) Drag the correct telegram submodule into the slot
p0922 set to 999 but p2051 / p2061 not populated PROFINET startup, but 8600 persists Populate p2051[0..n] and p2061[0..n] before save/restore
Two SINA_SPEED blocks pointed at the same HWID Intermittent 8600 / 80FF Use distinct HWIDs per drive, or use SINA_SPEED multi-instance with separate IO

Extended Diagnostics: Reading Drive-Side Faults

Once error 8600 is cleared, monitor the drive's own fault buffer to ensure no PROFIdrive fault is being silently masked:

r2139.0..15   // current fault code, decimal
r2135.0..15    // last fault code, decimal
r9747.0..15    // PROFIdrive fault code (from telegram)
F30001, F08501 // typical drive-side faults to clear before retry

Clear faults with p3981 = 1 (acknowledge all) and p0952 = 0 after the cause is removed.

Formula: Telegram Length Check

Use this sanity check whenever a free telegram is involved:

RECORD_len_PLC  = N_in * 2          // bytes, N_in = input PZD word count
RECORD_len_drive = N_p2051 * 2       // bytes, N_p2051 = number of populated p2051 entries
DIAGID 80B1  iff  RECORD_len_PLC  <  RECORD_len_drive

Example: drive has 6 words populated in p2051 (12 bytes). PLC slot shows 4 input words (8 bytes). 8 < 12, so 80B1 will fire on the very first read.

When SINA_SPEED Still Returns 8600 After the Fix

  1. Confirm the GSD file version matches the drive firmware. Older GSD versions may report a default telegram of 0 words for "free telegram".
  2. Confirm the PROFINET topology is RT class 1+ or IRT, not RT class UDP. PROFIdrive telegrams require RT.
  3. Check that the IO controller slot for the drive is enabled (slot 0 submodule inserted).
  4. Force a cold restart of the drive after any p0922 change so PROFINET re-negotiates the AR.
  5. Watch iDB.Status for one full second - SINA_SPEED only updates DIAGID on the cycle where the error is raised. If the drive recovers mid-run, you may catch a stale 80B1.

What does DIAGID 80B1 mean inside SINA_SPEED?

DIAGID 80B1 (hex) is the SINAMICS blocks library code for "length error in record read". It indicates that the DPRD_DAT call inside SINA_SPEED failed because the buffer pointed to by RECORD is shorter than the cyclic I/O length configured on the drive side. It is almost always raised together with Status = 8600 decimal.

Why does SINA_SPEED default to telegram 1 if I configured a free telegram?

SINA_SPEED assumes the drive uses the standard telegram 1 (PZD-2/2, 4 words each direction). It does not auto-detect the telegram type; it relies on the PROFINET slot configuration in TIA Portal matching the drive's p0922 setting. If the drive uses a free telegram (p0922 = 999), the PLC slot must be configured with the same word count, or DPRD_DAT will return 8600 with DIAGID 80B1.

Can I use SINA_SPEED with SINA_POS on the same drive at the same time?

No. SINA_SPEED expects telegram 1, SINA_POS expects telegram 111, and SINA_INFEED expects telegram 370. A single SINAMICS drive object can only be operated with one telegram at a time. For combined speed and position control, use a free telegram that contains the union of PZD words, and use a single SINA_SPEED call - then handle the positioner logic in the PLC manually, or switch to a higher-level block such as LAcycCom from the Easy Motion Control library.

Where do I find the SINA_XXXX manual for TIA Portal V15?

The canonical reference is the SINAMICS S120 Commissioning Manual (Entry ID 109475044). The V15 library itself ships with the function manual at Entry ID 109762715. V14 does not include the integrated SINA_XXXX online help - that was added in V15 and later.

How do I clear error 8600 without restarting the drive?

You cannot reliably clear 8600 in software alone; it is a structural mismatch between PLC and drive. First align the telegrams (drive p0922 to PLC slot, or vice versa), recompile and download the TIA Portal project to the PLC, then acknowledge any drive faults with p3981 = 1 or via the SINA_SPEED AckError input. After the next OB1 cycle, iDB.Error must read FALSE and iDB.DIAGID must read 0000.

Back to blog