You are not registered yet. Please click here to register!

plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!

Go Back - Interactive Q & A > - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Thread Tools Display Modes
Old October 9th, 2017, 11:43 AM   #1
United States

EffSee is offline
Join Date: Oct 2017
Location: USA
Posts: 14
SLC upgraded to compactogix messaging to Controllogix

Hello, i am trying to upgrade from a SLC 500 to a Compaclogix L36-ERM. There is a L72 controllogix that uses MSG intructions to read and write to and from the SLC integer files. The upgrade converted all Integers to DINTS in the new 5000 program thats converted. what do i need to change to make this work as now the compactlogix will be used instead of the SLC?
  Reply With Quote
Old October 9th, 2017, 11:54 AM   #2
Lifetime Supporting Member
United States

LoganB is offline
Join Date: Apr 2017
Location: Michigan
Posts: 582
Instead of a SLC type read/write on the control logix, you will use a CIP Data Table Read/Write. Should be fairly straight forward to reconfigure, just use the correct IP address and make sure you are pointing at the correct new locations on the CompactLogix, taking into consideration that the number of elements is for DINTs now instead of INTs. The ControlLogix would already have been reading INTs into DINTs, so you only need to arrange the data how you want it on the CompactLogix, either keeping the same address format and only using the first half of each DINT or compressing the data in DINTs instead, making your number of elements smaller but requiring some re addressing in the CompactLogix.
Present: Controls Engineer
Future: Skynet Engineer
  Reply With Quote
Old October 10th, 2017, 09:30 PM   #3
United States

EffSee is offline
Join Date: Oct 2017
Location: USA
Posts: 14
ok so im a little unsure with that part. the SLC never had MSG intructions when communicating. with the contollogix in its program. the contollogix was just just reading straight to and from the N folders. Would i have to add the controllogix in the compactlogix tree then create new MSG intsuctions to read and write back or will the Controllogix automatically do what it was doing with the SLC? i was planning on keeping the tags as they were hoping that would work and if it does not how would you compress the DINTs? im new to this.
  Reply With Quote
Old October 10th, 2017, 10:15 PM   #4
Lifetime Supporting Member

ASF is offline
Join Date: Jun 2012
Location: Australia
Posts: 2,777
Previously, the ControlLogix would have had an "SLC Typed Read" and "SLC Typed Write" MSG instruction, to read to and write from the N registers in the SLC.

Now, you will need a "CIP Data Table Read" and "CIP Data Table Write", and you will have to specify the tag names you wish to read/write from/to.

In SLC world, everything comes in pre-built, contiguous registers. So if you tell your CLX to read 20 registers starting from N7:0, it will read N7:0 through N7:19.

In CompactLogix world, you can define whatever data structure you like. Most likely, the data you need to read and write has been converted to an array, perhaps called "Register_N7". So N7:0 became Register_N7[0], and N7:19 became Register_N7[19]. To help get your head around the slight difference, look at the N7 data table in RSLogix 500, and then look at the Register_N7 tag in the Controller Tags window of RSLogix 5000. You can expand out the tag to see the individual elements, and if you want to, expand out each element to see the individual bits. Just the same as if you change the Radix from Decimal to Binary in RSLogix 500.

An array is a contiguous block of data, so you take the same approach as before: you tell the Control Logix to read 20 elements, starting at Register_N7[0]. It will return Register_N7[0] through Register N7[19].

The other piece of the puzzle is the data type. SLC's use 16 bit data (in general) while CompactLogix and ControlLogix use 32 bit data (in general). You will likely find in the Control Logix, that the data tags that are written to the SLC are actually INT type (16 bit) instead of DINT type (32 bit) - and probably likewise with the tags that the data read from the SLC is stored in. If your Control Logix is expecting to read 20x 16-bit words, you had better provide it with 20x 16-bit words. Likewise, if it's expecting to write to 20x 16 bit words, you had better provide it with 20x 16 bit words to write to, lest it write nonsensical data into places you weren't expecting.

Ultimately, you have to make sure the data type at both ends is the same. You can either convert everything to INT, or convert everything to DINT. Best practice is to use DINTs as the CLX is a 32-bit platform and there are performance costs involved with using 16-bit words. In practical terms, this just means that all you need to do is convert the tags in the Control Logix to DINTs.

One final tidbit to consider: where possible, it's often better to read, rather than write. If I have a PLC which is being written to by a remote PLC, I have no easy way of working out what is changing the data, unless the data exchange is very well commented. When dealing with an SLC and a Control Logix, it's quite common to do both the read and write in the CLX, simply because the SLC doesn't understand the CLX's tag-based addressing structure, and can't directly read from a tag. To set up an SLC to read a CLX, you have to do some mapping in the CLX to "simulate" SLC-type registers, like "N7:0". Due to this extra layer of complication, many people end up just doing both the read and the write from the CLX.

However, now you've got two Logix 5000 platforms, which will perform messaging to each other with no such qualms! If you feel so inclined, now might be a good time to investigate the possibility of converting the logic so that both PLC's read from the other, instead of one reading and writing.

And if you feel even more inclined, look into produced/consumed tags. It's another way of doing communications between two Logix-class PLC's, and in many cases is far superior to explicit messaging.

*disclaimer: horses for courses. There are perfectly valid reasons for writing rather than reading, and perfectly valid reasons for using explicit messaging over produced/consumed. It's possible that in your specific situation, the current arrangement is the best possible solution. But it's definitely worth thinking about.
  Reply With Quote
Old October 11th, 2017, 11:45 AM   #5
United States

Firejo is offline
Firejo's Avatar
Join Date: Jun 2008
Location: Redmond, WA
Posts: 1,067
I think this is getting a little more complicated than it needs to be.
First if you were reading and writing integer files to and from the SLC there isn’t any reason you can’t use INT tags in the new CompactLogix. However, if you do change over from integers to DINTs (double integer) then simply change the tags in the ControlLogix from INT to DINT. What’s important is the fill/tag size is the same (to keep it simple anyway). INTs are 16-bit words and DINTs are 32-bit words and keeping it simple means exchanging the same size words.
What hasn’t been said yet is you will need to change the path in the message instruction. When messaging to/from a SLC you don’t have to go past the IP address of the SLC. When going to/from a Logix you have to provide the IP address, the back plan and then the location of the processor (someone jump in if I have that incorrect. I don’t do that type of messaging very often).
Example: To SLC: LocalENB, 2, To Logix: LocalENB, 2,, 1, 0
Go Hawks!!!
  Reply With Quote
Jump to Live PLC Question and Answer Forum


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
Allen Bradley SLC Upgrade to Controllogix rajy2r LIVE PLC Questions And Answers 3 June 7th, 2015 06:16 PM
SLC 5/05 to ControlLogix Messaging - Help! xC0MMAND0x LIVE PLC Questions And Answers 4 February 13th, 2014 07:48 AM
MSG to a SLC 5/04 from Controllogix -65 plc_craziness LIVE PLC Questions And Answers 17 September 21st, 2012 10:51 AM
Help needed! Remote messaging between two SLC 5/04's via DHRIO modules. gary steigh LIVE PLC Questions And Answers 5 February 23rd, 2003 12:41 PM
SLC vs ControlLogix rsdoran LIVE PLC Questions And Answers 15 January 29th, 2003 11:39 PM

All times are GMT -5. The time now is 02:17 PM.