Studio Logix 5000 v.30.11 - ONS issues

alive15

Member
Join Date
Oct 2015
Location
Montgomery, AL
Posts
690
Good afternoon to all.

I am running a 1769-L27ERM-QBFC1B with version 30.11 of Studio Logix 5000. I have issues with an ONS bit I have created. I have multiple parallel inputs that all tie into 1 ONS bit, which in turn, enables my output. However, about 40% of the time, the output does not come on? I am 100% positive I am resetting all inputs to off before turning any inputs back on in order to re-trigger the ONS bit.

My work around is using a pulse timer to keep on re-triggering the ONS bit until it turns my output on, but I am not sure why it will not work without the pulse timer.

What to do to troubleshoot this? I've attached my rung in the picture below.

Thanks!

logic.PNG
 
You're spot on about needing to ensure that all inputs to the ONS need to reset before the ONS will fire again, so it's good that you're taking care of that. What I would do in this situation is temporarily remove all the parallel rungs and test each one individually. If you find the ONS works for some but not all, then you have found which input is the culprit for odd behavior and you can go from there. It could be that something isn't resetting as you'd expect.
 
Any reason why you don't want to give each branch its own ONS instruction?
If the drivers are not enabling a ONS in parallel, then the reset timing of the driver bits no longer mattes.
 
It's happened on all 4 of my input conditions. I've separated each input and done each one individually with the ONS tag I have created. Actually, I have 1 tag called ONESHOT that is an array from ONESHOT.0 to ONESHOT.100 ; I'm making sure I am not using that particular ONS anywhere else in the system.

I could try Fenix's suggestion, but I don't understand why my method would not work. I have more success using OSR, but I did not want to create the extra tags necessary to use this instruction either, so I went back to ONS and tried using it again.
 
Actually, I do not want to use Fenix's method because I am using the OTL, so I don't want to have multiple OTL's of the same output in my program. Nothing wrong with doing so,it's just my personal preference not to. The way I have it written seems most efficient to me, unless anyone else can provide a better method to write that particular rung.
 
Any reason why you don't want to give each branch its own ONS instruction?

This is what I would do. One ONS per branch and you will likely solve your problem.

Also, make absolutely sure that the address for the ONS is not used anywhere else. I normally try to make my
"OneShot" tag locally scoped to help ensure this.
 
Right, so I've already tried using one ONS per branch, and the issue is still there. The issue existed at the very beginning when I had only 1 input, 1 ONS, and 1 output. I have since expanded to 4 inputs in parallel and had to add pulse timers on each branch to keep re-triggering the ONS until the output came on.
 
Furthermore, I'm making sure the latch is not getting unlatched. Basically, this output enables my barcode reader and lets an operator scan there badge in. The only way it unlatches is if it gets a successful read in the first place. The only way it can receive a successful read is for the barcode reader to enable first. The barcode reader will not enable until my output in the picture enables.
 
If you ZIP and post your program, folks can have a look at it.

I genuinely think there's something else you're missing in the system, whether from an attached controller or HMI, or in your logic or task execution setup, in a place you haven't looked or are misunderstanding. Carefully examine the way this Routine is executed, whether in the Continuous Task or in a Periodic Task.

Because I've participated in discovering PLC firmware bugs over the course of my career, I don't tell people that it's impossible that their problem is related to a bug.

But the basic boolean instructions in the ControlLogix have been bulletproof for 20 years. It's more likely that I'll be bitten by a rabid penguin on the subway tonight than that the ONS instruction doesn't work.
 
Good afternoon to all.

I am running a 1769-L27ERM-QBFC1B with version 30.11 of Studio Logix 5000. I have issues with an ONS bit I have created. I have multiple parallel inputs that all tie into 1 ONS bit, which in turn, enables my output. However, about 40% of the time, the output does not come on? I am 100% positive I am resetting all inputs to off before turning any inputs back on in order to re-trigger the ONS bit.

My work around is using a pulse timer to keep on re-triggering the ONS bit until it turns my output on, but I am not sure why it will not work without the pulse timer.

What to do to troubleshoot this? I've attached my rung in the picture below.

Thanks!


Based upon what you are saying, it should work, but I would NEVER parallel multiple branches to a single one shot. You're just begging for trouble when you do that. The one shot requires a transition in order to function.
 
+1 on BitBucket's method.

When I have to do something like this I would make 4 separate rungs with the oneshot, each turning on a bit of it's own.

Then add a 5th rung checking if each of the one-shot bits is on and latch your output there.

This will make troubleshooting a lot easier.
 
+1 on BitBucket's method.

When I have to do something like this I would make 4 separate rungs with the oneshot, each turning on a bit of it's own.

Then add a 5th rung checking if each of the one-shot bits is on and latch your output there.

This will make troubleshooting a lot easier.


+1 for Aabeck.
 
Carefully examine the way this Routine is executed, whether in the Continuous Task or in a Periodic Task.

That was my first thought as well. If the logic is in a periodic task, or the bits that trigger the oneshot are in a periodic task, it's possible that there may be "missed connections" without some additional "catch and release" logic.
 
My $0.02 on periodic tasks:

I don't program tasks periodically, to have to see if they are being called.

I call all tasks every scan, then if it only needs to run occasionally I have the start of that task make that decision, clear any bits that need cleared, set a Skip_Bit for that task and if the task needs skipped and the Skip_Bit for it is set then I do a return.

This way if it is found later that something else needs cleared it can be done inside that task.
 

Similar Topics

Does anyone know how to set the background colors of instuction blocks (TON, MOV, etc)?
Replies
1
Views
89
Hey Guys, I am looking for a cr@cked version of Studio 5000 Logix Emulator V28 or Rslogix5000 V21, which will work with my current emulator...
Replies
1
Views
230
Good Evening , I have version 28 of Studio 5000 from a few years ago . If I got a new CompactLogix CPU , what is the lowest version of...
Replies
4
Views
436
I have installed Studio 5000 Professional version V36 a time ago and installed today Logix Emulate V36. I have a exsisting PLC program, but...
Replies
4
Views
589
Hi all, I'm going to start programming a 1756-L73 and I'm still waiting for the full Studio5000 to be able to start at it in earnest. But I...
Replies
5
Views
386
Back
Top Bottom