Skip to main content
Siemens · Technical Blog

SINAMICS G120 STW1 and ZSW1: Every Control and Status Bit

Decode every STW1 command bit and ZSW1 feedback bit, including the 047E and 047F run states.

2,500+ engineers trained 4.9/5 Google rating 21+ years, Chinchwad, Pune Next batch: contact for dates
Quick answer

STW1 is the 16-bit control word the PLC writes; ZSW1 is the 16-bit status word the drive returns. Several STW1 bits must be held at 1 permanently for the drive to be runnable at all — including bit 10, "control by PLC", which is the most commonly forgotten. In practice you write just two values: 16#047E puts the drive in the ready state, and 16#047F adds bit 0 and starts the motor. Returning to 16#047E produces a controlled ramp stop. On the feedback side, ZSW1 bit 2 (operation enabled) is the only honest "running" signal — never drive an HMI lamp from your own command bit.

  • OFF2 and OFF3 are active-low: the bits must be 1 for normal operation, and clearing them stops the drive.
  • Pass through 16#047E before 16#047F. Jumping from 0 straight to the run value often fails.
  • Bit 7, fault acknowledge, is edge-triggered. Holding it high hides a repeating fault that will damage the motor.
  • Every Siemens drive implementing PROFIdrive uses these same bits, so this knowledge transfers from G120 to S120 unchanged.

Why a Bit Pattern Instead of Commands

A SINAMICS drive runs a state machine defined by the PROFIdrive profile. It moves between states such as "switching on inhibited", "ready to switch on", "ready to operate" and "operation enabled", and it changes state only when the control word presents the right bit pattern for that transition.

This is why there is no "start" instruction. The PLC does not command an action; it presents a condition, and the drive's state machine responds. Understanding that distinction resolves most of the confusion beginners have with drive integration — including why a value that looks correct sometimes does nothing.

Block Diagram: Telegram 1 Words Between PLC and G120

Before decoding the bits, see where the words travel. With Standard Telegram 1 the PLC and the drive exchange two 16-bit words in each direction on every PROFINET cycle — STW1 is the first word the PLC writes, ZSW1 the first word it reads back.

Standard Telegram 1 (PZD-2/2) data exchange between S7 PLC and SINAMICS G120 The PLC writes STW1 from QW256 and the speed setpoint NSOLL_A from QW258 to the drive. The drive returns ZSW1 to IW256 and actual speed NIST_A to IW258 over PROFINET. PLC S7-1200 / S7-1500 · IO controller OUTPUT AREA · PLC → DRIVE %QW256CW_01 · %QB256–257STW1 %QW258CW_02 · %QB258–259NSOLL_A INPUT AREA · DRIVE → PLC %IW256%IB256–257ZSW1 %IW258%IB258–259NIST_A Addresses are examples — use the start address from the device view. SINAMICS G120 IO device · Telegram 1 (p0922 = 1) RECEIVE · r2050 PZD1Control word 1 → r2090STW1 PZD2Speed setpoint → r2050[1]NSOLL_A SEND · p2051 PZD1Status word 1 ← r0052ZSW1 PZD2Actual speed ← r0063NIST_A PZD-2/2: two words out, two words in, every bus cycle. PROFINET IO · cyclic data 16#047E / 16#047F 16#4000 = 100 % of p2000 status bits (bit 2 = running) actual speed, same scaling
Standard Telegram 1 exchanges two words in each direction. The PLC's output words go to the drive's receive buffer; the drive's send buffer comes back into the PLC's input words.

Where are STW2 and ZSW2? Not in a 2/2 telegram. In Standard Telegram 1 the second word out is the speed setpoint NSOLL_A and the second word in is the actual speed NIST_A. Many projects label them CW_02 or "word 2", which is fine, but the real STW2 and ZSW2 only appear in larger telegrams such as Telegram 3 — see SINAMICS G120 Telegram Types Compared.

WordPLC addressBytesDrive sideContent
PZD1 out%QW256%QB256 (bits 8–15), %QB257 (bits 0–7)r2050[0] → r2090STW1 control word
PZD2 out%QW258%QB258, %QB259r2050[1]NSOLL_A speed setpoint
PZD1 in%IW256%IB256 (bits 8–15), %IB257 (bits 0–7)p2051[0] = r0052ZSW1 status word
PZD2 in%IW258%IB258, %IB259p2051[1] = r0063NIST_A actual speed

STW1 — Every Control Bit

