PTO Pulse Generation Limits with 6ES7 322-1BH10-0AA0 SM 322 DO

David Krause12 min read
S7-300SiemensTroubleshooting
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

Problem: PTO Pulse Generation on 6ES7 322-1BH10-0AA0

The combination of a CPU 315-2DP (6ES7315-2AG10 or similar), an IM 153-1 ET 200M head, and the digital output module SM 322; DO 16 x DC 24 V / 0.5 A High Speed (6ES7322-1BH10-0AA0) is frequently wired to drive stepper motor amplifiers through the step/direction interface. Engineers regularly attempt to produce pulse trains of 500 Hz, 800 Hz, or higher from the standard DO backplane of the S7-300, only to find that the produced step rate collapses or the pulse-train duty cycle distorts once the OB1 scan time reaches ~17 ms.

The defect is not in wiring, ground loops, or field-device termination - it is a fundamental ceiling imposed by three coupled timing limits:

  1. OB scan period on the CPU 315-2DP (no OB38 / OB1x < 10 ms available).
  2. Output reaction time of the SM 322-1BH10 output stage (0→1 and 1→0 propagation).
  3. Stepper driver input conditioning (optocoupler + debounce / Schmitt trigger RC), which further divides the achievable pulse rate.
Outcome in the field: With the SM 322-1BH10 wired directly to a stepper driver STEP input, a realistic stable ceiling is approximately 10 Hz. On a purely resistive load (relay coil, optocoupler LED without heavy filtering), the absolute ceiling rises toward 1 kHz. Reaching the 250 Hz–800 Hz range demanded by most stepper indexers requires either specialised FM hardware, a CPU with integrated PTO, or an ET 200S pulse generator.

SM 322-1BH10-0AA0 Module Specifications

The High Speed variant 6ES7322-1BH10-0AA0 differs from the standard 6ES7322-1BH01-0AA0 in switching performance and group isolation. Key parameters that drive PTO feasibility:

Parameter SM 322; DO 16 x DC 24 V / 0.5 A High Speed (6ES7322-1BH10-0AA0)
Outputs 16, electrically isolated in two groups of 8
Rated supply voltage 24 V DC (20.4 V to 28.8 V)
Output voltage, max. typ. Up − 0.4 V
Output current per channel 0.5 A (continuous), 5 A inrush / 100 ms
Switching frequency on resistive load, max. ≈ 1 kHz
Switching frequency on inductive load, max. ≈ 0.5 Hz (free-wheeling diode required)
Reaction time 0 → 1 (resistive) typ. 100–300 µs
Reaction time 1 → 0 (resistive) typ. 100–300 µs
Short-circuit protection Electronic, latching
Isolation test voltage 500 V DC (groups / backplane)
Hot-swap capable No (only via IM 153-1 red/green pair, slot 0)

Source: Siemens product master data – 6ES7322-1BH10-0AA0.

The High Speed suffix means the module is not a PTO module. It is faster than the standard 1BH01 in point-to-point switching latency, but it does not contain a hardware pulse-train generator, ramp profile, or backplane-direct pulse output. Pulse generation must still be performed by the user program or by a dedicated FM/ET 200S module.

CPU 315-2DP Cycle Time and OB Limitations

The CPU 315-2DP belongs to the S7-300 family with integrated PROFIBUS-DP master. Its cyclic interrupt OBs have these fixed clocking boundaries:

OB Default period Configurable range (HW Config) Available on CPU 315-2DP?
OB1 scan-time driven n/a Yes
OB10/11/12/13 Time-of-day 1 min – 24 h Yes
OB35 100 ms 1 ms – 60 000 ms (phase = 0) Yes
OB36 — — No
OB37 — — No
OB38 10 ms 1 ms – 60 000 ms No (only S7 317 / S7 400)
OB40 Hardware interrupt process-driven Yes

For the SM 322-1BH10-0AA0 driving a stepper pulse stream, the relevant OB is OB35. The minimum OB35 period the CPU 315-2DP will accept is 1 ms, but only if the configured OB35 execution time plus the main scan stays below the period. With a typical OB35 of 5–10 ms and an OB1 of 17 ms, the effective half-period ceiling for a toggled output is roughly 17 ms × 0.5 ≈ 8.5 ms (low → high → low), i.e. ≈ 60 Hz in raw user-program toggling.

