RSLogix 500 one shot vs RSLogix 5000 one shot

Prayder

Lifetime Supporting Member
Join Date
Jun 2014
Location
Arkansas
Posts
254
I am converting an RSLogix 500 program to RSLogix 5000 and i have come across an OSR instruction in the 500 which I understand as one-shot rising. But in the 5000 program if I choose the OSR instruction in the 5000 program it asks for an output bit location as well as show my current location chosen as the storage bit. I dont remember this happening in the 500 program... Could someone explain how to use the OSR instruction in the 5000 program like the 500 program?
 
In the SLC and Micrologix 1000 CPUs the OSR was an inline instruction taking the location of the memory bit as an argument and providing a one scan TRUE state for the rest of the rung as its input conditions become true. The later Micrologix CPUs renamed this as ONS. This is equivalent to the ONS instruction in RSLogix 5000.

The later Micrologix CPUs also have the OSR as an output box containing the memory bit and an output bit as arguments. The OSR in RSLogix 5000 has this form.
 
Last edited:
ok.... so where i find an OSR in the micrologix..... I would use a ONS in the ControlLogix?

Is that what you are basically saying?
 
Prayder said:
ok.... so where i find an OSR in the micrologix..... I would use a ONS in the ControlLogix?...

I would say no.

You appear to be converting from an SLC 500 or MicroLogix 1000/1100 controller, which only uses a single "Storage Bit" for OSR instructions.

For these older OSR instructions, the "Output Bit" does not exist, and the only "Output" it provides is its "rung-condition-out" to the next instruction on the rung. These OSR instructions are not output instructions, they are input instructions, and so must be placed before output instructions on a rung.

As Bernie pointed out, how the OSR instruction operates for the Logix controllers, and the MicroLogix 1200/1400/1500 controllers, is somewhat different.

For these newer OSR instructions, both the "Storage Bit" and an "Output Bit" are included in the OSR instruction. The "Storage Bit" is similar to the older OSR "Storage Bit". Any unique tag you create to store the current "rung-condition-in" for the OSR instruction can be assigned as the "Storage Bit".

On the output side, these OSR instructions provide both a "rung-condition-out", and an "Output Bit". These instructions are output instruction, and so can reside at the end of the rung. What you now have to do is assign another unique tag for the "Output Bit". This bit, or tag, is set true when the OSR is executed, and the "Storage Bit" is false. The "rung-condition-out" from the OSR is then set to true. If you do not use the "Output Bit", outside of the OSR instruction, the "rung-condition-out" will still enable the "rung-condition-in" for the next instruction on the rung, if there are any. So, you do not have to use the "Output Bit" anywhere else in the program if all you want the OSR instruction to do is enable the rest of the rung it resides on. In that case, you just have to assign a tag to the "Output Bit" for the program to verify.

However, the advantage of now having an "Output Bit" for an OSR instruction, is that anywhere apart from the OSR's rung that you also want the OSR to control, you can use the "Output Bit". So one OSR instruction can simultaneously "rung-condition-out" on its own rung, and control other rungs using its "Output Bit".

If you don't use the "Output Bit" outside of the OSR instruction, then it is effectively doing nothing.

So, when you convert to Logix controllers, using RSLogix 5000, or Logix Designer...

If you had a OneShotRising, and you still require a OneShotRising, then you should continue to use a OneShotRising. You just have to assign an extra "Output Bit" tag per instruction to verify, but do not have to use that tag elsewhere.

Attached is a screenshot of two examples - one just using the OSR to enable the rest of the rung, and the other using the "Output Bit" outside of the OSR instruction, on the next rung, to enable the same logic...

Regards,
George

Logix_OSR.jpg
 
Last edited:
Well put Bernie!

And thank you.

It has also made me realise, in retrospect, that I wasn't entirely correct in my thinking. Something I'd like to set straight now. I just hadn't thought it through fully before starting to type.

While explaining how the newer OSR instructions operate may be useful, and that it should be carried through from old to new, the latter part is not entirely true. It actually depends on the conditions that Bernie has set out.

I was working off an incorrect recollection of the triggering functionality of the older OSR instructions being the same as the newer version, and somehow different to the newer ONS instruction. Their functionality is, of course, the same. They both provide a rising edge trigger for one scan.

As there was no ONS instruction for SLC 500 and ML1000/1100 controllers, the only option for rising edge triggering was the OSR instruction. The newer ONS instruction, also only using a "Storage Bit", provides identical functionality to the older OSR instruction.

So a like for like swap is actually to use the newer ONS instruction in place of the older OSR instruction.

So there should be no need to unnecessarily complicate the migration of an older OSR instruction to the Logix Platform by using an identically named OSR instruction, which now uses two bits instead of one. The newer ONS should fit the bill perfectly.

And as Bernie pointed out so well, only use the newer OSR instruction when you want to condition other rungs with the OSR instructions state.

Geospark said:
I would say no.

So swap my "no" for "yes, unless you need the OSR "Output Bit"" above and forget I was even here!

Sorry for the confusion, and thanks again Bernie!

Regards
George
 
Last edited:

Similar Topics

Hi how do I take a snap shot of the selected screen in RsLogix 500. Thanks
Replies
11
Views
3,058
Hello, Haven't been on in a while. I need to generate a bit level pdf of the I/O for RSLogix 500. I can generate a report but it just shows the...
Replies
1
Views
112
I would like to copy register N61:131 thru N61:147 into ST252:0 I keep failing What happens is I copy into ST252:0,1, 2 etc. What am i missing...
Replies
18
Views
485
I'm trying to fix a mess of code on an older machine that's running a Micrologix 1400 and an RS232 ASCII barcode scanner. The previous guy had...
Replies
3
Views
306
I'm not super familiar with the Micrologix line of processors, but I am pretty familiar with RSLogix 500. I'm trying to simply copy a string to...
Replies
4
Views
260
Back
Top Bottom