PLC Motor Control VFD Setup: DOL, PowerFlex 525, G120

Most of a PLC motor control VFD project is settled in the first hour by three decisions: contactor or drive, hardwired or network control, and who owns the stop circuit. Get those right and the programming is an afternoon. Get them wrong and you are back in the panel with a drill. This walkthrough covers a direct on line starter, a PowerFlex 525 on EtherNet/IP, and a SINAMICS G120 on PROFINET with telegram 1.

The kit in this example

ItemDetail
Controller1756-L83E, Studio 5000 v33
DrivePowerFlex 525, 7.5 kW, embedded EtherNet/IP
Motor7.5 kW, 400V, 14.6 A full load, 1460 rpm
Starter comparisonContactor plus thermal overload relay, class 10
Siemens sideS7-1500 with a G120 CU240E-2 PN, telegram 1
SafetyHardwired category 3 stop into STO on the drive

Decide between a starter and a drive on the load, not the budget

DOL starterVFD
Starting current6 to 8 times full loadUnder full load current
SpeedOneAnything from creep to above base speed
Soft stopNo, coast or plugControlled ramp
Cable and EMCOrdinary cableShielded cable, gland at both ends, grounding matters
Cost per motorLowHigher, plus panel heat and space
Good forPumps that run all shift, small fans, hydraulic packsConveyors, anything that has to match another axis, anything where you want to cut energy

A 7.5 kW pump that starts twice a day does not need a drive. A conveyor that has to track the machine downstream does, and the moment you put a drive on it you inherit cable screening, reflected wave on long runs, and a new set of fault codes to learn.

Wire the stop so it works when the PLC does not

The seal-in rung is still the heart of a starter circuit, but it must not be the only thing stopping the motor. The stop button and the emergency stop belong in the control circuit or in the safety relay, wired normally closed. The PLC bit is how the operator asks for a stop. The wiring is what guarantees it.

