PLC/SLC Mapping

olias

Member
Join Date
Apr 2002
Location
North Jersey
Posts
185
Can someone explain PLC/SLC mapping in simple terms. I got the basic jist but can't quite grasp the whole concept. I like RS 5000 so far but I just don't use it enough.
 
The CLGX uses both native tags which is a free form method of defining values including data types (int, float, bool, text, etc..). It also allows you to define data structures and arrays. Data structures are made up of the various data types into a logical grouping that you decide.

The PLC-5s and SLC-500s have what is often called a "Legacy Memory Map". This is the standard N7 registers or B3 or timers Tx and Counter Cx files or status S files or any other data type file you define in your program. The CLGX provides a method of defining these "Legacy Memory" locations in you program. You could use a B3:0/1 for example as a tag in your CLGX program. The CLGX sees this as a tag and not as a "Legacy Memory" location. You can map these tags or other tags you define in free format to the "Legacy Memory Map".

Simply put it is a way to map tags in CLGX to PLC-5/SLC-500 memory locations.

Hope this helps.
 
As you probably know the Allen-Bradely PLC5 and SLC are based on fixed file types. These file types had letter designators. Tie this together with file numbers, element numbers and element size and you can get at any data item in these plcs. If you wanted to talk to these plcs you did it via DF1. I believe that DF1 is really all there is going to a PLC5 or SLC. You just change the physical and transport layers to what you want (DH+, DH-485, RS-232, etc.) A whole generation of HMIs and OPC servers grew up around this format.

Then out comes the ControlLogix processor and that whole file structure thing goes out the window. So you have a whole generation of HMIs and OPC servers that can no longer get data from the flagship of the AB plc line.

To provide for some backward compatibility, AB inclided PLC/SLC mapping in the CLX line. This allows the CLX to receieve a read request for N7:0, for example, and turn that into an address that it can deal with. This mapping of file type/file number/element number it handled in the PLC/SLC mapping area.

Basically, all you do is defining one dimensional array of the correct data type. This array needs to be at least as long as the highest element number you need to access.

In the mapping window, you are asked to define a file number and a tagname. The file number is the file number from your old plc or HMI. for example, if your HMI is looking for N7:0, your file number would be 7.

The tagname is up to you. You can make it anything you want within the tagname limits of the CLX processorr. However, many people like to create a tag that harkens back to the old ways. So in this case we would call it N7. But it could just as easily be Keiths_Integers or some such ****.

Now you need an integer array with the tagname N7 (or Keiths_Integers as the case may be). Make the array big enough to handle the highest element number you need to map.

Now, in your CLX program you would access N7:0 as N7[0]. N7:0/1 would be N7[0].1. N7:120 would be N7[120] (or Keiths_Integers[120] as the case may be).

The things that aren't explicitly spelled out in the mapping are the data type and the highest element. you need to take both of these into account when you create your array tag.
 
I
believe that DF1 is really all there is going to a PLC5 or SLC.

I have always thought that was the case too. DF1 is the standard protocol for all transactions, regardless of what the physical or network layer is.

Examples of Physical Layers:

RS-232
RS-485
Transformer Coupled NRZ (DH/DH+/R.IO)
CAN
Ethernet

Examples of Network Layers:

DF1
DH+, R.IO
DH-485
EthernetIP
DeviceNet
ControlNet

Examples of Application Layers:

PCCC (Programmable Controller and Command and Communication) Native to all Legacy PLC2/3/5/SLC and supported by CLX. Can only handle the "Legacy Memory Map" ie N7:xx, etc. and Messaging connections only.

CIP (Common Industrial Protocol) Native to all CLX products. Can handle Named Tags, natively supports Routing, Messaging, and Producer/Consumer IO connections.

As very nicely explained above, PLC/SLC Mapping is how a CLX class processor supports the legacy PCCC class of connections.

DF1 fits in as a standalone protocol that is most often seen used as the protocol used in a Point-to Point RS-232 connection. However DF1 is also embedded in the DH+ and DH-485 to wrap each individual peer to peer message, but the end-user does not have any need to be aware of this.

Quick question. Does the RS-232 front port of a CLX processor support CIP?
ie, Could I connect two L61 RS-232 ports together and do CIP messaging between them?
 
kamenges is spot-on here but I'd like to expand on this point a little:

This allows the CLX to receieve a read request for N7:0, for example, and turn that into an address that it can deal with.

The first important point is that you only need to use the mapping if the message, either read or write, is instigated by the non-CLX processor (ie."receive a read request"). The MSG instruction in the CLX can handle SLC/PLC fixed address memory for either reads or writes without the need for mapping. Watch the data types though, DINT's or UDT's won't be well received by the older CPU's!:oops:

The second point is that you only have to do it for SLC to CLX messages (instigated in SLC); PLC5 MSG instructions can use a CLX tag name as the destination address but doing this may mean re-writing a lot PLC code.
 
ControlLogix file numbers

I'm still a little confused.

I have inherited ControlLogix device and need to poll it INTERGER data from a foreign DF1 device (Prolinx box). I need to use the CLX/SLC conversion trick.

To date, everything I read always references N7:x for integer data however, N7:x is already mapped to an array name in the Prolinx. As a matter of fact Files 1 through N25:x are mapped to array names and I need to poll yet another array name. Can I generate a file N26:x that will map to an array name? Or does it have to be N7:x?

From earlier postings, I get the impression that N7:x is legacy and I can map N26:x without problems?


mike
 
Integer file N7:x is automatically created in all Allen-Bradley SLC-500 and PLC-5 controllers, so it's the most commonly used example.

Any data file number above 8 can be declared as an Integer file (0 through 8 are predefined) in a PLC/SLC, so N25, N26, etc. are valid data file types and numbers.

Strictly speaking, any data file can be treated as an Integer using DF1/PCCC addressing, which is why you're seeing the impossible-in-a-PLC addresses like N1, N2, N3, N4, N5, N6, N8 used in the ProLinx.
 
That makes more sense

Thanks Ken,

>>As a matter of fact Files 1 through N25:x are mapped
>>to array names and I need to poll yet another array name.

The device is on the other side of campus and now that I think about it, I think you're right. I've been trying to understand this thing for about a week and I'm starting to get things confused. I now believe that files 1-8 are not mapped to array names, I need to go back and double check. It's all new to me so I'm still trying to get accustomed to the whole PLC world and may have misread the logic.

I also missed another detail and have mislead you. I believe that files 9-25 are used for array mapping to another PLC device. I'm trying to generate N26:x for the Prolinx box.

A pretty neat trick using the mapping routine to get around the legacy problem. I'm sure it solves many problems.

Thanks again,

mike
 

Similar Topics

Hi long time out... I´m in a project now, that request to upgrade an old SLC to a new ControlLogix. Just the PLC. It is connected now to a...
Replies
5
Views
1,954
Is this even possible? I was trying to read a SLC mapped Timer ACC over DF1 (PCCC) and I get an Illegal address. My thought is maybe it doesn't...
Replies
0
Views
1,230
Good day colleagues, I have a problem with a plc slc 5 since I export the tags to my factory program to load them into a panel view 1000 plus 6...
Replies
0
Views
112
Everyone, i am in the process of purchasing the Slc 500 version of software to support what we have and i have a question. Several of our...
Replies
9
Views
758
I used up my last new Allen-Bradley SLC 5/04 controller. Does anyone have info on a good reliable place to get a new one for a decent price, or...
Replies
3
Views
515
Back
Top Bottom