DeviceNet Explicit Messaging SLC To PowerFlex Inverter


Thread Starter


I am working on a program and wanted to try to use explicit messaging to retrieve and write parameters to a PowerFlex drive with a 20-COMM-D adapter instead of being limited to the Datalinks. I have studied Allen Bradley's examples and and some others I have but they are vague in answering questions that I have.
We are using a SLC processor. My questions are: It looks like you can read more than one parameter per transaction but the book doesn't go into much detail on how to do this. Is this possible and can they be random? The book only shows two rungs of logic, are these all that are needed for read and writes or do you need a set for each? The example program I have was for a DeviceNet panelview and several inverters and correct me if I'm wrong but it appears that you can send info directly to the inverters from the panelview without going throught the PLC prgram. My panelview is not DeviceNet so I had some trouble comparing the two. Does anyone have a good example prgram for this type of application?

Larry - Good timing! I'm smack in the middle of the same situation. You don't mention what book you're refering to and I'm still in my preliminary stages. The best information I've found is in the DPI module manual
20COMM-UM0028-EN-P.PDF and the PowerFlex reference (not user) manual PFLEX-RM001C-EN-E.PDF from AB's online manual link. It looks like up to eight random parameters can be set/read per message (look for "scattered" in the DPI manual). I haven't tried it yet or even examined it in detail and I'm hoping I'm right because I'll want to do that, too.

Hope this helps - good luck to both of us.
Explicit Messaging on DeviceNet with the 1771 and 1747 scanners isn't simple; instead of building in a "MSG" or "BT" block, A-B has left us with the clunky method of assembling our own Control Block with control and addressing bytes all crammed into it and then moving that into a special buffer on the scanner.

It's hard the first time, but then it clicks and you can re-do it pretty easily. Guys who used the SLC block-transfer on RIO will sympathize.

You will need to format one "Explicit Message Control Block" per message, but you can make this go a long way by using a mechanism unique to A-B AC drives; the Scattered Parameter Read.

Scattered Parameter Read lets you send the drive a list of parameters you want, and it will reply with the values of those parameters. You can request up to eight at a time.

I'd recommend doing single-parameter writes to the drive, though. Simpler that way in your ladder logic to be sure you are sending the parameter you want to send.

Drop me a line at [email protected] if you want an example of this ladder logic.
In page C-22 of PowerFlex DeviceNet Adapter you have the way to do explicit messages with 8 parameters. 8 parameter is the maximun number in one message.

Good Look
Thanks guys. I missed that about the scattered service in the book. I think I can get somewhere now. I'll keep ya'll posted.



See my reply in this thread in the archive:

You need to make sure that your devicenet device is capable of communicating in less that full 255 word messages. This ultimately prevented me from using explicit messaging in the example, since the drive required full sized messages when writing to the drive.

The following is excerpted from a resopnse that Ken Roach sent me offlist during my struggles:

My favorite free reference document was written by Rockwell's Julian Fielding and Rod Shearer and can be found on the "": knowledgebase in the DeviceNet category as Document 10426, "DeviceNet Basics of Explicit Messaging".

I think you'll find that most DeviceNet products have a limited number of Services they support via explicit messaging. At the risk of giving away Appendix G, here are the names and codes of the Common Services:

00 Reserved for future DeviceNet use
01 Get_Attributes_All
02 Set_Attributes_All Request
03 - 04 Reserved for future DeviceNet use
05 Reset
06 Start
07 Stop
08 Create
09 Delete
0A-0C Reserved for future DeviceNet use
0D Apply_Attributes
0E Get_Attribute_Single
0F Reserved for future DeviceNet use
10 Set_Attribute_Single
11 Find_Next_Object_Instance
12 - 13 Reserved for future DeviceNet use
14 Error Response
15 Restore
16 Save
17 No Operation (NOP)
18 Get Member
19 Set Member
1A Insert Member
1B Remove Member
1C-31 Reserved for additional DeviceNet Common

I hope some of this helps.

--Joe Jansen