Commanding a PowerFlex 525 from a ControlLogix: The Command Word, the Reference and the Status Bits

Bit 0 of the PowerFlex 525 logic command word is Normal Stop, and it has to be sitting at 0 before bit 1 will ever start the drive. That footnote under the table in Appendix D of 520COM-UM001 is behind most of the drives that show a green connection in the I/O tree and still refuse to turn.

Here is the short version, and the rest of this is detail. Write a 16-bit command word where bit 0 is your stop condition inverted and bit 1 is your start, pulse bit 3 to clear a fault, set bits 4 and 5 to 01 for forward. Write the speed reference as hundredths of a hertz, so 6000 means 60.00 Hz. Read the status word back and latch your drive alarm off bit 7.

Where this picks up

Adding the drive to the tree is a separate job and it is covered in How to add a PowerFlex AC drive to a Studio 5000 project. This article assumes you are past it: the module is in the I/O configuration, the tags exist, the connection is green.

Nothing moves yet, and this is where a lot of commissioning afternoons go.

Two parameters decide whether any of this works

P046 [Start Source 1] has to be 5 “EtherNet/IP”. P047 [Speed Reference1] has to be 15 “EtherNet/IP”.

Those are the two settings the adapter manual has you make before it talks about the I/O at all, and they are independent of each other on purpose. You can hand the drive its start from the terminal block and its speed from the network, or the other way round, or both from the network. The drive supports three control functions and three reference functions, which is why they are numbered. The thing worth knowing is that 520-UM001 lists several parameters that will override the start source and the speed reference if they are enabled, so a drive that ignores a perfectly correct command word is not necessarily a comms problem.

There is a diagnostic for exactly this, and almost nobody uses it.

F709 [Drive 1 Logic Cmd] shows the logic command the drive is actually acting on in single-drive mode, whatever the source. If communications control is not being used, it reads 0. F710 [Drv 1 Reference] does the same for the speed reference, and F711 [Drv 1 Logic Sts] gives you the status word. Put F709 on the keypad, toggle your start bit in Logix, and you will know within five seconds whether the problem is your rung or your parameters. A drive still on its factory start source will sit there showing 0 while you rewrite perfectly good ladder.

The command word, bit by bit

This is the velocity set, which is what you get with C122 [Cmd Stat Select] at its default of 0 “Velocity”. Setting it to 1 gives you an entirely different set of bit meanings for position mode, and it cannot be changed while an I/O connection to the drive is established.

BitCommandWhat the values mean
0Normal Stop0 = not stop, 1 = stop
1Start0 = not start, 1 = start
2Jog 10 = not jog, 1 = jog
3Clear Faultmust transition 0 to 1
4, 5Unipolar Direction00 no command, 01 forward, 10 reverse, 11 no command
6Keypad1 = force keypad control
7MOP Increment1 = increment
8, 9Accel Time01 = P041 [Accel Time 1], 10 = A442 [Accel Time 2], 11 = hold
10, 11Decel Time01 = P042 [Decel Time 1], 10 = A443 [Decel Time 2], 11 = hold
12, 13, 14Ref Select 1, 2, 3000 no command, 001 P047, 010 P049, 011 P051, 100…111 A410…A413 preset frequencies
15MOP Decrement1 = decrement
Advertisement

Three footnotes on that table carry more weight than the table does. A Not Stop condition, meaning bit 0 at 0, must be present before a 1 on bit 1 will start the drive. The same applies to jog, and a jog bit going back to 0 stops the drive. Clear Fault has to see a transition from 0 to 1, so holding bit 3 high does nothing after the first time. The command word is always INT 0 of the output image. With the Add-On Profile you get named tags for it and you never touch the raw word:

XIC(Stop_PB)  OTE(PowerFlex_52X_Drive:O.DriveLogicRslt_Stop)
XIC(Start_Cmd) OTE(PowerFlex_52X_Drive:O.DriveLogicRslt_Start)
XIC(Fault_Reset) OTE(PowerFlex_52X_Drive:O.DriveLogicRslt_ClearFault)
XIC(Run_Forward) OTE(PowerFlex_52X_Drive:O.DriveLogicRslt_Forward)

