SINA_POS FB284 Brake Control and Homing on SINAMICS S110

David Krause17 min read
S7-1200SiemensTutorial / How-to
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

1. Overview of SINA_POS (FB284) and SINAMICS S110 Positioning

The SINA_POS function block (FB284) is the Siemens-standard application block for positioning a single SINAMICS drive from a SIMATIC S7-1200 or S7-1500 controller. The block is delivered as part of the SINAMICS Blocks for S7-1200/S7-1500 library and is inserted into the TIA Portal project with its own instance data block (DB). FB284 cyclically exchanges process data (PZD) with the drive over PROFINET using a configured standard telegram 111, which is the predefined telegram for "positioning drive with extended functions".

The hardware topology assumed in this article is:

  • Controller: SIMATIC S7-1214C PN (DC/DC/DC or DC/DC/Rly variant, firmware V4.2 or higher recommended).
  • Drive: SINAMICS S110 (CU305 PN) with a connected 1FK7/1FT7/1FL6 servo motor.
  • Brake: Motor holding brake (integrated 24 V brake) or external holding brake, switched by a SIRIUS contactor driven from a digital output of the S7-1200.
  • Homing sensor: Mechanical limit switch or proximity sensor wired to a digital input of the S7-1200.
  • PROFINET IO: Telegram 111 mapped into FB284 instance DB slots.

The standard FB284 user interface exposes a structured set of inputs and outputs (iAxisMode, eiMode, lrPosition, lrVelocity, bStart... commands) but it does not expose a dedicated manual brake input or a homing switch input. Both functions have to be implemented on top of FB284 by reading from and writing to the instance DB's cyclic send/receive buffers (sxSendBuf, sxRecvBuf) and by driving the brake through a free PLC output. The remainder of this article documents exactly that procedure using only official Siemens documentation as reference.

The official Siemens positioning manual is the SINAMICS G: Axis positioning with the SINA_POS block document. The G120/CU250S-2 PN variant is documented with the same FB284 instance structure as the SINAMICS S110/CU305 PN, so the bit addresses described below apply identically.

2. Prerequisites and Telegram 111 Configuration

Before opening the instance DB, the project must satisfy the following prerequisites:

  1. TIA Portal V15.1 or higher (FB284 V4.x supports the current S110 firmware; older portal versions ship older FB revisions that are not bit-compatible).
  2. SINAMICS Blocks for S7-1200/S7-1500 library installed and up to date. The library is delivered through the Siemens Support entry 109750451 and is also available in the TIA Portal "Libraries" task card.
  3. SINAMICS S110 firmware V4.7 or higher (older V4.4 still works for the basic positioning set, but the homing state-machine bits in ZSW1 follow V4.7 mapping).
  4. PROFINET device configuration: the S110 must be inserted in the device view of the S7-1214C PN and the slot "Telegram 111" must be assigned to the appropriate submodule.
  5. Drive parameterization in Startdrive or STARTER (commissioning tool of the S110):
    • p922 = 111 (PROFIdrive telegram selection = standard telegram 111)
    • p1001 = 2 (Position control activation, EPOS mode)
    • p2502 = 1 (Linear axis scaling)
    • p2503 = 1 (LU/1000 µm or 1 LU = 1 motor revolution depending on mechanical configuration)
    • p2580 ... p2592 for the EPOS operating modes
    • p1215 = 0 (motor holding brake not controlled by drive-internal sequence, because the brake is being controlled externally by the PLC)
  6. PROFIsafe / Safety Integrated is outside the scope of FB284. The holding brake release must be wired through a safety relay if the application is in category 3 PL d or higher. The Siemens S110 Safety Integrated manual describes the SS1/STO path.

The full library and block overview is published in the Function blocks to control the SINAMICS with SIMATIC S7 in TIA application note. The SINA_POS chapter begins on page 47 and lists every input/output variable in the block interface.

3. SINA_POS Instance DB Structure and Bit Access

When the SINA_POS FB is instantiated, TIA Portal creates a typed instance data block (for example, SINA_POS_DB). The structure of that DB is the key to controlling the brake and the homing sequence from the S7-1200. The two most important substructures are:

  • sxSendBuf – the cyclic output process image sent from PLC to drive (PZD1..PZD16).
  • sxRecvBuf – the cyclic input process image received from drive (PZD1..PZD16).

With standard telegram 111, the first two PZD words are mapped as follows:

