How to work around dataflow order in front panel simulation?

I'm on the steep part of the Labview learning curve.  The attached vi is my attempt to simulate the user interface of the product I'm working on.  I'm posting because every workaround I dream up to deal with Labview's dataflow architecture results in more complexity.  I think I'm putting bandaids on top of bandaids!
If you run the vi you should see what I'm trying to accomplish.  The 5 Mode Select buttons send the machine into one of 5 available modes, implemented with a case structure.  Delay blocks within the cases simulate how the machine will react.  Random number generators simulate occurrence of fault conditions.  RS flip flops simulate momentary contact buttons.
Some rules:
- pushing a mode button should instantly switch the machine to the selected mode (my vi doesn't work that way).
- probe test mode should execute just once.  My vi simulates this one-time operation by latching the test result - kludge!
- if a fault occurs, it can only be cleared by "power cycling" (stopping and restarting the vi)
Questions:
1) is there an simpler way to simulate momentary contact buttons?
2) is there a simpler, better way to select the cases?  I'd like to automatically go from Test to Stop after a single execution of the test case.
3) what is an efficient way to initialize the mode indicators?  They 'remember' their last state through a power cycle.
Thanks for any and all insight!
Jeff
Jeff
Climbing the Labview learning curve!
Sanarus Medical
Pleasanton, CA

An alternative method for the UI is to use the radio buttons control. You can customize the standard one to use the square buttons, and I believe this would give you the equivalent effect that you're doing with the lights. See attached VI along with customized control. For the customized control I took a standard radio button control, opened it for editing, and replaced the circular booleans with square buttons. The radio button control is an enumeration, with the enumeration items being the labels of the individual controls (not the text inside the buttons). The control is set so that the labels on the individual square buttons is not visible.
Attachments:
Event Structure Example2.vi ‏45 KB
Control 1.ctl ‏6 KB

