Studio 5000- Went to edit a rung online . Have 3 rungs with R , r , i

Rob S.

Member
Join Date
Sep 2008
Location
Maryland
Posts
739
Good Morning ,

I went to edit a rung , and for some reason I can “ Accept Pending Rung Edits “ , but I can’t assemble rung .

I took notice that I have a capital R , on my original rung , then another small r , on a rung above , and an small i on the rung above . I have 3 rungs .

How do I get out of this mess , LOL ? I would like to do this small edit , online .

Thanks so much in advance ,
 
Hi, I would select "Cancel Rung edits" or whatever it says to cancel and start over. I almost never accept, test and assemble. I always do "Ctrl + Shift + F" and hit "Enter". Unless I have a process that I don't want to mess up with a new edit, then I will test it. Probably haven't used that sequence in 5 years. Hope this helps
 
As suggested, hit cancel (might have to cancel twice) and start over. You should also be able to Accept the "i" rung. That will get you back to two rungs. It can happen when you Test an edit, then Untest, and then go back and edit the changes. Anytime you Accept a rung and then go back and Edit that rung before you have Assembled the edit, you will see this.

OG
 
Last edited:
I had this feature happen to me multiple times. It happened to me if I have not rebooted my laptop after a week of use. Or when I have not saved the file in a while.

Sometimes just closing and opening RSlogix will fix it but other times have to reboot the laptop. So do a cold boot where you power it down.

Maybe your laptop is overrun with temp files?
 
Good Morning ,

I went to edit a rung , and for some reason I can “ Accept Pending Rung Edits “ , but I can’t assemble rung .

I took notice that I have a capital R , on my original rung , then another small r , on a rung above , and an small i on the rung above . I have 3 rungs .

How do I get out of this mess , LOL ? I would like to do this small edit , online .

Thanks so much in advance ,

What you have observed is perfectly valid, and is wholly repeatable.

I do not know if you are familiar with what the letters to the left of the rungs mean, but for the benefit of others I will explain....

Starting with no online edits present, choose the rung you want to edit, and then do one of the 5 or 6 things that will "Start Pending Rung Edits". For my money, since I already have the mouse in my hand, I always do the option that is not documented anywhere, to my knowledge, and is the simplest of them all.... double-click the rung !

The programming software copies the rung above the original, marking it with a lower-case "i". This indicates that this rung will be "inserted" into the controller code when you "Accept Pending Rung Edits". Note that the "i" rung has inactive power rails, and is the only rung you can make changes to.

The original rung below the new one is marked with a lower-case "r". This means it is the rung you will be replacing when you "Accept Pending Rung Edits".

Make your edits to the "i" rung, and the "i" will change to an "e" whenever the rung is invalid. Once it is valid it goes back to being an "i" rung.

At this moment in time, and importantly, absolutely NOTHING has been done in the controller, everything so far has been done in the programming software, so you could easily walk away without causing any problems. The significance of the letters being lower-case means that the marked rungs are in your PC, not in the controller. If anyone else was online viewing the same rung he/she would not see anything happening. Also the Online Toolbar will show "No Edits"

Now you want to get that edited rung into the controller, by "Accept Pending Rung Edits", and when you do you will notice that the lower-case "i" and "r" become upper-case "I" and "R". The significance of them being upper-case means that you are now seeing what is in the controller, and anyone else being online viewing the same rung will see that also. The online toolbar changes to "Edits Present".

Now that the edited rung is in the controller, you will see that the "I" rung has no "power", that is because the controller is executing the "R" rung, and ignoring the "I" rung.

Now you are the position where you could just "Assemble Edits", or you could elect the "Test Edits". In Test Edits mode, the controller changes over to executing the "I" rung, and ignoring the "R" rung. The power-rail if the "I" rung goes green, and the "R" rung goes inactive. You will also get a warning when switching into "Test Edits", because you will be changing what the controller is executing.

From "Test Edits", if everything is OK, you can "Assemble Edits", and the controller will do the tidying up, removing the "R" rung, and making the "I" rung a permanent feature of the code.

From "Test Edits", if you need to make another change to the rung, perhaps because it didn't work as it should have done, you will have to "Untest Edits" to put the executing code back to how it was. (Again, you will get a warning, because you are changing what code is executed on the next scan).

