Overview: Pulse Train Command of a Panasonic Servo from an S7-300 CPU 314C-2DP
The application described in this article pairs a Siemens SIMATIC S7-300 CPU 314C-2DP (order number 6ES7 314-6CH04-0AB0) with a Panasonic MINAS-series servo drive (MBDJT2210, 220 V class) using the integrated pulse-train output of the CPU. Because the CPU 31xC family embeds technology functions on the back of the PLC, no FM 351/FM 352/FM 353 positioning module is required for a basic point-to-point move; the work is split between STEP 7 / HW Config (declaring the integrated channel as PTO/PWM), SFB 49 (runtime pulse-width modulation), and the Panasonic drive's Pr parameters (defining pulse input shape and motor response).
This reference covers hardware configuration, signal wiring, parameter setup on the drive side, SFB 49 programming, verification, and a troubleshooting matrix for the common faults observed during commissioning.
Prerequisites
| Item | Specification / Order Number | Notes |
|---|---|---|
| S7-300 CPU | 6ES7 314-6CH04-0AB0 (CPU 314C-2DP) | Firmware V3.x or later recommended; integrated DI24/DO16, AI5/AO2, technology channels |
| Panasonic Servo Drive | MBDJT2210 (MINAS A4 series, 220 V, pulse-train input) | Confirm model suffix (MBDJT vs. MBDT) against your motor |
| Servo Motor | Panasonic MINAS A4-series motor (e.g., MSMD, MHMD, MFMD) | Match to drive current rating |
| STEP 7 | STEP 7 V5.5 + SP2 (or STEP 7 Professional 2010) | TIA Portal does not directly configure S7-300; use classic STEP 7 |
| Cable | Shielded twisted pair, differential line driver, e.g., LiYCY | Required for high-frequency pulse signals above 50 kHz |
| Manuals | S7-300 CPU 31xC Technological Functions Manual; CPU 314C-2DP Manual | Authoritative source for register layout and SFB 49 timing |
System Architecture
The CPU 314C-2DP exposes two channels of technology I/O on its front connector X1 (40-pin sub-D). The channels can be configured individually as:
- Digital input (with optional interrupt, filter, latch, frequency measurement)
- Digital output (with optional PWM, frequency output, or pulse-train output)
- Counting / positioning channel
For a Panasonic MBDJT2210 in pulse + direction command mode, the CPU's integrated DO channel is configured as a pulse-train output. The drive receives differential signals (PULSE, /PULSE, SIGN, /SIGN) on connector X4 of the drive. Direction is conveyed by the SIGN line level; distance is conveyed by the number of pulses.
CPU 314C-2DP Hardware Configuration
- Open the S7 project in STEP 7 and insert the CPU 314C-2DP from the hardware catalog (SIMATIC 300 > CPU 300 > CPU 314C-2DP > 6ES7 314-6CH04-0AB0 > V3.x).
- Open HW Config and double-click the CPU to expose the object properties.
- Select the "Integrated I/O" tab.
- For each of the four channels used (DO0..DO3), assign the function "Pulse-train output / PWM".
- Switch to the "Technology" tab of the CPU properties. Enable the channel used (typically Channel 0 for DO0/DO1 and Channel 1 for DO2/DO3).
- Set Pulse output mode = Pulse + Direction (this matches Panasonic Pr 0.05).
- Set Output format = Pulse/direction, positive logic unless drive is wired for negative logic.
- Download the hardware configuration to the PLC (PLC > Download to Target).
Panasonic MBDJT2210 Servo Drive Parameter Setup
The Panasonic MINAS A4 / MBDJT series uses Pr-class parameters accessed from the front-panel keys or via PANATERM. The relevant subset for pulse-train command is:
| Pr | Name | Value | Description |
|---|---|---|---|
| Pr 0.00 | Rotational direction switch | 0 or 1 | Swap CW/CCW motor rotation relative to pulse sign |
| Pr 0.05 | Command pulse mode | 1 (Pulse + Direction, positive logic) or 3 (CW/CCW) | Must match CPU configuration |
| Pr 0.06 | Command pulse logic | 0 (positive) or 1 (negative) | Match to PLC output polarity |
| Pr 0.07 | Pulse input filter | 0 (off) for >500 kpps; 1-4 for lower | Filter suppresses noise but limits max frequency |
| Pr 0.08 | Motor pulses per revolution | e.g., 2500, 5000, 10000 | Electronic gear numerator (a) |
| Pr 0.09 | Motor shaft pulses per revolution (b) | 10000 | Electronic gear denominator (b) |
| Pr 1.00..1.05 | Position loop gains | Defaults | Tune after mechanical coupling |
| Pr 3.16 | Max command pulse frequency | 500 or 1000 (kpps) | Limit the drive input; do not exceed CPU max |
| Pr 5.00..5.31 | I/O mapping | SI0 = Servo-ON, SI1 = Alarm Reset | Map safety/control inputs as needed |
The electronic gear ratio (Pr 0.08 / Pr 0.09) sets how many motor shaft revolutions correspond to one motor encoder turn. For a 2500-line encoder with 4x decoding, one motor revolution = 10000 pulses. To command 1 motor revolution per 1000 pulses from the PLC, set Pr 0.08 = 1000 and Pr 0.09 = 10000.
Wiring and Signal Interface
The CPU 314C-2DP integrated digital outputs are 24 V sourcing (active high). The Panasonic MBDJT2210 accepts 24 V single-ended or 5 V differential line driver inputs on connector X4. For noise immunity above 50 kpps, use the differential driver output by sourcing an external 26LS31-type line driver between the CPU outputs and the drive inputs. Pinout reference:
| Signal | CPU DO (front connector X1) | Driver (26LS31) | MBDJT2210 X4 |
|---|---|---|---|
| PULSE+ / PULSE- | Pin 20 (DO0) / Pin 21 (DO1) | OUT+ / OUT- | Pin 3 / Pin 4 |
| SIGN+ / SIGN- | Pin 22 (DO2) / Pin 23 (DO3) | OUT+ / OUT- | Pin 5 / Pin 6 |
| COM (24 V GND) | Pin 40 | GND | Pin 2 (SG) |
SFB 49 PWM Function Block
SFB 49 ("PULSEGEN" / "PWM") is part of the technology FB library for the S7-300 C-CPUs. It modulates the configured output channel with a fixed period and adjustable duty cycle. Calling SFB 49 in OB1 cyclically updates the PWM ratio and can be combined with a stepper-driven counter for true pulse-train output if a position profile is required.
SFB 49 Interface (simplified)
| Parameter | Direction | Data type | Meaning |
|---|---|---|---|
| LADDR | INPUT | WORD | I/O logical base address of the integrated channel (e.g., W#16#0300 for DO0) |
| SW_ENABLE | INPUT | BOOL | Software enable; TRUE = output active |
| OUT_FEEDBACK | INPUT | BOOL | Feedback from drive ready (optional) |
| PERIOD | OUTPUT | WORD | Period in 0.1 ms units (range 1..65535) |
| PERIOD_CV | INPUT | WORD | Period command value (writeable) |
| PULSE | OUTPUT | WORD | Duty-cycle value (range 0..PERIOD) |
| PULSE_CV | INPUT | WORD | Duty-cycle command value |
| STS_C_FG | OUTPUT | BOOL | Output active status |
| STS_C_ST | OUTPUT | BOOL | Channel in start status |
Ladder Example (S7-300, FBD/equivalent)
// OB1 - cycle at OB1 priority class
// Allocate instance DB once: DB49 "PWM_DB49"
CALL "PULSEGEN" , DB49
LADDR := W#16#0300 // base address of integrated DO0/1
SW_ENABLE := M10.0 // operator enable
OUT_FEEDBACK:= I124.0 // drive RDY contact (optional)
PERIOD_CV := MW20 // period in 0.1 ms e.g. 1000 = 100 ms
PULSE_CV := MW22 // duty e.g. 500 = 50 %
PERIOD := MW24
PULSE := MW26
STS_C_FG := M10.1
STS_C_ST := M10.2
ERROR := MW28
ERR_CODE := MW30
For a true PTO profile with acceleration ramp, use the integrated positioning channel configured as "Axis" in HW Config and call SFB 47 ("POS") instead of SFB 49. The 314C-2DP supports up to one positioning axis and one counting channel.
Period and Frequency Conversion
The CPU 31xC integrated PWM channels have a fixed resolution. The Siemens manual specifies:
| Resolution | Min Period | Max Period | Min Frequency | Max Frequency |
|---|---|---|---|---|
| 10 µs (0.1 ms unit) | 1 (100 µs) | 65535 (6.5535 s) | 0.15 Hz | 10 kHz |
Frequency and duty relationship for SFB 49:
f_out [Hz] = 1 / (PERIOD × 100 µs)
duty [%] = (PULSE_CV / PERIOD_CV) × 100
Max command freq of MBDJT2210 = 500 kpps (Pr 3.16)
If your application requires frequencies above the integrated PWM ceiling of 10 kHz, step up to one of the following options:
- FM 351 (single-axis positioning module) - up to 200 kHz
- FM 353 (high-speed stepping) - up to 2 MHz
- FM 354 (servo positioning) - up to 1 MHz, closed-loop via incremental encoder
Commissioning Procedure
- Power down the drive. Verify mains (220 V L/N/PE) and 24 V DC logic supply to the CPU.
- Connect an oscilloscope or signal analyzer to pins 3/4 (PULSE) of the MBDJT2210.
- In STEP 7, place a watch table on MW20 (PERIOD) and MW22 (PULSE_CV). Set SW_ENABLE = TRUE.
- Start with PERIOD = 1000 (100 ms, 10 Hz) and PULSE = 500 (50 % duty). Confirm pulses on scope.
- On the drive, enter the trial run mode: Pr 6.05 = 0 to disable trial-run inhibit; drive display should read "drE" (drive ready).
- Set Pr 6.00 = 1 (JOG mode). Motor should move at the speed dictated by the PWM frequency divided by the electronic gear.
- If the motor does not move, verify the SON (Servo-On) input on the drive is energized (typically SI0 closed, +24 V on pin 29 of X4).
- Once steady operation is verified at low speed, ramp the period down to drive the machine toward the desired speed, but never below PERIOD = 100 (= 10 µs = 100 Hz).
- Save drive parameters and back up the S7 project.
Verification Checklist
| Step | Expected Result |
|---|---|
| STS_C_FG = TRUE while SW_ENABLE = TRUE | Channel active |
| Scope on MBDJT pin 3/4 | Square wave at f = 1/(PERIOD × 100 µs), 5 V p-p differential |
| Drive LED = "rdy" | No alarm, command input accepted |
| JOG with sign swap | Motor reverses direction |
| ERROR / ERR_CODE = 0 | SFB 49 healthy |
| MEAS_POS feedback (via SFB 47 if used) | Pulses counted match command |
Troubleshooting Matrix
| Symptom | Likely Cause | Action |
|---|---|---|
| No pulses at drive | Channel not configured as PWM in HW Config | Re-open CPU properties > Technology, enable PWM, re-download |
| Frequency correct, duty fixed at 50 % | SFB 49 not called, or PULSE_CV not written | Verify OB1 cyclic call, watch table MW22 |
| Drive shows Err 11 "pulse input error" | Pulse mode mismatch between CPU and Pr 0.05 | Set Pr 0.05 = 1 (Pulse+Dir), Pr 0.06 = 0 (positive logic) |
| Motor runs but direction wrong | SIGN line inverted | Set Pr 0.00 = 1 or swap SIGN+/SIGN- in wiring |
| Motor runs at reduced speed only | Pr 0.07 filter enabled, attenuating high frequency | Set Pr 0.07 = 0 and Pr 3.16 to desired max |
| Err 14 "over-speed" at start | PERIOD_CV too low (PERIOD = 1..9 unsupported by drive) | Keep PERIOD_CV ≥ 100 (10 ms), limit current by Pr 3.16 |
| Err 21 "encoder error" | Loose motor connector or improper shield termination | Re-seat encoder, ground shield at drive end only |
| SFB 49 ERR_CODE = W#16#8001 | LADDR mismatch or technology DB not downloaded | Verify logical address and re-download HW Config |
Edge Cases and Field Tips
PTO vs PWM. A 100 % duty cycle from SFB 49 holds the output high without toggling - this is not a continuous pulse train. For servo positioning where the number of pulses defines distance, use SFB 47 with a positioning DB, or use the integrated axis in HW Config.
Mechanical inertia. The integrated PTO channel does not include S-curve or jerk limiting. For high-inertia loads, generate the ramp in the application code (trapezoidal velocity profile in OB35) and feed the instantaneous frequency to the PWM input.
EMI on long cables. For cable runs over 10 m, use a 26LS31 line driver and 26LS32 line receiver at the drive side. Set Pr 0.07 = 0 and avoid shielded twisted pair rated below 100 MHz.
Multi-axis scaling. The CPU 314C-2DP has only one integrated positioning channel. To control a second MBDJT2210, add an FM 354 to the rack; STEP 7 will treat it as a standalone axis on the PROFIBUS side.
Backup. Export the drive parameter set with PANATERM after each change; the CPU project (.s7p) does not include drive parameters.
FAQ
What is the maximum pulse frequency the CPU 314C-2DP integrated channel can output?
The integrated PWM channel of the CPU 314C-2DP supports 0.15 Hz to 10 kHz with a 10 µs (0.1 ms) resolution. For frequencies above 10 kHz you must use an FM 351, FM 353, or FM 354 module.
How do I match the CPU pulse-train direction to the Panasonic MBDJT2210 direction?
Set Pr 0.05 = 1 (Pulse + Direction, positive logic) on the drive and Pr 0.00 = 0. If the motor rotates opposite to the SIGN line, toggle Pr 0.00 to 1 instead of swapping wiring.
Why is the duty cycle fixed at 50 % even though I write PULSE_CV?
The most common cause is that SFB 49 is not called cyclically, or the period is shorter than the required update rate. Confirm OB1 contains the CALL instruction and that PERIOD_CV matches the technology DB base address in HW Config.
Do I need an FM 354 for closed-loop positioning with the MBDJT2210?
Not necessarily. The integrated channel can command an open-loop pulse train, but the drive itself closes the velocity/position loop with its encoder. If you require encoder feedback to the PLC for absolute position, use the FM 354 or an ET200S counter module.
Which STEP 7 version supports the integrated PWM and positioning on the CPU 314C-2DP?
STEP 7 V5.4 SP3 and later (including V5.5 SP2) supports the technology channels of all S7-300 C-CPUs. The TIA Portal does not support S7-300 technology objects; you must use classic STEP 7.
References and Standards
- S7-300 CPU 31xC Technological Functions Manual - source of SFB 49 interface, frequency range, and timing diagrams.
- CPU 314C-2DP (6ES7 314-6CH04-0AB0) Manual - I/O base addresses and module diagnostics.
- Industrial motion control portfolio - alternative servo hardware reference for cross-platform migration considerations.
- Panasonic MINAS A4-series Technical Reference for MBDJT2210 Pr parameter layout (drive-side documentation supplied with the drive).
- IEC 61131-3 - programmable controller programming languages referenced in STEP 7 (IEC FB and LAD/FBD/ST equivalents).