Configuring Siemens G120 Speed Reference via S7-1200 SINA_SPEED

David Krause16 min read
SiemensTutorial / How-toVFD / Drives
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. Problem Definition and Solution Strategy

A SINAMICS G120 connected to a SIMATIC S7-1200 via PROFINET is normally driven end-to-end from the PLC: the SINA_SPEED function block feeds control word 1 (STW1) over the PROFIdrive telegram, and the same telegram delivers the speed setpoint (NSOLL) to the inverter. In this application, however, only the digital commands (start, stop, jog, reverse) come from the PLC, while the speed reference must come from a wired potentiometer connected directly to the G120's analog input. No HMI is available, and the operator must be able to vary speed locally at the cabinet door with a 10 kΩ panel-mount pot.

The clean solution exploits the independence between the SINAMICS command source (P0700) and the setpoint source (P1000). The PLC remains the sole source of control words, while P1000 routes the speed reference to the analog input. With Standard Telegram 1 selected, SINA_SPEED only exchanges STW1 and ZSW1, and the drive uses the analog input magnitude (modulated by STW1 bit 11 for direction) as the speed reference. Telegrams 2 or 3 carry NSOLL/NIST setpoint values and would create a conflict with the analog input strategy unless they were deliberately overridden.

Architectural constraint: SINA_SPEED does not dictate which physical source the drive must use for the setpoint. The PROFIdrive telegram always carries the control word, but the speed setpoint is a separate signal path inside the SINAMICS. Selecting analog input for the setpoint does not block SINA_SPEED from starting or stopping the drive.

2. Prerequisites

Item Specification Notes
SINAMICS G120 Control Unit CU240E-2 PN, CU240E-2 PN-F, CU250S-2 PN, or equivalent PROFINET CU CU240B-2 has no PROFINET port. Match the order number (e.g., 6SL3246-0BA22-1FA0) when adding the device to TIA Portal.
Power Module PM240-2 or PM250 sized to motor Match motor FLA plus 1.25× service factor
SIMATIC S7-1200 CPU CPU 1214C DC/DC/DC, 1215C, or higher with PROFINET interface Firmware ≥ V4.2 recommended; example part 6ES7214-1AG40-0XB0
Potentiometer 1 kΩ to 10 kΩ, linear (B) taper, ≥ 0.25 W, panel mount 10 kΩ is the most common industrial value. Audio taper (A) is wrong for proportional control.
Shielded twisted-pair cable 22 AWG minimum, e.g., Belden 8761 Maximum 30 m for 0–10 V without buffer amplifier
TIA Portal V16 SP1 minimum, V17 or V18 recommended Includes SINAMICS Startdrive option
GSDML file GSDML-V*-Siemens-SINAMICS_G120_*-PN.xml Install via Options → Manage general station description files (GSD)
SINAMICS firmware V4.7 SP10 minimum, V5.2 recommended Check via r0018 in the drive

Verify the SINAMICS firmware version online in TIA Portal: connect to the drive, open Parameters → All parameters, filter for r0018, and confirm the firmware build before proceeding.

3. Hardware Wiring of the Potentiometer to the G120 Analog Input

The CU240E-2 PN exposes a 0–10 V reference and a differential analog input on the low-voltage terminal block. Wire the potentiometer as a three-terminal voltage divider:

CU240E-2 PN Terminal Signal Potentiometer Connection
1 +10 V reference output (10 mA max) One end of resistive element
2 GND (analog ground) Other end of resistive element
3 AI0+ (analog input 0 positive) Wiper
4 AI0− (analog input 0 negative) Jumper to terminal 2 for single-ended

Use shielded twisted-pair cable between the potentiometer and the CU. Ground the shield at the CU end only (terminal 2 or the shield clamp on the control unit housing). Maximum recommended run length for a 0–10 V signal is 30 m; beyond that, switch to a 4–20 mA current loop with a 500 Ω shunt resistor to avoid voltage drop and noise pickup.

Shielding rule: Tie the shield to ground at one end only — the drive end — to avoid ground loops that inject 50/60 Hz ripple into the analog signal. If the cable passes through a junction box, continue the shield through the box without breaking it, and bond the box itself to the cabinet ground bar.

The analog input on the CU240E-2 PN has an input impedance above 100 kΩ in voltage mode, so the 10 kΩ potentiometer draws under 1 mA from the 10 V reference — well below the 10 mA terminal rating. If you must use a higher-value pot (e.g., 47 kΩ for low-power applications), increase P0757[0] and P0759[0] accordingly to match the scaled input range.