BitNameTag name (copy)Meaning when 1Normal handlingDefault valueBinary → HexSTW1 value
0ON / OFF1ON_OFF1Run. A falling edge ramps the drive down using the configured deceleration time.Driven by the machine sequence0Bits 3–0
1110 = E
16#047E
Ready to operate
1OFF2OFF2No coast stop. Clearing it removes pulses instantly and the motor coasts.Held at 11
2OFF3OFF3No quick stop. Clearing it stops on the separate, faster OFF3 ramp.Held at 11
3Enable operationEn_OperPulse enable — the output stage may switch.Held at 11
4Enable ramp generatorEn_RFGWithout it the ramp output is forced to zero.Held at 11Bits 7–4
0111 = 7
5Continue ramp generatorCont_RFGWithout it the ramp output freezes at its current value.Held at 11
6Enable setpointEn_SPAllows NSOLL_A to reach the ramp generator.Held at 11
7Acknowledge faultAck_FltRising edge clears an acknowledgeable fault.Pulsed only0
8ReservedRes_08Not used in standard operationLeft at 00Bits 11–8
0100 = 4
9ReservedRes_09Not used in standard operationLeft at 00
10Control by PLCCtrl_PLCThe drive accepts the telegram at all.Held at 1 — most commonly forgotten1
11ReverseRevInverts the sign of the setpoint.Only where mechanics allow reverse0
12ReservedRes_12Not used in standard operationLeft at 00Bits 15–12
0000 = 0
13MOP raiseMOP_UpRaises the motor potentiometer setpoint while held.Usually 00
14MOP lowerMOP_DnLowers the motor potentiometer setpoint while held.Usually 00
15CDS selectCDSSelects command data set 1 instead of 0.Usually 00

Read each hex digit from the bottom of its group upwards: the lowest bit is the rightmost binary digit. Bits 3–0 give 1110 = E, bits 7–4 give 0111 = 7, bits 11–8 give 0100 = 4 and bits 15–12 give 0000 = 0. Written from bit 15 down to bit 0 that is 16#047E.

Short tag names with the bit address and a comment. Copy the list into your tag table, watch table or documentation. The addresses assume the telegram starts at %QW256; Siemens stores the high byte first, so bits 0–7 sit in %Q257 and bits 8–15 in %Q256. Change the byte numbers to match your hardware configuration and keep the swap.

STW1 bit tags — copy and paste
// STW1 - word %QW256 (bits 0-7 = byte %Q257, bits 8-15 = byte %Q256)
// Name      Type  Address   Comment
ON_OFF1      Bool  %Q257.0   // Bit  0 - ON / OFF1 ramp stop
OFF2         Bool  %Q257.1   // Bit  1 - No coast stop - keep TRUE
OFF3         Bool  %Q257.2   // Bit  2 - No quick stop - keep TRUE
En_Oper      Bool  %Q257.3   // Bit  3 - Enable operation (pulses)
En_RFG       Bool  %Q257.4   // Bit  4 - Enable ramp generator
Cont_RFG     Bool  %Q257.5   // Bit  5 - Continue ramp generator
En_SP        Bool  %Q257.6   // Bit  6 - Enable setpoint
Ack_Flt      Bool  %Q257.7   // Bit  7 - Fault acknowledge - pulse only
Res_08       Bool  %Q256.0   // Bit  8 - Reserved
Res_09       Bool  %Q256.1   // Bit  9 - Reserved
Ctrl_PLC     Bool  %Q256.2   // Bit 10 - Control by PLC - keep TRUE
Rev          Bool  %Q256.3   // Bit 11 - Reverse direction
Res_12       Bool  %Q256.4   // Bit 12 - Reserved
MOP_Up       Bool  %Q256.5   // Bit 13 - Motor potentiometer raise
MOP_Dn       Bool  %Q256.6   // Bit 14 - Motor potentiometer lower
CDS          Bool  %Q256.7   // Bit 15 - Command data set select

The active-low behaviour of bits 1 and 2 catches people out. OFF2 and OFF3 are enables, not commands. A PLC that leaves them at 0 while setting bit 0 has told the drive both to run and to coast, and the drive obeys the stop.

Practise the state machine on live hardware

Drive the control word by hand, watch the status word respond, then wrap it in a reusable block. Pune classroom or live online.

Book a Free Demo Class

The Three Values You Actually Write

ValueBits setEffect
16#0000NoneEverything disabled. The drive sits in switching-on-inhibited.
16#047E1, 2, 3, 4, 5, 6, 10Ready to operate. Enabled and waiting, motor stationary.
16#047FAbove plus bit 0Running. The motor ramps to the setpoint.
16#04FE047E plus bit 7Fault acknowledge pulse from the ready state

The sequence matters. Hold 16#047E for at least one PLC scan and confirm the drive reports ready before writing 16#047F. Many first integrations write the run value immediately at power-up, find nothing happens, and start suspecting the network — when the state machine simply never passed through the ready state.

Stopping is the same transition in reverse. Writing 16#047E clears bit 0 and produces an OFF1 ramp stop using the drive's deceleration time. Writing 16#0000 instead clears the OFF2 enable as well and the motor coasts — a different and usually unintended outcome.

