Protected Typed Logical Read with Three Address Fields instruction

cardosocea

Member
Join Date
Nov 2016
Location
Fields of corn
Posts
2,629
Hello,

I have a radio telemetry system that has an RS-232 interface that "understands" the DF1 protocol.
In one place I still have a Compact Logix L35 with Serial port that I'd like to connect to the radio to send data instead of hardwiring it in.

However, I'm drawing a blank as the radio manual states that I must use a "Protected Typed Logical Read with Three Address Fields" and I can't for the life of me see how to create that instruction in the PLC.

Has anyone heard of this before?
 
I think the equivalent setting for a ControlLogix MSG instruction is an "SLC-500 Typed Read".

That function in the DF1 command set is Command code 0x0F, and Function code 0xA2. It's described on page 7-17 of the DF1 Protocol Reference manual.

Does the modem process DF1 commands directly for configuration or diagnostics ? Is this an ESTEEM modem that tries to parse the DF1 command packet to create a multi-drop system from a Full Duplex command set ?

Or is it an I/O collection system that emulates an A-B controller itself, rather than moving data between controllers ?
 
Hi Ken,

I had read through that file, but got left wondering what interface would the system use for sending the message as it wasn't quite obvious from the setup screen.

I'm really not sure about the radio. It states that it is able to operate as Full Duplex unit if used as a Slave, but only in Half Duplex if used as a slave.

As to how it works internally, the manual is very light and the company that supplies them don't seem to have much experience in the functioning of these (as I've enquired before going down this route).

How would one typically use, I assume, the MSG instruction to perform one of these?
 
You're correct that the setup screen (and the Help file) don't give you explicit information about the exact protocol commands.

A MSG instruction executes asynchronously to the program scan, once per false/true transition of the rung.

You would need to determine what data table elements the modem/radio system is emulating: do they say anything about PLC/SLC style data table addresses like "N7:0" ?

The CIP Path for the Channel 0 serial port on a CompactLogix or ControlLogix is "2,x" where "2" means the controller's serial port and x is the DF1 target node address.

For kicks, I set up a 1756-L61 to send a "SLC Typed Read" command to my computer's serial port running a communications sniffer; there was no controller on the other end. The data it sent was:

Code:
10 02 01 00 [B][COLOR="Lime"]0F[/COLOR][/B] 00 22 00 [B][COLOR="lime"]A2[/COLOR][/B] 14 07 89 00 00 10 03 88


That proves that the DF1 command codes are Command 0x0F, and Function 0xA2, which is a "Protected Typed Logical Read with Three Address Fields".

In this case I had configured the MSG to read 10 data words starting at N7:0.

In that frame, 0x14 is a data length of 20 bytes (10 Integer words) and 0x89 is the code for an Integer data type.

The "Three Address Fields" are File, Element and Sub-Element.

The bytes 0x07 is for the File number, 0x00 is the starting Element, and 0x00 is the Sub-Element (not used in ordinary SLC-500 Integer files).

There's only one checksum byte (0x88) because I left the serial port at its default BCC error checking.

Another opportunity to sing the praises of my favorite serial diagnostic tool, the Stratus Engineering EZ-Tap. If you do RS-232 or RS-485 work, it's the best money you'll spend all year.
 
Now I feel like a right numpty.

"Sub-Elements can hold various types of data, including Status, Bit, Timer, Counter and Integer. Mega_Link processes only Status and Integer file types, which correspond to digitals and registers."

I'm thinking that it's N and S files this refers to? Perhaps it's their implementation that maps digital signals into S files instead of B.

I then have an address translation formula:

"Mega_Link uses addresses in
the range 0…3999 for digitals and 0…2000 for registers. It maps these to the DF1 database by translating
the File number as Address / 256 and the Element number as (Address – (File number * 256). The Sub-
Element is always 0 and ignored. Thus, for example, File 3, Element 10 translates to Address (3 * 256 + 10) =
778. Similarly Address 1000 translates to File (1000/256) = 3, Element (1000 – 3 * 256) = 232"

So if I want to read N7:10, the file is 7 and element is 10.

Time to get the soldering iron out and make up a Serial lead.

Thanks for the help.
 

Similar Topics

Hello all, I'm trying to use the Logix Designer SDK to upload and download a single ACD to many controllers. I got this to work fine copying...
Replies
0
Views
60
Pls anyone help me out to crack the Codesys lib File pls share password for the if any application to crack or any master key for Codesys library...
Replies
3
Views
768
I have a password protected Siemens ET200SP PLC, with 'Permit access with PUT/GET communication from remote partner' option disabled. Is there...
Replies
1
Views
450
Hello everyone, I'm working with an old ACM3710 device and I'm encountering an issue with the data frames I'm sending over an RS232 connection...
Replies
5
Views
675
I have a SC9-LS24-3 surge protection solenoid cable from automation direct...
Replies
9
Views
1,342
Back
Top Bottom