RS Logix 5000 - With Add-On Instructions , can you modify them while online ?

Cydog

Member
Join Date
Feb 2018
Location
Maryland
Posts
313
Good Morning ,

In RS Logix 5000 , and Add-On Instructions can you modify them online ? While online I took notice when I selected Logic when I drilled down in the Add-On Instruction , it showed up in a dark gray , but when offline it was white . It seemed like the code was fairly simple with latches , TON's , MUL , etc. What would be the purpose of these. It just seems to get more confusing for someone like me . I'm sure it is a reason.

Thanks again ,
 
I use AOIs where I have a bit of code I will use in many places that doesn't need to change.
For example, there is an AOI that replicates the function of the old scaling instruction from Rs5/500.
 
I find not being able to edit AOI online as a big disadvantage of Rockwell and wondering if they will "fix" this in the future.
AOI are quite useful but with some processes, where you cannot risk to stop the line, you probably should not use them.
 
If you need to edit the code online then I suggest you use a subroutine with parameter passing.
AOIs are intended for fully tested code that you do not plan changing.
 
I use AOIs where I have a bit of code I will use in many places that doesn't need to change.
For example, there is an AOI that replicates the function of the old scaling instruction from Rs5/500.

This works when you take the DCS approach and basically think of every way imaginable to use bits of kit like valves, motors, etc... And little else. Hence why it isn't as good as many people make it out to be.

I find not being able to edit AOI online as a big disadvantage of Rockwell and wondering if they will "fix" this in the future.
AOI are quite useful but with some processes, where you cannot risk to stop the line, you probably should not use them.

I doubt they will as that would backfire for them when machines stop working.

If you need to edit the code online then I suggest you use a subroutine with parameter passing.

However, how do you monitor that subroutine online if it's called more than once?
Not only that the parameter passing for the subroutine is clunky as it doesn't pass a reference of the input parameter. So you then have the UDT or variable you want to process in the subroutine and then have to have an empty variable available for the subroutine to copy in and out of the parameters.
 
This works when you take the DCS approach and basically think of every way imaginable to use bits of kit like valves, motors, etc... And little else. Hence why it isn't as good as many people make it out to be.



...

Oh agreed, I don't use them everywhere, but they have their place.
 
Oh agreed, I don't use them everywhere, but they have their place.

They do... but not as an equivalent to Function Blocks (as Siemens and others defines them). Rockwell fans rave on how it is much better because you can monitor the instance (unlike subroutines), but none of them address the fact that they are extremely limited for lots of applications and even if the block is tested, there may be a need to change it in the future and make the job more complex than it has to be.

Which, to be fair, is strange considering that Rockwell is pretty flexible on adding hardware without rebooting the controller, but I'm sure they have their reasons.
 
Originally posted by cardosocea:

They do... but not as an equivalent to Function Blocks (as Siemens and others defines them)

I don't think Rockwell ever claimed that they were. Outside of that, controlling people's perception of something is more effort than its worth in many cases. Easier to just straighten out the incorrect perceptions a case at a time.

I think Rockwell actually went a little out of their way to try to differentiate AOIs from functions and function blocks just by name. The name would tend to have you think of it more like a MUL or COP or PID than anything else and treat it accordingly. At least that is the way I've always taken it.

Keith
 
I have worked in places where I couldn't take the PLC offline often so I came up with a different way. As a work around I have modified the AOI offline and exported it and gave it a different name, usually add the version # to the AOI name. Once you have the .LX5 file, you can import it as a different name.

The key is, when you start the import you might get an error that says "Unable to overwrite add-on instruction (add-on instruction name). The existing add-on instruction will be used." If you click OK, you will see the Import Configuration screen. If you change the "Final Name" to something other than what is existing, like adding the version number, it will import it. Then you can go edit the rung(s) with the new AOI.

The only drawback is you can't delete the old AOI online so you would have two add-on instructions that are similar. So next time you can take it offline, you should go in and delete the old AOI.

It requires a bit of management but it will get you there.

Kevin
 
One other thing to note is if you add to or change a User Defined Tag (UDT) within the AOI, it will not accept the new AOI because when you import it, the UDT that is imported will have the same name as an existing UDT.

For example, In my AOI's, I have a UDT called "config" and this tag holds some values I use in the AOI. So if I was to import it with a different "Final Name", it still wants to use the "config" UDT that was originally created. In that case, I would change my UDT name prior to exporting it.

