PortenoSuenos

RSLogix 5000 IO Mapping

20 posts in this topic

Hi All... Longtime RSLogix500 user just starting with RSLogix5000 Ver 20. Im used to finding all the IO in RSLogix 500 by the address. I just got my first RSLogix5000 project and I would like to know how to map/ find the specific module inputs and outputs by only having a cryptic tag. How do I simply associate any tag with a module IO point..??? Is there a secret to this..?? Thanks so much..!!!
1 person likes this

Share this post


Link to post
Share on other sites
It's not as cryptic as you fear. Consider an SLC-500 with a 16-point input module in the 6th slot of the chassis (5th slot after the CPU). The input data table addresses for the 16 bits would be I:5.0 through I:5.15. A ControlLogix with a 16-point input module in the 6th slot of the chassis. The input data address for those 16 bits would be Local:5:I.Data.0 through Local:5:I.Data.15. There are some differences, to be sure. The CPU can be anywhere. The left-most slot is Slot 0. There are 32 data bits for every discrete module, and the analog modules have complex data structures. When I first started using ControlLogix, I wanted my familiar data files and structures from the PLC-5 back. But once you get used it it, you won't want to go back.
1 person likes this

Share this post


Link to post
Share on other sites
The problem Im having is when I look at the program I see for example a XIC like instruction at the beginning of the rung. It does not have an address on it but a tag (I guess they call it) thats LWCO. Same way with what looks like an OTE instruction labeled FAN_FWD How do I find out exactly what Module and point that these are actually assigned to..??? Thanks Edited by PortenoSuenos

Share this post


Link to post
Share on other sites
At the lowest level the I/O is listen in the 'Controller Tags' as 'Local ....'. View these tags and note that they have information regarding the slot, word and bit. Some I/O which are supported by an 'Add On Profile' (AOP) may have additionally automatically generated more readable tags for more detailed I/O functions in the card. Tags which point to another location are called 'Aliases'. The ladder display can be adjusted to show the final target for aliased instructions. This may help with your confusion.
1 person likes this

Share this post


