1. Problem Overview
CPU 1214C (MLFB 6ES7 214-1AG40-0XB0, firmware range up to V4.6) integrates two high-speed pulse outputs (PTO) on terminals Q0.0 and Q0.1 capable of generating pulse + direction (Pn/Dir), pulse + pulse (CW/CCW), or A/B quadrature waveforms at up to 100 kHz onboard. The DC/DC/DC variants source current from a MOSFET push-pull stage: when activated, Q0.0 / Q0.1 switch +24 VDC to the field terminal with the load return wired to the module's M terminal. This is fundamentally a PNP / sourcing output.
Many third-party servo drives — including the SMC LECSA series used for linear actuator control — present pulse inputs that expect a sinking (NPN) drive, where the controller pulls the input toward 0 V to register a pulse. The mismatch leaves the drive with no count edges, the position counter never increments, and the actuator does not move. The same physical signal that works for a Siemens SINAMICS V90 in PNP-input mode is invisible to a SMC LECSA pulse-train input until the I/O direction is corrected.
Reference: S7-1200 Programmable Controller System Manual (entry ID 109751634), Chapter 6 "Pulse Train Output (PTO)".
2. Affected Hardware and Identification
| MLFB | Description | Output type | Max PTO freq. |
|---|---|---|---|
| 6ES7 214-1AG40-0XB0 | CPU 1214C DC/DC/DC | MOSFET sourcing | 100 kHz (Q0.0/Q0.1) |
| 6ES7 214-1AG31-0XB0 | CPU 1214C DC/DC/DC (predecessor) | MOSFET sourcing | 100 kHz |
| 6ES7 214-1AG04-0XB0 | CPU 1214C DC/DC/DC (legacy) | MOSFET sourcing | 100 kHz |
| 6ES7 222-1BD30-0XB0 | SB 1222 DQ 4 x 24 VDC | Source or sink (selectable) | 200 kHz |
| 6ES7 222-1AD30-0XB0 | SB 1222 DQ 4 x 5 VDC | Source or sink (selectable) | 200 kHz |
| 6ES7 222-1BF30-0XB0 | SB 1222 DQ 4 x 24 VDC (slow) | Source or sink | 0.1 kHz |
The trailing 5th digit of the MLFB encodes the firmware generation (A = 1st, B = 2nd, etc.) and the 6th digit encodes the function set. The "G" in 1AG40 indicates a DC/DC/DC variant; "E" would be DC/DC/Relay. Always read the order code on the side label of the CPU before assuming output type. Reference: S7-1200 Automation System Manual entry 109744228.
3. PTO Signal Topology — Source vs Sink
The S7-1200 PTO pulse train is generated by the CPU's motion-control firmware on the high-speed outputs (HSO). For the DC/DC/DC CPU:
- Q0.0 = Pulse (P)
- Q0.1 = Direction (D) when configured as Pn/Dir
- Q0.0 / Q0.1 = A / B quadrature or CW / CCW pairs under other configuration modes
On a DC/DC/DC CPU the high-speed outputs are implemented as current-sourcing MOSFET half-bridges. Driving the output high applies +24 VDC to the terminal. The corresponding load return must be wired to the module's M terminal. The output cannot sink current — it will not pull the terminal to 0 V actively; that role must be performed by the input stage of the receiving device or by an external pull-down.
The SMC LECSA pulse-train input (referred to in SMC documentation as "Pulse train input (open collector compatible)") expects the controller to pull the input down to 0 V for an active pulse. Connecting a sourcing output directly yields a high-idle / high-active signal; the drive input sees a constant logic-1, no edges, no motion.
L+ terminal and +24 VDC to the M terminal to invert the output polarity creates a 48 VDC rail-to-rail stress across the output MOSFETs. It is not supported by Siemens and will damage the CPU. Use an approved signal board or signal-conditioning module instead.4. Drive-Side Requirements (SMC LECSA Family)
The SMC LECSA actuator is supplied in two control variants:
- DI source (P-type) — fixed-position mode using digital inputs and an internal point table (manual §6.2 / §7.4 of the LECSA manual). No PTO required.
- Pulse-train input mode — servo follows external pulse + direction. Input stage is open-collector / NPN style, requiring sink current from the controller.
When the application has a small number of fixed positions, switching the drive to point-table mode (P-mode) eliminates the polarity conflict entirely — the actuator positions itself from its own table using only 24 V digital commands from standard PLC outputs. This is the most robust engineering path for a pick-and-place cell with discrete stroke lengths.
5. Solution A — Siemens SB 1222 Signal Board (Recommended)
The SB 1222 DQ 4 plug-in signal board (6ES7 222-1BD30-0XB0, 200 kHz, 24 V; or 6ES7 222-1AD30-0XB0, 200 kHz, 5 V) is the only Siemens-blessed solution that produces a true sinking (NPN) output at PLC-level. The signal board installs in the top socket of the CPU and is addressed in the TIA Portal hardware catalog as SB 1222. Its outputs use a totem-pole stage that can be wired NPN or PNP from the field side, and it supports all four PTO modes at 200 kHz — twice the frequency ceiling of the onboard outputs.
Wiring (NPN / sink mode):
- Connect field +24 VDC to the SB 1222 common terminal.
- Wire the drive pulse-train input to one SB output terminal and the drive direction input to a second output terminal.
- Return the load side of the drive input to 0 V (M of the SB).
- Configure the SB in TIA Portal device configuration; under Properties > DO channel select the new PTO assignment
PTO1/PTO2 on SB.
Reference: S7-1200 System Manual, Section 6.1.4 "Signal board SB 1222".
6. Solution B — High-Speed Optocoupler Interface
For sites where the signal board slot is already occupied or the application requires 100 kHz + complete galvanic isolation, a high-speed optocoupler module translates the PLC's sourcing output into a clean sinking signal at the drive end. Phoenix Contact PLC-OSC units in the 100 kHz class are a field-proven choice:
- Phoenix Contact PLC-OSC-24DC/24DC/100KHZ — 2902970: 24 V input / 24 V output, 100 kHz, push-pull output, DIN-rail mount.
- Phoenix Contact PLC-OSC-24DC/24DC/2 — 2964319: 24 V I/O, ≈15 kHz only — unsuitable for servo positioning.
Wire the PLC Q0.0 pulse output into the input of the optocoupler; wire the optocoupler's output stage to the SMC pulse input. Direction goes through a second channel. The optocoupler performs level shifting and inversion in one stage; verify the output is wired as NPN (load between output and +24 V, output switches to 0 V).
7. Solution C — Discrete PNP-to-NPN Buffer
A discrete PNP-to-NPN converter using a buffer IC with embedded Darlington pairs (e.g. ULN2003A, ULN2803A, or an 8-channel TPIC6B595 shift register) provides an inexpensive, field-repairable path. Wire the PLC sourcing output to the input pin of the ULN2003A; the corresponding open-collector output then pulls the drive input to 0 V when the PLC pulse is high. Add a 4.7 kΩ pull-up on the PLC side and a 2.2 kΩ pull-up on the drive side to 24 V. The ULN2003A is rated to 500 mA per channel and 50 V, more than sufficient for a pulse-train input.
| Solution | Frequency limit | Galvanic isolation | Cost | Field-replaceable |
|---|---|---|---|---|
| SB 1222 (24 V, 200 kHz) | 200 kHz | No (logic only) | Medium | Plug-in module |
| SB 1222 (5 V, 200 kHz) | 200 kHz | No | Medium | Plug-in module |
| PLC-OSC 2902970 | 100 kHz | Yes (5 kV) | Medium | DIN-rail |
| ULN2003A discrete | ~1 MHz | No | Low | Socketed IC |
8. TIA Portal Configuration of the PTO
- Open the project in TIA Portal V15.1 or later (V17+ recommended for firmware V4.5/4.6 CPUs).
- Open Devices & Networks, select the CPU, and switch to Device view.
- In the device catalog, expand PLC > SIMATIC S7-1200 > Signal boards and drag the SB 1222 onto the SB slot of the CPU if using the signal-board path.
- Open Technology objects > Add new object > Motion Control > TO_Axis_PTO.
- Configure the PTO:
- Pulse output: Q0.0 (onboard) or SB output (SB path)
- Direction output: Q0.1 (onboard) or SB output (SB path)
- Signal type: Pulse and direction (default for SMC LECSA)
- Maximum frequency: 100 000 Hz (onboard) or 200 000 Hz (SB)
- Pulse generator: 24 V (onboard) or 5 V / 24 V per SB variant
- Configure mechanics (lead screw pitch, gearbox ratio) and dynamics (acceleration, deceleration, jerk limits) appropriate for the linear actuator.
- Compile the hardware configuration and download to the CPU.
Reference: TIA Portal help: "Configuring a PTO axis".
9. PLCopen Motion Blocks — MC_Power, MC_Reset, MC_Jog
Once the axis is configured, the S7-1200 motion-control runtime exposes PLCopen-style function blocks in the Instructions > Motion Control task card:
-
MC_Power — switches the axis to "operational enable". Without this, MC_Jog will not generate pulses and will return
ErrorID = 0x8001(axis not enabled) on rising edge of Jog. - MC_Reset — acknowledges axis errors. Required after a fault, after a missing enable, or after re-powering the drive.
-
MC_Jog — runs the axis at
VelocitywhileJogForwardorJogBackwardis TRUE.Velocityis the in-line speed setpoint in mm/s or pulses/s, depending on the configured unit system. - MC_MoveAbsolute / MC_MoveRelative — for the actual pick-and-place position moves.
Sample structured text for a jog cycle:
// Enable the axis
IF bEnableServo THEN
MC_Power(Axis := Axis_1,
Enable := TRUE,
Status => bAxisEnabled,
Error => bPowerErr,
ErrorID => wPowerErrID);
END_IF;
// Reset any latched error
IF bResetRequest THEN
MC_Reset(Axis := Axis_1,
Execute := TRUE,
Done => bResetDone,
Error => bResetErr,
ErrorID => wResetErrID);
END_IF;
// Forward jog at 50 mm/s while bJogFwd held
MC_Jog(Axis := Axis_1,
JogForward := bJogFwd,
JogBackward := bJogBack,
Velocity := 50.0,
Done => bJogDone,
Busy => bJogBusy,
CommandAborted => bJogAbort,
Error => bJogErr,
ErrorID => wJogErrID);
Common error IDs from the motion-control runtime:
| ErrorID (hex) | Meaning | Remedy |
|---|---|---|
| 0x8001 | Axis not enabled | Set MC_Power.Enable := TRUE first. |
| 0x8002 | Axis already enabled by another instance | Use a single MC_Power FB. |
| 0x8005 | Axis disabled by MC_Power (negative edge) | Acknowledge and re-enable. |
| 0x8011 | Axis in error state | Call MC_Reset. |
| 0x8020 | Configuration error | Re-check axis configuration in TIA Portal. |
| 0x8080 | PTO output already in use | Check for duplicate axis assignment to Q0.0/Q0.1. |
10. Verifying That the PTO is Active
When MC_Jog reports Busy = TRUE but the drive is silent, the first question is always: are pulses actually leaving the PLC? Five independent methods can confirm it.
-
Watch-table status. In online mode, force the jog bits and monitor
Axis_1.StatusWord. BitAxisState = 7(ConstantVelocity) and bitMotionCommand = 1(Jog) confirm the runtime is driving the axis. - PTO status LED. The CPU Q0.0 / Q0.1 LEDs blink at the configured pulse rate. At low frequency (e.g. 10 Hz) the blink is visible to the eye; at 50 kHz it appears as a steady half-brightness glow.
- Oscilloscope on the output terminal. Connect a scope to Q0.0 (or the SB output) referenced to the module's M. With MC_Jog at 1 kHz you will see a clean 50/50 duty cycle square wave transitioning between 0 V and 24 V.
- Logic analyzer or PLC fast counter. Route Q0.0 into one of the onboard high-speed counters (HSC) on I0.0–I0.5; the HSC count should match the expected number of pulses per jog period.
- Drive input monitor. The SMC LECSA exposes the pulse-count feedback word in its object dictionary; if the count remains at zero, the signal is not reaching the drive input (polarity, wiring, or drive mode).
11. Wiring Procedure for the Pick-and-Place Cell
- Power down the panel and verify 0 V on the CPU power terminals with a DMM.
- On the SMC LECSA, set the pulse-train mode (parameter PNP/NPN input type per SMC manual §10) and configure the input function to "pulse + direction".
- Install the chosen interface: SB 1222, PLC-OSC 2902970, or ULN2003A board. Wire +24 VDC and 0 VDC from a clean 24 V supply, separate from the valve solenoid supply.
- Connect the pulse output to the drive's pulse input, direction output to the drive's direction input. Wire drive commons to the interface's 0 V terminal.
- Wire the drive's alarm / ready / completion outputs back to standard digital inputs on the CPU for fault handling.
- Connect the pneumatic up/down solenoid through a standard digital output and a separate 5/2 valve.
- Power the panel. In TIA Portal, go online, expand Technology objects > Axis_1 > Commissioning, and run a 1 Hz jog for 200 pulses; verify the count via the drive feedback.
- Step the jog frequency to the operating speed (typically 5–20 kHz for a pick-and-place linear actuator) and confirm motion.
12. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic | Fix |
|---|---|---|---|
| MC_Jog Busy=TRUE, drive silent, count = 0 | PNP/NPN polarity mismatch | Scope on Q0.0, then on drive input | Install SB 1222 or optocoupler |
| MC_Jog Busy=FALSE, ErrorID 0x8001 | MC_Power not enabled | Watch table: Axis_1.Status | Hold MC_Power.Enable = TRUE |
| MC_Jog Busy=FALSE, ErrorID 0x8011 | Drive alarm, axis latched | Check drive alarm code | MC_Reset, then clear drive fault |
| Drive counts correctly, axis drifts | Mechanical backlash or wrong units | Measure lead screw pitch | Re-enter mechanics in axis config |
| CPU goes to STOP shortly after jog start | Watchdog / OB1 scan overrun | Online & diagnostics | Reduce MC_Jog velocity / raise cycle time |
| Direction wrong (positive command moves negative) | Direction output inverted | Toggle Invert direction in axis config | Check box in axis configuration |
| Output pulse train present on scope, drive still silent | Drive set to point-table mode (P-type) | Read drive parameter Pn000 | Set drive to pulse-train input mode |
13. Safety, EMC, and Field-Commissioning Notes
- Keep the pulse and direction pairs in a shielded twisted pair; ground the shield at the cabinet end only.
- Run pulse and direction cables in a separate conduit from the AC variable-frequency drive output cables (typically the SMC actuator's own stepper drive); cross only at 90°.
- When using a PLC-OSC optocoupler, the 5 kV isolation removes ground-loop noise that often corrupts counts at higher frequencies.
- Define a hard-wired E-Stop that drops the MC_Power.Enable signal AND removes 24 V from the drive enable input; do not rely on software-only stop.
- Use MC_Reset only after the physical cause of the error is cleared; the runtime will not re-arm a drive with a hardware alarm.
- Document the polarity convention (PNP or NPN) on the cabinet schematic so future maintenance does not re-introduce the original mismatch.
Why does my S7-1214C PTO pulse output not drive a third-party servo drive?
The DC/DC/DC variants of the S7-1200 (MLFB 6ES7 214-1AG40-0XB0 and predecessors) source the pulse output through MOSFETs, producing a PNP / sourcing signal. Drives such as the SMC LECSA expect a sinking (NPN) pulse-train input. The mismatch means the drive input never sees a falling edge and never increments its counter. Resolve it by switching the drive to point-table mode, installing an SB 1222 signal board (6ES7 222-1BD30-0XB0) wired NPN, or inserting a high-speed optocoupler such as Phoenix Contact PLC-OSC-24DC/24DC/100KHZ (2902970).
What is the maximum PTO pulse frequency on the S7-1214C?
The onboard outputs Q0.0 and Q0.1 of the CPU 1214C support pulse-train output up to 100 kHz. The plug-in signal board SB 1222 DQ 4 x 24 VDC (6ES7 222-1BD30-0XB0) and SB 1222 DQ 4 x 5 VDC (6ES7 222-1AD30-0XB0) extend the ceiling to 200 kHz and allow NPN or PNP wiring.
How do I confirm that the PTO is actually generating pulses during program execution?
Five methods: monitor the axis StatusWord in a watch table (AxisState = 7 means constant velocity), watch the Q0.0 / Q0.1 LEDs for blinking, attach an oscilloscope to Q0.0 referenced to M, route Q0.0 into a high-speed counter (HSC1–HSC6) on I0.0–I0.5 and read the count, or read the pulse feedback word in the servo drive's object dictionary. If MC_Jog.Busy is TRUE but no signal appears on the wire, the polarity is wrong.
Can the S7-1214C onboard outputs Q0.0 / Q0.1 be wired to sink (NPN)?
No. The onboard DC outputs of the S7-1214C are current-sourcing only; they cannot pull the output terminal to 0 V. The only Siemens-supported way to obtain a sinking PTO at 200 kHz is the SB 1222 signal board, which is selectable as NPN or PNP from the field wiring.
What is the simplest engineering path for a pick-and-place cell with a few fixed positions?
Switch the SMC LECSA to point-table (P-type) mode per the SMC manual §6.2/§7.4. The drive then positions itself from an internal table using only 24 V digital commands from standard PLC outputs. No PTO, no signal board, and no optocoupler is required. Reserve the PTO path for applications that need a continuously variable position commanded from the PLC.