The ONS instruction is an input instruction that makes the rung true for one program scan upon a false-to-true transition of the conditions preceding the ONS instruction on the rung.
Use the ONS instruction to start events that are triggered by a pushbutton, such as pulling values from thumbwheel switches or freezing rapidly displayed LED values.
You must enter a bit address for the bit. Use either a binary file or integer file address.
Note: During pre-scan, the bit address is set to inhibit false triggering when the program scan begins.
Rockwell Software
I suspect that ONS(37) is the culprit that is keeping the Horn from Latching. Once the rung has been true at one time, that ONS will not allow the horn to be latched on again until the rung goes false. As soon as you try to manaully toggle the horn on, the ONS sets it back to "0". If you first forced off the Lube Oil Level Low and toggled the HMI Reset pushbutton bit, then you might be able to turn on the horn bit. Get rid of that latching horn and you will not need a ONS.
agree with this post, you have to also keep in mind that since you have and ONS[37] followed by the OTL for one scan the OTL will be "on" because of the ONS[37] then will stay "on" even though the ONS has fired because when a preceding condition to an OTL is false, the OTL does nothing, it will be in the last state that it was in, then when the OTU unlatches it it will reset and it will stay that way. If you tried to toggle it as lancie 1 has stated the ONS will keep over writting it to 0, but again as lancie has stated If you first forced off the Lube Oil Level Low and toggled the HMI Reset pushbutton bit, then you might be able to turn on the horn bit, what that essentially does is drive the ONS from a false to true transition so your ONS[37] will fire, and as long as you don't give an OTU command the horn should latch on.
I suspect that ONS(37) is the culprit that is keeping the Horn from Latching. Once the rung has been true at one time, that ONS will not allow the horn to be latched on again until the rung goes false. As soon as you try to manaully toggle the horn on, the ONS sets it back to "0". If you first forced off the Lube Oil Level Low and toggled the HMI Reset pushbutton bit, then you might be able to turn on the horn bit. Get rid of that latching horn and you will not need a ONS.
agree with this post, you have to also keep in mind that since you have and ONS[37] followed by the OTL for one scan the OTL will be "on" because of the ONS[37] then will stay "on" even though the ONS has fired because when a preceding condition to an OTL is false, the OTL does nothing, it will be in the last state that it was in, then when the OTU unlatches it it will reset and it will stay that way. If you tried to toggle it as lancie 1 has stated the ONS will keep over writting it to 0, but again as lancie has stated If you first forced off the Lube Oil Level Low and toggled the HMI Reset pushbutton bit, then you might be able to turn on the horn bit, what that essentially does is drive the ONS from a false to true transition so your ONS[37] will fire, and as long as you don't give an OTU command the horn should latch on.
The ONS is not the problem here, the instruction following the ONS is an OTL, and an OTL cannot write a "0" into the HORN_ACT tag.
Given.... static conditions, and no new input transitions, the OP was not able to toggle HORN_ACT to the ON state... ergo, something else is driving it back to a "0".
Suggestions of removing the ONS are inappropriate, the ONS is needed in the way the application signals new alarms only, and i can see nothing wrong with the way HORN and BEACON are controlled in this logic.
just curious though did the "routine" with the MSG bit writing to the Horn_Act OTE come before or after the "routine" with the Horn_Act OTL??
Just FYI for next time, you should have received a duplicate destructive bit reference warning message when you perform a verify routine or verify controller within RSLogix5000, at least the version(s) I use. This option can be turned off/on in options.