On the Generic Profile the same four are PowerFlex_52X_Drive:O.Data[0].0 through .3, with .4 for forward.

Same bits, same order, no descriptive names, and one more chance to read the wrong word.

The reference and its scaling

The Reference is a 16-bit word, it is INT 1 of the output image, and it is in units of 0.01 Hz.

That is the whole scaling rule, and there is no second half to it.

6000 is 60.00 Hz, 2500 is 25.00 Hz, 1 is a hundredth of a hertz and not worth writing. A 0…100.0% setpoint from a PanelView becomes a reference of percent × 6, if your P044 [Maximum Freq] is 60 Hz, and the arithmetic is worth doing in a DINT and moving down to the INT rather than trusting an INT multiply not to roll over at 32767. Which brings up the one that costs a shift. The adapter manual is explicit: writing a negative value to the speed reference makes the drive ramp to maximum speed, because of the overflow. Direction is not in the reference, and never has been on this drive.

It is bits 4 and 5 of the command word, and nowhere else. An HMI that lets an operator type -20 into a speed entry field, or a scaling routine that goes briefly negative while a ramp settles, gives you a machine at full speed with a sensible-looking number on the screen. Feedback comes back as INT 1 of the input image with the Add-On Profile, INT 3 with the Generic Profile, in the same 0.01 Hz units.

The status word, and which bits are worth latching

Same arrangement in reverse, with C122 at 0 for the velocity definitions. The status word is INT 0 of the input image under the Add-On Profile, and INT 2 under the Generic Profile — the padword sits at INT 0 there, which is the single most common reason people read the wrong word and see nonsense.

BitStatusWhat 1 means
0Run Readyready to run
1Activerunning
2Command Directionforward commanded
3Actual Directionrotating forward
4Accelaccelerating
5Deceldecelerating
6Reserved
7Faultfaulted
8At Speedat reference
9Main Frequencyreference controlled by active comms
10Operation Commandcontrol controlled by active comms
11Parametersparameters locked
12…15Digital Input 1…4 Statusstate of the drive’s terminal inputs
Advertisement

Bit 7 is the one your alarm comes from. Latch it, timestamp it, and go and read the fault code out of the drive separately, because the status word tells you there is a fault and never which one. Bits 9 and 10 are the pair that gets ignored, and they answer the question the whole first half of this article is about. Bit 10 at 1 means the drive’s operation command is being controlled by the active communications; bit 9 at 1 means the frequency reference is. If your start bit is doing nothing, those two bits will tell you whether the drive is even listening, and they cost one XIC each on an HMI diagnostics screen. Bit 0 is worth putting on the same screen. A drive that is not Run Ready will not start no matter what you write at it, and the reasons are usually physical: a stop input open at the terminal block, a safety channel down, the drive still in a fault. Bit 2 against bit 3 is a small trap in the Add-On Profile example. Rockwell’s own sample ladder drives both Status_Forward and Status_Reverse from the same DriveStatus_ActualDir bit, one on an XIC and one on an XIO. If you copy it and then also latch a direction fault from bit 2, you are comparing what was asked for with what is happening, which is a different question and a useful one during a reversal.

A datalink moves a drive parameter to or from the controller in the cyclic I/O, without a MSG instruction.

Four datalinks in each direction, set up as two blocks of parameters.

C153…C156 [EN Data In 1…4] name the parameters written from the network into the drive, so they take up INT 2 through INT 5 of the output image. C157…C160 [EN Data Out 1…4] name the parameters read out of the drive, and they land in the input image. Put A410 [Preset Freq 0] on an out-datalink and you can watch it; put P041 [Accel Time 1] on an in-datalink and a recipe change can write a new ramp time every batch without an explicit message.

Three rules come with them, and all three have caught somebody out on a Friday.