4. SINAMICS G120 Parameter Map for Analog Speed Reference

The following parameters must be written to the drive. They are accessible via TIA Portal → drive device → Parameters → Online, via the BOP-2/IOP-2, or via the SINA_PARA function block from a PLC routine.

Parameter Description Value Comment
P0010 Commissioning parameter filter 1 Enter commissioning mode before writing motor data
P0100 Motor frequency standard 0 (Europe, 50 Hz, kW) or 1 (N. America, 60 Hz, hp) Match site standard
P0304 Motor rated voltage e.g., 400 V From motor nameplate
P0305 Motor rated current e.g., 5.0 A From motor nameplate
P0307 Motor rated power e.g., 2.2 kW From motor nameplate
P0310 Motor rated frequency e.g., 50 Hz From motor nameplate
P0311 Motor rated speed e.g., 1450 rpm From motor nameplate
P0335 Motor cooling 0 (self-cooled) or 1 (forced-cooled) Affects thermal model
P0010 Commissioning filter 0 Exit commissioning before drive will run
P0700 Command source 2 or 6 (firmware dependent) Selects PROFIdrive/PROFINET for STW1 from PLC
P1000[0] Main setpoint source 2 (Analog setpoint 1) Routes AI0 to main setpoint pipeline
P1070[0] Main setpoint connector r0755[0] (BICO: 755.0) Connect AI0 actual to main setpoint
P0756[0] AI0 type 0 (unipolar voltage 0–10 V) Matches potentiometer
P0757[0] AI0 x1 input value 0 V Minimum input
P0758[0] AI0 y1 output value 0 % Output at minimum
P0759[0] AI0 x2 input value 10 V Maximum input
P0760[0] AI0 y2 output value 100 % Output at maximum
P0761[0] AI0 deadband width 0 V (0.1 V for noisy sites) Suppresses low-voltage jitter
P1080 Minimum speed 0 rpm Lower clamp
P1082 Maximum speed 1450 rpm (motor rated) Upper clamp; 100 % reference
P1120 Ramp-up time 10 s Adjust to application
P1121 Ramp-down time 10 s Adjust to application
P1135 OFF3 ramp-down time 3 s Fast-stop ramp
P0971 Save parameters to ROM 1 Commit changes to non-volatile memory
Parameter value note: P0700 values vary by SINAMICS firmware version. On firmware V4.7 SP10 and later, P0700 = 6 selects PROFINET as the command source. On older firmware (V4.5 and earlier) the value is 2. Always cross-check with the SINAMICS G120 Parameter Manual for the firmware you have installed (read r0018 online before commissioning).

When P1000[0] = 2, parameter P1070[0] defaults to r0755[0] automatically. If you previously changed P1070[0] to a non-AI source, you must re-assign it to 755.0 in the BICO editor. Without this re-assignment, the analog input is sampled but never reaches the main setpoint pipeline.

5. Configuring the Drive in TIA Portal

  1. Open the TIA Portal project containing the S7-1200 CPU and the SINAMICS G120 device.
  2. If the G120 is not yet in the project, install its GSDML first: Options → Manage general station description files (GSD), browse to the GSDML, and confirm.
  3. Add the SINAMICS G120 from the hardware catalog under Drives & Starters → SINAMICS → SINAMICS G120, matching the order number of your CU (e.g., 6SL3246-0BA22-1FA0).
  4. Drag the drive onto the PROFINET subnet of the CPU. Assign a unique IP address (e.g., 192.168.0.20) and a PROFINET device name (e.g., "g120-cu240e"). The device name must match what you assign later with the Topology Editor or PRONETA.
  5. Open the drive's device view. Under Device configuration → PROFINET interface → Telegram configuration, insert Standard Telegram 1 (2 PZD in / 2 PZD out). Do not insert Standard Telegram 2 or 3 — they include NSOLL/NIST, which would conflict with the analog setpoint strategy unless P1000 is re-routed.
  6. Compile the project (Ctrl+B) and download the hardware configuration to the CPU and the drive. Confirm the drive accepts the new name by checking the BF LED transitions from red to off.

The Standard Telegram 1 assignment delivers STW1 (2 bytes) from the PLC to the drive and returns ZSW1 (2 bytes) plus the actual speed NIST (in NIST mode) back to the PLC. The cyclic I/O exchange updates every PROFINET bus cycle, typically 1–4 ms on a 1 ms send clock.

6. SINA_SPEED Block Integration