ZSW1 — Every Status Bit

BitMeaning when 1Tag name (copy)Use it for
0Ready to switch onRdy_SwOnPrecondition before issuing the run command
1Ready to operateRdy_OperConfirms the drive accepted the enable bits
2Operation enabledOper_EnThe genuine "running" feedback for HMI and interlocks
3Fault activeFaultAlarm condition; latch and display with the fault number
4No coast stop activeNo_OFF2Confirms OFF2 is not asserted
5No quick stop activeNo_OFF3Confirms OFF3 is not asserted
6Switching on inhibitedSwOn_InhExplains a drive that refuses to start after a fault
7Warning activeWarningLog it, do not stop the machine
8Speed deviation within toleranceSpd_OK"At speed" permissive for downstream equipment
9Control requestedCtrl_ReqThe drive is asking the PLC to take control
10Comparison speed reached or exceededSpd_CmpThreshold signalling
11Setpoint reached / limit not exceededNo_LimitDetects a drive stuck at a current or torque limit
12Application specificApp_12Brake control and similar functions, set by drive parameters
13Application specificApp_13Brake control and similar functions, set by drive parameters
14Application specificApp_14Brake control and similar functions, set by drive parameters
15Application specificApp_15Brake control and similar functions, set by drive parameters

Short tag names with the bit address and a comment. Copy the list into your tag table, watch table or documentation. The addresses assume the telegram starts at %IW256; Siemens stores the high byte first, so bits 0–7 sit in %I257 and bits 8–15 in %I256. Change the byte numbers to match your hardware configuration and keep the swap.

ZSW1 bit tags — copy and paste
// ZSW1 - word %IW256 (bits 0-7 = byte %I257, bits 8-15 = byte %I256)
// Name      Type  Address   Comment
Rdy_SwOn     Bool  %I257.0   // Bit  0 - Ready to switch on
Rdy_Oper     Bool  %I257.1   // Bit  1 - Ready to operate
Oper_En      Bool  %I257.2   // Bit  2 - Operation enabled - real running signal
Fault        Bool  %I257.3   // Bit  3 - Fault active
No_OFF2      Bool  %I257.4   // Bit  4 - No coast stop active
No_OFF3      Bool  %I257.5   // Bit  5 - No quick stop active
SwOn_Inh     Bool  %I257.6   // Bit  6 - Switching on inhibited
Warning      Bool  %I257.7   // Bit  7 - Warning active
Spd_OK       Bool  %I256.0   // Bit  8 - Speed deviation within tolerance
Ctrl_Req     Bool  %I256.1   // Bit  9 - Control requested
Spd_Cmp      Bool  %I256.2   // Bit 10 - Comparison speed reached
No_Limit     Bool  %I256.3   // Bit 11 - Setpoint reached / limit not exceeded
App_12       Bool  %I256.4   // Bit 12 - Application specific
App_13       Bool  %I256.5   // Bit 13 - Application specific
App_14       Bool  %I256.6   // Bit 14 - Application specific
App_15       Bool  %I256.7   // Bit 15 - Application specific

Bit 6, switching on inhibited, is the underused one. A drive that will not start after a fault is usually reporting this bit, and the cause is that the run command was still present when the fault cleared. The state machine requires the run bit to go low and high again — an important detail if your program holds bit 0 permanently.

Using ZSW1 Correctly on the HMI

The rule is simple and frequently broken: show what the drive says, not what the PLC asked for.

A green "running" lamp driven from the PLC's own command bit will stay lit while the drive is tripped, because the command is still being written. The operator sees a running machine that is not turning. Drive the lamp from ZSW1 bit 2 instead and the indication is always truthful.

The same applies to interlocks. A downstream conveyor that starts because the upstream drive was commanded to run, rather than because it reports operation enabled, will start into a stationary line. Use bit 2 for run interlocks and bit 8 or 11 where the downstream equipment needs the upstream drive to be at speed.

Fault Acknowledge Is an Edge

Bit 7 clears a fault on its rising edge. Holding it at 1 permanently is a mistake that looks like a working system: faults clear the instant they appear, the HMI stays green, and nobody notices that a motor is tripping on overload every thirty seconds until the winding fails.

Handle it properly in code. Detect a rising edge on the operator's reset input, set bit 7 for a short fixed time — around 200 ms — then clear it. A single scan is not enough: it can be shorter than the PROFINET update time, so the pulse may never reach the drive. In a reusable function block this belongs inside the block with a static "previous state" variable, so no caller can get it wrong.

Also acknowledge only what the operator asked for. Automatic, cyclic acknowledgement — pulsing bit 7 on a timer to "keep the line running" — converts a protective device into a decorative one.