So you may want to edit the "I" rung again, so you "Start Pending Rung Edits" on it. And it is at this moment that you will see (only you, not anyone else) the 3 rungs marked (top to bottom) "i", "r", and "R". Your display is showing what is going on in the controller AND what is going on in your PC software, and is what you described in your post. The "i" rung is your next shot at getting the code correct, the "r" rung is actually a copy of the "I" rung in the controller, which will be replaced by your newest "i" rung after you have edited it, and "Accept Pending Rung Edits".

Now you have to go through the "Test Edits" and "Assemble Edits" procedures again, to get the new code up and running.

All of the procedural switches are available as buttons on the "Online Edit" toolbar, and there is a button on the right called "Finalize All Edits in Program". Thank-you saultgeorge, I never knew the short-cut for that button ! What this button does for you , and it can be pressed at any time, will "finish" the online editing process, but you do not get any chance to revert back to the old rung. Once you hit that button, the software will do what it says on the tin - Finalize the Edits.

In reality, there is no such procedure as "Online Editing" - all of the editing is done in your PC, and then given to the controller at "Accept Pending Rung Edits", which will not be allowed if the rung is marked "e" (error).

Just remember the case rule for the rung markers : lower-case = exists only in the programming software : upper-case = exists in the controller.

Apologies for the long post, but it might be useful to some people.
 
Thanks for your help . The only way I could solve it was , make my changes offline , then download it to the processor .

Thanks again ,
 
Do you have enough free memory to make the online edit, is the edited task quite large?


As I'm lead to believe -



When making an online edit the processor makes a complete copy of the edited task and stores it in what used to be termed scratch memory (just free memory), when tested it swaps over the running task and the one being edited, so the edited task is now scanned, when assembled it does this replacement as a permanent change otherwise if cancelled returns the original task to the scanned program.


If there isn't enough free memory to do this then the online edit won't take place, but it should warn you about this when you try to accept or test (not sure which).

It will however sometimes allow you to do the edit offline and download, it just depends on the size of the edited task.
 
Do you have enough free memory to make the online edit, is the edited task quite large?


As I'm lead to believe -



When making an online edit the processor makes a complete copy of the edited task and stores it in what used to be termed scratch memory (just free memory), when tested it swaps over the running task and the one being edited, so the edited task is now scanned, when assembled it does this replacement as a permanent change otherwise if cancelled returns the original task to the scanned program.


If there isn't enough free memory to do this then the online edit won't take place, but it should warn you about this when you try to accept or test (not sure which).

It will however sometimes allow you to do the edit offline and download, it just depends on the size of the edited task.

You have been lead to believe wrongly.



It does not create a copy of the Task, and let's be honest, the Task could be the whole application !


The only additional code memory needed is for the "I" rung, and if the processor is that short on memory, it is time to upgrade the processor. One reason is that it will have no capacity to allow for future "correlation".

See my previous post on this, and especially note what I said about others viewing the same Task/Program/Routine/Rung. How would their programming software know when to switch to an alternative ?
 
daba....excellent post! Reading it as written in "plain English" makes it much easier to comprehend. Certainly, when compared to sourcing through "help" files or printed/electronic manuals. My thanks...
 
daba....excellent post! Reading it as written in "plain English" makes it much easier to comprehend. Certainly, when compared to sourcing through "help" files or printed/electronic manuals. My thanks...

No problem, and if you have any questions, feel free to ask.


I suppose a follow-up question to my post would be ...

Is it possible to see a rung marked "E" ?

Answers on a banknote please ....
 
Thanks for your help . The only way I could solve it was , make my changes offline , then download it to the processor .

Thanks again ,

FYI, to fix these issues without downloading, you can always make logic changes offline then export the subroutine and import it online.

I have had this kind of problem happen a few times. Usually when Logix has an unfortunate crash while editing logic, so you get the rung copies with corrupt instructions that you can't fix online.
 
In one of my previous posts I had a controllogix L61 which was almost full, I had a structured text task which was very large (I had split it many times), when an online modification was made (1 bool tag) the processor threw up "not enough logic mermory to carry out online edit", but would allow me to make offline edits (not one but many) and download them to the processor, after splitting the ST task further into smaller additional tasks, I was once again able to make online edits to the ST tasks, I would add this did not appear to affect Ladder logic although none of my ladder tasks were very large. (I later upgraded the processor), perhaps you could explain and help me understand?
 