The SINA_SPEED block (FB285 in older library versions, FB30002 in TIA V17) from the SINAMICS blocks library is the standard interface to a SINAMICS drive over PROFINET. Add it to a function block or OB in the S7-1200 program and wire the inputs as follows:

Inputs

Input Data Type Wiring Meaning
LADDR HW_IO HW identifier of the drive (from PLC system constants) PROFINET logical address
Enable BOOL Run command from HMI or digital input Drive enable / start (STW1 bit 0 via block logic)
FaultAck BOOL Rising edge from a "Reset" button Acknowledge faults (STW1 bit 7)
SpeedSetpoint REAL 0.0 (constant) Ignored when P1000 = analog
SpeedFixed[1..15] ARRAY OF REAL Jog speed e.g., 200 rpm Fixed speeds via PROFIdrive (optional)
CtrlFlags.SlowStop BOOL E-STOP or coast-stop button OFF1 / coast to stop
CtrlFlags.FastStop BOOL Fast stop button OFF3 quick ramp
CtrlFlags.Reverse BOOL Forward/Reverse selector STW1 bit 11
CtrlFlags.EnableJogPos BOOL Jog forward pushbutton STW1 bit 8 (ENA_JOG_RIGHT)
CtrlFlags.EnableJogNeg BOOL Jog reverse pushbutton STW1 bit 9 (ENA_JOG_LEFT)
ConfigAxis.RefSpeed REAL 1450.0 (motor rated rpm) 100 % reference for fixed speeds
ConfigAxis.MaxSpeed REAL 1500.0 Upper clamp
ConfigAxis.MinSpeed REAL 0.0 Lower clamp

Outputs

Output Data Type Meaning
AxisStatus.Enabled BOOL Drive is enabled and running
AxisStatus.Fault BOOL Active fault present
AxisStatus.ReadyToOperate BOOL Ready to receive ON command
ActualSpeed REAL Current speed in rpm
ActualTorque REAL Current torque in Nm
ActualCurrent REAL Current in A

Minimum required F-block call (SCL example for OB1):

// One-time initialization in OB100 / startup
g120_sina.ConfigAxis.RefSpeed  := 1450.0;     // motor rated speed
g120_sina.ConfigAxis.MaxSpeed  := 1500.0;     // upper clamp
g120_sina.ConfigAxis.MinSpeed  := 0.0;        // lower clamp
// Cyclic call in OB1
g120_sina.LADDR                 := "G120_CU240E".HW_ID;
g120_sina.Enable                := start_cmd AND NOT estop;
g120_sina.FaultAck              := reset_pulse;
g120_sina.SpeedSetpoint         := 0.0;       // drive ignores, P1000 = analog
g120_sina.CtrlFlags.Reverse     := dir_reverse;
g120_sina.CtrlFlags.EnableJogPos := jog_fwd;
g120_sina.CtrlFlags.EnableJogNeg := jog_rev;
g120_sina();
running     := g120_sina.AxisStatus.Enabled;
speed_rpm   := g120_sina.ActualSpeed;
fault_active := g120_sina.AxisStatus.Fault;

7. Setpoint Source Routing and Direction Control

With Telegram 1 selected and P0700 = 6 (PROFINET), STW1 from SINA_SPEED drives ON/OFF1, OFF2, OFF3, enable ramp generator, enable setpoint, ramp-function-generator enable, jog bits, and the reverse bit. The setpoint pipeline inside the drive runs as follows:

  1. Analog input AI0 is sampled and normalized to a percentage (0–100 %) by P0756–P0760; the live value is exposed at r0755[0].
  2. P1070[0] = r0755[0] routes the AI0 percentage into the main setpoint connector.
  3. P1000[0] = 2 confirms "Analog setpoint 1" as the main setpoint source. P1070 then defaults to r0755[0] when P1000 is set to 2.
  4. The setpoint passes through the ramp-function generator (P1120 ramp-up, P1121 ramp-down).
  5. P1080 (min) and P1082 (max) clamp the setpoint.
  6. Direction is taken from STW1 bit 11 (set by SINA_SPEED Reverse input). With a unipolar 0–10 V potentiometer, the magnitude is positive; bit 11 reverses the sign.
Bipolar analog input alternative: If your potentiometer can swing to negative voltage, set P0756[0] = 2 (bipolar −10 V to +10 V). Then direction is implicit in the input polarity. STW1 bit 11 must still be off (forward) or the drive will command zero. Bipolar mode is rarely needed for a panel-mounted pot.

