1. Overview
Connecting a SINAMICS G120C frequency inverter to a SIMATIC S7-1200 CPU over PROFINET requires three coordinated tasks: (1) hardware and GSDML installation in the TIA Portal device catalog, (2) selection of a standardized telegram (for example, Standard Telegram 1) that defines the cyclic payload, and (3) a PLC function block that encodes the control word, decodes the status word, and scales setpoint/actual values between the controller's integer range and the drive's engineering units. The reference configuration below targets TIA Portal V15 Update 2 running on Windows 10 v1803 (OS Build 17134.112), which corresponds to the engineering release line that introduced the modern SINAMICS G120C GSDML v2.3x. Newer TIA Portal versions (V16, V17, V18, V19) follow the same workflow with the addition of the Startdrive commissioning wizard, but the underlying telegram mechanics are unchanged.
The G120C is a compact SINAMICS drive family with integrated PROFINET interface (CU240E-2 PN or CU250S-2 PN control units) that supports the PROFIdrive profile on PROFINET as defined by PROFIBUS & PROFINET International (PI). The PROFIdrive application classes AC1 (speed-controlled), AC3 (position-controlled), and AC4 support positioner mode, with AC1 being the most common configuration for variable-frequency pump, fan, and conveyor applications. For a list of PROFINET-certified frequency converters that conform to the same profile, see the PI Product Finder entry for the ABB ACH480 HVACR drive as a comparable profile-compliant device.
2. Prerequisites
| Item | Specification |
|---|---|
| Engineering | TIA Portal V15 Update 2 (or V16/V17/V18/V19 with Startdrive option) |
| PLC | SIMATIC S7-1200 CPU 1214C DC/DC/DC (FW 4.2 or later) or CPU 1215C |
| Drive | SINAMICS G120C with CU240E-2 PN or CU250S-2 PN control unit, FW ≥ 4.7 (V15 line) / ≥ 5.1 (V17 line) |
| GSD file | GSDML-Vx.x-Siemens-SINAMICS_G120C-xxxxxxxx.xml (matches CU firmware) |
| DriveLib | Siemens "SINAMICS DriveLib" library, e.g. V15.0, downloadable from the Siemens Industry Online Support |
| Cabling | PROFINET Cat 5e or higher, M12 D-coded or RJ45, ring or star topology |
| IP plan | S7-1200: 192.168.0.1 / 255.255.255.0; G120C: 192.168.0.2 (default after factory reset) |
| Commissioning tool (optional) | SINAMICS Startdrive (integrated in TIA Portal) or STARTER/SIMOTION SCOUT for legacy projects |
The SINAMICS G120C ships with PN interface enabled. Confirm the firmware version on the CU parameter r0018 before installing the matching GSDML — mismatched GSDML and drive firmware is the most common cause of "module substitution" faults at startup.
3. Hardware Topology
The reference topology is a single PROFINET subnet with one IO Controller (S7-1200) and one IO Device (G120C). The G120C occupies one PROFINET slot: the drive object DO1 on Telegram 1. Subsequent slots (DO2 = Extended Setpoint, DO3 = Telegram 3, etc.) are added only if the application requires them.
S7-1200 (IO Controller, 192.168.0.1)
|
| PROFINET, switch integrated in CPU port 1
|
+--- G120C (IO Device, 192.168.0.2)
|
+--- 3-phase motor (asynchronous induction or synchronous reluctance)
For multi-drive systems, replace the direct link with a managed PROFINET switch (e.g. Scalance XC-208) and allocate one IP per drive. The G120C PROFINET name must be unique per subnet; assign device names via the TIA Portal "Online > Assign PROFINET device name" function.
4. Installing the GSD and Adding the G120C to the Project
- In TIA Portal, choose Options > Manage general station description files (GSD).
- Browse to the GSDML archive provided by Siemens (downloaded from the SINAMICS G120C product page or the Startdrive "Hardware support package").
- Confirm the GSDML version is compatible with the drive firmware. TIA Portal V15 Update 2 supports GSDML versions up to the V2.3x line.
- Open Devices & Networks, drag the SINAMICS G120C PN from the catalog (folder: Drives & starters → SINAMICS drives → G120C) onto the PROFINET subnet.
- Establish the IO Controller-IO Device relationship by clicking the green PROFINET port of the S7-1200 and dragging to the G120C port. This assigns the device as a PROFINET IO Device of the CPU.
- Assign the IP address
192.168.0.2and a PROFINET device name (e.g.g120c-01) in the device properties → PROFINET interface → Ethernet addresses.
The G120C requires a non-empty PROFINET device name to participate in cyclic IO exchange. The CPU downloads the name to the drive during the Assign PROFINET device name step.
5. Telegram Selection and Slot Mapping
The PROFIdrive profile defines a set of standard telegrams (1, 2, 3, 4, 5, 6, 7, 9, 20, 220, 352) and a free Siemens telegram 999 for vendor-specific payloads. The G120C supports the following commonly used telegrams:
| Telegram | Direction | STW1 | ZSW1 | NSOLL_A | NIST_A | Use case |
|---|---|---|---|---|---|---|
| 1 | Cyclic | PZD1 out | PZD1 in | PZD2 out | PZD2 in | Default speed control, single setpoint |
| 2 | Cyclic | PZD1 out | PZD1 in | PZD2-3 out (32-bit) | PZD2-3 in (32-bit) | Speed control with 32-bit setpoint precision |
| 3 | Cyclic | PZD1 out | PZD1 in | PZD2-5 out (process data) | PZD2-5 in | Speed control with additional process data (torque limit, ramp time) |
| 20 | Cyclic | PZD1 out | PZD1 in | — | — | Speed control via analog input emulation (legacy) |
| 352 | Cyclic | PZD1 out | PZD1 in | NSOLL_B 32-bit | NIST_B 32-bit, faults, warnings | Speed control with extended diagnostics |
| 999 | Free | user-defined | user-defined | user-defined | user-defined | BICO interconnections, third-party protocol mapping |
For first-time commissioning, select Standard Telegram 1: it provides the 16-bit control word STW1, the 16-bit status word ZSW1, the 16-bit speed setpoint NSOLL_A, and the 16-bit speed actual NIST_A. The 16-bit words carry one direction per slot:
- Slot 0 (DO1, Telegram 1): PZD1 OUT = STW1 (PLC → drive); PZD1 IN = ZSW1 (drive → PLC)
- Slot 0 (DO1, Telegram 1): PZD2 OUT = NSOLL_A (PLC → drive); PZD2 IN = NIST_A (drive → PLC)
To change the telegram, open the G120C in Devices & Networks, navigate to Device view → Telegram configuration, and select the desired telegram from the dropdown in the slot. TIA Portal updates the IO addresses automatically.
6. Control Word 1 (STW1) Bit Mapping
STW1 is a 16-bit bitmap encoded by the PLC and transmitted in PZD1 OUT. The PROFIdrive profile defines the following bits, supported by the SINAMICS G120C:
| Bit | Mnemonic | Meaning |
|---|---|---|
| 0 | ON / OFF1 | 0 = OFF1 (ramp to 0 then inhibit pulses); 1 = ON |
| 1 | OFF2 | 0 = coast to stop (pulse inhibit immediate); 1 = OFF2 inactive |
| 2 | OFF3 | 0 = quick stop (ramp via p1135); 1 = OFF3 inactive |
| 3 | Enable pulse | 0 = inhibit power stage; 1 = enable |
| 4 | RFG enable | 0 = freeze ramp-function generator; 1 = enable RFG |
| 5 | RFG start | 0 = ramp output = 0; 1 = ramp output follows input |
| 6 | Setpoint enable | 0 = n_set = 0; 1 = n_set = input from NSOLL_A |
| 7 | Fault acknowledge | 0 → 1 edge resets pending faults (F-class) |
| 8 | JOG 1 | Jog setpoint 1 (p1058) |
| 9 | JOG 2 | Jog setpoint 2 (p1059) |
| 10 | Control by PLC | 0 = local control; 1 = process data (PLC) takes control |
| 11 | Reversal | 0 = forward; 1 = reverse |
| 12 | Speed setpoint invert | 0 = no inversion; 1 = NSOLL_A is negated |
| 13 | Motor potentiometer up | 1 = raise motorized pot setpoint |
| 14 | Motor potentiometer down | 1 = lower motorized pot setpoint |
| 15 | CDS bit 0 | Command data set selection |
The standard start sequence (drive leaves states S1 → S2 → Ready → Switching-on → Operation-enabled) is: 0x047E → 0x047F in 16-bit hex, i.e. STW1 = 047Ehex (binary 0000 0100 0111 1110) followed by 047Fhex (bit 0 set). The reverse sequence is 047F → 047E to command OFF1.
7. Status Word 1 (ZSW1) Bit Mapping
ZSW1 is the 16-bit status bitmap transmitted in PZD1 IN. The PLC reads it from the input process image.
| Bit | Mnemonic | Meaning |
|---|---|---|
| 0 | Ready to switch on | 1 = drive state S2 or higher |
| 1 | Ready to operate | 1 = power supply OK, no faults |
| 2 | Operation enabled | 1 = motor energized, follows setpoint |
| 3 | Fault present | 1 = unacknowledged fault (e.g. F30001 overcurrent) |
| 4 | OFF2 inactive | 1 = OFF2 input inactive |
| 5 | OFF3 inactive | 1 = OFF3 input inactive |
| 6 | Switch-on inhibited | 1 = in state S1 (waiting for ON command) |
| 7 | Alarm present | 1 = non-fatal warning (A-class) |
| 8 | Speed setpoint-actual deviation | 1 = |n_set − n_act| outside tolerance window (p2161) |
| 9 | Control requested | 1 = drive expects PLC control (acknowledges STW1 bit 10) |
| 10 | f or n reached | 1 = |n_act| ≥ p2163 reference reached threshold |
| 11 | I, M, P limit reached | 1 = current/torque/power at limit |
| 12 | Open holding brake | 1 = command to release holding brake |
| 13 | Motor overtemperature | 1 = thermal model warning |
| 14 | Motor rotates forward | 1 = actual speed > 0 |
| 15 | CDS eff | 1 = active command data set |
Bits 0–2, 4, 5, 6 encode the PROFIdrive state machine; PLC code typically uses them as state-transition guards. A state decoder maps the five bits into a 1-of-7 state variable, e.g. eSTATE := 1 (ZSW1.0 AND ZSW1.1 AND ZSW1.2) corresponds to Operation enabled.
8. Setpoint (NSOLL_A) and Actual Speed (NIST_A)
NSOLL_A and NIST_A are 16-bit normalized speed values transmitted in PZD2 OUT and PZD2 IN respectively. The normalization reference is the drive parameter p2000 (reference speed, default 1500 rpm). The mapping is linear:
n_actual [rpm] = NIST_A [hex] / 0x4000 (16384) × p2000
with NIST_A interpreted as signed 16-bit (range −32768…+32767). The drive accepts a setpoint of 0x4000 for full reference speed and 0x2000 for half reference speed. Negative values command reverse rotation; the drive will also respond to STW1 bit 11 (reversal) as an explicit command.
For 32-bit resolution (avoiding the 0.0048 % quantization of NSOLL_A), use Telegram 2 with NSOLL_B / NIST_B, which scales the same p2000 reference over the full 32-bit signed range.
9. Function Block Design — Encoding and Decoding Words
A clean architecture isolates telegram IO from application logic. The reference implementation uses three FBs:
-
FB_DriveTelegram_G120C(per drive): contains IN/OUT variables for STW1, ZSW1, NSOLL_A, NIST_A and helper bit-decode/encode functions. -
FB_DriveControl_G120C(per drive): interprets STW bits into boolean commands (Start, Stop, FaultAck, JOG1, JOG2, Reverse) and packs them into STW1; mirrors ZSW1 bits into a typed status struct. -
FB_DriveScaling: scales engineering-unit RPM/Hz to/from 0x4000 normalized words.
The minimal STW1 encode block in Structured Text (SCL) is:
// FB_DriveControl_G120C
FUNCTION_BLOCK FB_DriveControl_G120C
VAR_INPUT
bStart : BOOL; // ON/OFF1
bCoast : BOOL; // 0 = OFF2 active
bQuickStop : BOOL; // 0 = OFF3 active
bEnablePulse : BOOL;
bRfgEnable : BOOL;
bRfgStart : BOOL;
bSetpointEnable : BOOL;
bFaultAck : BOOL; // edge
bJog1 : BOOL;
bJog2 : BOOL;
bControlByPlc : BOOL;
bReverse : BOOL;
END_VAR
VAR_OUTPUT
stw1 : WORD;
END_VAR
BEGIN
stw1.%X0 := bStart;
stw1.%X1 := NOT bCoast;
stw1.%X2 := NOT bQuickStop;
stw1.%X3 := bEnablePulse;
stw1.%X4 := bRfgEnable;
stw1.%X5 := bRfgStart;
stw1.%X6 := bSetpointEnable;
stw1.%X7 := bFaultAck;
stw1.%X8 := bJog1;
stw1.%X9 := bJog2;
stw1.%X10 := bControlByPlc;
stw1.%X11 := bReverse;
// %X12..%X15 reserved / CDS / motor pot
END_FUNCTION_BLOCK
ZSW1 decode is the inverse, extracting booleans from zsw1.%X0 through zsw1.%X15 and exposing them as named output bits.
10. Scaling with NORM_X and SCALE_X
TIA Portal provides the IEC 61131-3 standard blocks NORM_X and SCALE_X (System → Bit logic → Converter operations) for fast, deterministic scaling without a custom FB. NORM_X maps a real input to a normalized integer 0…27648 (or −27648…27648 for bipolar), and SCALE_X performs the inverse mapping. For PROFINET drive setpoints, use SCALE_X from engineering RPM to 0…16384 (0x4000) followed by REAL_TO_WORD truncation:
rNorm := SCALE_X(IN := rSetpointRpm,
MIN := 0.0,
MAX := 16384.0,
OUT_MIN := 0.0,
OUT_MAX := 16384.0);
wNsoll := REAL_TO_INT(rNorm) AND 16#FFFF;
For the actual value, convert wNist : WORD to iNist : INT, divide by 16384, and multiply by p2000. The DriveLib library provides pre-built blocks LAcyc_NORM_Scale and LAcyc_Telegram_Drive that perform these conversions and slot mappings in one call.
11. HMI Integration
The reference configuration uses a basic HMI (KTP400 Basic or TP700 Comfort) connected to the S7-1200 over PROFINET or via the integrated Ethernet port. Expose the following tags for visualization:
| HMI tag | PLC tag | Data type | Use |
|---|---|---|---|
| Drive.State | eState : INT | 0..15 | State icon, color-coded |
| Drive.SpeedActualRpm | rNact | REAL | Numeric display |
| Drive.SpeedSetpointRpm | rNset | REAL | Numeric I/O field |
| Drive.Current | rCurrent | REAL | Bar graph (A) |
| Drive.FaultWord | wFault | WORD | Alarm view trigger |
| Drive.CmdStart | bStart | BOOL | Button |
| Drive.CmdStop | bStop | BOOL | Button |
| Drive.CmdFaultAck | bFaultAck | BOOL | Button |
| Drive.Healthy | bHealthy | BOOL | Status indicator |
Drive current can be read acyclically from parameter r0027 using the DriveLib acyclic block LAcyc_ReadParameter, which wraps an SFB53 / RDREC. Typical poll cycle is 500 ms to avoid PROFINET warning of acyclic load.
12. Using Siemens DriveLib
The SINAMICS DriveLib library is the recommended starting point for production code. It supplies:
-
LAcyc_Telegram_Drive— packs/unpacks telegram 1, 2, 3, 352 for any SINAMICS G-series drive. -
LAcyc_SINA_SPEED— speed setpoint interface compatible with FB283 / SINA_SPEED from the standard TIA Portal library. -
LAcyc_ReadParameter/LAcyc_WriteParameter— acyclic parameter access (DS47). -
FB_Scale_Rpm,FB_Scale_Percent— engineering-unit converters.
Download DriveLib from the Siemens Industry Online Support entry support.industry.siemens.com and install it via Options > Global libraries > Open library. Drag the relevant FB into your project and instantiate per drive.
The practical engineering wisdom is: if the drive is a Siemens SINAMICS G120/S120/G120C, use DriveLib blocks directly. Writing your own telegram encoder is useful as a learning exercise but is not the most efficient use of maintenance time on a production machine.
13. Third-Party Drive Considerations
Many applications require non-Siemens drives (SEW-Eurodrive MoviFit / Movipro, Omron MX2 / 3G3M2, Yaskawa V1000 / GA700, ABB ACS580). All these drives support the PROFIdrive profile on PROFINET and therefore the same telegram model — but the slot mapping, default setpoint scaling (p2000 equivalent), and bit assignments must be verified against each manufacturer's manual.
| Manufacturer | PROFIdrive profile | Reference speed param | Recommended telegram |
|---|---|---|---|
| Siemens G120C | Full conformance | p2000 | 1 / 2 / 3 / 352 |
| SEW-Eurodrive Movipro | Full conformance | P-0-0100 | 1 / 2 |
| Omron 3G3M2 / MX2 | Subset (AC1 only) | n.a. (frequency-based) | 1 / 102 |
| Yaskawa GA700 | Subset (AC1 only) | o1-03 | 1 |
| ABB ACS580 | Full conformance | 50.01 (speed scale) | 1 / 2 |
The architectural pattern is unchanged: install the manufacturer's GSDML, add the device as an IO Device of the S7-1200, configure a Standard Telegram 1, and write your own DriveTelegram FB (because DriveLib does not cover non-Siemens drives). The DriveLib FBs serve as a template for the encoding/decoding logic.
14. Commissioning and Verification
- Download the project to the S7-1200.
- Assign the PROFINET device name to the G120C via Online > Assign PROFINET device name.
- Place the drive online in Online & Diagnostics > Telegram diagnostics; confirm that all PZDs are being updated without station failure.
- Execute the start sequence by writing STW1 = 0x047E (Idle, pulses inhibited), then after > 20 ms, write 0x047F (Operation enabled). Verify ZSW1 transitions to 0x0231 (bit 0, 1, 2, 4, 5 set → state Operation enabled).
- Write NSOLL_A = 0x1000 (16384 / 4 = 25 % of p2000). Confirm NIST_A returns a non-zero positive value matching the motor RPM.
- Reverse rotation by setting STW1 bit 11; verify ZSW1 bit 14 toggles correctly when crossing zero.
- Trigger a fault (e.g. command 200 % overcurrent via a step setpoint that the ramp cannot follow) and verify that ZSW1 bit 3 sets. Acknowledge with STW1 bit 7 = 1 (rising edge) and confirm ZSW1 bit 3 clears within 50 ms.
- Monitor acyclic drive parameters (r0021 actual speed, r0027 current, r0032 active power) via the DriveLib parameter block.
Acceptance criteria for a successful commissioning: PROFINET station status = "Station OK"; cyclic PZD update time < 4 ms (default 1 ms for 1 ms PROFINET update); no diagnostic alarms; motor reaches reference speed within ±2 %.
15. Troubleshooting Matrix
| Symptom | Probable cause | Action |
|---|---|---|
| PROFINET station failure on the G120C | GSDML version mismatch with drive firmware | Update drive firmware (BOP-2 or Startdrive) to match GSDML; verify r0018 |
| Station OK but no ZSW1 update | PROFINET device name not assigned | Online → Assign PROFINET device name; restart drive |
| ZSW1.0..ZSW1.2 always 0 | Drive in fault state (F30001 / F30002 / F07900) | Read r0947 fault code; clear with STW1 bit 7 rising edge |
| Drive in "Switch-on inhibited" (ZSW1.6 = 1) and won't run | STW1 sequence incorrect — bit 0 dropped to 0 prematurely | Ensure OFF1 command is explicit 0x047E, then 0x047F after ≥ 20 ms |
| Speed actual NIST_A shows correct value, motor does not turn | Power stage not enabled (STW1 bit 3 = 0) or STW1 bit 6 = 0 | Set bit 3 and bit 6 in STW1 |
| Speed setpoint scaling off by 2× | p2000 mismatch between drive commissioning and PLC scaling | Verify p2000 in Startdrive; update PLC FB reference to match |
| Motor runs only in forward, ignores reverse | Function safety SS1 active or direction inhibit p1035 set | Check p1035, p1036; reset to 0 if no function safety present |
| PROFINET warning "Lifetime exceeded" | Excessive acyclic parameter reads | Reduce poll rate on DriveLib acyclic reads; combine into one PDU |
| F07900 (motor blocked) on ramp start | Ramp time too aggressive (p1120 < 0.1 s) | Increase p1120 to 1.0 s; verify load inertia |
| CU does not appear in TIA Portal device catalog | GSD not installed or wrong TIA Portal version | Reinstall GSDML matching TIA Portal version; restart TIA Portal |
| Device name conflict at startup | Duplicate PROFINET device name in subnet | Assign unique name per drive; remove unused devices from the project |
16. Field Notes and Best Practices
When the application requires both SINAMICS G120C (compact, on-machine) and SINAMICS G180 (cabinet, line-side regeneration, e.g. in PCS 7 plants with V90 SP2), the same PROFIdrive telegram structure applies but the parameter numbering is different. The PCS 7 V9.0 SP2 configuration example for SINAMICS G180 PN documents the GSDML choice, the slave-to-master data mapping, and the CFC blocks (CTRL_PCS7) that wrap the telegram. Use that document as a reference for PCS 7 projects; the S7-1200 (non-PCS 7) projects follow the same telegram but use the DriveLib or custom FB described above.
For ET 200S distributed I/O with integrated frequency converters (ICU24 / ICU24F fail-safe), the embedded converter is configured as a sub-module of the ET 200S head, not as a standalone PROFINET device. The TIA Portal documentation page Use of the frequency converter (ET 200S ICU24) covers the slot assignment and parameter access via the ET 200S interface.
Three rules prevent 90 % of field problems:
- Match GSDML to firmware. When the CU firmware is upgraded (e.g. from V4.7 to V5.2), reinstall the matching GSDML before re-downloading the project.
- Always send the OFF1 command explicitly. A STW1 of 0x0000 causes OFF2 + pulse inhibit (coast). Use 0x047E for "drive ready" and 0x047F only during normal operation.
- Use p2000 consistently. Define p2000 once in the drive commissioning and read it via acyclic parameter access into a PLC variable; scale all setpoints against this single source of truth.
Siemens technical support for PROFINET / PROFIdrive configuration is available through the official Industry Online Support portal; use the product search for the SINAMICS G120C and the search keyword "PROFINET telegram" to find firmware-specific FAQ entries.
Which telegram should I select for a SINAMICS G120C on PROFINET with an S7-1200?
Use Standard Telegram 1 (STW1/ZSW1 + NSOLL_A/NIST_A) for most speed-control applications. Use Telegram 2 if you need 32-bit setpoint precision, or Telegram 352 if you require extended diagnostics. Telegram 999 is reserved for free BICO interconnections.
How do I command the drive to start via PROFINET?
Write STW1 = 16#047E (1150 decimal) to bring the drive to "Ready", wait at least 20 ms, then write STW1 = 16#047F (1151 decimal) — setting bit 0 (ON/OFF1) while keeping bits 1, 2, 3, 10, 11 active — to enter "Operation enabled". Monitor ZSW1 bits 0, 1, 2 to confirm the state transition.
How is the 16-bit speed setpoint NSOLL_A scaled?
NSOLL_A is normalized to drive parameter p2000 (default 1500 rpm). The mapping is n_set = NSOLL_A / 0x4000 × p2000. A value of 0x4000 = 100 % reference speed in the forward direction; negative values command reverse.
Can I use the Siemens DriveLib with non-Siemens drives?
No. DriveLib blocks are parameterized for SINAMICS parameter numbers (r0027, r0032, etc.). For SEW-Eurodrive, Omron, Yaskawa, or ABB drives, install the manufacturer's GSDML, write a custom DriveTelegram FB, and reference the manufacturer's reference-speed parameter instead of p2000.
What causes "PROFINET station failure" on a G120C at startup?
The two most common causes are (1) PROFINET device name not assigned to the drive, and (2) GSDML version mismatch with the control unit firmware. Assign the name via "Online > Assign PROFINET device name", and reinstall the GSDML that matches the CU firmware version reported by parameter r0018.