For 8 heavy motors on one MCC feeding a transformer, the goal is keeping aggregate inrush inside the transformer's capacity and voltage drop within ~5%.
The formula that matters: I_inrush ≈ 6–8 × FLA for DOL starting. 8 motors DOL-simultaneous = 48–64 × FLA of one motor — guaranteed trip. Every soft starter (or star-delta) you add cuts that motor's contribution to ~2–3.5 × FLA.
Sequencing logic (IEC 61131-3 ST, works on any PLC):
FOR i := 1 TO 8 DO
IF NOT Motor[i].Running THEN
// permissive: bus voltage ok AND previous motor's current settled
IF BusVoltageOK AND (i = 1 OR Motor[i-1].CurrentSettled) THEN
StartTimer[i](IN := TRUE, PT := T#5s); // stagger delay
IF StartTimer[i].Q THEN
StartPulse[i] := TRUE;
END_IF;
END_IF;
END_IF;
END_FOR;
Rules of thumb:
Stagger = 3–5 s between starts (soft-start ramp time + margin); use feedback (CT on each feeder), not blind timers, so a slow motor never gets stacked.
Add an undervoltage relay / bus-voltage check blocking the NEXT start (load-shedding) — this is what saves transformers.
Off-delay/restart lockout (e.g., 30 s min between stop and restart) for backspin + transformer thermal recovery.
Size: sum of running loads + largest inrush ≤ transformer kVA × permissible overload factor; keep voltage drop <5% per start at the MCC bus.
Open-source starting point: OpenPLC has soft-start function blocks and example sequencing projects you can load straight into the editor.
For 8 heavy motors on one MCC feeding a transformer, the goal is keeping aggregate inrush inside the transformer's capacity and voltage drop within ~5%.
The formula that matters: I_inrush ≈ 6–8 × FLA for DOL starting. 8 motors DOL-simultaneous = 48–64 × FLA of one motor — guaranteed trip. Every soft starter (or star-delta) you add cuts that motor's contribution to ~2–3.5 × FLA.
Sequencing logic (IEC 61131-3 ST, works on any PLC):
FOR i := 1 TO 8 DO IF NOT Motor[i].Running THEN // permissive: bus voltage ok AND previous motor's current settled IF BusVoltageOK AND (i = 1 OR Motor[i-1].CurrentSettled) THEN StartTimer[i](IN := TRUE, PT := T#5s); // stagger delay IF StartTimer[i].Q THEN StartPulse[i] := TRUE; END_IF; END_IF; END_IF; END_FOR;Rules of thumb:
Open-source starting point: OpenPLC has soft-start function blocks and example sequencing projects you can load straight into the editor.