Problem Overview
When a motor managed by a Siemens SIMOCODE pro V DP (basic unit 3UF7010-1A.x, PROFIBUS expansion module 3UF7011-0A) is started in local control mode using a hardwired ON pushbutton and then the operator switches the Local/Remote selector to remote, the motor continues to run even though no PROFIBUS ON command is present. The same symptom appears when the operator switches from remote back to local without first sending an OFF command over the bus.
This is not a defect in SIMOCODE; it is the expected behavior of the standard mode selector block. The active control function (ON command, OFF command) is latched on the rising edge of its enable input. When the mode selector changes state, the previously latched command is not automatically cleared. The fix is to add explicit logic that resets the motor command when the active control source changes.
Root Cause Analysis
SIMOCODE pro V provides four parallel control functions, each selectable through the mode selector parameter block (parameter P.110 in SIMOCODE ES 2007 / TIA Portal):
- Control function 1 — DP/PLC (PROFIBUS cyclic control words)
- Control function 2 — DP/PLC alternative (selectable bit, e.g., bit 6 of the cyclic control word)
- Control function 3 — Local control via hardwired inputs (ON/OFF pushbuttons)
- Control function 4 — Operator panel (SIRIUS 3UF7200 HMI)
The mode selector is driven by two hardware inputs, S1 (input 1) and S2 (input 2), both factory-mapped to terminals of the basic unit. The truth table in the SIMOCODE parameter set is fixed:
| S1 | S2 | Active Control Function | Behavior |
|---|---|---|---|
| 0 | 0 | DP/PLC (Control function 1) | Remote control via PROFIBUS |
| 1 | 0 | DP/PLC alt. (Control function 2) | Remote control, alternative bit |
| 0 | 1 | Local (Control function 3) | Hardwired ON/OFF pushbuttons |
| 1 | 1 | Operator panel (Control function 4) | SIRIUS 3UF7200 HMI |
Once the ON command from the active control function is accepted, it latches the contactor output (Q1) ON. The latch is held by the active function's enable. When the mode selector transitions, the previous function's enable is removed, but the running state of the motor is not cleared by the mode selector itself — the OFF command must come from the newly active function, or from explicit logic.
Symptom: with the pump started in local (S1=0, S2=1), the latch holds Q1 ON. The selector is flipped to remote (S1=0, S2=0). PROFIBUS is not sending an ON. SIMOCODE does not auto-issue an OFF; the contactor stays energized.
Solution Architecture
Two complementary approaches solve the problem. The recommended production solution uses both in parallel:
- Logic table (Truth table) in SIMOCODE — generate a synthetic OFF pulse on the falling edge of S1 or S2.
- Input wiring — wire the mode selector through a switch whose break-before-make contact guarantees a transient OFF state during transition, so that no command is latched across the changeover.
Approach 1 is software-only and can be implemented entirely in SIMOCODE ES 2007 or in TIA Portal with the SIMOCODE ES V15+ add-in. Approach 2 is hardware-only and works even when SIMOCODE logic is bypassed.
Logic Table Implementation (Recommended)
SIMOCODE pro V supports four user-defined logic blocks — two truth tables (3UF7010 / 3UF7011 / 3UF7012 / 3UF7013 / 3UF7020) and two timer/counter blocks. We will use a single truth table to generate the synthetic OFF.
Step 1 — Add a logic block
- Open the project in SIMOCODE ES 2007 (or TIA Portal with the SIMOCODE ES V15+ add-in).
- Navigate to Logic blocks > Truth table 1 (parameter group P.810 onward).
- Enable the truth table:
Truth table 1 = enabled.
Step 2 — Define inputs
Assign the following signals to the truth table's input columns:
-
I1 =
Input 1 (S1)— mode selector bit A -
I2 =
Input 2 (S2)— mode selector bit B -
I3 =
Output Q1 status— contactor feedback (optional, used as interlock)
Step 3 — Define output
Assign a single output O1 to the bit OFF1 (general OFF command) in the SIMOCODE command matrix. This is the same internal bit the OFF pushbutton drives. Driving it high for one scan forces the latch off.
Step 4 — Write the truth table rows
The goal: emit a 1-cycle pulse on O1 whenever (S1, S2) changes. A change detector is built by comparing the current S1,S2 pair to the previous scan. SIMOCODE truth tables do not have memory directly, so we add two additional inputs that capture the previous values through two extra logic outputs that feed back into the table — or, more practically, we use the rising-edge transition of any of the mode selector terminals.
A simpler field-proven truth table is to OR the falling edges of S1 and S2 into the OFF command. SIMOCODE truth tables are level-sensitive, so we XOR the selector bits and pulse the OFF for the duration of the transition:
| Row | I1 (S1) | I2 (S2) | I3 (Q1) | O1 (OFF1) | Comment |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | Remote, motor stopped — no action |
| 1 | 0 | 0 | 1 | 0 | Remote, motor running from remote — keep running |
| 2 | 0 | 1 | 0 | 0 | Local, motor stopped |
| 3 | 0 | 1 | 1 | 0 | Local, motor running locally — keep running |
| 4 | 1 | 0 | 0 | 0 | DP/PLC alt., motor stopped |
| 5 | 1 | 0 | 1 | 0 | DP/PLC alt., motor running — keep running |
| 6 | 1 | 1 | 0 | 0 | Panel, motor stopped |
| 7 | 1 | 1 | 1 | 0 | Panel, motor running — keep running |
This table alone does not fix the issue because it has no memory of the previous mode. The next block adds the change detector.
Step 5 — Add a 2-bit change detector using a second truth table
- Enable Truth table 2 (parameter P.820).
- Inputs: I1 = Input 1, I2 = Input 2, I3 = output of truth table 1, I4 = output of truth table 2 (feedback).
- Output: O1 = OFF1.
Logic: the table looks for the pattern where (S1,S2) differs from the latched value. Because the table is level-scanned each cycle, the pulse lasts exactly one PROFIBUS cycle (~10 ms at 1.5 Mbaud) and then self-clears. The table is a simple S-R latch driving the OFF bit:
| Row | I1 (S1 prev) | I2 (S2 prev) | I3 (S1 curr) | I4 (S2 curr) | O1 (OFF pulse) | Comment |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | No change, no pulse |
| 1 | 0 | 0 | 0 | 1 | 1 | Selector changed — pulse OFF |
| 2 | 0 | 0 | 1 | 0 | 1 | Selector changed — pulse OFF |
| 3 | 0 | 0 | 1 | 1 | 1 | Selector changed — pulse OFF |
| 4 | 0 | 1 | 0 | 0 | 1 | Selector changed — pulse OFF |
| 5 | 0 | 1 | 0 | 1 | 0 | No change |
| 6 | 0 | 1 | 1 | 0 | 1 | Selector changed — pulse OFF |
| 7 | 0 | 1 | 1 | 1 | 1 | Selector changed — pulse OFF |
| 8 | 1 | 0 | 0 | 0 | 1 | Selector changed — pulse OFF |
| 9 | 1 | 0 | 0 | 1 | 1 | Selector changed — pulse OFF |
| 10 | 1 | 0 | 1 | 0 | 0 | No change |
| 11 | 1 | 0 | 1 | 1 | 1 | Selector changed — pulse OFF |
| 12 | 1 | 1 | 0 | 0 | 1 | Selector changed — pulse OFF |
| 13 | 1 | 1 | 0 | 1 | 1 | Selector changed — pulse OFF |
| 14 | 1 | 1 | 1 | 0 | 1 | Selector changed — pulse OFF |
| 15 | 1 | 1 | 1 | 1 | 0 | No change |
This produces a single OFF pulse on every transition of the selector switch. The pulse is wide enough to clear the Q1 latch but narrow enough to be ignored by the PLC if the new mode is supposed to start the motor. The PLC then issues its own ON within the next PROFIBUS cycle if needed.
Hardware Input Configuration
If the logic block approach is not desired (for example, in a retrofit where the existing project must remain untouched), wire the mode selector so that the transition through a non-valid state forces an OFF:
Method A — Break-before-make selector
Use a maintained selector switch with two poles: pole A drives S1, pole B drives S2. Wire the contact between S1 and S2 to insert a 50 ms dead-band using a small timing relay. During the dead-band, both S1 and S2 are LOW, putting the system in the (0,0) DP/PLC remote mode. The PLC must therefore be the only authority that re-starts the motor after a mode change — which is the correct behavior for a plant where the DCS is the master.
Method B — PLC-driven mode selector
Do not wire the selector to the hardwired inputs at all. Drive both S1 and S2 from a single PLC output byte using a SIRIUS 3UF7900 digital module interface or via PROFIBUS to a 3UF7700 actuator interface. The PLC then has full knowledge of mode changes and can sequence its own OFF before the mode change is committed to SIMOCODE.
PROFIBUS Integration Notes
When SIMOCODE pro V DP operates on PROFIBUS (DP-V0), the cyclic control word from the master (typically a SIMATIC S7-300/400/1200/1500) occupies the first two output bytes. The standard assignment per the GSD file SIEM804D.GSD is:
| Bit | Cyclic control word (master → SIMOCODE) | Function |
|---|---|---|
| 0 | ON | Start command (rising-edge latched) |
| 1 | OFF | Stop command |
| 2 | Trip reset | Acknowledges a fault |
| 3 | Emergency start | Bypasses warm-up timer |
| 4 | Cold start (TE) | Test/emergency |
| 5 | — | Reserved |
| 6 | Control function 1/2 select | 0 = CF1, 1 = CF2 |
| 7 | — | Reserved |
Bit 0 is edge-evaluated by default. The PLC must produce a 0→1 transition to start. A held high level does not restart on every cycle. This is the mechanism that allows the OFF-pulse from the truth table to clear the local latch without immediately re-asserting the PROFIBUS ON — the PLC's own ON bit is still low.
Step-by-Step Commissioning Procedure
-
Backup the SIMOCODE parameter set using SIMOCODE ES 2007 → Device → Upload from device. Save the
.sdpfile with a timestamp. - Verify the firmware version of the basic unit: navigate to Diagnostics → Device data. SIMOCODE pro V should report firmware
V3.0or higher (the truth table feature requires ≥ V1.5; recommended V3.x for stability). - Open the Mode selector parameter block (P.110) and confirm S1 is mapped to
Input 1and S2 is mapped toInput 2. S1 and S2 must be level-evaluated, not edge-evaluated. - Implement Truth table 1 and Truth table 2 as shown above.
- Download the parameter set. SIMOCODE will go into a warm restart (~2 s); the contactor will drop out.
- Test the local-to-remote transition: start the motor with the local ON pushbutton, wait for full speed, flip the selector to remote. The motor must stop within 1 scan cycle (~10 ms).
- Test the remote-to-local transition: issue ON over PROFIBUS, wait for full speed, flip the selector to local. The motor must stop within 1 scan cycle.
- Test the start-while-running: start the motor in local, while running issue OFF from PROFIBUS. The motor must stop.
- Test the edge case of selector held in transit: bounce the selector rapidly between two positions 5 times in 2 seconds. The motor must not re-start without a fresh ON command.
Verification
| Test | Expected result | Pass criteria |
|---|---|---|
| Local start, switch to remote | Motor stops within 100 ms | Contactor Q1 drops; status word bit 0 (Q1) = 0 |
| Remote start, switch to local | Motor stops within 100 ms | Contactor Q1 drops; status word bit 0 (Q1) = 0 |
| Local start, OFF from local | Motor stops within 100 ms | Normal OFF behavior preserved |
| Remote start, OFF from remote | Motor stops within 100 ms | Normal OFF behavior preserved |
| Mode change while fault active | Fault remains latched | Mode change must not clear a fault; only trip reset does |
| Selector wires disconnected | SIMOCODE goes to DP/PLC mode | Failsafe behavior — default to remote |
| Loss of PROFIBUS | Behavior per bus fault setting | Configurable: last state, OFF, or pre-defined |
Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic step | Resolution |
|---|---|---|---|
| Motor never starts in local | Local ON pushbutton not wired to ON/OFF local input | Check P.110 control function 3 mapping | Wire ON pushbutton to the input assigned to CF3 ON |
| Motor never starts in remote | Cyclic control word bit 0 not latched | Watch PROFIBUS trace; check bit 0 edge | Add rising-edge generator in PLC; verify GSD file is correct |
| Motor runs on after selector change | Truth table not enabled or OFF1 not connected | Online monitor of truth table output | Re-enable truth table 2; re-map O1 to OFF1 in command matrix |
| Motor stops as soon as it starts | OFF pulse too wide; truth table stuck HIGH | Check O1 status in online monitor | Verify only one row in truth table 2 produces O1=1; check feedback latch |
| Fault 0x03 (overload) trips on every start | Starting current exceeds overload class setting | Check P.020 (overload class) | Increase overload class to match FLA per motor nameplate |
| Mode selector reads wrong value | S1 or S2 mapped to wrong input | Check P.110 input mapping | Re-map to Input 1 / Input 2 |
| PROFIBUS diagnostic "station failure" | PROFIBUS address conflict or wrong GSD | Check address DIP switches on 3UF7011 | Set unique address 3–125; reload GSD SIEM804D.GSD |
| LED "device" red, "bus" green | Configuration mismatch | Compare online vs. offline parameter set | Re-download parameter set; cycle power |
Field-Engineer Notes
- SIMOCODE pro V is a current-monitoring relay, not a soft starter. It does not control voltage — it asserts the contactor. A contactor that is mechanically welded will keep the motor running regardless of OFF commands. Always verify the contactor with a megohmmeter after a runaway event.
- The
Fixed level 1feature (which the original poster used to hold S1 high) is a valid way to force S1=1, but it prevents the (0,0) DP/PLC state from ever being selected. The (0,0) state is the safest default because it puts the master in control. If you must useFixed level 1, also drive S2 from the selector switch — which the original poster did, and which is the correct wiring for the simplified (0,1)=local / (1,0)=remote selection. - Some older SIMOCODE pro V basic units (firmware V1.0) do not expose truth tables to the user. Upgrade to V3.x or migrate to a SIMOCODE pro V PN (3UF7011) for full logic capability.
- The
OFF1command from the truth table is treated identically to the OFF pushbutton. It will not clear a latched fault — use trip reset (bit 2 of PROFIBUS control word) for that.
Related Configuration
For installations that also require the motor to ramp down under controlled deceleration (e.g., centrifugal pumps), add a Soft stop function block (P.660 in SIMOCODE ES) with a deceleration time matching the pump's inertia. The OFF pulse from the truth table will trigger the soft stop rather than a hard cut, which prevents water hammer.
For dual-pump alternation (lead/lag), the same truth-table pattern can be applied to two SIMOCODE instances sharing a common mode selector. Ensure the OFF pulses from the two units are not coupled through the shared mode selector — use optocouplers on the selector lines to keep the inputs independent.
FAQ
Why does the motor keep running after switching from local to remote on SIMOCODE pro V?
The ON command is latched in SIMOCODE when the local pushbutton is pressed. The mode selector does not clear the latch when control authority changes. The fix is to add a truth table that detects a selector transition and pulses the internal OFF1 bit for one cycle.
Can I solve this with a hardware selector switch only, no logic block?
Yes. Use a break-before-make two-pole selector with a 50 ms dead-band inserted between poles. During the dead-band, both S1 and S2 are LOW, placing the system in the (0,0) PROFIBUS remote mode. The PLC will then be the only authority that re-starts the motor, which is the correct master/slave behavior.
Does the OFF pulse from the truth table clear a fault?
No. The OFF1 bit stops the contactor but does not acknowledge a fault. Use the trip-reset bit (bit 2 of the PROFIBUS cyclic control word) to clear a latched fault. The OFF pulse will, however, drop a non-faulted running motor within one SIMOCODE cycle (~10 ms).
What SIMOCODE firmware version is required for truth tables?
Truth tables are available from firmware V1.5 onward. Field practice recommends V3.0 or higher for stability, especially when combining truth tables with the soft-stop function block and PROFIBUS DP-V1 diagnostics.
Is this issue the same on SIMOCODE pro V PN (PROFINET) and pro V EIP (EtherNet/IP)?
Yes. The mode selector, truth tables, and OFF1 bit are identical across all three fieldbus variants of SIMOCODE pro V. Only the cyclic control word numbering differs (PROFINET uses slot 0 / subslot 1, EtherNet/IP uses assembly instance 100). The troubleshooting steps above apply unchanged.