The decoupling of command source (P0700) and setpoint source (P1000) is one of the most useful features of the SINAMICS platform. It allows a SINA_SPEED-based PROFINET control loop to coexist with a fully analog speed reference — a configuration commonly found in retrofit projects where a new PLC is being added but the operator interface is being retained.

8. Speed Scaling, Ramps, and Limits

With the default AI scaling (0 V = 0 %, 10 V = 100 %), the motor speed tracks the potentiometer between P1080 and P1082. Use the formula:

n_setpoint (rpm) = P1080 + (P1082 − P1080) × (V_pot / 10 V)

Example: P1080 = 0, P1082 = 1450, V_pot = 5 V → n_setpoint = 0 + (1450 − 0) × (5/10) = 725 rpm.

Practical ramp settings:

  • P1120 (ramp-up): 5–20 s for general-purpose machinery. Conveyor belts: 5 s. Centrifugal pumps: 10 s. Fans: 15–30 s.
  • P1121 (ramp-down): equal to or slightly longer than P1120 to avoid regenerative faults on low-inertia loads.
  • P1135 (OFF3 ramp): typically 3 s for fast-stop compliance with category 1 stops.

Set P1082 to the motor's rated speed to get a 1:1 potentiometer-to-speed ratio. If a coarser ratio is desired (e.g., to use only 50 % of the pot's rotation for full speed), scale P0760[0] below 100 % or reduce P1082. The lower clamp P1080 also doubles as a creep-speed minimum if you want the pot to never reach zero RPM.

9. PROFIdrive Telegram and Drive State Machine

The PROFIdrive profile (PNO order no. 3.172) defines the drive state machine that SINA_SPEED implements through STW1 bit manipulation. The key states for this application are:

State STW1 bits set Trigger from SINA_SPEED
S1 (Switching on inhibited) OFF1=0, OFF2=1, OFF3=1 Initial; no Enable input
S2 (Ready to switch on) OFF1=1, OFF2=1, OFF3=1 After Enable=TRUE and no faults
S3 (Switched on) OFF1=1, OFF2=1, OFF3=1, ON=1 SINA_SPEED sets ON after ready
S4 (Operation) All enables true, no OFF commands Ramp-function generator active
Reverse during S4 Bit 11 = 1 (no OFF) CtrlFlags.Reverse flips bit 11 without stopping

ZSW1 mirrors the state back to the PLC. The bit assignment in ZSW1 enables the SINA_SPEED block to populate its AxisStatus output structure without any custom decoding. Always read ZSW1 in trace mode during commissioning to confirm the state transitions follow your Enable and FaultAck inputs.

10. Commissioning and Verification

  1. Power up the drive. Verify there is no active fault (r2139 bit 3 should be 0). The drive's RDY LED should be solid green; the BF LED should be off.
  2. Establish PROFINET connection. Confirm the BF (bus fault) LED on the CU is off and the RDY LED is solid green. The LINK LED on the PROFINET port should be steady when the cable is connected.
  3. From TIA Portal, go online with the drive and confirm that SINA_SPEED has built a clean cyclic link: AxisStatus.ReadyToOperate should be TRUE after Enable is set.
  4. Set Enable = TRUE from the PLC. Confirm the motor begins to turn at zero speed (P1080). Slowly rotate the potentiometer; speed should rise linearly to P1082.
  5. Toggle Reverse via SINA_SPEED CtrlFlags.Reverse. Confirm the motor direction reverses while speed tracks the potentiometer.
  6. Toggle EnableJogPos and EnableJogNeg. Confirm the motor runs at the configured fixed jog speed.
  7. Trigger SlowStop and FastStop. Confirm the motor stops within the configured ramp times (P1121 for slow, P1135 for fast).
  8. Force a fault (e.g., trip OFF2 by removing Enable while running). Confirm the drive faults, sets ZSW1 fault bit, and requires FaultAck to clear.
  9. When everything is verified, set P0971 = 1 to write all parameters to the drive's non-volatile memory. Wait for the acknowledgment (the BOP-2 displays "busy" briefly, then returns to the standard display).
Save sequence: P0971 = 1 triggers a RAM-to-ROM copy that takes 3–10 s. Do not power down the drive during this window or parameter corruption can occur. The drive automatically performs a controlled OFF1 if running.

11. Troubleshooting Matrix