Step-by-Step Lab: Drive the State Machine by Hand

Hands-on
Before you start
  • A G120 configured with Standard Telegram 1 on an S7-1200 or S7-1500, with tags for STW1, NSOLL, ZSW1 and NIST.
  • A motor on a test bench or uncoupled. No program logic is needed — everything is done from a watch table.
  • Estimated time: 30 minutes.
1

Set up a hexadecimal watch table

Put STW1 and ZSW1 into a watch table with hexadecimal display format, and NSOLL and NIST as decimal.

On screen: four rows, with ZSW1 already showing a live value once the CPU is online.
ZSW1 shows a non-zero value with bit 0 set, confirming the drive is exchanging data and is ready to switch on.
2

Try the wrong thing first

With STW1 at 0, write 16#047F directly and observe.

The drive typically does not start. Seeing this once explains most "the drive ignores my command" reports permanently.
3

Do it in the right order

Write 16#0000, then 16#047E, check ZSW1, set NSOLL to 8192, then write 16#047F.

After 047E the drive reports ready; after 047F the motor ramps to roughly half of p2000 and ZSW1 bit 2 goes to 1.
4

Compare the two stop behaviours

While running, write 16#047E and observe the stop. Restart, then write 16#0000 and observe again.

047E gives a controlled ramp down; 0000 removes the OFF2 enable and the motor coasts. Two very different stops from two values that look similar.
5

Provoke a fault and acknowledge it properly

Disconnect the network cable briefly, reconnect, then write 16#04FE once and return to 16#047E.

ZSW1 bit 3 sets on the fault and clears only on the transition of bit 7 — not while it is held.
6

Find switching-on inhibited

Cause a fault while STW1 is at 16#047F, acknowledge without dropping bit 0, and watch ZSW1 bit 6.

Bit 6 sets and the drive refuses to restart until bit 0 goes low and high again — the reason many machines need a deliberate stop before restart.
Checkpoint — how to know you did it right

You have the bits if you can explain why 047F failed from zero but worked from 047E, why 0000 coasted while 047E ramped, and why the fault cleared on an edge rather than a level. Next step is putting all of it inside one standard function block so no future program can get the sequence wrong.

These bits are one piece of Siemens PLC and VFD networking — the wider picture covers hardwired control, USS, Modbus, PROFIBUS and PROFINET.

Frequently asked questions

What is 16#047E and 16#047F in the control word?

16#047E sets the OFF2, OFF3, pulse enable, ramp enable, ramp continue, setpoint enable and control-by-PLC bits — the drive is enabled but stationary. 16#047F adds bit 0, the run command. Returning to 16#047E produces a controlled ramp-down stop.

Why does the drive not start when I write 16#047F directly?

The PROFIdrive state machine expects to pass through the ready state first. Write 16#047E, confirm the drive reports ready in ZSW1, then write 16#047F. Jumping straight to the run value from zero frequently does nothing.

Which STW1 bit is most often forgotten?

Bit 10, control by PLC. Without it the drive ignores the entire telegram regardless of what else the control word contains, and it produces no fault to explain why.

Should I use my own command bit or ZSW1 for the HMI running lamp?

Always ZSW1 bit 2, operation enabled. A lamp driven from the PLC's command bit stays lit while the drive is tripped, showing the operator a running machine that is not turning.

Why did my drive stop clearing faults properly?

Most likely bit 7 is being held at 1 rather than pulsed. It is edge-triggered, so holding it high clears every fault the instant it appears and hides a repeating condition — such as a motor tripping on overload every few seconds — until real damage occurs.

What does ZSW1 bit 6, switching on inhibited, mean?

The drive will not start until the run command is removed and re-applied. It usually appears when a fault was acknowledged while the run bit was still set. Drop bit 0, then set it again to clear the condition.

Why hold the fault acknowledge bit for 200 ms instead of one PLC scan?

The PLC scan can be shorter than the PROFINET update time of the drive. A one-scan pulse may fall between two telegram updates and never reach the drive. A short fixed pulse of 100 to 200 ms always arrives and still gives a clean rising edge.

Reviewed by Bhawesh Kumar Singh Industrial Automation Trainer and Industry 4.0 Consultant · Softwell Automation · 21+ years industry experience

Get the full syllabus + free demo class

Share your details — a Softwell training advisor will call you within 24 hours with batch dates, fees and hardware access options.

No spam. Used only to share course details for this enquiry.

Learn with practical industrial examples

Join live online, Pune classroom or corporate in-plant automation training.

Request Course Details
Verified learning pathway

Discuss Your Automation Requirement

Get guidance for training, corporate programs, projects or technical resources.

Content reviewed: 22 September 2026

☎ Call WhatsApp ✉ Email Enquire Now