Allen Bradley Ladder Logic Array Indexes Getting Jumbled Up

BKoch

Member
Join Date
May 2018
Location
Alabama
Posts
32
I am working on a 1756-L71S GuardLogix 5570 controller (Ver. 32) where I am having a persistent problem with some of my routines.


A couple of my routines have lots of similar rungs with variations in array index references to work with my recipes.


Here is a snippet of one of the correct rungs. Notice all the indexes are 24. There is another rung with all 26, another with 28, etc.
TVaEIjV.png





Now this may not be the most efficient way to do this but it's what I was given to work with. The problem arises when these indexes get randomly changed. I will import the correct routine, save, and then a couple days later check on the PLC and the rungs will look something like this...
CxqzSZ5.png


Notice how a couple of the indexes got changed to something else, this changes almost all of the rungs in the routine when it happens.


There are multiple people that connect to the line so that could be the issue. I talked to Allen Bradley and they said to save the entire project as an .L5K instead of a .acd but that doesn't seem to stop it, not to mention coordinating everyone that connects to do that is difficult as they are from different companies.


I have tried Source Protection as well and that does nothing to prevent the issue.


Anyone have any ideas about fixing this? or at the very least the root cause?


Thanks
 
Last edited:
I think someone is going online with an old programming and downloading changes to the PLC. Never say never, but I don't think the indexes are being changed without human intervention.
 
Maybe lock the PLC key switch into RUN mode so no one can make code changes?
If it was just me programming on the controller this would work great but unfortunately there are many people connecting and working on programs so I can't lock them out of it.
 
I think someone is going online with an old programming and downloading changes to the PLC. Never say never, but I don't think the indexes are being changed without human intervention.
That was my main suspicion although it seems to happen even without people doing downloads.


Do you think this could happen if someone goes online with the bad routine without uploading and makes online edits somewhere else in the controller?
 
That was my main suspicion although it seems to happen even without people doing downloads.


Do you think this could happen if someone goes online with the bad routine without uploading and makes online edits somewhere else in the controller?

You can't go online with "bad routines". If you had the correct routines in the controller, then someone tries to go online with their outdated program, LogixDesigner will prompt you to upload or download. If they choose download, they are going to wipe out your newer routines. If they choose upload, LogixDesigner will read the controller image and make their copy match what is currently in the controller.
 
You can't go online with "bad routines". If you had the correct routines in the controller, then someone tries to go online with their outdated program, LogixDesigner will prompt you to upload or download. If they choose download, they are going to wipe out your newer routines. If they choose upload, LogixDesigner will read the controller image and make their copy match what is currently in the controller.
That makes sense, If there are minor changes it does that "correlating changes" step of connecting, which should correct those indices if they have a different version.
 
