04-07-2011 02:08 PM
Attached is my program incase it helps to see clarify some things. I'm using LV 8.0
I'm trying to figure out if there is a function or a method where I could terminate a process without stopping the entire program.
The Situation
Here is what I'm trying to do exactly..
I have 2 pumps (A and B) that are on a normally open relay circuit and 1 on a normally open circuit (Pump C). This means that if I send a 5V signal to the normally closed circuit the pumps A and B would turn OFF. Similarly if I send a 5V signal to pump C it would turn ON.
This on/off sequence occurs every hour.
I want to add contingency into my program where if the pressure increases above 25psi all the pumps would turn off and the process would stop. So which means to stop the process I would have to continuously send a 5V signal to Pumps A and B and send a 0V signal to pump C. I believe that the way I have my programming setup right now it should work fine.
THE PROBLEM
Obviously if I kill the pumps the pressure is going to drop below 25 psi, which means labview will stop sending signals and turn the pumps back on and the pressure will jump back upto +25psi. I don't want that to happen
My Question
Is there a way that if I hit the 25psi mark that labview would permanently terminate the process so that it wouldn't go back to checking whether the pressure is less than the limit and abort the process until a physical reset or something of such sort ?
Thank You For Taking The Time ![]()
Amir Alansari
Graduate Student
Environmental Engineering
04-07-2011 02:37 PM
Amir,
This is very easy to do, but I was having a little trouble following the block diagram. A shift register in one of your loops could store a boolean that would change if the process had been stopped by over pressure. That True boolean could be used to keep other processes from continuing to cycle on/off. Or you could use a functional global which would do the same thing, but rather than being stored on the shift register in the loop of your main VI it would be stored in the functional global.
A quick glance around your block diagram and I noticed there might be a couple of local variables inside the same loop as the indicator they are reading from. This is an easy way to eliminate a local variable and wire direct.
Eric
04-07-2011 06:54 PM
Hey Eric,
I didn't quite understand from the labview help how to use the shift registers ?
It talks about either remembering iteration values or reseting initial values ?
can you please provide an example or clarify this.
Thanks,
Amir.
04-07-2011 07:20 PM
Amir,
Essentially all you need is some kind of status alarm that doesn't reset until the operator tells it to reset.
Build the VI below and watch what happens when you make the pressure go over 25 and then below 25. Your output remains true until you reset it. Do that on the loop in your program and you can use the output to keep your pumps from turning back on when you don't want them to.
Eric
04-09-2011 09:30 AM
Hey Eric,
Thanks for the help. I had to do some tweaking to get it to work for me, but I learned something new.
Amir.