Similar Messages

  • I no longer have access to my icloud email and don't know the answers to my security questions. Does anyone know how to work around this to reset my icloud ID without losing my info? I haven't backed up in a year because of this.

    I no longer have access to my icloud email and don't know the answers to my security questions. Does anyone know how to work around this to reset my icloud ID without losing my info? I haven't backed up in a year because of this.

    You need to ask Apple to reset your security questions. To do this, click here and pick a method; if that page doesn't list one for your country or you're unable to call, fill out and submit this form.
    (123381)

  • Dev 6.0: Bug in ReportBuilder (!!!) How to work around ?

    Hi !
    I have a problem with ReportBuilder. After Arrange->Size Objects
    or Arrange->Allign Objects the child object doesn't belong to
    paren frame. There is no such thing in Developer 2000. Can
    anybody help me how to work around it ? It's practically
    impossible to create complicated report.
    Thanks in advance.
    null

    I don't know is it's possible to just search and replace as part of the checkout. We do it the other way around. Each user uses his own directory but for jdev all development is done in /mnt_dev/...
    So you map the users development directory to /mnt_dev. this way the path information stays constant and you don't need change the environment.
    Timo

  • How to work around audio sounding worse in Logic?

    Hi Folks
    We just bought Logic 8 for its MIDI, composing/scoring and loop/instrument resources. Have used Nuendo for 5 years, for audio for video, which has included some music creation.
    I did some quick recording/playback audio tests and here's how I hear the results:
    Voice recorded and played back in Nuendo sounds just like live. Voice recorded in Logic and played back in Logic sounds relatively flat and digital. Voice recorded in Nuendo and played back in Logic sounds relatively flat and digital. Voice recorded in Logic, exported as a file and played back in Nuendo sounds just like live voice and like it was recorded in Nuendo.
    So how do you work around the crummy sounding audio in Logic? Is the problem only the audio playback within Logic? Do you compose in Logic, export as files and then mix in another app? If so, which app? Or do you know the export will sound better outside of Logic? Or what other adaptation have people come to?
    Thanks for reading.

    No audio problems with Logic Pro 8 my side. In fact, it is sounding somehow better than Logic Pro 7 and latency is better. 44/48/96 all sounds great! Bus, FX, output, EXS24, etc. etc. -- wonderful stuff.
    Interface wise everything is at my finger tips and I didn't have to do anything to get my control surfaces to work (Mackie). Everything makes sense -- huge improvement over LP7. Really helps me explore being creative.
    So far Logic Pro 8 is an amazing step forward -- good work Apple.
    Thank you Apple.

  • Work Around for Order Extractor VDATU at the Line

    All -
    We have recently (July 2009) upgraded to BI 7.0 and have requirements for Request Del Date in BW reporting.  My understanding is there's a known bug with VDATU (request delivery date), also in previous versions.  This is found in R/3 com structure MCVBAK/VBAK; however there is also a VDATU (Date of update for statistics updating) in R/3 com structure MCVBAP/MCVBAPADD.  The actual object in the order extractor comes from MCVBAP which is the update for stat updating NOT the requested delivery date.
    We have added code to pull VDATU from MCVBAK through the extractor user exit; however this is only pulling the correct data part of the time.  It looks correct the first time through but if there are any changes to the order it resets it to an earlier date as if it never hits the code again.
    I'm thinking we need more code to pull the value at the line level but not sure if we should be pulling the vdatu from MCVBAP.  Is there a full proof work around in pulling requested delivery date correctly regardless of the number touches to the order?
    Thanks
    KLD

    Arun
    Thanks for your response.  Unfortunately it was decided back in 2000 we would not bring the order schedule line extractor in to BW.  No errors.
    Originally we had MCVBAP-VDATU (Date of update for statistics updating??) mapped in BW.  No one was really using the field so i added code to the user exit to populate the values coming from MCVBAK-VDATU.  I unmapped the object in the transfer rules from the date of update stat to a newly declared object in BW.  As i mentioned above the date in BW is not always matching the value in R/3.  It doesn't seem to be picking up the date if changes were made to the header or item level.  
    Brainstorming...
    Could you recommend another work around?  What is the name of the actual requested delivery date object on the 2lis_11_vascl extractor?  What are your thoughts on bringing that object into the line item extractor and adding logic in the user exit to capture the updates to the schedule line requested delivery date object?  It sounds messy.
    Currently we use the MCVBAP-VDATU in the extractor.  I was wondering if we could swap it for  MCVBAK-VDATU?
    Thanks again.
    KLD

  • How To Work Around Set Up Issue With Time Machine?

    When I attempt to set up an external drive for Time Machine I get this: You do not have appropriate access privileges to save file “.001b63b53d7a” in folder “Time Machine Backups”. I have searched for this file and cannot find it. I have deleted any and all Time Machine Backup files.

    I worked through the first four on the work around and this is what the terminal screen looks like:
    Last login: Sun Jan 11 20:59:31 on ttys000
    Macintosh:~ Brokenarrow$ cd /Volumes
    Macintosh:Volumes Brokenarrow$ ls -al
    total 12
    drwxrwxrwt@ 5 root admin 170 Jan 11 20:01 .
    drwxrwxr-t 40 root admin 1428 Dec 28 15:42 ..
    lrwxr-xr-x 1 root admin 1 Jan 10 06:29 Macintosh HD -> /
    drwxrwxr-x 15 Brokenarrow Brokenarrow 1020 Jan 11 19:56 Time Machine Backups
    drwx------ 1 Brokenarrow Brokenarrow 2048 Jan 11 20:10 mikesmail
    Macintosh:Volumes Brokenarrow$
    I tried to determine which was the back up volume name (tried Time Machine, Time Machine Backups) but no luck. Any suggestions? Thanks for your patience.

  • 200ms delay in windows tcp ip - how to work around?

    I have just found out the hard way that there is a inherent 200ms delay in sending TCP/IP messages on windows machines. Work arounds for this are:
    1. Play with the registry settings for the TCP Receive Window;
    2. Set the TCP_NODELAY via the wsock32.dll (or on socket establishment), or
    3. Write my own TCP library in C.
    My preferred option is #2 as the others defeat the purpose of LabVIEW, however the wsock32.dll functions require the SOCKET reference as an input - I am not sure what the connection ID returned by the LabVIEW TCP functions is - can someone help me??
    Cheers,
    Wayne

    Wayne,
    I am hoping that you have already heard back from Austraia support, but I will post here as well.
    LabVIEW has the Nagle algorithm on by default. We have written a VI that will turn it off. Please see KnowledageBase 2ZAH5EEG: Do LabVIEW TCP Functions Use the Nagle Algorithm?. This should resolve your issue.
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • How to work around the java runtime bug -The indentation is overridden

    Hello all,
    I generate xml from a servlet and stream to client as the following code. It works fine in my local machine (The xml is indented nicely) but when the war file deployed on a geronimo server 2.0.2. (It uses java 1.5.0_16). The xml streamed out without indentation
                   response.setContentType("application/xml");
                   response.setHeader("Content-disposition","attachment; filename="+fileName);
                   // set up a transformer
                   TransformerFactory transfac = TransformerFactory.newInstance();
                   Transformer trans = transfac.newTransformer();
                   trans.setOutputProperty(OutputKeys.METHOD, "xml");                
                   trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
                   trans.setOutputProperty(OutputKeys.STANDALONE, "yes");
                   trans.setOutputProperty(OutputKeys.VERSION, "1.0");
                   trans.setOutputProperty(OutputKeys.INDENT, "yes");
                   trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
                   // create string from xml tree
                   DOMSource source = new DOMSource(doc);
                   ServletOutputStream os = response.getOutputStream();
                   OutputStreamWriter w = new OutputStreamWriter(os, "UTF-8");
                   StreamResult result = new StreamResult();          
                   result.setWriter(w);
                   trans.transform(source, result);This is the bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6337981 (The indentation is overridden)
    I tried the work around suggested there by using OutputStreamWriter, it doesn't help.
    (I cannot change anything on the server. I have to accept whatever in the server)
    Please help
    Thank you
    Edited by: mycoffee on Jun 10, 2011 8:16 AM

    You have to set the indent level on the factory, see bug #6296446. This only affects 1.5; 1.6 allows you to set the indent level on the transformer, as you did (and for cross-version compatibility, setting it on both doesn't hurt).
    transfac.setAttribute("indent-number", Integer.valueOf(4));

  • How to create one Help button on front panel of VI??

    Hello,
    I want to create one button for example one help button on front panel of VI so by pressing that any new user can open folder in which I have store some help guide.
    Means I have make one folder on my desktop in that I have save all the data which should be useful for new user so if some new user want to run the programm and if he has no idea that how to run program then he can simply press help button and after pressing that helping folder will be open then reading then instruction user can start the program.
    Hope you will get my point.
    Thank you very much.
    Solved!
    Go to Solution.

    The Help that aCe posted will not work if you intend for the help to be displayed immediately. Since it is queued it will not be processed until the run is complete if it is currently running. This also means that if the Pause button is pressed the help will be delayed for quite some time. Also, you should avoid the use of local variables to control state information. The state machine should maintain all of your state information. The producer should only detect the events and pass the messages to the consumer. What you are encountering is a classic issue with the producer/consumer with the consumer acting as a state machine. Interrupting the flow of states with new events of a higher priority can be problematic. Simply placing items in the front of the queue may not always work correctly. There are some examples of implementations that use multiple queues which can create prioritized messages.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • How to programmatically load and show the front panel of a vi but NOT run it?

    Is there a way to load and show the front panel of a vi but NOT run it?  I am starting with the AsynchronousCallAndForget.vi from the example finder and inserted an invoke node with the FP Open method call prior to the Start Asynchronous Call node. The vi I am loading has the "Run when opened" unchecked and the menu bar IS visible so I can manually click the run arrow. Thanks!
    Solved!
    Go to Solution.

    Why are you using the Async call? If you simply open the VI reference, then call the FP.Open method this works fine. You can then call the VI run method with Wait Until Done set to false if you wish to run it Asynchronously, this is how we did it in ye olde days before we had this new fangled "Start Asynchronous Call" stuff. 
    Charles Chickering
    Architecture is art with rules.
    ...and the rules are more like guidelines

  • How to bring of subvis to the front panel of main vi?

    I am working on a simulaton project where a PID control toolkit is used to controla process .How can I access the controls of this PID controller when I execute the main VI ?

    I'm not sure I understand. The PID VIs I know run within your code on a loop basis. In every iteration of the loop they run using the values you input and output the proper values. So, to input values, you simply wire controls into them. Regardless of this, to open the front panel of a VI, you need to get a reference to that VI (using open VI reference) and wire that reference into a property node (both can be found in the Application Control palette).
    Select the Front Panel>>Open property, wire T into it and the FP will open. You can also set the VI to have its front panel open when called in File>>VI properties.
    Try to take over the world!

  • How can I close all open subVI front panels, without closing my top level VI front panel when all VIs are built into executables?

    I'm using the code shown in the sample VI discussed here: http://digital.ni.com/public.nsf/allkb/353A696A3F393D9B86256E8B007A2912
    to close all open VIs except my top level VI.  My top level VI is actually a separate executable and the sub-VIs are their own executables.  All reside under the same project.  It works very well if I'm running in LabView but will not work when I build them.  I added all the sub-VIs to the Always Include box in my top level VIs properties which did nothing.  I also tried adding them to the Startup VIs box.  This allowed me to close them all programmatically from the top level VI but it also open all the VIs at once (which was expected and not desired).  I think the problem is the executables are not able to see outside their own memory space so the top-level VI never finds any other open front panels to close.  Is this correct?  Is there another way to go about doing this? 
    Thanks!

    Where do I begin…..
    I’m using a “server” to control 4 “client” PCs.  My server opens references to 4 VIs on each client then executes them sequentially.  So on a normal day, the server will run everything itself and I will have no contact with the clients.  But on a several occasions, I’ve needed the ability to walk up to one of the clients and run just one of the 4 VIs. 
    We are updating from LabView 6.1 to 8.5 and we want to run executables rather than VIs for various reasons.  I have a new VI running on the client PCs who’s only function is to initialize the shared variables and open/close the VIs.  I initially thought of making the remaining 4 VIs sub-VIs but I will loose the ability to run them individually.  I think I would also have to rewrite the VI running on the server since the 4 references it originally opened do not exist.  I don’t think you can open a reference to a sub-VI on another PC.  Can you???
     As you can see, this is a huge mess.  I’m still pretty new with LabView so any help you can provide would be great. 

  • How to display PSA screen capture on Front Panel

    Any one know how to display screen capture of PSA series specturm analyzer on front panel. I can save the JPEG file in the C drive, but I can't display on the front pannel. Please see my labview code.
    Solved!
    Go to Solution.
    Attachments:
    Capture screen E4446A.vi ‏21 KB
    reading and writing binary number.vi ‏22 KB
    yumg.jpg ‏20 KB

    Do you actually need to save the front panel image?  Or do you want to save a graph of the signal (spectrum) that you acquired?  If the latter will do the trick, you can simply read the waveform over GPIB (or whichever means you control the analyzer) into an array that is plotted to a waveform graph in LabVIEW.  You then save the image of the waveform graph as an image.
    Since you have all the data, you can even save the data which can be viewed later (and not only by LabVIEW).

  • How to run my vi from a front panel control without using even structure in the vi

    Hello, I would like to run my vi from a front pannel control instead of the tool bar RUN botton. I am using LV6.1 without the even structure feature, so I can't do as proposed by a previous posting by setting the vi to run at open in a "do nothing state" then taking the front panel control event and switching the vi into another ("running") state. I wonder is there some other type of solutions to this problem. Your help is greatly appreciated.
    Bryan

    Hi Dennis, thank you for the reply. I tried with the attached vi. It can only run once (also not in the correct state I want), as the control i placed on the front pannel will stop the VI. I want to have the vi do nothing when it is opened and start counting when the start botton is pressed. Then i want it stop counting when the botton is pressed again...and so on... I must need a different structure to get it work, or did I miss something simple? Thanks again.
    Attachments:
    StartVI.vi ‏16 KB

  • How to create control dynamicall​y while front panel fly using Xcontrol or anyothere options but without scripting tools

    Hello friends
               I have one doubt How to create control dynamically while front panel fly using Xcontrol or anyothere options but without scripting tools.I need to create the controls while vi is running.For example I need to create one Boolean  while VI was Fly and i need one Examples it is easy to understand.
    Jayavel

    You must be using a different dictionary than the rest of us.
    You can't dynamically create controls while a VI is running.   (If I'm mistaken, then I'm sure someone else can jump in and say how it can be done.)
    Do you have a finite number of controls you could possibly need?  What you can do is create enough controls of the type you need ahead of time.  At the beginning of your program, you hide all of those controls.  As you need to create a control, you make it visible using property nodes.  There are numerous properties you can set at run time suce as ranges, colors, captions, ...  Of course you can't wire these controls to any other bits of code ahead of time since at that time, you haven't defined what you want each one to actually control.  But if you use an event structure to detect when the values of the controls have changed, you can then programmatically pass the data off to other parts of your code using queues.  The architecture can get complicate quite fast, so you may want to look through Ben's Action Engine Nugget and other related threads for how to create mechanisms for using these controls.  Perhaps storing queue reference numbers or assign user events to each one.