Rung 0: run command with seal-in
  ---] [---------]/[--------] [---------( )---
    Start        Stop      Drive_Ready   Run_Cmd
   |
   ---] [---
    Run_Cmd

Rung 1: drive fault latch
  ---] [--------------------------------( )---
   Drive_Faulted                      Drive_Alarm

Ladder rung: Start in parallel with the Run_Cmd seal-in contact, in series with a normally closed Stop and a Drive_Ready contact, driving the Run_Cmd output

Drive_Ready in series is the part people leave out. Without it the PLC keeps commanding run into a faulted drive, the operator sees a green lamp, and nothing turns. The same rung with a timer on the start is in motor start and stop via timer, and the classic RSLogix version is in RSLogix motor start stop program.

On a line-fed starter you still need the thermal overload relay. The drive protects the motor it is driving, and nothing else.

Advertisement

Set up the PowerFlex 525 before you write a rung

  1. Power the drive, press the keypad Esc to the parameter list and work through the motor nameplate group: motor volts, hertz, overload current, full load amps, poles and rated rpm. Copy them from the plate on the motor, not from the order.
  2. Set the accel and decel times. P041 and P042 are the first pair. Start at 10 seconds each and shorten them once the load is known.
  3. Point the drive at the network for start and reference. The start source and speed reference parameters both have to select the embedded EtherNet/IP port, otherwise the drive accepts your command and takes its speed from the keypad.
  4. Set the IP address in the C128 group, either static or from BOOTP. Static, always, on a machine.
  5. In Studio 5000, add the drive under the Ethernet port with its Add-On Profile. Set the RPI to 20 ms. The profile creates the command and status tags for you, which is much better than counting bits in a raw assembly.
  6. Decide what the drive does when the network stops. The comm loss action must be fault and stop for anything that moves a load.

The full add sequence with the dialog boxes is in how to add a PowerFlex AC drive to a Studio 5000 project.

Once the profile is in, the logic is short:

(* Speed reference in Hz, scaled from the HMI 0 to 100 percent *)
Drive1_SpeedRef_Hz := (HMI_Speed_Pct * 50.0) / 100.0;

Drive1:O.Start   := Run_Cmd AND Drive1:I.Ready;
Drive1:O.Stop    := NOT Run_Cmd;
Drive1:O.ClearFaults := HMI_Reset_PB;

(* Feedback the operator actually needs *)
Drive_At_Speed  := Drive1:I.AtSpeed;
Drive_Output_Hz := Drive1:I.OutputFreq;
Drive_Faulted   := Drive1:I.Faulted;

Tag names come from the profile version, so check them in the tag browser rather than typing from memory.

The same motor on a G120 with telegram 1

Telegram 1 is two words out and two words back. The control word STW1 carries the commands, NSOLL_A carries the speed setpoint as a scaled integer where 16384 equals 100 percent of the reference frequency. Coming back you get ZSW1 and the actual speed in the same scaling.

The sequence that trips people up is the enable order. You send 16#047E to get the drive ready, then 16#047F to run. Send 047F from a standing start and the drive sits there while you check cables.

// S7-1500, telegram 1 on a G120
IF NOT Run_Cmd THEN
    "Drive_STW1" := W#16#047E;          // ready to run, no start
ELSIF "Drive_ZSW1".%X0 THEN             // ready to switch on
    "Drive_STW1" := W#16#047F;          // run
END_IF;

// 50 Hz reference = 16384
"Drive_NSOLL" := REAL_TO_INT(HMI_Speed_Pct * 163.84);

"Drive_Running"   := "Drive_ZSW1".%X2;
"Drive_Fault"     := "Drive_ZSW1".%X3;

A worked Siemens start and stop on a drive, with the hardware configuration around it, is in Siemens PLC drive motor start stop.

Read the fault before you reset it

Code on a PowerFlex 525MeaningWhere to look
F004UndervoltageSupply dip, loose incomer, or a contactor dropping out
F005OvervoltageDecel too fast into an overhauling load, no brake resistor
F007Motor overloadMotor nameplate parameters wrong, or the load really is too heavy
F012Hardware overcurrentShort on the output, or accel far too fast
F013Ground faultMotor winding or cable to earth, meg it before resetting
F081Comm lossNetwork, not the motor

Resetting a drive without reading the code is how the same fault comes back on the night shift. Log the code into the PLC and timestamp it, because the drive keeps only a short fault queue.

Field notes

Decel time that kept tripping F005. A 5.5 kW fan with a heavy wheel had a 3 second decel copied from a conveyor. The fan drove the motor while slowing, the DC bus climbed, the drive tripped on overvoltage every stop. Extending decel to 25 seconds fixed it without hardware. The alternative, a brake resistor, costs money and panel space that a longer ramp does not.

Advertisement

The drive that kept running. A network switch failed during a shift. The PLC lost the drive connection, the conveyor kept running at the last commanded speed, and the operator hit the emergency stop because the stop button on the screen did nothing. The comm loss action in the drive was set to ignore. It now faults and coasts to stop, and the same setting is checked on every drive during commissioning.

Long cable, cooked motor. A 60 metre run between panel and motor on unshielded cable. Reflected wave doubled the voltage at the motor terminals and the winding insulation failed inside a year. Replacement went in with proper VFD cable, both ends of the screen bonded, and a load reactor at the drive.

Overload relay removed because there is a drive. A panel builder skipped the thermal overload on a line-fed motor because the next motor in the cabinet had a VFD. The motor stalled on a jammed screw conveyor and burned out. The drive only protects the motor connected to it.

Frequently asked questions

Can I put a contactor between the drive and the motor?
Yes, and it is common for safety isolation, but open it only when the drive output is off. Breaking current on a running drive output stresses the output stage and can fault the drive.

Why does the drive report running at 0 Hz?
Start came from the network but the speed reference did not. Check that the speed reference source points at the same port as the start source.

Do I still need an emergency stop if the drive has STO?
You need the stop function to meet the required performance level. STO is usually how you implement it on a drive, driven by a safety relay or a safety PLC, not by a standard output bit.

How do I scale the speed reference?
Work in engineering units in the program and convert once, at the drive interface. Hertz on the Rockwell side, and a 16384 equals 100 percent integer on the Siemens side.

Is star delta still worth using?
Only on old installations where the starter already exists and the load allows an unloaded start. The arithmetic behind it is in star delta motor starting.

Next step

With one drive running, the next job is usually a second one that has to follow it. Before that, make sure the basics of the machine are covered in electric motors, and keep how to add a PowerFlex AC drive open for the second drive.