Link to post
Share on other sites
Hello, I think you may have hit the key word to your question in your title, "Mapping" Since RSLogix5000 is Asynchronous programmers will often "Map" there inputs and outputs in the first Routines of the Main Task. They "Map" the actual (physical) Inputs & Outputs to "Internal Bits" (for lack of a better word). These "Internal Bits" would be the same things as say...B3 bits... in Logix500. (which you are already used to working with). However since RSLogix5000 is "TAG BASED" instead of having a predetermined set of data files, you can just create and name these "Internal Bits" what ever you want. An example would look like this. For inputs: Local:1:I.Data.0********************Internal Bit --------] [----------------------------------------------------( ) For output: Internal Bit*********************Local:2:O.Data.0 --------] [-----------------------------------------------------( ) Of course where I put the word internal bit you would name the tag what ever you want. The reason for doing this is since Logix5000 is Asynchronous it is possible for logic to change state mid scan. By "Mapping" your I/O and placing it at the beginning of your program, all the I/O is scanned first and set to internal bits that you use throughout your program in place of the actual physical I/O instructions. This greatly reduces if not eliminate the chance of your logic changing states mid scan. Any instruction you are having doubts about, simply right click on it, then select cross reference and you should be able to drill down and see where these originate from. Some may be "Mapped" back to physical I/O addresses and others may simply be internal bits that are used just like B3. BCS Edited by Bering C Sparky
2 people like this

Share this post


Link to post
Share on other sites
Here is a simple little tutorial that may get you headed down the right road using RSLogix5000. Take a look at the steps in this tutorial and hopefully it will help you out. http://www.contactandcoil.com/rslogix-5000-tutorial/ BCS

Share this post


Link to post
Share on other sites
you can always create arrays that look and feel almost like SLC and map I/O to them...

Share this post


Link to post
Share on other sites
Bering Sea...May you live to be a 100 years old..!!! You are a Saint..!! That helped me soooo much..!!! Im sorry if it taking me awhile, but my brain keeps trying to revert back to RSLogix500. Sometimes it takes a lot of rain to get thru to my thick skull. Panic Mode.. There term array is not familiar to me. How/do I do that..?? What does array term mean exactly..?? All, Im so sorry for my ineptitude, but Im really trying to learn this RSLogix5000...so I may have more stupido questions. Muchísimas gracias

Share this post


Link to post
Share on other sites
array is a collection of elements of same type. individual elements are accessed by means of index. this allows performing loop operations like searching and sorting. if you do not like long native address if logix to appear in your code, you can map everything to couple arrays so your code (and used addresses) will look much more like what you (or your client) are used to. for example you can create INT type and call it B3, or N7 and have number of elements 100(s). then you can access them using N7[4] or B3[4].13 same goes for F8, T4, and of course - Inputs and outputs.

Share this post


Link to post
Share on other sites
Thats exactly what Im looking for right now..!!!! This will get me going right now (makes sense to me) as I travel down this migration road. Thanks so much..!!

Share this post


Link to post
Share on other sites
Also...Thank you Mr Carlton..!!!

Share this post


Link to post
Share on other sites
Porteno Suenos, Do what you have to do to make it all work out in your head for the moment, but I assure you that once you get your head wrapped around using RSLogix5000 Tag Data Base you will never want to see another B3, N7, T4, etc. Not that there is anything wrong with those but once you get the hang of using Tags that you are in control of naming instead of being tied down to a predetermined set of data files it is very liberating. I mean think about it, you put B3:0/0 in your Logix500 program and what is the next thing you do.......you put a instruction description on top of it and call it something that you can relate too like "Fan_Forward. (so you know what the heck B3:0/0 is) With Logix5000 you just forget about having to go and select the B3:0/0.....you can skip that step and just make a bit and name it "Fan_Forward" or anything you want that makes since to you. It has been a while since I looked at the tutorial I sent you, this is what I used to help me write my first program in Logix5000 but I think it tries to get you to make it look like the old data file in 500 also. I don't do that, I make my tag names something that makes since to the project I am working on, to someone who might come behind me and need to understand what is going on with just a glance, and most of all something that makes since to me. After all if you look at an instruction and it says B3:0/0.....?????....you say what the hell does that do. But if you look at a instruction and it says "Fan_Forward" and you are working on an application that has a fan, well....you get the picture. It gets a bit more involved than this for sure and I still have much to learn myself, just getting started good with Logix5000. But after playing around trying to teach myself for some time, I did the best thing I have done since I put a ring on my wife's finger. I went to a class here in the USA for 5 days (and not just any class, I went to PLC BOOTCAMP). (Google it and check it out) Let me tell you it opened my eyes right up and now I see clearer than ever and it has built my confidence greatly. If you have the means I would highly recommend you do the same, it will put you light years ahead of the game in only 5 days. Take care and program on, BCS (Also just so you are aware....not every programmer "Maps" their I/O so you will not always see this in all programs. A lot of times the "Local"X:X.Data.X" will simply have an "Alias" but we will leave that for another thread) Edited by Bering C Sparky

Share this post


Link to post
Share on other sites
You forgot to Thank "Ken" Want to stay on his good side, he is one of the main ones on here that I keep trying to open up his flip-top, propeller head and extract information from. Have a good one. BCS

Share this post


Link to post
Share on other sites
OMG... I didn't go that far back up...was above my screen...Sooooo Sorry..!! Thanks Ken..!!!

Share this post


Link to post
Share on other sites
I hear ya BCS... And I do a lot of programming on an Eaton XP-503 HMI and I use tags in it so I kind of know that tags are better...soooo WHY doesnt brain except this on this RSLogix5000..??? Oh well.. I am going to learn this..!!!!

Share this post


Link to post
Share on other sites
I looked at the PLC Bootcamp. And yes it looks very good. I see that it is in the USA. Unfortunately that is a very long way away from Argentina. But thanks for the suggestion.

Share this post


Link to post
Share on other sites
Its a small world, so you never know, you might make it this way one day. BCS

Share this post


Link to post
Share on other sites
All of this information has been a big help to me with my current project. However, I did not write the current logic and need to get an inventory of the available I/O points. Without physically going out and counting them, how can I get that information? Bp

Share this post


Link to post
Share on other sites
Assuming you have the project file and are able to open it in RSL5K, take a look at the I/O configuration tree. You can count, or at least estimate, the number of discrete I/O points the project uses.

Share this post


Link to post
Share on other sites
Go to the Controller Tags on your RSLogix5000 project. Find all the I/O points (Local:1:I.Data.0, etc.). Do a cross reference on each one, this way you can see which ones are used in the logic.
1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now