Maybe you are looking for

  • SAP R/3 4.7 INSTALLATION ON WIN-2000 ADVANCED SERVER.

    Hello! IS THERE ANYONE WHO CAN HELP ME????????? Dear, plz. Give me the steps for sap r/3 installation on win 2000 advanced server. I am not having password for sap community market place. So, iam not able to get the steps for installation I AM HAVING

  • Has anyone seen this error when trying to Save As...

    In Acrobat X, after revising hundreds of links, I go to Save As... If I choose PDF... I get this warning instead of saving... "This document could not be saved. There was a problem reading this document (14)."  I have not tried all of the Save As opt

  • Webi Error in BI Launchpad

    Hi Folks, I'm getting this extremely long error when trying to create a webi report in BI Launchpad. I get this error when choosing a BEx datasource. However, I can access the datasource thru SAP Logon/Query Designer/etc.  Our version of BI Launchpad

  • Can i get mail notifications when mail.app is closed?

    If mail.app is closed, emails wont pop up and notifiy me like in iOS, it seems to only fetch once mail.app is opened. I have put the settings to check for mail every 15 minutes. I have a hotmail and a yahoo account both enabled. Why is this ? Can som

  • Brand new mac mini won't start up

    Hi guys, I've read a few threads but nobody seemed to have encountered the problem I have with this new mac straight out of the box. It starts with the chime, white screen, wheel, apple pops up but then suddenly the screen turns blue, then grey n dis