Values written through a datalink go to volatile memory, not to the drive’s non-volatile storage, so they are gone at the next power cycle. That is usually what you want for something you change every batch, and it is a nasty surprise for something you set once. C121 [Comm Write Mode] is the related setting for parameter writes generally, defaulting to 0 “Save”. Datalinks are locked while an I/O connection is active. To change one you inhibit the module in Logix Designer, put the controller in Program, or unplug the drive — and the drive will also refuse a reset-to-defaults or a configuration download while the connection is up. Use them in order. The manual is blunt about it: assign C157, C158, C159 in that sequence for three read datalinks, because skipping to C159 makes the network I/O connection larger than it needs to be, which costs controller memory and response time for nothing.

Multi-drive mode has no datalinks at all, which is worth knowing before you design around them.

The four that cost time

The stop bit is not a stop button. Bit 0 at 1 means stop is asserted. A normally-open stop pushbutton wired to an input and copied straight to bit 0 gives you a drive that starts when you press stop and never starts otherwise. The stop condition goes to bit 0 through an XIO, and the same logic that used to hold a starter’s seal-in now holds bit 0 at 0.

Writing the reference and expecting movement. The reference is INT 1 and the start is bit 1 of INT 0. They are separate words, sent in the same connection.

Nothing in the reference starts anything, and a drive at Run Ready with 6000 in the reference will sit there all day.

The drive was never taken out of local control. P046 still on its default, or a terminal block start source still selected after a drive swap.

F709 reads 0, the ladder is fine, and the fault is two keypresses away.

Ref Select left non-zero. Bits 12, 13 and 14 form a three-bit field. At 000 they mean no command and the drive uses what P047 tells it, which is what you want. At 100 through 111 they select preset frequencies A410 through A413, and the drive will happily run at a preset while the operator wonders why the setpoint field does nothing. If you build the command word by OR-ing bits into a raw INT rather than using the profile’s named tags, this is the field that picks up a stray bit.

When the network drops

By default the drive faults. Both C143 [EN Comm Flt Actn] and C144 [EN Idle Flt Actn] ship at 0 “Fault”, and the second one catches people out: an idle scanner means the controller went to Program mode, so the act of going online and downloading trips every drive on the line. The options are the same for both. 1 “Stop” stops per P045 [Stop Mode]. 2 “Zero Data” zeroes the reference and datalinks. 3 “Hold Last” keeps the last values. 4 “Send Flt Cfg” sends whatever you have put in C145 [EN Flt Cfg Logic], C146 [EN Flt Cfg Ref] and C147 through C150 for the datalinks. The faults themselves are F073 “EN Net Loss”, which is control through the embedded EtherNet/IP adapter being interrupted, and F083 “EN Comm Loss”, which is the internal link between the drive and its own embedded adapter going down. The first is a network problem and the second is usually the drive.

Both are type 2 faults on the 525, so both clear without a power cycle.

One setting from the module dialog belongs here too. The adapter manual has you set the RPI to 5.0 ms or greater and leave “Major Fault On Controller If Connection Fails While in Run Mode” unchecked, which is the right default for a drive — you want the drive to fault, not the controller.

Advertisement

What to do next

Put F709 [Drive 1 Logic Cmd] and F711 [Drv 1 Logic Sts] on the drive keypad display before you write a single rung. Toggle your start bit with the controller in Run and watch F709 change. If it stays at 0, stop editing ladder and go to P046. After that, the same pattern works for any EtherNet/IP device on the tree: a command word, a reference, a status word, and a diagnostic on the device that tells you what it thinks it is being told. Setting the drive’s address in the first place is the BootP/DHCP tool job, and if this drive is turning more than one motor, read Two Motors on One VFD before you write the start rung.

Sources used: Rockwell Automation 520COM-UM001, the PowerFlex 525 embedded EtherNet/IP adapter user manual, revision B, March 2013 — Appendix D carries the bit tables — and 520-UM001, the PowerFlex 520-series user manual, revision O, September 2025, for the parameters and the fault descriptions.