DF1 Protocol and Command Set Reference Manual

lazymonkeygod

Member
Join Date
Nov 2008
Location
Home
Posts
16
Hi,

I'm a developer and I'm looking at the "DF1 Protocol and Command Set Reference Manual". In this manual it doesn't say anything about DF1 for the ControlLogix. Does anyone know why? Or where I can find the updated manual that does contain that information?
 
The ControlLogix family uses a native protocol called the "Common Industrial Protocol" (CIP) over DF1, EtherNet, ControlNet, and backplane connections.

The best public document is on this developer's resource page:

http://www.rockwellautomation.com/enabled/guides.html

The controller can emulate PLC/SLC data addressing for binary, integer and floating-point data files on the serial port as well.
 
Thank you Ken. Actually I know it supports CIP over DF1. Maybe it'll be more clear if I describe what I am doing and what I need. Here is my setup:

ControlLogix -> DHRIO 1756 module -(DH+)-> KF2 module -(RS232)-> Computer(RSLogix5000)

I have a serial sniffer on the RS232 line so I'm monitoring data coming in and out of RSLogix5000. The data looks like it takes the same format as the "Line Monitor Examples" as described in the "DF1 Protocol and Command Set Reference Manual". However it does have some subtle differences that I can't seem to find out why. The manual only talks about the specific commands for plc family, slc family and micrologix family. It doesn't tell me the commands for the controllogix family. So I'm not sure what commands are available. It would help greatly if you could tell me how the KF2 1770 translates DH+ data to and from serial(DF1).
 
The document you are probably looking for is 1756-rm005, titled Logix5000 Data Access.

Not sure where it came from, but if you can't find it, PM me an email address and I can send it to you.

As for the KF2, it takes the DF1 command and attaches a token passing header on it, then puts it out on DH+. From the DF1 side, the only thing you have to do different is specify the source and target nodes.
 
Thanks Archie. Since ControlLogix doesn't talk DF1, that means I can't put together a DF1 message to send to the KF2. That is my biggest problem. I looked at the messages that RSLogix5000 sends out. They are similar to DF1 commands but there are some slight differences that I'm not sure how to translate. For instance:
This is the data on the sniffer:
Request: 2009-01-21 09:00.87164
10 02 01 10 10 0B 00 76 06 00 00 52 02 20 06 24 .......v...R. .$
01 07 F9 06 00 01 02 20 01 24 01 01 00 01 01 10 ..ù.... .$......
03 77 .w
Answer: 2009-01-21 09:00.01164 (+0.0100 seconds)
10 06 10 02 10 10 01 4B 00 76 06 00 00 81 00 00 .......K.v.....
00 01 00 0E 00 36 00 10 10 14 70 31 5F D3 2D 00 .....6....p1_Ó-.
14 31 37 35 36 2D 4C 36 31 2F 42 20 4C 4F 47 49 .1756-L61/B LOGI
58 35 35 36 31 10 03 92

The "10 02" at the beginning of request is the DLE STX beginning of message.The "01 10" is the destination and source. But now there's an extra "10" following which should've been the command. But I can't find out what the hex 10 command is because it's not documented. When I change the address of the KF2 from RSLinx, I see the corresponding change to the address of the destination. But then the extra "10" goes away? The message that RSLogix sends to the KF2 becomes very confusing and I'm trying to decipher it but couldn't find any docs that could tell me.As for the Answer part, against we see the destination/source segment to be "10 10 01" So the 01 is one space over. which doesn't make sense.
 
Hello,

It has been awhile since I looked at DF1. IIRC anytime after the DEL STX and before the DEL ETX a DEL must be sent as DLE DLE.

Of course I could be wrong.

Good luck,

Mark
 
Thanks Mark-. That makes alot of sense. I didn't think DLE needed and escape DLE to make it value but that makes sense. Thanks. But now for the rest of the message.
 
"DLE escaping" is one of the classic trip-ups of people writing DF1 drivers. I've found several commercial products that simply won't transmit the value sixteen, or won't transmit to Address sixteen.

0x10 (hex) = DLE is always part of a DF1 control code except where it is accompanied by another DLE.

You don't include DLE Escape bytes in the checksum value, and if the checksum includes 0x10 you don't DLE Escape it.
 
The next problem I have is the CMD hex 0B. I am looking for the document that describes what the commands for controllogix mean. So far I've seen the CMD 0B and 0A. But I don't know what those CMDs do and what they return. All I know is that RSLogix continue to send those commands to the controller. I'm guessing it's some kind of bit read and write. But I need to make sure of how it works else my code will be a mess.
 
Hi,

Take a look at the documents referenced in the link in the first reply.

The DLE DLE question is in DF1 Protocol and Command Set.

The CMD 0B (CIP Unconnected Message (PCCC CMD 0BH)) and
CMD 0A (CIP Connected Message (PCCC CMD 0Ah)) are covered in Delivery of CIP Over RA Serial DF1 Links document.

Good luck,

Mark
 

Similar Topics

Hello everybody. I am currently trying to retrieve the Integer data file values from a micrologix 1200 via VB6. I have constructed a string that...
Replies
7
Views
15,024
I have to load a project to a PLC 5 processor via DF1 protocol. I have a laptop with a PCMK card in it with the 1784-PCM5/B Cable. I have to...
Replies
4
Views
2,313
Guys/ Gals Have an application where I am using DF1 protocol on a compactlogix to communicate with a radio device. The plan is to read date (no...
Replies
1
Views
1,649
I am looking for a way to view/edit the program in a SLC 5/02. Currently I am using the 1747-UIC to do this but I would like to be able to do this...
Replies
2
Views
2,584
Currently I test the communication with AB SLC500/04 using DF1 protocol.I find that the communication is ok when CPU is in program mode .while I...
Replies
5
Views
2,658
Back
Top Bottom