Oh man, I just ran a test, I should be the only one connected to the controller (but there's a possibility there are others online remotely). Here are the steps I did:

Online, I saved my project with the correct routine
Went Offline
changed 2 indices to similar numbers
Went Online (It prompted to either Upload or Download)
I uploaded

Once the upload was finished I checked the routine, and it is ALL messed up like I've been experiencing, not just the 2 indices on one rung that I changed.

I don't know what this means but I'm not reassured to say the least.
 
Last edited:
What is the minor revision of 32 you are using?

I remember there being an undocumented feature in the early v31 or v32, where you could end up with missing rungs when saving a program, if you didn't notice, when someone went to download the program later, you would of course download the program with the missing rungs. Maybe this is related.
 
Oh man, I just ran a test, I should be the only one connected to the controller (but there's a possibility there are others online remotely). Here are the steps I did:

Online, I saved my project with the correct routine
Went Offline
changed 2 indices to similar numbers
Went Online (It prompted to either Upload or Download)
I uploaded

Once the upload was finished I checked the routine, and it is ALL messed up like I've been experiencing, not just the 2 indices on one rung that I changed.

I don't know what this means but I'm not reassured to say the least.

I would believe that to be normal. If you do offline edits, then UPLOAD, your offline changes will be overwritten.

You either need to make your changes online, rung by rung. Or offline edit then download. This brings another large bag of issues if you have multiple people working on the same program. Don’t download until you fully understand the difference.
 
And to add a little clarity... “all messed up” is the version you saved. It reverted right back to what was there before.
 
And to add a little clarity... “all messed up” is the version you saved. It reverted right back to what was there before.


No, the one that had all the indices changed only showed up after the upload.


I closed out of the project and opened the saved version and it was correct, then I was able to go online with it without uploading/downloading and the correct version of the routine was still there online.
 
Oh man, I just ran a test, I should be the only one connected to the controller (but there's a possibility there are others online remotely). Here are the steps I did:

Online, I saved my project with the correct routine
Went Offline
changed 2 indices to similar numbers
Went Online (It prompted to either Upload or Download)
I uploaded

Once the upload was finished I checked the routine, and it is ALL messed up like I've been experiencing, not just the 2 indices on one rung that I changed.

I don't know what this means but I'm not reassured to say the least.

Analysing your post ....

You were online, that means the project in your PC was the same as the project in the controller (it has to be to be online).

You saved, and went offline.

You made 2 changes to "literal" indices.

You then "uploaded" the project from the controller, which would have overwritten your offline changes. Your offline changes would have been lost.

You also noticed other indexes that were incorrect.

So, the question is, have you always uploaded after making offline corrections ?

In the Allen-Bradley/Rockwell universe, to "upload" is to copy the program resident in the controller to the programming software. Conversely to make changes offline, you would then have to "download" the whole project to the controller.

From what you have described I fear you have your upload and download confused, which may explain why your offline changes keep getting over-written.

In summary :

UPLOAD : Logix controller to PC

DOWNLOAD : PC to Logix Controller

I can think of no other explanation, unless there is a huge software error by RA which surely would have been noticed before release ....
 
To add to my last post, further explanations are in order.

Scenario 1.

You open a project stored on your PC.

Scenario 1a.

You immediately go online.

Nobody else has made any changes in the controller. In this case you will just go online, successfully, with no warnings or caveats.

Scenario 1b.

You immediately go online.

Somebody else made changes to the project code stored in the controller.

You will successfully go online, but you may see (briefly if they were small changes), a pop-up window that says "Correlating". Don't worry if you miss it...

What is happening is that the controller is instructing the programming software to edit the offline project so that it matches the project in the controller. When the code matches, and it is a requirement, the system allows the programming software to "go online".

While "online" any changes you make to the controller are reflected to the "image" you are working with in the programming software.

Any good systems engineer will want to save any changes he has made, so when exiting the software you will see a pop-up message that says "The offline project has changes uploaded from the controller, they will be saved .... " can't remember the rest, but what that means is that "correlation" occurred when going online, even if you missed it.

In essence, correlation occurs if the controller has a later "revision" of the code than you have on your PC. Something has to give, and usually you "save" everything.

Scenario 1c.

You open a project stored on your PC.

Before going online, you makes changes. When you attempt to go online, the software tells you that the online (controller) and offline (your PC) projects are different, and offers you the choice to "download" your offline project to the controller. I don't think at that point it offers an Upload, it has assumed that since it hasn't been connected to the controller yet, your offline changes are relevant, and that you want to put them into the controller. I think it is the "you made changes" that switches off the "upload" option, because your "revision level is higher than the controller's. EDIT : Of course, if you do make changes before going online, then DOWNLOAD, you will overwrite any changes anyone else made in the controller ! You must always "go online" first, to ensure you have the current controller code !

You literally cannot go online with your offline project without it matching (instruction and operands) the controller.

Hope this makes sense, and I'm happy to answer any queries you may have ...



There's probably more I could add, but the whole shebang is completely logical, so long as you understand the messages presented (and why they were presented), and act upon them accordingly.

And one other thing, DO NOT ALLOW, however you police it, more than one programmer, technician, maintenance engineer, or janitor to make edits within the same PROGRAM at the same time. It will just cause an unsightly mess as each Accepts, Tests, Untests, and Assembles, asynchronously, because they WILL be interacting with each others edits. Especially important if working as a team on a live plant !!! A good analogy is to consider a PROGRAM to be a stand-alone PLC
 
Last edited:

Similar Topics

I'm not a ladder or AB guy and the people asking me are using both, so this has me stumped. Long story short, they have several arrays of...
Replies
11
Views
5,236
Hello everyone. It's been a bunch of years since I have visited this forum with a technical question. Not that I ever knew a whole bunch about...
Replies
5
Views
3,176
Hello, I am having some problems and I am wondering if I can get some guidance. I will explain the process I am trying to achieve. I am trying to...
Replies
4
Views
4,090
My mentor has me looking over some ladder logic from an old PLC program we have. Its apparently older then I am, and since the install we've lost...
Replies
11
Views
6,090
Back
Top Bottom