Symptom Likely Root Cause Verification Fix
Drive ignores potentiometer, runs at fixed speed P1000[0] still set to PROFIdrive Read P1000[0] online; should be 2 Set P1000[0] = 2, save with P0971 = 1
Motor runs at 0 rpm despite Enable OFF1 bit not set in STW1 Monitor STW1 with trace; bit 0 should be 1 Confirm SINA_SPEED Enable input is TRUE and FaultAck is not latched
Speed does not reach P1082 AI scaling limit P0760[0] < 100 % Read P0760[0] online Set P0760[0] = 100 % or increase P1082
Speed is erratic, jumps in steps Shield not grounded or analog noise Scope AI0+ to GND; check for 50/60 Hz ripple Re-route shield to CU terminal 2 only, increase P0761[0] to 0.1–0.5 V
Drive faults F07900 / F30002 on start Motor data not entered or P0010 not returned to 0 Read P0010; should be 0 when running Enter motor nameplate, set P0010 = 0, then P0970 = 1 to save
Reverse does not work STW1 bit 11 not being set Monitor CtrlFlags.Reverse in the PLC Verify the tag driving CtrlFlags.Reverse updates
Jog does not engage Jog bits require a specific sequence in STW1 Read r0898 (control word status) Use the dedicated EnableJogPos/EnableJogNeg SINA_SPEED inputs
BF LED on CU is red PROFINET connection lost Check CPU in TIA Portal online diagnostics Verify IP address and device name match the configuration
Drive runs at full speed with pot at minimum AI0+ and AI0- swapped or pot wired wrong Measure voltage at terminal 3 vs terminal 2 Re-wire potentiometer; verify wiper goes to AI0+
F31117 / PROFIdrive telegram error Telegram mismatch between SINA_SPEED and drive Check drive telegram configuration Set drive to Standard Telegram 1 matching SINA_SPEED call
Speed tracks pot but drive won't enable Fault not cleared Read r0947 (fault code) Set FaultAck rising edge in PLC
Motor ramps but overshoots or oscillates Speed controller not optimized Check r1349 (actual torque ripple) Run P1960 = 1 (rotating measurement) or P1910 = 1 (static measurement)
Pot reading noisy in TIA trace Scan time too long Check AI0 scan time setting (p0753) Reduce p0753 to 4 ms and average with P0761 deadband

FAQ

Can I keep the PLC's SINA_SPEED speed setpoint and add the potentiometer as a supplementary reference?

Yes. Configure P1000[0] = 6 (PROFIdrive) for the main setpoint and P1000[1] = 2 (Analog) for the supplementary setpoint. P1070[0] holds the main PROFIdrive value, and P1075[0] = r0755[0] sums the potentiometer. The two are added in the setpoint pipeline after the ramp generator unless you use P1076 (setpoint source main/extra).

My G120 CU has different terminals than the CU240E-2 PN. Where do I wire the potentiometer?

Look up the "Connection diagram" in the operating instructions for your specific CU. The reference terminals (+10 V / GND) and analog input numbering vary. For example, CU240B-2 PN uses terminals 1/2/3/4 but with the same polarity convention. The CU230P-2 has terminals 12/13/14/15 for AI0 and +10 V at terminal 10. The parameter set for AI scaling (P0756–P0761) is identical across the G120 family.

Why does the drive ignore the potentiometer even though P1000[0] = 2?

Check P1070[0]. If it is left at a non-r0755 source (e.g., 0 = no setpoint), the analog input is not connected to the main setpoint pipeline. Set P1070[0] = 755.0 (the SINAMICS BICO shorthand for r0755[0]). Also confirm P0010 = 0 — drive ignores setpoint changes while in commissioning mode.

Can I replace the potentiometer with a 4–20 mA signal from a separate controller?

Yes. Set P0756[0] = 1 (unipolar current 0–20 mA) for a 0–20 mA loop, or P0756[0] = 1 with P0757[0] = 4 mA and P0759[0] = 20 mA for a standard 4–20 mA loop. Wire the positive conductor to terminal 3 (AI0+) and the negative to terminal 2 (GND). AI0- (terminal 4) can be left open for a floating single-ended current loop or tied to GND. The 0–10 V reference on terminal 1 is unused in this case.

How do I prevent the motor from creeping at very low potentiometer voltages?

Set P0761[0] to 0.1–0.5 V to create a deadband. Below the threshold, the AI output is forced to 0 %, so the motor stays at P1080. Alternatively, raise P1080 to a small positive value (e.g., 30 rpm) to require a minimum setpoint before motion begins. The deadband also suppresses noise from a worn potentiometer near zero.

Back to blog