Overview of the SINA_SPEED and G120C Integration
The SINA_SPEED function block (FB 285) is the standard Siemens library block used to operate a SINAMICS G drive as a speed or positioning axis from a SIMATIC S7-1200 or S7-1500 controller. The block packages the cyclic PROFIdrive telegram exchange (control word STW1, status word ZSW1, speed setpoint NSOLL, actual speed NIST) and exposes a compact set of Boolean and REAL I/O to the user program. The block has companion variants such as SINA_SPEED_FREETEL for free-telegram configuration, but SINA_SPEED itself is intended for fixed, Siemens-defined telegrams such as Telegram 1 (standard) or Telegram 20 (Siemens-specific speed control). Detailed application documentation is available from Siemens Support entry 109485727.
On the drive side, the SINAMICS G120C with PROFINET is controlled by a CU240E-2 PN or CU240E-2 PN-F Control Unit. A typical example is the 6SL3210-1KE15-8UF2, which ships with the safety-capable PN-F variant of the G120C. The "U" segment in the part number designates the safety firmware option, and "F2" designates the PROFINET-based safety variant. Because the drive includes safety firmware, it is subject to the SINAMICS safety commissioning and re-check rules, which directly affect what status the SINA_SPEED block observes at runtime.
The SINA_SPEED block communicates with the drive over PROFINET IO using the standard data record (DPR/DPRW) services defined in PROFINET IO. The block reads the status word and the actual speed and writes the control word and the speed setpoint at the cyclic update rate of the IO device. Two input parameters tell the block which PROFINET subslots to address: HWIDSTW (hardware identifier of the setpoint word subslot) and HWIDZSW (hardware identifier of the actual value word subslot). If those hardware identifiers are wrong, point to a different telegram instance, or are stale, the block returns data record errors that show up as 0x80xx status codes.
System Components and Configuration
A typical installation for the symptom described in this article has the following pieces:
- SINAMICS G120C, MLFB
6SL3210-1KE15-8UF2(CU240E-2 PN-F Control Unit). - SIMATIC S7-1200 (or S7-1500) controller running TIA Portal V15.1.
- SINA_SPEED block from the DriveLib / LDrvSina library (FB 285) or SINA_SPEED_FREETEL for free telegrams.
- PROFINET connection between controller and drive.
- STARTER or Startdrive commissioning tool, used previously and used again to recover safety.
The PROFINET connection is built in the TIA Portal device view by inserting the G120C, assigning it to the PROFINET subnet, and configuring the IO cycle time. The default Telegram 1 is usually pre-selected. The PLC scans the drive as an IO device and exposes the STW1/ZSW1/NSOLL/NIST data as IO tags. The same tags are then passed to the SINA_SPEED block through the HWIDSTW and HWIDZSW inputs.
Problem Description: SINA_SPEED Status 8090, 8091, 80A1, 80B1
On a G120C that previously ran SINA_SPEED without issue, the following symptoms appear after the drive has been touched by STARTER (or Startdrive) or after the drive has gone into safety commissioning mode:
- The
Statusoutput of the SINA_SPEED block is non-zero. Typical values reported are16#8090,16#8091,16#80A1, and16#80B1. With Telegram 1 specifically, the user has also observed16#8601in combination with16#80A1. - The
AxisReadyoutput is FALSE and theAxisFaultoutput may also be FALSE, because the block has not yet established a clean cyclic relationship with the drive. - The
ActSpeedoutput stays at zero regardless of the setpoint applied to the block. - No active SINAMICS fault is present on the drive (the fault buffer does not show a new entry from this condition).
- The PLC to drive PROFINET link is up (no PROFINET diagnostics, no controller fault, no port error).
The visible effect at the user program level is that the SINA_SPEED block refuses to release the axis. EnableAxis and EnableSpeed are set TRUE, but the block does not transition to a "drive ready" state.
Root Cause: Three Overlapping Failure Modes
The 0x80xx status codes are SINA_SPEED status words, not raw SINAMICS fault codes. They describe the state of the block's handshake with the drive. The codes seen here fall into three distinct failure families, and the root cause in a typical G120C installation is a combination of two of them.
Family 1: Telegram not yet active (8090, 8091)
Status 16#8090 and 16#8091 indicate that the SINA_SPEED block has not yet received a valid first response from the drive. Common reasons include:
- The drive is in commissioning mode (not in RUN/OFF state).
- The telegram configured on the drive (p0922 / p2079) does not match the telegram configured in the TIA Portal device view.
- The HWIDSTW or HWIDZSW on the block points to a different telegram instance than the one currently used by PROFINET.
If the drive was previously working, the most likely cause is a Telegram or HWID mismatch introduced by a STARTER / Startdrive download.
Family 2: Drive in commissioning (80A1, 80B1)
Status 16#80A1 and 16#80B1 mean that the drive is in quick commissioning or commissioning mode respectively. SINA_SPEED refuses to release the axis because the drive has not yet completed commissioning.
On a G120C PN-F this state is the most common cause of "drive worked yesterday, refuses to start today". It can be triggered by:
- An interrupted commissioning download.
- A power cycle after a parameter change.
- The expiration of the SI forced checking procedure timer, p9659, which forces the drive to re-enter safety commissioning.
- A write to safety parameters that invalidates the existing safety acceptance.
Family 3: PROFIdrive channel fault (8601)
Status 16#8601 is a SINA_SPEED_FREETEL or SINA_SPEED family code that indicates a communication error at the free-telegram level: a setpoint or actual value has not been updated within the expected window. The combination of 8601 with 80A1 on Telegram 1 means that the block is not receiving a fresh setpoint telegram because the drive is in commissioning and has stopped cyclic data exchange.
Telegram 1 vs Telegram 20: Selecting the Correct PROFIdrive Profile
The SINA_SPEED block can use either standard PROFIdrive Telegram 1 or Siemens-specific Telegram 20. The Telegram 1 and Telegram 20 specifications are both in PROFINET IO conformance, but the structure of the data is different. Telegram 20 includes two additional status/control words (STW2/ZSW2) and a second setpoint/actual value word, which SINA_SPEED uses for additional control bits such as ramp-function generator enable, droop enable, and torque limit selection.
| Item | Telegram 1 (standard) | Telegram 20 (Siemens) | |
|---|---|---|---|
| Total words | 4 (2 setpoint, 2 actual) | 6 (3 setpoint, 3 actual) | |
| Control word | STW1 | STW1 + STW2 | |
| Setpoint | NSOLL_A (16 bit) | NSOLL_A + additional | |
| Status word | ZSW1 | ZSW1 + ZSW2 | |
| Actual value | NIST_A (16 bit) | NIST_A + additional | |
| Drive parameter | p0922 = 1, p2079 = 1 | p0922 = 20, p2079 = 20 | |
| SINA_SPEED support | Yes (basic) | Yes (full features) |
When the device is inserted in the TIA Portal device view, two telegram options appear in the drop-down for HWIDSTW and HWIDZSW: "Standard Telegram 20" and "Standard Telegram 20_1" (or Telegram 1, depending on the firmware). This is a normal consequence of having both a default and a configured telegram. The HWIDs that the SINA_SPEED block should use are the ones assigned to the telegram that is actually present in the device configuration in TIA Portal.
To select the correct telegram in TIA Portal:
- Open the project and switch to the Device view of the G120C.
- Select the PROFINET interface and open the device configuration. In the device configuration, navigate to "Module parameters" or the telegram slot.
- Confirm the telegram is set to the one expected by the SINA_SPEED block. For SINA_SPEED without SINA_SPEED_FREETEL, that is either Standard Telegram 1 or Standard Telegram 20.
- Right-click the telegram slot and read the system constants (HWIDSTW and HWIDZSW). Pass those exact DWORDs into the SINA_SPEED instance DB.
- Compile and download the TIA Portal project to the S7-1200.
Safety Recheck Timeout and Parameter p9659
The 6SL3210-1KE15-8UF2 ships with the safety-capable CU240E-2 PN-F. Even when STO, SS1, SLS, and other safety functions are not actively used, the safety firmware is still enabled and still tracks a timer that requires the safety configuration to be re-validated periodically. That timer is parameter p9659 (SI forced checking procedure timer).
| Parameter | Description | Default | Range | Units |
|---|---|---|---|---|
| p9659 | SI forced checking procedure timer | 28800 (8 hours) | 0 - 359640 | seconds |
| p9651 | SI F-DI switchover tolerance | 500 | 10 - 60000 | ms |
| p9652 | SI STO debounce time | 1.00 | 0.00 - 100.00 | s |
| p9761 | SI password input | 0 | 0 - 9999 | -- |
| p9762 | SI password new | 0 | 0 - 9999 | -- |
| p9763 | SI password acknowledgement | 0 | 0 - 9999 | -- |
When p9659 expires, the drive enters safety commissioning mode and rejects normal RUN. At that point the BOP-2 (Basic Operator Panel) on the G120C cannot be used to recover the drive; the user is forced to use STARTER or Startdrive to perform safety commissioning. This is by design: the BOP-2 does not have the workflow required to validate the safety function selection, change the SI password, or write to safety parameters.
The procedure in STARTER is the same as in Startdrive:
- Open the drive in STARTER or Startdrive and connect online.
- Open the Safety Integrated (SI) function view in the navigation tree.
- Select "Safety commissioning" or "Commission safety" and follow the wizard.
- Enter the existing SI password (default is 0 if the project was just created), confirm the safety function summary, and press "Finish".
- STARTER will reset p9659 to its default and clear the safety commissioning state.
- Save the project to the drive (RAM) and copy RAM to ROM.
Step-by-Step Recovery Procedure
Work through the procedure in order. Do not skip a step, because each previous step is required to put the drive in a state where the next step is meaningful.
Step 1: Recover Safety with STARTER or Startdrive
- Connect STARTER or Startdrive to the G120C over PROFINET (the same network the PLC is on, or a direct route through the PLC as a router).
- Go online and read the safety diagnostic buffer. Look for SI-related fault entries such as F01611 (SI: defect in a monitoring channel) or F01600 (SI: STOP A initiated). These confirm that the safety commissioning state is the cause.
- Run the safety commissioning wizard. Default SI password is 0. If a non-zero password was set, obtain it from the project.
- After the wizard finishes, copy RAM to ROM and power cycle the drive.
Step 2: Verify Telegram in the Drive
- In STARTER/Startdrive, open the configuration tree and confirm
p0922andp2079match the telegram in the TIA Portal device view. For Telegram 20, p0922 = 20; for Telegram 1, p0922 = 1. - Save and download to the drive.
Step 3: Clean the TIA Portal Project
- Open the TIA Portal project that contains the S7-1200 and the G120C device.
- In the project tree, right-click the G120C device and select "Device configuration". Inspect the telegram slot. There should be exactly one telegram — either Standard Telegram 1 or Standard Telegram 20 — not both.
- Open the System constants of the G120C. Locate HWIDSTW and HWIDZSW. These are the values that the SINA_SPEED block must use.
- Open the SINA_SPEED instance DB and rewrite HWIDSTW and HWIDZSW with the values from the System constants. Do not hand-type them; use the drop-down helper so the project tracks the dependency.
- If a second telegram instance appears in the HWIDSTW/HWIDZSW drop-down, it is a stale instance. Delete the G120C device from the project and re-insert it, or use "Go to Telegram" / "Reset telegram" to remove the duplicate.
Step 4: Re-Download the S7-1200 Project
- Compile the S7-1200 project.
- Download the configuration to the S7-1200. Confirm the G120C device configuration is part of the download.
- Once the PLC is in RUN, monitor the SINA_SPEED instance DB.
Step 5: Monitor the SINA_SPEED Status
- Watch the
Statusoutput. It should transition from16#8090or16#8091to16#80B0(drive ready, awaiting release), then to16#0000(axis active) whenEnableAxisandEnableSpeedare TRUE. - Watch
AxisReady. It must be TRUE for the block to apply the setpoint. - Watch
ActSpeed. Once the block is in steady state, it should track the requested speed.
Verification
Successful recovery is verified by three independent checks:
- The SINA_SPEED
Statusoutput is16#0000andAxisReadyis TRUE in the online watch table. - The drive's
ZSW1bit 0 ("Ready to switch on") is 1, ZSW1 bit 1 ("Ready to operate") is 1, ZSW1 bit 2 ("Operation enabled") is 1, and the drive is in the "Operation" state (r0002 = 0). - Setting a small setpoint (e.g. 100 rpm) on the block produces a corresponding
ActSpeedwith no new fault entries in the SINAMICS fault buffer (r0947 / r0948 / r0949 / r0950 / r0951 / r0952 / r0953 / r0954 / r0955 / r0956 / r0957 / r0958).
Edge Cases and Cross-Platform Notes
Stale Telegrams from STARTER Downloads
If the G120C was commissioned in STARTER and the project was then imported into TIA Portal, you can end up with two PROFINET telegrams on the drive: the one STARTER configured, and the one TIA Portal configured. The active telegram is selected by p0922. After p0922 was changed, the inactive telegram is still defined in the drive and visible in the TIA Portal HWID drop-downs. If the SINA_SPEED block uses a HWID for the inactive telegram, all writes return success but the drive ignores them, and the block reads back a non-responsive drive and reports 8090/8091.
Solution: in TIA Portal, click the G120C device, open "Properties > Telegram configuration", and remove the unused telegram. Rebuild the project so the system constants are updated, and re-select HWIDSTW/HWIDZSW on the SINA_SPEED block from the system constants drop-down.
Free Telegram with SINA_SPEED_FREETEL
SINA_SPEED_FREETEL (FB 286) is used when the application needs to map non-standard process data such as a free PROFIdrive telegram, additional torque data, or a separate status word. The SINA_SPEED_FREETEL documentation is at 109815539_SINA_SPEED_FREETEL_DOC_v10_en.pdf. The free-telegram variant raises the same family of issues: an extra, stale HWID, a Telegram not yet active on the drive, or a drive in commissioning. The fix path is the same.
ConfigAxis Bit Pattern
On power-up, SINA_SPEED expects to see the ConfigAxis input go from FALSE to TRUE once. Some user programs re-trigger ConfigAxis every scan, which can leave the block in a state where it tries to re-configure the drive on every cycle. Confirm the bit is a one-shot, not a level.
PROFINET Diagnostics
Confirm PROFINET is healthy: open the device view in TIA Portal, right-click the G120C and select "Online > Diagnostics". Look for "PROFINET IO: Device not accessible" or "Station failure". If either is present, fix the network issue before chasing the SINA_SPEED status codes.
Drive in Quick Commissioning (r0002 = 2)
Status 80A1 is the block's translation of "the drive is in r0002 = 2 (drive commissioning) or r0002 = 29 (quick commissioning)". To clear it, finish the quick commissioning wizard in STARTER/Startdrive and press "Finish". The drive transitions to r0002 = 0 (Operation). The PLC will then release the axis on the next cycle.
Troubleshooting Matrix
| Status (hex) | Block interpretation | Most likely cause | Action |
|---|---|---|---|
| 8090 | Waiting for first valid response from drive | Drive is in commissioning or p0922 mismatch | Finish commissioning, verify p0922, verify HWIDs |
| 8091 | Initial state / drive not yet seen | PROFINET not connected, telegram not yet downloaded | Check PROFINET link, download device configuration |
| 80A0 | Drive in "Commissioning" state | Quick commissioning active | Finish quick commissioning |
| 80A1 | Drive in commissioning, not yet ready | Safety commissioning active, or quick commissioning incomplete | Run safety commissioning wizard, complete commissioning |
| 80B0 | Drive ready, awaiting release | Normal intermediate state | Wait for EnableAxis + EnableSpeed |
| 80B1 | Drive is in commissioning state | Same as 80A1 but at a later handshake stage | Resolve commissioning state |
| 80C0 | Follow-up error | Drive went into fault after handshake | Check SINAMICS fault buffer (r0947 etc.) |
| 8601 | Setpoint/actual telegram timeout | Drive stopped cyclic data exchange | Check drive state and PROFINET |
Notes on the S7-1200 Watchdog
When the drive is in commissioning and the PROFINET subslot is not updating, the S7-1200 PROFINET IO layer will raise a "subscriber not reachable" diagnostic after the configured IO failure time. The default is 100 ms, but the project might set 50 ms or 200 ms. The SINA_SPEED block does not consume the IO watchdog directly; the IO controller does. If the IO controller raises a subscriber fault, the SINA_SPEED block reads back a value that depends on the configured substitute behavior. A value of 0 (default) makes the block see 8090/8091. A value of "last value" can keep the block stuck in a state that the user perceives as a fault but is in fact a stale value. Verify the IO failure time and substitute behavior on the G120C in the TIA Portal device view.
Closing Notes
The SINA_SPEED errors observed in this scenario are not real axis faults. They are the block's report that the handshake with the drive cannot complete. The two practical root causes are:
- The G120C entered safety commissioning because p9659 expired, because the SI parameters were re-written, or because the SI password was lost. STARTER or Startdrive is required to recover from this state; the BOP-2 cannot.
- The Telegram or HWID used by the SINA_SPEED block no longer matches the active Telegram on the drive. This is the most common residue of a STARTER/Startdrive download that changed the Telegram definition. Re-deriving HWIDSTW and HWIDZSW from the TIA Portal system constants and removing any stale Telegram slot fixes it.
Once both are addressed, the SINA_SPEED block returns to Status 16#0000, AxisReady goes TRUE, and the G120C operates as before.
Frequently Asked Questions
What does SINA_SPEED status 80B1 mean on a G120C?
Status 16#80B1 means the block has finished the first handshake with the drive but the drive is still in commissioning mode (r0002 = 1, 2, 3, 8, 10, 29, or 30 in SINAMICS). On a 6SL3210-1KE15-8UF2 with PN-F, this is most often the safety commissioning state. The block will not release the axis until the drive transitions to r0002 = 0 (Operation).
Why can't I reset the safety on a G120C PN-F with the BOP-2?
The BOP-2 has no UI to validate the safety function selection, change the SI password, or write to safety parameters. The p9659 SI forced checking procedure timer (default 28800 s = 8 hours) can only be reset from STARTER or Startdrive, by running the safety commissioning wizard. Once the wizard finishes and the drive is power-cycled, p9659 is reset and the drive leaves the commissioning state.
Should I use Telegram 1 or Telegram 20 with SINA_SPEED?
Either works. Telegram 1 is the PROFIdrive standard and gives 4 words (STW1, NSOLL_A, ZSW1, NIST_A). Telegram 20 is the Siemens-specific extension and gives 6 words, with additional control/status bits for ramp-function generator, droop, and torque selection. The Telegram choice is set on the drive with p0922 = 1 or p0922 = 20, and matched in the TIA Portal device configuration. Mismatches are a common cause of 8090/8091.
How do I find the correct HWIDSTW and HWIDZSW in TIA Portal?
Open the G120C device in the project, right-click the PROFINET interface, and select "Properties > System constants". HWIDSTW is the hardware identifier of the setpoint slot, HWIDZSW is the hardware identifier of the actual value slot. Use the drop-down helper on the SINA_SPEED block to assign them, so the project tracks the dependency. Never hand-type the DWORDs.
Does a STARTER download change the active Telegram on the G120C?
Yes. A STARTER or Startdrive download can overwrite p0922 and re-write the Telegram configuration, leaving the previous Telegram as an inactive definition. The TIA Portal project may still carry a stale HWID for that inactive Telegram. The fix is to remove the stale Telegram slot from the TIA Portal device view, re-derive HWIDSTW and HWIDZSW from the system constants, recompile, and re-download the S7-1200 project.