Common misconception: Reducing OB35 to 1 ms in HW Config does not change the OB1 cycle. If the program logic that decides the next direction or speed is in OB1, the loop is still bound to the OB1 scan. Pulse toggling must live entirely in the cyclic OB and must not call heavy FCs (PID, IEC timers, Profibus DP_RDAT).

Why the SM 322-1BH10 Cannot Reach 800 Hz Reliably

Three independent stop bands each reject the 800 Hz target:

2.1 OB clocking stop band

To toggle an output at 800 Hz with 50 % duty, the application must change the output bit every T/2 = 625 µs. No OB on the CPU 315-2DP can fire that fast without leaving CPU time for OB1, PROFIBUS DP cycle, and the S7 timer / counter updates.

2.2 DO reaction-time stop band

The 6ES7322-1BH10-0AA0 has typical propagation of 100–300 µs per edge. For an 800 Hz square wave (1.25 ms period, 625 µs half-period), the cumulative lag on the rising edge plus the falling edge is up to 600 µs. The duty cycle will skew from 50 % to roughly 20 %/80 % depending on direction, which most stepper drivers interpret as a step on the rising edge only and still accept, but the step rate is reduced to what the module can sustain, typically 500 Hz – 1 kHz.

2.3 Driver input stop band

Stepper-driver optocoupler inputs normally include an RC filter of 10 µs – 100 µs to reject noise. Combined with the optocoupler rise/fall time, the effective input bandwidth is 50 kHz – 200 kHz, which is not the problem. The real stop band is the way the user toggles the bit. Toggling inside OB1 at 17 ms scan → 29 Hz is the most common failure mode and matches what the source reports.

Calculating Maximum Achievable Frequency

Use this framework to size any proposal before commissioning:

Fmax = 1 / ( 2 × (Tob + Tdo + Tdriver) )

Where:

  • T_ob = OB scan period in seconds (OB35 for periodic).
  • T_do = sum of 0→1 and 1→0 propagation of the DO module.
  • T_driver = optocoupler + RC time constant of the driver input.

Example A: 800 Hz target, OB35 = 10 ms, SM 322-1BH10-0AA0, typical driver

  • T_ob = 10 × 10⁻³ s = 10 000 µs
  • T_do = 200 µs + 200 µs = 400 µs
  • T_driver = 50 µs

F_max = 1 / (2 × (10 000 + 400 + 50) × 10⁻⁶) = 1 / 0.0209 ≈ 47.8 Hz

The OB clocking alone caps the result at ~50 Hz regardless of how "fast" the module is.

Example B: 800 Hz target, OB35 = 1 ms (lowest legal)

  • F_max = 1 / (2 × (1 000 + 400 + 50) × 10⁻⁶) ≈ 345 Hz

Still short of 800 Hz. To hit 800 Hz with the SM 322-1BH10-0AA0, OB35 would need to drop to ~200 µs, which is below the CPU 315-2DP capability.

If the driver is a pure resistive load (relay coil, raw LED without filtering), the T_driver term can be dropped and the ceiling rises toward the module's 1 kHz spec. Field results confirm that the SM 322-1BH10-0AA0 can switch up to ≈ 1 kHz on resistive loads, but never reliably reach the 5 kHz – 20 kHz band used for microstepping at 25 µs step.

Hardware Alternatives for PTO Generation

When 250 Hz – 100 kHz step rates are required, replace the SM 322-1BH10-0AA0 with one of the following, in increasing order of performance:

