Problem Summary
A SIMATIC S7-400 controller (CPU 412-2, order number 6ES7 412-2XG04-0AB0) is communicating with a SIMOVERT MASTERDRIVES MC Plus inverter through a CBP2 PROFIBUS option board in option slot A. The application is configured to run in MDI (Manual Data Input) positioning mode on the drive, with the position setpoint, velocity setpoint, and mode selector being written from the PLC into drive parameters U531, U532, and U533 over PROFIBUS.
All three setpoint words are transferred successfully. The drive reaches operating state r000 = 9 (Ready for switching on), and the control bits OFF1, OFF2, OFF3, and Inverter Enable are all set in the process data control word. When the operator issues a positive edge on the MDI start bit (STA), the drive does not run and immediately returns warning A130 – Operating conditions are not fulfilled. The PLC sees no transition from state 9 into the run-up / run states (14 or 15), and the position register does not change.
The fault is reproducible on every STA edge. It is independent of the actual setpoint values U532 (CFC7 hex) and U533 (4A38 hex) – the drive rejects the move command before either setpoint is processed.
Affected System Configuration
| Component | Identifier / Order Number | Role |
|---|---|---|
| PLC | SIMATIC S7-400, CPU 412-2 (6ES7 412-2XG04-0AB0) | Position controller / PROFIBUS master |
| Drive | SIMOVERT MASTERDRIVES MC Plus (6SE70 series) | Positioning axis |
| Communication | CBP2 PROFIBUS option board, slot A | Cyclic PZD communication (setpoint/status) |
| Mode | MDI (Manual Data Input) – mode_id = 3 | Positioning mode in which setpoint, velocity, and acceleration are written from the PLC |
| Setpoint words (PLC → drive) | U531 = 5B21h, U532 = CFC7h, U533 = 4A38h | Src G function MDI, position MDI, velocity MDI |
| Status word (drive → PLC) | KK315 (positioning status word 1) | Bit 30 = "axis referenced / homed" |
| Diagnostic words (drive → PLC) | r000, r550 | Drive status, OFF1/OFF2/OFF3/IE status |
The same recipe fails identically whether the controller is started cold, after a stop, or after a power cycle. The drive's behavior matches the documented A130 condition in the SIMOVERT MASTERDRIVES Compendium, section F01 (positioning).
Root Cause Analysis
A130 is a precondition warning, not a hardware fault. It is raised whenever the user issues a positioning start command while at least one of the following four preconditions is not satisfied:
- The axis is not yet homed (bit 30 of status word KK315 = 0). For MDI positioning, the MC Plus firmware requires a valid zero reference before any absolute move is accepted. The
positioning_status.30 axis_referencedsignal must be 1. - OFF1 is not edge-controlled. OFF1 (bit 0 of control word 1) must transition from 0 to 1, not be level-held. If the PLC writes 0x047F continuously, the drive never sees a rising edge and stays in "ready for switching on" (r000 = 9).
- Enable chain not closed. OFF1, OFF2, OFF3, and Inverter Enable must all be 1 at the moment the STA edge occurs. If any one of these is 0, the drive drops back to r000 ≤ 7.
- Mode mismatch. The drive must echo the requested MDI mode. mode_in = 3 and mode_out = 3 is the correct handshake, but a mode transition in progress (bit transitions in KK315) will momentarily invalidate the start.
In the reported case, points 2, 3, and 4 are already satisfied. The PLC transfers 0x047E first and then 0x047F, r550 shows all four enable bits = 1, r000 is 9, and mode_out = 3 echoes mode_in = 3. The remaining fault is item 1: the axis is not referenced. KK315 bit 30 = 0.
Bit 30 of KK315 is a latched condition. It is cleared at power-on, after a parameter download, after an encoder fault, and after any drive-side reset. The bit only goes to 1 once a complete homing run (active or passive, depending on P570 / P571) has finished successfully and the drive has latched the position reference.
Pre-Start State Verification
Before attempting any MDI move, read the following four parameters from the drive and confirm each is at the expected value:
| Parameter | Name | Expected value (ready) | Meaning |
|---|---|---|---|
| r000 | Drive status | 9 (Ready for switching on), then 14 (Run) or 15 (Run with active positioning) | Top-level state machine state |
| r550 | Control word status | Bit 0 (OFF1) = 1, bit 1 (OFF2) = 1, bit 2 (OFF3) = 1, bit 3 (Inverter Enable) = 1 | Enable chain |
| KK315 | Positioning status word 1 | Bit 30 = 1 (axis_referenced) | Homing complete |
| KK315 / KK316 | Mode feedback | Mode_out = Mode_in = 3 (MDI) | Mode handshake complete |
Decoding r000
The drive state word r000 follows the standard PROFIdrive state diagram. The MDI positioning can only execute from state 15 (Operation enabled, with active positioning).
| r000 | State name | Transitions out of state |
|---|---|---|
| 1 | Start inhibit | Power-on pending, require OFF1 = 0 first |
| 4 | Switch-on inhibit | OFF2 or OFF3 active, or no Inverter Enable |
| 7 | Switched on (idle) | Drive closed-loop, waiting for OFF1 edge |
| 8 | On locked / Standstill | OFF1 = 1 but no setpoint release |
| 9 | Ready for switching on | OFF1=1, OFF2=1, OFF3=1, IE=1 – one edge away from run |
| 14 | Run (no active positioning) | Speed/torque control, no MDI block |
| 15 | Run with active positioning | Positioning state machine active |
Decoding r550
r550 is the live mirror of the four most important enable signals. The MASTERDRIVES firmware sets each bit as soon as the corresponding bit in the PROFIBUS control word STW1 is 1. After a successful OFF1 edge you must read:
r550 bit 0 (OFF1) = 1
r550 bit 1 (OFF2 / no coast stop) = 1
r550 bit 2 (OFF3 / no quick stop) = 1
r550 bit 3 (Inverter Enable) = 1
If any of these is 0, the drive will not leave r000 = 9 regardless of how the STA bit is toggled.
Control Word Sequence for OFF1 Edge
OFF1 is a positive-edge-triggered command. The standard sequence for the MC Plus, taken from the SIMOVERT MASTERDRIVES Compendium F01, is:
- Write
STW1 = 0x047Econtinuously. This sets OFF2 = 1, OFF3 = 1, Inverter Enable = 1, Ramp generator enable = 1, Setpoint enable = 1, and OFF1 = 0. The drive is held in r000 = 4 or r000 = 7. - Wait until r000 = 4 (Switch-on inhibit) or r000 = 7 (Switched on). This confirms the inverter has accepted the enable chain.
- Write
STW1 = 0x047F. The single low-to-high transition on bit 0 produces the OFF1 edge. The drive then advances to r000 = 8 (one PLC cycle) and then to r000 = 9 (Ready for switching on).
To stop the drive and reset OFF1, the sequence is reversed:
- Write
STW1 = 0x047F(still running). - Wait for the drive to acknowledge the running state.
- Write
STW1 = 0x047E. The high-to-low transition on bit 0 produces a negative edge, which the drive interprets as "OFF1 ramp to stop, then inhibit pulse". The drive decelerates along the configured ramp and returns to r000 = 7.
MDI Mode Parameter Set (U531, U532, U533)
The MC Plus accepts the MDI block in three free parameters, linked by the firmware to the positioning function block:
| Parameter | Name | Width | Encoding |
|---|---|---|---|
| U531 | Src G function MDI | 16 bit | Bit field: bit 0 = enable, bits 1-2 = sub-mode (00 = absolute, 01 = relative positive, 10 = relative negative), bit 5 = continuous mode, bit 11 = direction (0 = positive) |
| U532 | Position MDI | 32 bit | LU (Length Units). Must be scaled via P570 / P571 so the value matches the mechanical units of the application. |
| U533 | Velocity MDI | 16 bit | % of the maximum velocity in P600 (0x7FFF = 100 % positive, 0x8000 = 100 % negative). |
In the reported case U531 = 0x5B21, U532 = 0xCFC7, U533 = 0x4A38. These values are accepted by the drive without complaint. The drive will still reject the move as long as KK315 bit 30 = 0.
Step-by-Step Resolution
Step 1 – Confirm drive health
Read r000, r550, and any active fault word (typically n_F or n_A list). Resolve all F-class faults first; A-class alarms other than A130 may indicate preconditions that also need to be cleared.
Step 2 – Apply the OFF1 edge
From the PLC, write the control word sequence 0x047E → 0x047F, holding the final value. Verify that r000 advances to 9 and r550 shows all four enable bits = 1.
Step 3 – Run a homing sequence
Trigger the MC Plus homing procedure from the PLC by writing the required mode bits into U531 (with the MDI sub-mode disabled), then producing a positive edge on the homing start bit (commonly STA_HOME, mapped to a control word bit defined by the parameter set). Monitor the drive-side homing status in KK315 bit 30. The bit must transition from 0 to 1 at the end of the homing run.
| Homing mode | Typical use | Reference source |
|---|---|---|
| Active homing with reference cam | Rotary axis, incremental encoder | P570 = positive edge on homing input |
| Active homing with zero mark | Linear axis with distance-coded reference | P570 = zero marker of encoder |
| Passive homing | Axis is moved by an external master | P570 = external edge, drive follows and latches |
| Set reference point | Absolute encoder present | P570 = load absolute position from P571 |
Step 4 – Verify bit 30 of KK315
After homing, read KK315 and isolate bit 30. If the bit is still 0, the homing run terminated in error. Inspect r000 for the abort reason and check the homing parameter set.
Step 5 – Switch to MDI mode
Write the desired U531 mode bits (sub-mode 00 = absolute, 01 = relative positive, 10 = relative negative) and the setpoint values U532 (position) and U533 (velocity). Wait until the drive echoes the new mode back in KK316 / mode_out.
Step 6 – Start the move
Apply a positive edge to the STA bit. The drive should now leave r000 = 9, run up to operating state 15, and execute the MDI block. Monitor the in-position bit (typically KK315 bit 31) to confirm completion.
PROFIBUS Telegram Layout
For PPO type 3 / 4 / 5 with positioning enabled, the cyclic PZD assignment is typically:
| Word | Direction | Content |
|---|---|---|
| PZD1 (STW1) | PLC → drive | 0x047E / 0x047F (OFF1 + enables), with bit 7 used for fault acknowledge |
| PZD2 (STW2) | PLC → drive | Positioning control word – bit 0 = STA (start MDI), bit 1 = STP, bit 2 = direction, bit 4 = homing start |
| PZD3 | PLC → drive | Velocity override / acceleration override (per parameter set) |
| PZD4 | PLC → drive | Mode select (3 = MDI) or extra control |
| PZD1 (ZSW1) | drive → PLC | Standard status word (bit 0 = ready to switch on, bit 3 = fault, bit 6 = switch on inhibited) |
| PZD2 (ZSW2 / KK315) | drive → PLC | Positioning status word 1, contains bit 30 = axis_referenced |
| PZD3 | drive → PLC | Actual velocity (scaled) |
| PZD4 | drive → PLC | Actual position (low word) |
Reading ZSW2/KK315 from the drive and isolating bit 30 is the canonical way for the PLC to know that the drive is ready to accept a MDI block.
Drive State Machine (Inline SVG)
The blue path (r000 = 9 → 14 → 15) is the only valid transition for MDI positioning. The red path represents the A130 return to r000 = 8 / 9 if KK315 bit 30 = 0 when the STA edge arrives.
Verification
After the full sequence completes, perform the following four checks from the PLC program:
- KK315 bit 30 = 1 (axis referenced) and stays = 1 across drive power cycles and parameter reloads.
- r000 reaches 15 within one telegram cycle of the STA edge.
- The actual position (ZSW3 / ZSW4 from the drive) approaches U532 within the configured positioning window and the in-position bit (KK315 bit 31) goes high.
- A130 is no longer raised. If a fresh A130 appears after a drive-side parameter change, repeat Step 3 – run the homing sequence again.
Record a one-second PROFIBUS trace of the relevant PZD words. The trace should show:
STW1 = 047E 047E 047E 047F 047F 047F 047F 047F 047F 047F
STW2 = 0000 0000 0000 0000 0000 0001 0001 0001 0001 0001 <-- STA edge
ZSW1 = 0C30 0C31 0C32 0C33 0C34 0C34 0C37 0C37 0C37 0C37
ZSW2 = 0000 0000 0000 0000 4000 4000 4000 4000 4000 4000 <-- bit30 sets
r000 = 4 7 8 9 9 9 14 14 15 15
Any deviation from this shape points to either a missing 0→1 edge on STW1 bit 0, a mode handshake still in progress, or a homing abort.
Diagnostic Matrix
| Symptom | Likely root cause | Action |
|---|---|---|
| A130 on every STA edge, KK315 bit 30 = 0 | Axis not homed | Run the homing sequence, then re-check bit 30 |
| A130, KK315 bit 30 = 1, r550 OK, mode handshake OK | Setpoint scaling mismatch (U532 out of mechanical range, or U533 sign wrong) | Verify U532 against P570/P571 LU scaling and U533 polarity |
| Drive stays at r000 = 9, no fault, no warning | OFF1 not edge-controlled (0x047F written continuously) | Insert a 0x047E step before 0x047F in the PLC sequence |
| Drive drops to r000 = 4 immediately after enable | OFF2 or OFF3 cleared by another PROFIBUS master or a hardware stop | Check second master on the bus, check terminal inputs for STO/SS1 |
| r000 = 14 but never 15, no A130 | Mode_in = 3 not echoed as mode_out = 3 (mode handshake in progress) | Wait for KK316 to reflect new mode before applying STA edge |
| A130 cleared after a single STA but recurs on the next | STA held high instead of pulsed | Pulse STA for one telegram cycle only; rely on firmware to latch the MDI block |
| A130 only at high speed | Following error exceeds window during ramp | Increase positioning window, reduce U533, or check Kv gain |
Comparison with SINAMICS S120 MDI Semantics
The same A130-equivalent condition exists on SINAMICS S120, but with two notable differences. According to the SINAMICS S120 Function Manual – Drive Functions, MDI mode in the sub-modes "setup mode" and "relative positioning" can be executed without a referenced axis. Only "absolute positioning" requires the axis to be homed. The MASTERDRIVES MC Plus, by contrast, requires a referenced axis for all MDI sub-modes in the standard P570/P571 setup, because the older firmware does not implement the conditional referencing introduced with SINAMICS.
The SINAMICS S120 Basic Positioner Function Manual also introduces a "continuous mode" bit in the MDI control word (bit 5). When set, the inverter continually accepts changes to the position setpoint; relative positioning is disabled in that case. On the MC Plus, continuous-mode behavior is emulated by writing the new setpoint to U532 and re-issuing a STA edge, but the firmware still requires a referenced axis on every start. S7-300/400 examples for relative positioning (mode 4) on TIA Portal are documented in the STEP 7 relative positioning help.
For motion programs that need setup or relative moves without homing, SEW-Eurodrive documents a "sensor-based positioning" mode in the MOVIPRO / MOVIDRIVE positioning manual – useful when migrating a MASTERDRIVES application to a newer platform that allows non-referenced MDI moves.
For network-layer diagnostics unrelated to the drive state machine itself (PROFIBUS cabling, repeaters, MDI/MDIX), the HPE Aruba MDI/MDIX reference covers physical-layer troubleshooting. It is included here only to flag that intermittent A130 in long cable runs can be a symptom of corrupted PZD, not a positioning issue.
Commissioning Checklist
- Confirm the S7-400 hardware configuration matches the actual rack: CPU 412-2 (6ES7 412-2XG04-0AB0) supports PROFIBUS DP master on the integrated interface; the CBP2 in slot A is addressed as a DP slave at the configured node address.
- Configure the PPO type. For positioning, PPO type 3 or 5 (with two extra PZD words for the positioning setpoints) is recommended.
- Set P570 (homing mode), P571 (reference position / LU scaling), and the MDI source parameters (U531 / U532 / U533 links) before going online.
- Write the control word sequence from a STEP 7 FB so that 0x047E is always written before 0x047F on every start. Hold the 0x047E state for at least one DP cycle before switching.
- Block the STA edge in the PLC until KK315 bit 30 = 1. The block prevents A130 from cluttering the HMI and protects mechanical components from an un-referenced move.
- Add a one-second PZD trace to the commissioning archive for each axis. The trace is the fastest way to confirm a clean OFF1 edge and a clean STA edge.
FAQ
What does warning A130 mean on a MASTERDRIVES MC Plus?
A130 is "Operating conditions are not fulfilled." It is raised when the drive receives a positioning start (STA edge) while at least one precondition is false. The most common cause is an un-referenced axis (KK315 bit 30 = 0). Verify that bit, the OFF1 edge sequence, and the mode handshake (mode_in = mode_out = 3) before changing any setpoint.
How do I create the OFF1 positive edge over PROFIBUS?
Write STW1 = 0x047E for at least one DP cycle, then write STW1 = 0x047F. Bit 0 of the control word is OFF1 and is edge-triggered. To stop the drive, reverse the order: 0x047F → 0x047E produces a 1→0 transition which the drive interprets as OFF1 ramp-down.
Why is bit 30 of KK315 still 0 after the homing run?
The bit latches only after a complete, error-free homing cycle. The most common reasons for it staying at 0 are an aborted homing (check the homing status in the diagnostic parameters), an inactive enable chain (r550 ≠ all ones), a wrong homing mode in P570, or a homing trigger that never fired (no positive edge on the homing start bit in STW2).
Can the MC Plus run MDI moves without a homed axis?
In the default P570 setup, no. The MC Plus firmware blocks every STA edge while bit 30 of KK315 is 0. SINAMICS S120 and newer platforms do allow setup or relative positioning in MDI mode without a referenced axis, but on the MC Plus the only safe path is to complete a homing run first or to switch to a manual jog (handbetrieb) mode that does not require a reference.
How does the PLC confirm a successful MDI move?
After the STA edge, the drive advances r000 to 15. Read the actual position in the PZD words and compare it to U532. When the drive reaches the target and the following error drops inside the configured window, bit 31 of KK315 (in-position) goes high. The PLC should treat that bit as the move-complete signal and clear the STA pulse.