UT_MOTOR_SD — Star-delta starter
UT_MOTOR_SD — Star-delta starter
Main, star and delta contactors with a timed (or current-confirmed) star stage and
an open-transition dead time, so star and delta are never on together. Modes,
interlocks, protection, faults and restart rules are as UT_MOTOR.
Pins
| Pin | Type | Default | What to wire | |
|---|---|---|---|---|
| in | AutoCmd |
BOOL | FALSE | Run request from your logic (Auto) |
| in | FeedbackMain |
BOOL | FALSE | Main contactor aux (the run feedback) |
| in | FeedbackStar |
BOOL | FALSE | Star contactor aux (only used with useStarDeltaFb) |
| in | FeedbackDelta |
BOOL | FALSE | Delta contactor aux (only used with useStarDeltaFb) |
| in | Overload |
BOOL | FALSE | Overload relay tripped (TRUE = tripped; a NC aux through NOT at the pin) |
| in | Thermistor |
BOOL | FALSE | PTC relay / thermal switch tripped (a NC contact through NOT at the pin) |
| in | Current |
REAL | 0.0 | Motor current in amps (used if fullLoadCurrent > 0) |
| in | Interlock |
BOOL | TRUE | FALSE stops the motor in every mode |
| in | Permissive |
BOOL | TRUE | FALSE blocks starting only |
| in | SwHand / SwAuto |
BOOL | FALSE | Selector switch (if modeSource uses it) |
| in | LocalStart |
BOOL | FALSE | Local start pushbutton (Hand) |
| in | LocalStop |
BOOL | FALSE | Local stop pushbutton (TRUE = pressed; a NC button through NOT at the pin) |
| in | Reset |
BOOL | FALSE | Reset for MANUAL protections (rising edge) |
| out | Main |
BOOL | Main contactor | |
| out | Star |
BOOL | Star contactor (never on with Delta) |
|
| out | Delta |
BOOL | Delta contactor | |
| out | Running |
BOOL | Run confirmed by the main feedback | |
| out | Fault |
BOOL | A trip is holding it off | |
| out | Warning |
BOOL | A protection set to warn is active | |
| out | Ready |
BOOL | Would start now if asked: healthy, permitted, in Auto or Hand, not waiting out restartDelay (stays TRUE while running) |
|
| out | Auto |
BOOL | In Auto mode | |
| out | State |
UT_STATE | For HMIs | |
| inout | Data |
UT_MOTOR_DATA | Shared motor record (UT_MOTOR) | |
| inout | Sd |
UT_MOTOR_SD_DATA | The star-delta settings and status (below) |
Always wire the star and delta contactors' NC auxiliaries as a hardware interlock as
well. The block never turns both on, but only the wiring stops a welded contactor.
Record UT_MOTOR_SD_DATA (pin Sd)
| Field | Type | Default | Meaning |
|---|---|---|---|
starTime |
TIME | T#6s | Time in star. Zero or negative is refused (see below) |
starCurrentPct |
REAL | 0.0 | If > 0 and fullLoadCurrent > 0: change to delta early once the current has risen to this % of FLC and fallen below it again (never later than starTime) |
transitionTime |
TIME | T#60ms | Open-transition dead time between star and delta (both ways) |
useStarDeltaFb |
BOOL | FALSE | Supervise the star / delta aux contacts |
changeover |
UT_PROTECTION | TRIP · 0 · MANUAL | Star / delta feedback wrong for the sequence (faultCode bit 9, below) |
inStar (status) |
BOOL | The star contactor is on |
Everything else (modes, protections, commands, status) is in the motor record Data.
How it works
- Sequence: star and main together →
starTime(or the early change on
current) → star off →transitionTime→ delta. Main stays on throughout, so
Runningand the run-feedback protections follow the main contactor. - Main confirmed first: with
useFeedbackthe change to delta waits until the
main contactor's feedback is in: star is held paststarTime, and delta is held
off in the transition, while main is not confirmed. If main never confirms,
noFeedbackacts; if it drops,feedbackLostacts. Delta never comes on with
main unconfirmed. Insimulatethe simulated feedback confirms it; without
useFeedbackthere is no wait. - Invalid settings:
starTimezero or negative would start the motor straight
in delta, so the motor is kept off with a fault (wrnConfig,faultCodebit 12
"Invalid setting"). A negativetransitionTime(0 is used), and astarCurrentPct
that is negative, not a number, or set without a validfullLoadCurrent(only
starTimeis used) warn (Warning,wrnConfig) and the motor runs. - The early change on current needs the current to have reached
starCurrentPctfirst, so the zero reading before the contactors make is not taken
as "up to speed". NaN or nofullLoadCurrent: the star time is used. - Stopping at any point (stop, interlock, trip, Off, OOS) turns all three off at
once. A start again goes into star, with a full star time. Star never comes on
withintransitionTimeof delta going off, so a quick restart after running in
delta waits for the dead time (the core is held, so no feedback fault is counted). - After a power-up the first start waits
transitionTime. - With
useStarDeltaFb(not insimulate): delta waits for the star aux to show
open, and a start waits for the delta aux to show open. The changeover
protection (changeover, bit 9, TRIP · MANUAL by default) trips when star and
delta both show closed; when delta shows closed in star, or star shows closed in
delta; when star or delta still shows closedstuck.delayafter it went off (a
welded contactor: delta is withheld, main stays on alone until the trip); or when
the star or delta aux has not confirmednoFeedback.delayafter its contactor came
on. - Always a gap: there is always at least one scan with neither star nor delta
on, even withtransitionTimeat 0.
Status
statusCode, faultId and statusText say the one main thing the motor is
doing, or what holds it back, so a technician can see on the HMI why it is not
running without opening the program. A motor asked to run that is not running
always shows a held, fault or configuration status. The most important reason wins:
configuration > fault > held / waiting > warning > running > idle. A warning shows
over "Running" so it is seen. The time that goes with a status is in timeLeft.
The text is rebuilt only when the status or the fault changes. The numbers are in
conventions.
statusCode |
Words | When |
|---|---|---|
UT_ST_OFF |
Off |
Mode Off |
UT_ST_IDLE |
Idle |
Auto with nothing asking it to run |
UT_ST_RUN_AUTO |
Running: Auto |
|
UT_ST_RUN_HAND |
Running: Hand |
With handMaxRun: timeLeft is the time left |
UT_ST_STARTING |
Starting |
Run given, run feedback not yet in |
UT_ST_STOPPING |
Stopping |
Stopped, run feedback still on |
UT_ST_RUN_GROUP |
Running: group |
A group (UT_DUTY, UT_PUMP_CASCADE) runs it; grpRank is its place |
UT_ST_STAR |
Starting: star |
(this block) In star; timeLeft is the star time left (it may change to delta earlier on current) |
UT_ST_RESTART_DELAY |
Waiting: restart delay |
Asked to run, restartDelay not over yet (timeLeft counts down) |
UT_ST_INTERLOCK |
Blocked: interlock |
Interlock FALSE (every mode but OOS) |
UT_ST_NOT_PERMITTED |
Not permitted |
Permissive FALSE while stopped, in Hand or Auto |
UT_ST_HAND_PRESS_START |
Hand: press start |
Hand and stopped: no start given, or it was dropped (a stop, a trip, the interlock, not permitted) |
UT_ST_WAIT_GROUP |
Waiting: turn in group |
A group owns it and does not run it now |
UT_ST_HAND_MAX_RUN |
Hand: max run, press start |
handMaxRun ended the Hand run |
UT_ST_MUST_CYCLE |
Waiting: command must cycle |
After a MANUAL reset, or a local stop in Auto: AutoCmd must go off and on |
UT_ST_OOS |
Out of service |
|
UT_ST_DEAD_TIME |
Waiting: dead time |
(this block) The open transition (star off, delta not yet on), or delta's dead time before star; timeLeft counts down |
UT_ST_WAIT_MAIN_FB |
Waiting: main contactor |
(this block) Star time is over, but the main contactor is not confirmed closed: delta waits (noFeedback trips if it never comes) |
UT_ST_WAIT_OPEN |
Waiting: contactor to open |
(this block) With useStarDeltaFb: the star or delta aux still shows closed |
UT_ST_WARNING |
Warning: <fault> |
A protection set to WARN is raised, or Current is NaN or infinite while a current level is in use (UT_F_CURRENT_BAD, current signal) |
UT_ST_WARN_SETTING |
Setting: <setting> |
An invalid setting, a safe value in use (settings below) |
UT_ST_FAULT |
Fault: <fault> |
Tripped, AUTO: clears by itself once the cause has gone for recover (timeLeft while it counts) |
UT_ST_FAULT_RETRY |
Retrying: <fault> |
Tripped, RETRY: the protection's retries of maxRetries (timeLeft while it counts) |
UT_ST_FAULT_RESET |
Latched: <fault> |
Tripped, MANUAL: a reset (pin, cmdReset, Off) once the cause has gone |
UT_ST_FAULT_LOCKED |
Locked: <fault> |
RETRY used up: now as MANUAL |
UT_ST_CONFIG |
Config: <setting> |
An invalid setting keeps the motor off |
<fault> is faultId, one of: UT_F_OVERLOAD (overload) · UT_F_MOTOR_HOT (motor
too hot) · UT_F_NO_FEEDBACK (no run feedback) · UT_F_FEEDBACK_LOST (feedback
lost) · UT_F_WELDED (contactor welded) · UT_F_CURRENT_HIGH (current high) ·
UT_F_CURRENT_LOW (current low) · UT_F_DRIVE (drive fault) · UT_F_SPEED_DEV
(speed deviation) · UT_F_CHANGEOVER (changeover) · UT_F_DRIVE_NOT_READY (drive
not ready).
<setting> is one of: UT_F_FLC (full load current) · UT_F_CURRENT_NEEDS_FLC
(current needs FLC) · UT_F_START_MASK (start mask) · UT_F_RESTART_DELAY (restart
delay) · UT_F_HAND_MAX_RUN (hand max run) · a protection's name (its delay,
recover or maxRetries).
This block adds the settings UT_F_TRANSITION_TIME (transition time) · UT_F_STAR_CURRENT (star current %) · UT_F_STAR_NEEDS_FLC (star % needs FLC) · UT_F_STAR_TIME (star time, zero or negative: UT_ST_CONFIG, kept off), and uses UT_F_CHANGEOVER for its changeover protection.
The rows marked (this block) come from its own sequence and show from the scan after it changes.
Using it
Crusher(AutoCmd := Seq.Run3, FeedbackMain := KM_Aux, FeedbackStar := KY_Aux, FeedbackDelta := KD_Aux,
Overload := Crusher_OL, Current := Crusher_Amps, Interlock := PullCord.Healthy, Data := CrusherData,
Sd := CrusherSd);
KM := Crusher.Main;
KY := Crusher.Star;
KD := Crusher.Delta;