As long as the AOI has the same members (bool's, Dints, ect.) it will import without any issues.
 
...I think Rockwell actually went a little out of their way to try to differentiate AOIs from functions and function blocks just by name. The name would tend to have you think of it more like a MUL or COP or PID than anything else and treat it accordingly. At least that is the way I've always taken it.

Keith

My sentiments exactly, Keith...

(Post #13)...

Anybody Using Studio 5k V24?

If they decided to let us start editing an "instruction" online, while the process is running and calling several instances of that "instruction", then where might it end?

Would we say thanks, but now can you let us edit the OTE "instruction" as some of us would like it to toggle its address value each time the preceeding rung logic goes true. Or, the CTU "instruction" increment to its preset and then decrement to zero before setting its done bit. Yeah, I really need that...today. It's someone else's code - I just need to modify this bit.

Adding your own instruction to compliment the predefined instruction set is a powerful tool they have unlocked for us, but I don't think they'll be giving us the keys to the Kingdom any time soon.

Regards,
George
 
If they decided to let us start editing an "instruction" online, while the process is running and calling several instances of that "instruction", then where might it end?

A better programming environment?

They certainly got the semantics right for what it actually is, but it is yet another crutch on a limited development environment.

But hey, if it works for people, great! Personally I think it is one point that will slowly start chipping away their user base... but let's wait and see.
 
If they decided to let us start editing an "instruction" online, while the process is running and calling several instances of that "instruction", then where might it end?

George

Online edits for the AOI equivalent in Schneider PLCs has been around since I first started using Unity 5 years ago. I've never had an issue that has been any different to editing "normal" code online.

As with most systems that give you lots of power... you need a bit of responsibility to think about what you're doing
 
I can fully understand both stances on this topic, and I'm not saying we should not be allowed, as such. But more, we should try to understand that there are very good reasons why this is, so far, not allowed and perhaps that these reasons slightly, or even greatly outweigh the necessity to perform such changes, in the main.

Just this morning as it happens...

I'm knee deep in a full line upgrade project here at the moment and have just completed the project software yesterday for a 1769-L33ER controller and PanelView 5500 HMI. I'm just configuring all the PowerFlex 525 drives and Stratix 8000 switch here and will likely go live tomorrow or Saturday (argh)...

In the program, I have a few AOIs added or newly created to do very particular things. Some are generic for solenoid valve, motor, and drive control, etc. and some are pretty unique, like specific oven system control (quite old).

In the middle of all this, I've just created a simple but useful AOI to convert HMI timer value entries and apply the values to the relevant timers. Probably overkill, but I'm like that. I was asked could I add some spare AOI (ability to change timer values on HMI) for the Engineering Staff and expose its core functionality so they could modify its uses to do certain other "things" in the future. I tried to explain to the Plant Engineer, Operations Manager and some of the pretty savvy Engineering Staff who are Logix 5000 trained, that, besides it not being possible, if I do that then the first instances, which are doing something different now, will be affected, and could result in unpredictable line control. It's "one rule for all".

Despite my best "verbal" efforts, they really could not grasp it at all well. They kept thinking that each instance is being edited separately. I pointed out that how ever much you want that to be the case, it will not be. It's not that something cannot be done to achieve their goal, but just that the existing AOI route is a dead end (unless I get real fancy with it). I can make other AOIs to do what they specifically want, or use other methods, but that won't do as they want versatility, of which I thought I was providing - solutions. Management went off a bit disgruntled, but I showed a couple of the Engineers the software, how the AOI works, again, and what I meant by "one rule for all". One of them, a new Engineer, was actually the one suggesting I do this "mod" for them and kept questioning me, which I do welcome. I thought by explaining he would learn the pitfalls - you can change a timer instruction's preset for a single instance because those instruction defined parameters and their data types are exposed to the user. Likewise you can change the AOI parameters that are similarly exposed. But you cannot change how the timer operates as an instruction, nor can you change how the AOI operates as an instruction, while online. If you could, you would be changing it for all instruction instances already used or to be used and not just for a single instance. And so on...I got the prerequisite stares and nods of agreement and affirmation, but little else asked or said.

But a little knowledge can be dangerous. Later this morning, another Engineer came to me and said "...he's on his workstation trying to prove you wrong!...he's told them he can probably do it...". He'll keep at it, I'm sure, but I'll leave him to his own "devices", for now. For this one Engineer, I'm sure it will take several more "instances" of the "George instruction" before it sinks in.

Of course, we're not all as ignorant to the facts and as stubborn to boot. But I'm sure I could argue that there are far, far fewer of us programmers out there at the level that we could safely say won't mess things up here. I'm often for "open source" thinking, but I'm always "safety first" minded.

I'm sure we'll continue to politely think differently here, and that's OK too. If they do ever give us this ability then I'll use it as safely and as best I see fit, and make sure I'm aware of those pitfalls. But I do envisage such a feature creating plenty of "work" for a lot of us regulars here on the Forum.

G.
 

Similar Topics

I am trying to add a device to my RSLogix 5000 program. The device is a Eaton PowerXL DG1 I downloaded the eds file from the website (it...
Replies
5
Views
1,734
Can you add a MicroLogix 1400 to the IO Tree in Studio 5000? I can't find an entry for it or anything that is 1762 for that mater. I just want to...
Replies
5
Views
2,252
Hi, need to add stations to a line. Just basically a copy paste situation however I don’t want turn off the line and renown load the entire PLC...
Replies
6
Views
2,449
Im trying to sum a running "Shift Total" production value and move it into a Month Total value that will continuously update for viewing...
Replies
1
Views
1,517
Hello everybody, From user manual "ControlLogix SIL2 System Configuration", SIL2 Add-on Instructions is required to configure SIL 2 PLC...
Replies
0
Views
1,152
Back
Top Bottom