System Overview
The Siemens MXG461B15-1.5 is a magnetic-actuated 3-way control valve designed for hydronic circuits in HVAC and process heating/cooling loops. When paired with a Beckhoff EtherCAT coupler (EK1100) and analog terminals (EL3162 input, EL4104 output), the valve can be driven directly from a TwinCAT 3 PLC using a unipolar 0–10 V control signal. This reference covers the analog I/O commissioning path, terminal scaling, characteristic curve selection, PID tuning, and a multi-sensor feedback strategy suitable for accurate water temperature regulation on a mixing or diverting circuit.
| Component | Role | Signal/Power | Notes |
|---|---|---|---|
| Siemens MXG461B15-1.5 | 3-way mixing/diverting valve, magnetic actuator | 24 V AC/DC actuator supply; 0–10 V or 4–20 mA positioning signal | Select one signal type at order; field conversion requires actuator re-configuration |
| Beckhoff EK1100 | EtherCAT coupler | 24 V DC | Bridges EtherCAT to terminal bus; first slot in the I/O row |
| Beckhoff EL3162 | 2-channel analog input, ±10 V / 0–10 V | 24 V DC via power contacts | Used for valve feedback or temperature transmitter readout |
| Beckhoff EL4104 | 4-channel analog output, 0–10 V | 24 V DC via power contacts | Drives the valve positioning input; 12-bit resolution |
| TwinCAT 3 PLC | Control and visualization runtime | — | Requires TF6620 only if also communicating with Siemens S7 controllers |
Valve Selection and Signal Type
The MXG461 series is offered with two positioning signal variants:
- Voltage variant (default for this article): 0–10 V DC positioning input, corresponds linearly to 0–100% stroke when the valve is configured for linear characteristic.
- Current variant: 4–20 mA positioning input. Order code must specify the current variant; the actuator cannot be field-converted between voltage and current without factory authorization.
Hardware Wiring
Wire the actuator first, then the analog loop. The MXG461 has separate terminals for actuator supply (24 V) and the positioning signal.
Actuator Supply
- Connect 24 V AC or 24 V DC to the actuator supply terminals (G, G0 for AC; +, − for DC). Observe the polarity markings on the actuator nameplate.
- Verify the actuator type plate lists 24 V operating voltage matching the source.
- Confirm that the actuator cover is closed and the cable gland is torqued before energizing.
Positioning Signal — EL4104 to Valve
- Route a shielded twisted pair from the EL4104 channel 1 output (terminal A1, signal ground A1 GND) to the MXG461 positioning input (terminal Y, reference G0).
- Connect the shield to functional earth at the cabinet side only. Do not ground the shield at the valve end.
- Set the EL4104 output range in TwinCAT to 0–10 V (factory default; do not select ±10 V when the valve expects unipolar 0–10 V).
Feedback / Temperature Inputs — Sensors to EL3162
Although the MXG461 valve is self-actuating and does not require an external position feedback wire for closed-loop control of stroke, plant feedback is typically a process variable (e.g., outlet water temperature). Use the EL3162 channels for:
- Channel 1: cold water inlet temperature (PT1000 or 0–10 V transmitter).
- Channel 2: hot water inlet temperature.
- Channel 3 (if a third EL3162 channel is used or via a later terminal): mixed outlet temperature downstream of the valve.
TwinCAT 3 I/O Configuration
After scanning the EtherCAT network (TwinCAT → Devices → Scan), the EL3162 and EL4104 appear in the I/O tree. Confirm the following Process Data settings before any output is enabled.
| Parameter | EL4104 (Output) | EL3162 (Input) |
|---|---|---|
| Output/Input range | 0–10 V (unipolar) | 0–10 V (unipolar) |
| Resolution | 12-bit (default) | 16-bit (default) |
| Scaling factor | 1 count ≈ 2.44 mV | 1 count ≈ 0.153 mV |
| Filter | Disabled | 50 Hz FIR enabled for noisy plant environments |
| Watchdog | Enabled (default 100 ms) | N/A |
Scaling Equations
The raw INT value written to the EL4104 maps to output voltage as:
V_out = (OutputValue / 32767) × 10 V
For example, a control output of 60% of stroke requires an INT value of:
OutputValue = 0.60 × 32767 ≈ 19660
The same scaling applies in reverse for the EL3162 when reading a 0–10 V transmitter.
PLC Program Skeleton
Use two function blocks — one for the analog output (valve command) and one for the analog input (process variable). A minimal IEC 61131-3 structured text skeleton is given below.
Variable Declaration
VAR
// Hardware links
fbAO : FB_AnalogOutput; // drives EL4104 channel 1
fbAI1 : FB_AnalogInput; // reads EL3162 channel 1 (cold inlet T)
fbAI2 : FB_AnalogInput; // reads EL3162 channel 2 (hot inlet T)
// Process variables
rSetpoint : REAL := 45.0; // °C target mixed-outlet temperature
rPV_Cold : REAL; // °C measured cold inlet
rPV_Hot : REAL; // °C measured hot inlet
rPV_Out : REAL; // °C measured mixed outlet
// PID controller
fbPID : FB_PID_Controller; // OSCAT or Tc3_ControllerPid
rManipulated : REAL; // 0..100 %
// Output to valve (0..100%)
iValveCmd : INT; // raw INT to EL4104
END_VAR
Main Cyclic Body
// Read sensors
fbAI1(rRaw := EL3162_AI_Ch1, eRange := AI_0_10V, rScaled => rPV_Cold);
fbAI2(rRaw := EL3162_AI_Ch2, eRange := AI_0_10V, rScaled => rPV_Hot);
// Optional: read outlet temperature from a third channel
// rPV_Out := fReadOutlet();
// Compute control error based on chosen loop (e.g., outlet temperature)
rPV_Out := fEstimateOutlet(rPV_Cold, rPV_Hot, rManipulated);
// Run PID
fbPID(
bEnable := TRUE,
rSetpoint := rSetpoint,
rActualValue:= rPV_Out,
rOutput => rManipulated,
eMode := PID_MODE_AUTO
);
// Clamp manipulated variable to safe operating window
IF rManipulated < 0.0 THEN rManipulated := 0.0; END_IF;
IF rManipulated > 100.0 THEN rManipulated := 100.0; END_IF;
// Apply characteristic curve (linear by default)
// Linear: output % = valve %
// Equal-percentage: apply gain table (see Section: Valve Characteristic)
rManipulated := fApplyCharacteristic(rManipulated, eCurve := CURVE_LINEAR);
// Convert % to EL4104 raw INT
iValveCmd := REAL_TO_INT(rManipulated * 32767.0 / 100.0);
// Write to hardware
fbAO(iRaw := iValveCmd, eRange := AO_0_10V);
Valve Characteristic: Linear vs. Equal-Percentage
The MXG461 magnetic actuator is approximately linear by design, but the installed flow characteristic of the valve depends on the trim. Recommended practice for water temperature control:
- Linear (CURVE_LINEAR): Use as the default. Best control quality between 20% and 80% stroke.
- Equal-percentage (CURVE_EQUAL_PERCENTAGE): Switch to this curve if the loop continuously operates below 20% or above 80% stroke. Provides better resolution at low flow and prevents hunting near the seat.
A simple field rule: if the steady-state PID output settles below 20% or above 80% for more than a few minutes, change the characteristic curve or re-balance the system hydraulics.
Multi-Sensor Temperature Strategy
Three temperature measurements are recommended for a closed-loop mixing application:
- Cold inlet temperature — used as a feed-forward term to anticipate load changes.
- Hot inlet temperature — used as the upper bound for safety and as the source for the heat-balance equation.
- Mixed outlet temperature — primary process variable for PID feedback.
The manipulated valve position required to achieve a target outlet temperature can be estimated as:
ValvePos% ≈ (T_target − T_cold) / (T_hot − T_cold) × 100
This feed-forward term is added to the PID output as a bias to reduce overshoot during cold-side temperature swings. Clamp the result to 0–100% before writing to the valve.
PID Tuning Procedure
- Start with conservative gains. Set Kp = 0.5, Tn = 60 s, Tv = 0 s. Disable derivative action initially.
- Apply a step test. Change the setpoint by 2 °C and observe the response. Note rise time, overshoot, and settling time.
- Tune Kp upward in 0.2 steps until the loop shows mild oscillation, then reduce Kp by 30%.
- Add integral action by reducing Tn from 60 s toward 20 s until steady-state error is eliminated in under 3 minutes.
- Add derivative action only if the loop has measurable lag (>30 s) and noise is below 0.1 °C RMS. Start Tv at 5 s.
- Verify disturbance rejection by varying the cold inlet temperature and confirming the outlet returns to setpoint within tolerance.
Troubleshooting Matrix
| Symptom | Likely Cause | Diagnostic | Resolution |
|---|---|---|---|
| Valve command 10 V, but EL3162 reads variable voltage dropping to 0 V | Cross-wired channels, EL3162 input channel disabled, or wrong Process Data object linked | Use TwinCAT online scope on EL3162 input; check channel Enable bit | Re-link the correct process variable; verify Channel 1 enable in CoE |
| EL4104 output stuck at 0 V | Watchdog triggered; Sync Manager watchdog time exceeded | Check EL4104 diagnostic LEDs (Diag LED on, or Err LED blinking) | Reduce TwinCAT cycle time below watchdog time; or extend watchdog in CoE 0x8000:0C |
| Valve oscillates around setpoint | Loop gain too high or derivative action reacting to noise | Log PV and manipulated variable over 5 minutes | Reduce Kp by 30%; add first-order filter on PV; disable derivative if noise > 0.1 °C |
| Steady-state error (PV offset from SP) | Insufficient integral action | Observe manipulated variable saturating | Reduce Tn (integral time) progressively |
| Output settles below 20% or above 80% | Hydraulic imbalance or wrong characteristic curve | Plot output % versus PV over 30 minutes | Switch from linear to equal-percentage characteristic; rebalance system flows |
| No actuator response despite correct signal | 24 V actuator supply missing, or wrong signal variant ordered (mA vs V) | Measure voltage at actuator terminals Y/G0; check actuator type plate | Restore 24 V supply; confirm actuator ordered in 0–10 V variant |
| TwinCAT cannot see EL3162/EL4104 | EtherCAT termination or wiring error | Check EK1100 Link/Activity LEDs | Verify incoming EtherCAT cable; confirm terminals seated firmly on the bus |
Beckhoff ↔ Siemens PLC Interoperability (Optional)
If the plant also contains a Siemens S7 controller that must exchange data with the Beckhoff TwinCAT PLC (for example, to forward setpoints from a higher-level SCADA), use the TF6620 TwinCAT 3 S7 Communication supplement. Per the Beckhoff Information System, the tested and supported Siemens controllers for TF6620 are:
- Siemens S7-300
- Siemens S7-400
- Siemens S7-1200
- Siemens S7-1500
The supplement uses ISO-on-TCP (RFC1006) and supports PUT/GET and S7 communication primitives. Refer to the TF6620 TwinCAT 3 S7 Communication documentation and the TF6620 manual (PDF) for register mapping and configuration steps. Ensure the S7 controller's TCP/IP interface is enabled and that the Beckhoff side has the correct TSAP and rack/slot identifiers.
Alternative: EL6692 Bridge for EtherCAT Masters
If a separate CODESYS controller must read the same valve telemetry, an EL6692 EtherCAT bridge terminal can connect two EtherCAT masters. Configuration steps:
- Insert the EL6692 in the Beckhoff terminal bus between the EK1100 and the analog terminals.
- Configure the EL6692 in TwinCAT as the secondary side of the bridge.
- On the CODESYS master, scan the secondary EtherCAT network and add the exposed analog terminals.
- Map the same Process Data variables on both controllers and use a shared tag for the valve command.
Commissioning Verification
Use this checklist before handing the loop over to production:
- Measure 0 V at the EL4104 output with the PLC in STOP — the valve should be fully closed (or at its fail-safe position).
- Force the EL4104 output to 5 V from TwinCAT. Measure 5 V ± 50 mV at the actuator input terminals.
- Force 10 V and confirm the valve reaches full stroke audibly (magnetic actuator click) within 30 s.
- Enable the PID loop with setpoint = current PV and confirm zero manipulated-variable movement.
- Apply a 2 °C setpoint step and verify the loop reaches steady state within 5 minutes with overshoot < 10%.
- Trip a cold-side disturbance (e.g., close an upstream valve briefly) and verify recovery.
- Confirm watchdog behavior: stop the TwinCAT task and verify the EL4104 output drops to 0 V within the configured watchdog time.
FAQ
Can the Beckhoff EL4104 directly drive a Siemens MXG461B15-1.5 valve?
Yes. Set the EL4104 channel range to 0–10 V and wire the output to the MXG461 positioning input terminals (Y and G0). The EL4104 delivers up to 10 mA per channel, which is sufficient for the high-impedance voltage input of the magnetic actuator.
What is the default scaling between the EL4104 raw INT value and the valve command percentage?
Use V_out = (OutputValue / 32767) × 10 V. A 50% valve command requires OutputValue = 16384, and a 100% command requires OutputValue = 32767.
Should I use linear or equal-percentage characteristic for a water temperature loop?
Start with linear. Switch to equal-percentage if the steady-state PID output consistently sits below 20% or above 80% of stroke, which indicates poor resolution at the operating point.
How do I integrate a Siemens S7-1500 with the TwinCAT 3 PLC running this valve control?
Install the TF6620 TwinCAT 3 S7 Communication supplement and configure ISO-on-TCP PUT/GET or native S7 communication. Beckhoff has verified the S7-300, S7-400, S7-1200, and S7-1500 for this supplement. Refer to the Beckhoff Information System TF6620 page for TSAP, rack, and slot configuration.
My valve command signal is correct but the actuator does not move — what should I check?
Verify the 24 V actuator supply is present at the MXG461 supply terminals, confirm the actuator type plate lists 0–10 V (not 4–20 mA), and confirm the actuator is not in manual override mode. Also verify that the EL4104 watchdog has not triggered (Diag LED illuminated).