Alternative Order Number Max step rate Mounting Notes
ET 200S 1STEP pulse generator 6ES7138-4DC00-0AB0 up to 1 kHz TTL, 25 kHz 24 V IM 151 / ET 200S Reuses the IM 153-1 if Profibus DP master available
ET 200S 2STEP pulse generator 6ES7138-4DC10-0AB0 2 channels, up to 1 kHz TTL, 25 kHz 24 V IM 151 / ET 200S Two independent axes per module
FM 353 positioning module (stepper) 6ES7353-1AH01-0AE0 up to 25 kHz S7-300 central rack Full NC-style positioning, MD/SD interface
FM 354 servo positioning module 6ES7354-1AH01-0AE0 up to 25 kHz (analog) S7-300 central rack For servo drives with ±10 V interface
CPU 314C-2DP integrated PTO 6ES7314-6CG03-0AB0 up to 2.5 kHz per channel CPU integral Two PTO channels onboard, replaces CPU 315-2DP
S7-1200 CPU PTO e.g. 6ES7214-1AG40-0XB0 up to 100 kHz CPU integral Migration target; requires STEP 7 Basic / TIA Portal
S7-1500 PTO via TM PTO 6ES7553-1AA00-0AB0 up to 1 MHz S7-1500 TM Only with CPU 1500 family

Each FM 350/351/352/353/354 family module occupies one S7-300 slot and is parameterised through the dedicated FM setup interface in STEP 7 (HW Config → FM Properties). The FM 353 is the canonical drop-in for replacing a manual OB35 pulse loop with hardware-accelerated step generation that the CPU off-loads completely.

ET 200S 1STEP / 2STEP Drop-In on an Existing IM 153-1 Station

If the project is locked to PROFIBUS DP and the IM 153-1 must stay, the most cost-effective swap is to remove the SM 322-1BH10-0AA0 from its slot and insert an ET 200S pulse generator in an ET 200S sub-rack fed from the IM 153-1 DP/PA link. The 6ES7138-4DC00-0AB0 (1STEP) provides:

  • One pulse/direction output, 24 V or RS-422 (5 V TTL).
  • Resolution 32 bits, max output frequency 25 kHz (24 V) or 1 MHz (TTL).
  • Integrated ramp generator (linear, jerk-limited).
  • Hardware inputs for reference, encoder, and digital I/O.

It is configured via the GSD file SIEM8170.GSD and integrated as a PROFIBUS DP slave to the CPU 315-2DP. The user program exchanges 12 bytes of output / 12 bytes of input data via SFC 14 / SFC 15.

Software Compensation Patterns (When Hardware Swap Is Not Possible)

On a CPU 315-2DP that cannot be replaced, the highest pulse rate that can be obtained from an SM 322-1BH10-0AA0 without an FM module is in the 250 Hz – 500 Hz range, and only under strict conditions:

  1. Configure OB35 to 1 ms in HW Config (CPU 315-2DP supports this).
  2. Place all pulse logic in OB35. Do not call SFC 14/15, Profibus I/O consistency, or PID blocks from OB35.
  3. Use a word-mask output and direct PQW to trigger the SET / RESET. The bit must be toggled inside the OB35 and not gated by an OB1 flag.
  4. Use QPA (set) and QNA (reset) bit instructions on an immediate-write flag, e.g. SET / CLR on PIB/PQB with :P qualifier to bypass the process image and force the backplane update.
  5. Hold OB1 to >100 ms and exclude the toggle from any conditional check that depends on OB1 scan.

Sample OB35 toggle snippet (ST):

// OB35 - pulse toggle at OB35 tick
IF OB35_FIRST_SCAN THEN
    i_state := 0;
END_IF;
i_state := 1 - i_state;
IF i_state = 1 THEN
    QP 0.0;       // immediate set, no PII update
ELSE
    RN 0.0;       // immediate reset
END_IF;
Caveat: Calling SET / CLR on the process image from OB35 does not bypass the OB1 cycle on its own. The backplane write is scheduled by the CPU on the next backplane window and may still slip to 1.5 ms – 2 ms. Real-world measured throughput with this pattern on a CPU 315-2DP is ~400 Hz with irregular spacing (jitter 30 % – 40 %). It is suitable for slow jog, not for closed-loop positioning.

Stepper Driver Input Requirements

Before sizing the pulse source, validate the driver interface. Most stepper drives (Siemens FM STEP, Oriental Motor CVD, Linistepper, Nanotec, Leadshine DM, Schneider Lexium MDrive, etc.) present an optocoupler STEP input with the following electrical envelope:

