vrf Operator initiated EMERGENCY STOP

We did something similar here at Rockwell. however, we only use oneabort button which is also tied to a function key so it can be activatedeven if not visible. The button is kept active by putting it as a separatethreadin our own VEE based test sequencer. It doesn't always execute immediately[VEE being in a test with some low level I/O wait cycle] but works prettywell.It calls an abort user object then exits the sequencer user function.

We also have a mechanical interlock and a BIG RED mushroombutton to open the interlocks if an operator would see or smell somethingburning. We would need a real time OS (like DOS) to do that with softwareand even that isn't fool proof.

I have had this discussion with HP (now Agilent) since 1994when I started using VEE at version 2.0 (and still a baby).The response was to the effect that it is under consideration.

The short answer is no, there is no way to implement this on animmediate and fool-proof way.

As a work around, here is my not-quite fool-proof method:1. At the start of a program, set a global ABORT_FLAG to zero.2. Create a user object that has an OK button re-titled ABORT.This button is visible on the object's panel at all times. Parkthis panel in a corner of the screen and lock it into place.3. Inside this object, when the button is pressed, the globalABORT_FLAG is set to one and the object is exited.4. Have this object activate when the program starts. Also(!),a clone of this object must appear in every other object or functionthat you call when that object or function hides the original button.You need to keep an ABORT button visible and active at all times.Any object or function that includes the ABORT object must do anexplicit exit, since the ABORT button is still sitting and waiting.5. Now the sad part. You must test this global value at frequentintervals and locations within the program. You need to decide howlong you can wait after the operator clicks on the ABORT buttonbefore you test for it and initiate some action.6. The action you take should probably do a shutdown, data logging,and end in a STOP object.

It sure would be nice if Agilent could fix this and build an ABORTbutton into future versions of VEE.

My request to Agilent (same as to HP in the past): When the ABORTobject is activated, abandon any other activity in process and comehere immediately and do this string and do not stop for anything andand let me decide how to end the program when I have 40,000 wattsrunning through a million dollar UUT. (My last big project.)

Robert ReavisWarm Springs Computer WorksFremont, CA 94539

>Fellow Programmers:>>I have been looking for the best way to implement an operator initiated"Emergency Stop" into a VEE program. I would like to find some type ofoperator initiated Priority 1 interrupt which will immediately interruptanyongoing processes in HPVEE and direct execution to an Emergency Stoproutine.If anyone has a tried and true method I would appreciate the sharing ofknowledge.>>Thanks>Tim>>--------------------------------------------------------------------->This is the "vrf" maillist, managed by Majordomo. To send messages to>this maillist, just email to "vrf@lvld.hp.com". Subscriptions and>unsubscriptions are done through the address "vrf-request@lvld.hp.com".>If you need details, just send a message containing the text "help">to "vrf-request@lvld.hp.com".>--------------------------------------------------------------------->

---------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".---------------------------------------------------------------------

---------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".---------------------------------------------------------------------

I have been looking for the best way to implement an operator initiated"Emergency Stop" into a VEE program. I would like to find some type ofoperator initiated Priority 1 interrupt which will immediately interrupt anyongoing processes in HPVEE and direct execution to an Emergency Stoproutine. If anyone has a tried and true method I would appreciate thesharing of knowledge.

ThanksTim

---------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".------------------------------------------------------------------------------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".---------------------------------------------------------------------

I have been looking for the best way to implement an operator initiated "Emergency Stop" into a VEE program. I would like to find some type of operator initiated Priority 1 interrupt which will immediately interrupt any ongoing processes in HPVEE and direct execution to an Emergency Stop routine. If anyone has a tried and true method I would appreciate the sharing of knowledge.

ThanksTim

---------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".---------------------------------------------------------------------

This would be solved if they would consider my request of Thread priorities.Any thing that I've ever worked with that timeslices allows some sort ofprioritizing of threads. That way you could assign your abort thread thehighest priority and run it when the condition is met. At the very simplestlevel at least put a check box in the properties menu that says, "Stoptimeslicing". So you could check it on any userobject, or userfunction thatshould be executed to end without allowing other threads to run.

For now I use the formula control pin on a formula object fed with textfunction_name() as a highest prioritizer. You can indeed run a user functionand cease all other threads. I use it to run my interrupt processing so thatall other threads will halt immediately and wait til the Interrupt serviceroutine is finished. If you want to make it an abort function just fill itwith delete variables and delete libraries and STOP. Be careful though, useit just like you would an interrupt handler. The functions it executesshould be short and sweet. Never call a function that may be running whenthis executes, or VEE will lock up.

I have had this discussion with HP (now Agilent) since 1994when I started using VEE at version 2.0 (and still a baby).The response was to the effect that it is under consideration.

The short answer is no, there is no way to implement this on animmediate and fool-proof way.

As a work around, here is my not-quite fool-proof method:1. At the start of a program, set a global ABORT_FLAG to zero.2. Create a user object that has an OK button re-titled ABORT.This button is visible on the object's panel at all times. Parkthis panel in a corner of the screen and lock it into place.3. Inside this object, when the button is pressed, the globalABORT_FLAG is set to one and the object is exited.4. Have this object activate when the program starts. Also(!),a clone of this object must appear in every other object or functionthat you call when that object or function hides the original button.You need to keep an ABORT button visible and active at all times.Any object or function that includes the ABORT object must do anexplicit exit, since the ABORT button is still sitting and waiting.5. Now the sad part. You must test this global value at frequentintervals and locations within the program. You need to decide howlong you can wait after the operator clicks on the ABORT buttonbefore you test for it and initiate some action.6. The action you take should probably do a shutdown, data logging,and end in a STOP object.

It sure would be nice if Agilent could fix this and build an ABORTbutton into future versions of VEE.

My request to Agilent (same as to HP in the past): When the ABORTobject is activated, abandon any other activity in process and comehere immediately and do this string and do not stop for anything andand let me decide how to end the program when I have 40,000 wattsrunning through a million dollar UUT. (My last big project.)

Robert ReavisWarm Springs Computer WorksFremont, CA 94539

>Fellow Programmers:>>I have been looking for the best way to implement an operator initiated "Emergency Stop" into a VEE program. I would like to find some type of operator initiated Priority 1 interrupt which will immediately interrupt any

ongoing processes in HPVEE and direct execution to an Emergency Stoproutine. If anyone has a tried and true method I would appreciate the sharing of knowledge.>>Thanks>Tim>>--------------------------------------------------------------------->This is the "vrf" maillist, managed by Majordomo. To send messages to>this maillist, just email to "vrf@lvld.hp.com". Subscriptions and>unsubscriptions are done through the address "vrf-request@lvld.hp.com".>If you need details, just send a message containing the text "help">to "vrf-request@lvld.hp.com".>--------------------------------------------------------------------->

---------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".------------------------------------------------------------------------------------------------------------------------------------------This is the "vrf" maillist, managed by Majordomo. To send messages tothis maillist, just email to "vrf@lvld.hp.com". Subscriptions andunsubscriptions are done through the address "vrf-request@lvld.hp.com".If you need details, just send a message containing the text "help"to "vrf-request@lvld.hp.com".---------------------------------------------------------------------