The key point is: do not choose eight arbitrary fixed delays. A timer-only sequence can start the next motor while the previous one is still accelerating or while the bus has not recovered. Use a calculated delay as the initial value, but advance on measured voltage/current and starter feedback.
Put utility, transformer and feeder impedance on the same base in Z_source_pu. For a transformer-only rough screen, its nameplate Z% supplies that component. This is only a magnitude estimate; the final check should be a phasor motor-start/load-flow study including the already-running motors and cable impedance.
But the PLC should start motor i+1 only after all of these have remained true for a settling time:
motor i has RUN_FB
its current has fallen below a commissioned I_SETTLED(i)
MCC bus voltage has recovered above V_RECOVER
no overload, starter, process or safety fault exists
the next motor's permissives and minimum off-time are satisfied
Also use a separate T_START_MAX(i). If RUN_FB is not obtained before that timeout, stop the sequence and alarm; do not blindly continue.
Conceptual state machine:
READY:
if AUTO and all permissives and Vbus >= V_START:
command motor[i]
go to WAIT_RUN
WAIT_RUN:
if trip or Vbus < V_ABORT: go to FAULT
if start timeout: go to FAULT
if RUN_FB[i]: go to WAIT_SETTLE
WAIT_SETTLE:
stable = RUN_FB[i]
and I_motor[i] <= I_SETTLED[i]
and Vbus >= V_RECOVER
if stable continuously for T_SETTLE:
if i < 8: i := i + 1; go to READY
else: go to ALL_RUNNING
FAULT:
inhibit automatic restart, preserve the first-fault cause,
and require the site's defined reset/recovery procedure
Previously started motor commands remain on as the index advances. Add a single-start mutex so two commands cannot transition on the same PLC scan. Often the largest/hardest-starting motor is started while the bus is least loaded, but process constraints and the study should decide the order.
Sequencing prevents overlapping inrush. It does not reduce the dip caused by one motor. If any single DOL start is unacceptable, use a properly selected soft starter, VFD, star-delta/autotransformer starter, larger transformer/feeder, or another engineered reduced-voltage method. Reduced voltage also reduces starting torque, so verify the load can accelerate.
For open-source prototyping, this state machine maps cleanly to IEC 61131-3 Structured Text or SFC in https://autonomylogic.com/about; its current ST documentation includes CASE, timers and time literals. I would simulate the order and faults there, then implement and validate it in the production PLC/vendor toolchain.
Useful manufacturer references: https://library.e.abb.com/public/619009ca06434972a40b3479a1ed3c69/AP_Apparecchi-manovra-MT%28EN%29C_1VCP000735.pdf and https://www.eaton.com/content/dam/eaton/products/design-guides---consultant-audience/canada/cag/eaton-power-distribution-systems-consulting-application-guide-tb08104003e-tab-1-ca08104001e-ca.pdf.
For an eight-heavy-motor MCC, this logic must be reviewed against the short-circuit, coordination, motor thermal/acceleration and arc-flash studies by the responsible electrical/control engineer. Pneumatic timing alone is not a good primary solution because it cannot see bus recovery or electrical faults.
The key point is: do not choose eight arbitrary fixed delays. A timer-only sequence can start the next motor while the previous one is still accelerating or while the bus has not recovered. Use a calculated delay as the initial value, but advance on measured voltage/current and starter feedback.
1. Do a motor-starting screen first
For each motor, get these from the motor/starter/VFD data:
I_FLAA useful first-pass calculation is:
I_start = I_FLA × starting-current multiplier S_start = √3 × V_LL × I_start ΔV_pu ≈ |Z_source_pu| × I_start_puPut utility, transformer and feeder impedance on the same base in
Z_source_pu. For a transformer-only rough screen, its nameplateZ%supplies that component. This is only a magnitude estimate; the final check should be a phasor motor-start/load-flow study including the already-running motors and cable impedance.The actual relationship is essentially:
V_MCC = V_source − I_start × (Z_utility + Z_transformer + Z_feeder)Use the transformer/MCC/contactor/VFD manufacturer limits and the utility's permitted dip/flicker limits—there is no universal “5-second formula.”
2. Sequence on recovery, not just elapsed time
A practical step time is:
T_gap(i) = T_accel(i) + T_voltage_recovery + engineering marginBut the PLC should start motor
i+1only after all of these have remained true for a settling time:ihasRUN_FBI_SETTLED(i)V_RECOVERAlso use a separate
T_START_MAX(i). IfRUN_FBis not obtained before that timeout, stop the sequence and alarm; do not blindly continue.Conceptual state machine:
READY: if AUTO and all permissives and Vbus >= V_START: command motor[i] go to WAIT_RUN WAIT_RUN: if trip or Vbus < V_ABORT: go to FAULT if start timeout: go to FAULT if RUN_FB[i]: go to WAIT_SETTLE WAIT_SETTLE: stable = RUN_FB[i] and I_motor[i] <= I_SETTLED[i] and Vbus >= V_RECOVER if stable continuously for T_SETTLE: if i < 8: i := i + 1; go to READY else: go to ALL_RUNNING FAULT: inhibit automatic restart, preserve the first-fault cause, and require the site's defined reset/recovery procedurePreviously started motor commands remain on as the index advances. Add a single-start mutex so two commands cannot transition on the same PLC scan. Often the largest/hardest-starting motor is started while the bus is least loaded, but process constraints and the study should decide the order.
3. Know what sequencing cannot solve
Sequencing prevents overlapping inrush. It does not reduce the dip caused by one motor. If any single DOL start is unacceptable, use a properly selected soft starter, VFD, star-delta/autotransformer starter, larger transformer/feeder, or another engineered reduced-voltage method. Reduced voltage also reduces starting torque, so verify the load can accelerate.
For open-source prototyping, this state machine maps cleanly to IEC 61131-3 Structured Text or SFC in https://autonomylogic.com/about; its current ST documentation includes
CASE, timers and time literals. I would simulate the order and faults there, then implement and validate it in the production PLC/vendor toolchain.Useful manufacturer references: https://library.e.abb.com/public/619009ca06434972a40b3479a1ed3c69/AP_Apparecchi-manovra-MT%28EN%29C_1VCP000735.pdf and https://www.eaton.com/content/dam/eaton/products/design-guides---consultant-audience/canada/cag/eaton-power-distribution-systems-consulting-application-guide-tb08104003e-tab-1-ca08104001e-ca.pdf.
For an eight-heavy-motor MCC, this logic must be reviewed against the short-circuit, coordination, motor thermal/acceleration and arc-flash studies by the responsible electrical/control engineer. Pneumatic timing alone is not a good primary solution because it cannot see bus recovery or electrical faults.