Last edited:
In one of my previous posts I had a controllogix L61 which was almost full, I had a structured text task which was very large (I had split it many times), when an online modification was made (1 bool tag) the processor threw up "not enough logic mermory to carry out online edit", but would allow me to make offline edits (not one but many) and download them to the processor, after splitting the ST task further into smaller additional tasks, I was once again able to make online edits to the ST tasks, I would add this did not appear to affect Ladder logic although none of my ladder tasks were very large. (I later upgraded the processor), perhaps you could explain and help me understand?

Ok nehpets, I will try to make sense of what you have stated above.

But first, we need to clear up any confusion you, or others might have with your use of the word "task".

A Logix5000 processor is a hierarchical structure, consisting at its root level of a number of Tasks (note the use of the capital to distinguish).

By default, a new project is pre-configured with just one Task, and this is configured as a Continuous Task. Continuous in the sense that it is cyclic, as soon as it is complete it restarts. A lot of projects just use a Continuous Task, and no others. N.B. You can only have 1 continuous Task, and you do not even have to have that, the project could consist of ....

You can create more Tasks, of type Periodic or Event.

A Periodic Task is triggered into execution at a configurable time period, and once it has completed, it stops and waits for the next time-generated trigger to start execution.

An Event Task is triggered into execution by a specific event happening, such as a change in value of an Input Module tag, or a consumed tag. Once completed, the Task stops and waits for the same configured event to occur before it executes again.

Periodic and Event Tasks will always interrupt execution of the Continuous Task, because they will always have higher "priority". You can change the priority of your interrupting Tasks. A Periodic Task with a lower priority than an executing Event or Periodic Task will therefore be delayed until higher priority Tasks have completed, thus reducing their timing precision.

Controllers have differing capabilities on the number of Tasks you can have, with ControlLogix allowing up to 32.

So that was the Task level of the project. Within each Task (does not matter what the Task type is), there will be one or more Programs. You can have up to 100 Programs within each Task. You schedule the execution order of these Programs in the Task Properties, and they will be listed under the Task in the scheduled order. Programs can be "unscheduled" so that they do not get executed.

Now, looking at the Program level, each Program consists of a number of Routines. One of the Routines must be configured as the "Main Routine". They say the number of Routines you can have is "unlimited", by that it means limited by available memory. The Main Routine is the only one that is executed by the controller. Any other Routines you create can be "called" by JSR (Jump to SubRoutine), or by FOR (FOR-NEXT) looping instructions.

It is at the Routine level of the project that you can choose what coding language (LAD, STL, FBD, SFC) the Routine is coded in, and you can have any mix of Routines in different coding languages.


So, reading between the lines of your post, where you used the phrase "I had a structured text task which was very large", I suspect what you had was a structured text Routine that was very large, and you were able to split it into smaller Routines to enable editing.

I am not party to the under-the-hood workings of online editing of STL Routines, and I have no means of testing anything, my Licence is LAD only. However, it could be that it indeed does work with a copy of the whole Routine. By splitting the large Routine into smaller Routines, it allowed online editing with your limited free memory.

EDIT: It could be that the whole of an STL Routine is treated as 1 "rung".

Here are the memory usage figures for an online LAD edit, all I did was "Start Pending Rung Edits" on one rung, made no changes, then "Accept Pending Rung Edits". This produced the "I" and "R" rungs in the controller as per my explanation in my earlier post.

Before Accepting : 76,088 bytes used
After Accepting : 76,176 bytes used

The 88 bytes used cannot be the whole Routine, that would be a much much larger figure, and is commensurable with the complexity of the single rung.
 
Last edited:

Similar Topics

Compactlogix controller, program has 28 conveyors that use TON's to start the conveyors. The TT sounds a warning horn during start and the DN...
Replies
1
Views
2
I have to start out by saying I am not a PLC programmer and I have basic programming skills but mainly use software as a troubleshooting tool. I...
Replies
0
Views
37
Hi everyone, I was wondering how we declare Persistent Variables in Studio 5000 (main reason to keep the values during power cycle and program...
Replies
5
Views
175
I'm adding an IAI Gateway with 2 axes connected to it. To an ethernet network on my PLC. So, I think the math is correct on the Input and Output...
Replies
0
Views
66
I downloaded v24 for studio 5000 but can’t find where the download manager put it! Any help? I’ve done it before but can’t remember. Thanks
Replies
7
Views
197
Back
Top Bottom