Parameter Typical value Comment
Input voltage, nominal 5 V DC or 24 V DC Most 24 V inputs tolerate 5 V – 28 V
Input current, nominal 8 mA – 15 mA External series resistor if driving from 24 V
Minimum pulse width 1 µs – 10 µs Driver-limited, not CPU-limited
Edge trigger Rising edge (most drivers) Confirm in driver datasheet
Max step rate 50 kHz – 1 MHz Driver can typically exceed what the SM 322 can produce

A standard pattern is to drive the optocoupler LED from a 24 V output through a 1.8 kΩ – 2.2 kΩ current-limiting resistor. The optocoupler presents a near-resistive load to the SM 322-1BH10-0AA0 and therefore does not cause the inductive-load derating. The bandwidth ceiling is the CPU+OB cycle, not the module.

Verification and Commissioning Checks

Use this matrix after every change to confirm the PTO chain meets specification:

Test point Expected reading Pass criterion
SM 322-1BH10 output voltage, high ≥ Up − 1.0 V Driver sees proper logic 1
SM 322-1BH10 output voltage, low ≤ 2 V Driver sees proper logic 0
Edge count / 1 s, scope on STEP target Hz ± 5 % Frequency within tolerance
Duty cycle, scope 40 % – 60 % Skew < 10 %
Jitter (peak-to-peak period) < 20 % Stable step rate, no missed steps
CPU scan time, STEP 7 Module Information OB1 < OB35 period / 2 No OB35 overrun
Driver STEP error counter 0 / N pulses No step loss
Module status SF / BF Off No diagnostic interrupt

Recommended test sequence:

  1. Power up the CPU and SM 322 with a 24 V dummy resistive load (e.g. 470 Ω, 1 W) instead of the stepper driver.
  2. Program OB35 to 1 ms and toggle the bit at 250 Hz; observe on scope.
  3. If the duty cycle is asymmetric or jitter > 20 %, the OB clock is the bottleneck. Migrate to FM 353 or ET 200S 1STEP.
  4. Replace the resistive load with the stepper driver STEP input.
  5. Confirm the driver reference-input pulses (DIR or CW/CCW) follow the expected 0/1 state.
  6. Run a 30-minute continuous test. Monitor module diagnostics for SF = diagnostic interrupt, indicating short circuit or overload on the SM 322-1BH10.

Frequently Asked Questions

Can the 6ES7322-1BH10-0AA0 output 800 Hz pulses from a CPU 315-2DP?

No, not reliably. The CPU 315-2DP supports OB35 down to 1 ms, but the resulting toggle ceiling with this DO is approximately 350 Hz. To produce 800 Hz pulses, replace the SM 322 with an FM 353, ET 200S 1STEP (6ES7138-4DC00-0AB0), or migrate to a CPU with integrated PTO such as the CPU 314C-2DP or an S7-1200/S7-1500.

What is the maximum switching frequency of the 6ES7322-1BH10-0AA0?

Approximately 1 kHz on purely resistive loads, and as low as 0.5 Hz on inductive loads unless a free-wheeling diode is wired across the load. Refer to the official Siemens product data sheet for the exact timing parameters and group isolation limits.

Which OB should I use for PTO on a CPU 315-2DP?

Use OB35, configured to the lowest possible period (1 ms). OB36, OB37 and OB38 are not present on the CPU 315-2DP; only S7-317 and S7-400 CPUs expose OB38. Keep all pulse-generation logic inside OB35 and avoid blocking calls such as SFC 14/15 or Profibus I/O consistency from that OB.

Why does my stepper motor only run at 10 Hz?

Either the OB is too slow, the toggle logic lives in OB1 instead of OB35, or the optocoupler input of the driver is loaded with a series resistor that turns the source into an inductive-like load for the module. Move all toggling to OB35, raise the OB35 frequency to 1 ms, and verify with a scope that the edges are clean.

Can I keep my IM 153-1 and just add an FM 353?

No. The FM 353 must sit in the central rack of the S7-300 directly next to the CPU 315-2DP. It cannot live in an ET 200M station behind an IM 153-1 because it is backplane-DMA-based. For a Profibus DP-based PTO behind IM 153-1, use the ET 200S 1STEP (6ES7138-4DC00-0AB0) instead.

Back to blog