PZD Direction Name (SINA_POS DB) Width Meaning
1 PLC → Drive sxSendBuf.STW1 WORD PROFIdrive control word 1
2 PLC → Drive sxSendBuf.STW2 WORD PROFIdrive control word 2 (telegram 111 specific bits)
3..4 PLC → Drive sxSendBuf.PosStw WORD Positioning control word (EPOS)
5..6 PLC → Drive sxSendBuf.SetPos DINT Position setpoint in LU
7..8 PLC → Drive sxSendBuf.SetVel DINT Velocity setpoint in 1000 LU/min
9..10 PLC → Drive sxSendBuf.AccOver DINT Acceleration override in %
1 Drive → PLC sxRecvBuf.ZSW1 WORD PROFIdrive status word 1
2 Drive → PLC sxRecvBuf.ZSW2 WORD PROFIdrive status word 2
3..4 Drive → PLC sxRecvBuf.PosZsw WORD Positioning status word (EPOS)
5..6 Drive → PLC sxRecvBuf.ActPos DINT Position actual value in LU
7..8 Drive → PLC sxRecvBuf.ActVel DINT Velocity actual value
9..10 Drive → PLC sxRecvBuf.ActFault WORD Active fault number
11..12 Drive → PLC sxRecvBuf.ActWarn WORD Active alarm number

Each individual bit of a WORD can be accessed from SCL or LAD/FBD with the standard S7-1200 syntax "SINA_POS_DB".sxSendBuf.STW1.%X2. The struct access is allowed because the FB284 instance DB is a fully typed DB; the compiler enforces that the bit belongs to the correct send/receive buffer.

Always access the bit through the named struct, never through an absolute address such as DBxx.DBX0.2. Siemens explicitly recommends symbolic access in the TIA Portal S7-1200 manual collection because future firmware updates can reorder fields inside the block.

4. Homing Sequence with External PLC Input

SINAMICS EPOS supports several referencing modes. With telegram 111 and SINA_POS FB284, the homing sequence is initiated by setting three bits in PosStw (the positioning control word) in the correct order. The PLC input that is wired to the homing proximity switch is then evaluated by the drive, not by the PLC, once the homing run is started. This is the cleanest architecture because the drive already knows the encoder reference position.

Homing requires three sequential control bits (see G120 SINA_POS documentation, chapter 4.4):

  1. Set referencing bitPosStw.%X0 = TRUE (mode "Reference approach").
  2. Start referencing – rising edge on PosStw.%X1 (rising edge is mandatory, the bit is processed in EPOS state machine).
  3. Wait for feedback – monitor ZswRecv.PosZsw.%X1 (reference point set) and ZswRecv.PosZsw.%X2 (reference point approach complete).

The S7-1200 side of the program is therefore only responsible for:

  • Reading the homing switch digital input (e.g. %I0.3).
  • Debouncing the input with TON/TOF if the sensor is mechanical.
  • Generating the rising edge on the EPOS start bit.
  • Clearing the start bit after the homing run has completed (otherwise EPOS will re-trigger the homing run on the next cycle).

Sample SCL code that wraps the bit access into a clean function block:

// Homing sequence wrapper for SINA_POS FB284
FUNCTION_BLOCK "fbHomingS110"
VAR
    iHomingSwitch AT %I0.3 : BOOL;   // prox switch wired to S7-1200
    bStartHoming   : BOOL;            // HMI start command
    tDebounce      : TON;             // 50 ms debounce
END_VAR
BEGIN
    // 1. debounce the mechanical homing switch
    tDebounce(IN := iHomingSwitch, PT := T#50ms);

    // 2. request "reference approach" mode (PosStw bit 0)
    "SINA_POS_DB".sxSendBuf.PosStw.%X0 := NOT "SINA_POS_DB".sxRecvBuf.PosZsw.%X1;

    // 3. generate the rising edge to start the homing run (PosStw bit 1)
    IF bStartHoming AND tDebounce.Q THEN
        "SINA_POS_DB".sxSendBuf.PosStw.%X1 := TRUE;
    ELSIF "SINA_POS_DB".sxRecvBuf.PosZsw.%X1 THEN  // home position reached
        "SINA_POS_DB".sxSendBuf.PosStw.%X1 := FALSE;
    END_IF;

    // 4. publish the status to the HMI
    bHomingActive    := "SINA_POS_DB".sxRecvBuf.PosZsw.%X0;
    bHomePositionOK  := "SINA_POS_DB".sxRecvBuf.PosZsw.%X1;
END_FUNCTION_BLOCK

The S110 drive parameters that match this sequence are p2595 = 1 (active homing with zero mark), p2596 = 0 (use proximity switch on DI0 of the S110), or, if the homing sensor is wired only to the PLC, p2596 = 4 (external homing via telegram bit). The selection of p2596 is what allows the PLC to inject the homing event entirely through the PROFINET telegram.

5. Manual Brake Control Architecture

The SINAMICS S110 can manage a 24 V holding brake in two distinct ways:

  1. Drive-internal brake control – the CU305 PN applies/removes 24 V on the X6.3 / X6.4 terminals in sync with the enable/disable sequence, configured through p1215 = 1.
  2. External (PLC) brake control – the drive is parameterized with p1215 = 0; the S7-1200 drives a digital output that energises a contactor or solid-state relay wired to the brake.

When the brake must follow a discrete PLC input (for example a jog PB on the HMI, or a manual override signal that releases the brake only on operator command), the second approach is the right one. The drive has to be told that it is not managing the brake, and the PLC has to handle all the timing.

Recommended wiring:

  • CPU digital output, e.g. %Q0.5, wired to a SIRIUS 3RT2015 contactor coil (24 V DC).
  • Contactor main contacts in series with the motor brake leads (white / black on a 1FK7 motor).
  • An additional hardwired enable: the contactor is only allowed to close when the drive is in state Operation enabled (ZSW1 bit 2 = 1) and the operator's manual PB is pressed.

Sample SCL code for the manual brake output, using the SINA_POS instance DB to read the drive state and a free PLC input to take the manual release command:

// Manual brake control wrapper
FUNCTION_BLOCK "fbManualBrakeS110"
VAR
    bManualReleasePB AT %I0.4 : BOOL;     // operator push-button
    bDriveStandstill           : BOOL;
    bOperationEnabled          : BOOL;
    bBrakeOutput   AT %Q0.5    : BOOL;     // contactor coil
END_VAR
BEGIN
    bDriveStandstill  := "SINA_POS_DB".sxRecvBuf.ZSW1.%X7;   // 1 = standstill
    bOperationEnabled := "SINA_POS_DB".sxRecvBuf.ZSW1.%X2;   // 1 = operation enabled

    // Brake only released if:
    //  - drive is standing still (avoid release while running)
    //  - drive is operation-enabled (avoid release when STO active)
    //  - operator is pressing the manual release push-button
    bBrakeOutput := bDriveStandstill
                    AND bOperationEnabled
                    AND bManualReleasePB;
END_FUNCTION_BLOCK
If a safety stop is required (STO / SS1), the brake must close without waiting for the PLC program cycle. Use a hardwired safety relay (e.g. 3SK1) that drops the contactor coil on STO. The PLC output should be wired in series with the safety contact, not in parallel.

6. STW1 Control Word Bit Map (Telegram 111)

The PROFIdrive control word STW1 is the master enable word of the drive. FB284 fills STW1 with the logical combination of the S7-1200 inputs and its internal state machine. The bits below are the ones most relevant when integrating a manual brake and a homing run; the layout is identical to the SINA_POS reference documentation.

Bit Designation Meaning for the S110 application
%X0 ON / OFF1 0 = coast to stop, 1 = drive is switched on
%X1 Coast stop / OFF2 0 = coast stop, 1 = OFF2 inactive
%X2 Quick stop / OFF3 0 = quick stop with rampa p1135, 1 = OFF3 inactive
%X3 Enable operation 1 = drive executes setpoints
%X4 Enable ramp generator 1 = ramp generator is enabled
%X5 Unfreeze ramp generator 1 = ramp generator is released
%X6 Setpoint enable 1 = setpoint is accepted
%X7 Fault acknowledge 0→1 edge resets the active fault
%X8 Jog 1 Jog bit 1 (drive internal, used by STARTER)
%X9 Jog 2 Jog bit 2
%X10 Control by PLC 1 = setpoints are valid (mandatory for EPOS)
%X11 Open holding brake Drive-internal brake open request – bypassed when p1215 = 0
%X12 Speed setpoint enable 1 = speed setpoint is applied
%X13 Closed-loop torque control Toggle between torque / speed / position control
%X14 Reserved
%X15 Reserved

When p1215 = 0 the drive does not attempt to drive the brake; bit 11 of STW1 is then internally ignored. This is the only way to guarantee that the PLC has full authority over the brake.

7. ZSW1 Status Word Bit Map (Telegram 111)

ZSW1 is what the PLC uses to read the drive state. The two bits needed for safe manual brake operation are bit 2 (Operation enabled) and bit 7 (Standstill).

Bit Designation Meaning for the S110 application
%X0 Ready to switch on Power electronics OK, waiting for ON command
%X1 Ready Ready to operate (DC bus charged, no fault)
%X2 Operation enabled Drive follows setpoints. Required to be 1 before releasing the brake.
%X3 Fault present 1 = drive is in fault state, requires ack
%X4 Coast stop active 1 = OFF2 active
%X5 Quick stop active 1 = OFF3 active
%X6 Switch-on inhibited 1 = drive must be re-ON cycled
%X7 Standstill |n| < p1226 (factory 50 rpm). Required to be 1 before releasing the brake.
%X8 Speed setpoint/actual in tolerance Speed within p2163
%X9 Control requested 1 = PLC should take control (for FB284 this must always be 1)
%X10 Setpoint reached 1 = drive has reached its setpoint
%X11 Open holding brake Drive-internal brake request – not used when p1215 = 0
%X12 Closed-loop torque controlled 1 = torque control active
%X13 No warning active 1 = no warning
%X14 Speed setpoint reached 1 = speed actual has reached setpoint
%X15 Active ramp generator 1 = ramp generator is active

Both ZSW1 bits must be combined with the manual PB on the HMI before the PLC drives the brake output. The "Standstill" bit is the key interlock that prevents the brake from being released while the motor is still rotating.

8. Hardware Wiring for External Brake

The motor holding brake on a 1FK7/1FT7/1FL6 is a 24 V single-coil brake. The lead colours are typically white (+) and black (–). The recommended drive-side wiring is:

  • Direct drive control (p1215 = 1): connect the brake leads to X6.3 (+) and X6.4 (–) of the CU305 PN. The drive's internal sequence takes care of the timing.
  • PLC control (p1215 = 0): do not connect the brake leads to the CU305 PN. Bring them out of the motor cable through a separate terminal block and route them through a SIRIUS 3RT contactor or a 3RF solid-state relay driven by the S7-1200 output.

It is strongly recommended to put a free-wheeling diode (1N4007) across the brake coil when using a DC contactor, and a varistor (SIOV-S07K25) when using a 24 V solid-state relay. The brake is highly inductive and the suppression device must be on the coil side, not on the contact side.

Brake wear: a 1FK7 motor's holding brake is rated for 20 000 emergency stops. The S7-1200 can be configured to count the number of brake releases and warn the operator when the limit is being approached; see the S110 function manual, parameter p1217.

9. Step-by-Step TIA Portal Configuration

  1. Insert the S110 from the hardware catalog (TIA Portal V15.1 or later) and assign the PROFINET device name S110_1.
  2. In the device view, change the inserted submodule to Telegram 111 (the default is Telegram 1 for basic speed control). The slot is "DO with PROFIdrive / Telegram 111 / Position control".
  3. From the SINAMICS library, drag SINA_POS (FB284) into the program and call it with a multi-instance DB or a single instance DB (e.g. SINA_POS_DB). Wire the HWID of the Telegram 111 submodule to iDriveID, and the encoder data (single turn, multi turn) to the appropriate inputs.
  4. Open the drive in Startdrive and go online. Set the following parameters:
    • p922 = 111
    • p1001 = 2 (EPOS activated)
    • p1215 = 0 (no internal brake)
    • p2595 and p2596 to match the homing switch wiring (either drive-side DI or telegram bit)
  5. Compile and download the S7-1200 project. Go online in TIA Portal and open SINA_POS_DB in watch mode. Verify that the cyclic send buffer sxSendBuf.STW1 and the cyclic receive buffer sxRecvBuf.ZSW1 are both being updated. The initial value of STW1 must be 16#047E (drive commanded to ON, OFF2/OFF3 inactive, control by PLC).
  6. Insert the fbHomingS110 and fbManualBrakeS110 blocks from sections 4 and 5. Wire the homing switch input and the manual brake output to the actual I/O.
  7. Force the manual release PB and confirm that the contactor energises, the brake releases, and the motor can be turned by hand. Release the PB and confirm that the brake falls.
  8. Trigger the homing run from the HMI and confirm the PosZsw bits toggle as documented in section 4.

10. Verification and Commissioning Procedure

After the configuration is complete, run the following checks in order. Each step is mandatory before the machine can be released for production.

Step Test Expected result
1 Power cycle the drive and PLC ZSW1 = 16#0621 (Ready, Operation enabled, no fault)
2 Press the manual release PB with motor stopped Contactor closes, brake is free, motor shaft turns by hand
3 Release the manual release PB Contactor drops, brake is re-applied, motor shaft is locked
4 Rotate the motor shaft while the PB is pressed Brake must still be released only when the drive reports Standstill (ZSW1.%X7 = 1)
5 Trigger the homing run from the HMI PosZsw.%X0 toggles to 1, motor moves to the homing switch, decelerates, ramps to zero, PosZsw.%X1 toggles to 1
6 Send a relative positioning command after homing Drive moves the programmed distance at the programmed velocity, brake remains released, drive returns to brake-applied only when the axis is at standstill
7 Trigger an STO event Drive reports "Switch-on inhibited", the contactor is opened by the safety relay, brake re-applies within 30 ms
8 Cycle the drive 50 times in jog mode with PB-released only between cycles No alarm on the S110, no over-temperature on the brake
If the brake does not release after a power cycle, verify that the S110's brake output is not driven by checking r1214 in Startdrive. With p1215 = 0, the bit r1214.0 must remain 0; otherwise the drive is still commanding the brake.

11. Fault Handling and Diagnostics

The S110 reports faults and warnings both in the cyclic ActFault / ActWarn words of FB284 and in the drive's own fault buffer. The most common fault numbers for the brake and homing path are listed below.

Fault number Meaning Typical cause in the brake/homing context Remedy
F07490 EPOS enable missing STW1.%X10 = 0 – PLC did not request control Set "SINA_POS_DB".sxSendBuf.STW1.%X10 to 1
F07500 Drive: configuration error p1001 = 0 or wrong telegram Set p1001 = 2 and check p922 = 111
F30001 Overcurrent Brake released while motor rotating Check standstill interlock (ZSW1.%X7) and re-test
F31110 Encoder signal lost Homing not possible Check encoder cable, run auto-calibration with STARTER
F07480 Positioning velocity < p2594 Homing run cannot start Set p2594 to a non-zero value
A08502 Brake warning Brake feedback not received Check contactor feedback contact, replace contactor
A07481 Homing velocity zero p2594 = 0 Set p2594 > 0 (typical 1000 LU/min)

The fault numbers are documented in the S110 List Manual. Acknowledge the fault from the PLC with a rising edge on STW1.%X7 after the drive has reported "Switch-on inhibited" (ZSW1.%X6 = 1).

12. Frequently Asked Questions

Does the SINA_POS FB284 provide a direct input for an external homing switch or for a manual brake release?

No. FB284 exposes only its structured inputs and outputs plus the cyclic process buffers sxSendBuf and sxRecvBuf. The homing switch is wired either to a digital input of the S110 (and configured via p2596) or evaluated indirectly by toggling the EPOS bits in sxSendBuf.PosStw. The brake is controlled by a free digital output of the S7-1200, gated on the ZSW1 standstill and operation-enabled bits.

What is the correct way to address a single bit of the SINA_POS instance DB from a TIA Portal SCL or LAD program?

Use the fully qualified symbolic path "SINA_POS_DB".sxSendBuf.STW1.%X2. The compiler will resolve the bit to the correct offset inside the typed instance DB. Do not use absolute addresses such as DBn.DBXy.z because future FB284 firmware updates may re-shuffle the layout.

Why does the drive still close the brake even when the PLC command is not requesting it?

The S110 is still in drive-internal brake mode. Set p1215 = 0 to release the drive's authority over the holding brake, and route the brake leads through a contactor driven by a PLC output. After that change, monitor r1214.0 in Startdrive to confirm that the drive no longer commands the brake.

Can the homing run be triggered entirely by PROFINET telegram bits, or does the proximity switch have to be wired to the S110?

Both options are valid. p2596 = 0..3 selects a homing mode that uses a drive-side DI. p2596 = 4 selects "external homing via telegram" and lets the S7-1200 control the homing sequence exclusively through the PosStw bits, which is the typical architecture when the homing switch is wired to the PLC rather than to the drive.

Which TIA Portal and S110 firmware versions are required for the procedure described in this article?

TIA Portal V15.1 or higher (V16 / V17 recommended) with the current SINA_POS FB284 library, and SINAMICS S110 firmware V4.7 or higher. Lower combinations may work for the basic positioning, but the ZSW1 / PosZsw bit layout described here follows the V4.7+ definition and the FB284 V4.x instance DB structure.

Back to blog