f



Acqiuring data in "Idle" case and "Go" case

See SM Tester Bill 8-16-07 in the attached llb. 
 
On the block diagram, upper while loop, case "Idle" I have a Daq sub vi that displays the value on the front panel in a cluster on the front panel. (Works great) This allows the user to see the readings of the devices when they are mounting the pecimen under test. 
 
Next, I want to use the same Daq sub vi to display the data (to the same cluster on the fromt panel)  for the "Go" case. In addition, I want the data collected in the "Go" case to be saved to a file. The intent is to collect the data as the motor moves.
 
If I place my Daq sub vi in the "Go" case the data isn't collected because the "SM Move" vi then runs.  If I place the Daq sub vi in the "SM Move" vi, the cluster appears on the front panel of the "SM Move" vi, not the main panel.  
 
Can someone suggest some good programming practices? 
 
Thanks,
 
Bill


SmartMotor.llb:
http://forums.ni.com/attachments/ni/170/265911/1/SmartMotor.llb
0
x9561 (148466)
8/16/2007 7:10:07 PM
comp.lang.labview 35213 articles. 1 followers. vasusachin24 (1) is leader. Post Follow

1 Replies
646 Views

Similar Articles

[PageSpeed] 55

Hi Bill,
      I looked at your code (there are a few missing "SER"ial-port related VI, nothing serious) and have a question before suggesting a solution:  



I want the data collected in the "Go" case to be saved to a file. The intent is to collect the data as the motor moves.


Do  you mean you want multiple DAQs displayed/filed during SM Move?
If so, I'd be inclined to put a DAQ loop on your diagram that does nothing but call the DAQ VI periodically.  The "DAQ loop" would always write to the Status cluster, but optionally log to a file.  The "GO" case could enable/disable DAQ Logging by using a local-variable or occurrance to communicate with the DAQ loop.
Cheers!
 
0
x9561 (148466)
8/17/2007 5:40:06 AM
Reply:

Similar Artilces:

"re-entrant" "file I/O" "QSM_State Machines"
    I have trouble with writing (appending) to text file in a QSM that is in an "occurence mode" of operation whereby the queue waits for outside engueue to go ahead and do a task. The task is simply to write to a file a line of text.   Outside producers give the queue its go ahead and data is sent along etc...   WHat I am seeing in the logging functions are multiple errors (Error 1) Somehow Labview is not noticing that the reference is valid or it is invalidating the reference.   Q is Should I just let the QSM loop to keep it alive and would that work?   What is the rule concerning queue waiting for an event? Does the VI get flagged as idle and is that why the ref appears to be dropped?  THere is no reason I can think of for the ref to be dropped. It is opened in the init frame then kept in a shift register. and available at each iteration in the QSM.   The example works in a simple loop but not a loop that is waiting on an occurence.  Why?   The only work around I can manage is to use the path and open the reference when it is not valid which feels kind of  silly if you get my drift   Anyone seen this before?   Thank You       ...

VI "FindInstrumentDrivers.vi" was stopped at node "" at a call to "IDF_WsIdOpen.vi"
This what I get trying to download Instrument Drivers in LabVIEW 8.2. LabVIEW 8.6 doesn't succeed either. any ideas? Could just be an intermittent server problem. Does this happen all the time? At what point does it fail? When you first launch it, after you login? The network traffic indicates that it uses port 3339. Is this being blocked by your firewall? ...

How to change "ASRL2:... " to "COM1"?
Dear All,         I have used com port in my vi. And When I run it in edit mode, the selection of com displays "COM1,COM2,LTP1".        But when I build it, and run it in another PC, it displays "ASRL2:...".        How can I modify my vi to make it display COM1... in another PC?        And If I only want to display all serial port such as COM1,...

Programmatic "undo" for "FitControlToPane" ?
Howdy neighbors!, (using LV8.2)&nbsp; I'm trying to develop a GUI that lets the user toggle a Tab-control between "Full Pane" and a&nbsp;reduced size/position - sorta-like&nbsp;the "Full Screen" option on many Video apps.&nbsp; The effect of the&nbsp;invoke-node method "FitControlToPane" is perfect (- :smileyhappy: -), but how to undo that effect?&nbsp; After&nbsp;FitControlToPane,&nbsp;"Scale Object with Pane" is selected in the IDE, yet I can't find a "property" for it. :smileysad:&nbsp; FitControlToPane also changes the visibility of vertical and horizontal scroll-bars - are these [VI Properties] programmatically settable? &nbsp; Cheers! &nbsp; &nbsp; &nbsp; follow up... FitControlToPane also changes the visibility of vertical and horizontal scroll-bars - are these [VI Properties] programmatically settable? Feel kinda silly now, having advised someone else to search LabVIEW's HELP first! :smileytongue: &nbsp;- found Scrollbar Visibility can be set via (LV8.2)\ VI \Panel(reference)\Panes[0].HorizScrollbarVisibility. <img src="http://forums.ni.com/attachments/ni/170/239318/1/ScrollBar.JPG"> Still hunting for an&nbsp;elusive "Set Scaling Mode" method... (The&nbsp;Tab Control's&nbsp;"AutoGrow?" property doesn't seem to do anything!?)Message Edited by tbd on 04-03-2007 12:56 AM ScrollBar.JPG: ht...

Adding an &quot;IMAQ Image.ctl&quot; to the &quot;Display State.ctl&quot; of an XControl prevents LabVIEW from creating a probe of &quot;Display State.ctl&quot;
I am working on an extended IMAQ Display control using LabVIEWs XControl capabilities. &nbsp; I need a copy of the original image passed to add some overlays which must not affect the original image. To achieve this I am creating a backup image in the "Init.vi" and deleting it in the "Uninit.vi". I am storing the reference&nbsp;of this image&nbsp;in the "Display State.ctl" which is part of every XControl. &nbsp; As soon as I am adding an "IMAQ Image.ctl" to the Display State cluster, it is no longer possible to generate a probe of the Display State cluster for debugging purposses. I am always getting the message: "Failed to load or create probe." Deleting the "IMAQ Image.ctl" from the cluster makes the probe working again. &nbsp; Is it a bug or am I doing something wrong? &nbsp; I am working with LabVIEW 8.5 and Vision 8.5. &nbsp; Regards &nbsp; Ingo Bartsch Hello Mr. Bartsch, is it possible for you to post a small example to reproduce the behaviour? It would be helpful to get a description in which way you use the typedef files. I found a example/knowledge base where some informations were included to XControl and LV but not with Vision. <a href="http://digital.ni.com/public.nsf/allkb/1DC1ADD2A136DA298625712C00635758?OpenDocument" target="_blank">http://digital.ni.com/public.nsf/allkb/1DC1ADD2A136DA298625712C00635758?OpenDocument</a> Best wishes Ja...

'&&&&a'="&&&&a."
I need a data step that is equivalent to data _NULL_; file print; put '&&&&&&a=' "&&&&&&a"; run; Yet the number of & is a variable, I need to write a Macro, so far I got only half of the code('&&&&&&a.='), I don't know how to put the other half ("&&&&&&a.") into Macro Thanks. %Macro R(k); data _NULL_; file print; put %do i= 1 %to &k.; '&' %end; 'a=' ; run; %mend; %R(10); ==================================================...

&quot;VI was stopped at node &quot; &quot; at a call to &quot;In Port Old 6.x.vi&quot;&quot;
Hi. I am having problems with&nbsp;a VI&nbsp;that was initially developed for LABView 6i. I have upgraded to LABView 8.2 but whenever I run the program in LABView 8.2 I get the error message that my VI was stopped at node&nbsp; " " at a call to "In Port Old 6.x.vi". The VI generally aquires data from a measurement instrument via an RS232 COM port. I have searched the forum and the only reference to this problem mentioned that it can be solved by making "minor modifications" to the polymorphic In Port VI in LABView 8.2 but I have no idea how to do this. &nbsp; I would be most grateful if anyone can help me to do this. I am a newbie to LABView programming so I would require as much detail as possible. Thanks. &nbsp; tronix Hello, &nbsp; Have you followed the guidelines found on this document? &nbsp; <a href="http://digital.ni.com/public.nsf/allkb/39129B46944215B686257069006CEC4E?OpenDocument" target="_blank">http://digital.ni.com/public.nsf/allkb/39129B46944215B686257069006CEC4E?OpenDocument</a> &nbsp; Contains information on how to proceed and how you can change the VI's needed to new ones. &nbsp; Hopes this helps! Hello. Thanks for your response. I did see the link. Part of the document says: tronix wrote: Hi. I am having problems with&nbsp;a VI&nbsp;that was initially developed for LABView 6i. I have upgraded to LABView 8.2 but whenever I run the program in L...

how to connect &quot;IMAQ Get Buffer.vi&quot; output terminal of &quot;Image Out&quot; to the input terminal of &quot;Image&quot; of &quot;IMAQ ColorImageToArray.vi&quot;
Hi, Thanks a lot for helping me till this stage.I am again stuck up with some problem.Please help me this time also. Actually i am making changes in already existingblock diagram and also i am new to this labview programming.And also time is very crucial. So i want to know if there is any way to connect the output of Image out terminal of IMAQ Get Buffer.vi to the input terminal of Image of IMAQ ColorImageToArray.vi. In the actual block diagram the output of Image out terminal of IMAQ GetBuffer.vi is connected to the input terminal of Image of IMAQ ImageToArray.vi. I want to change this becos i want to take RGB image as input and seperate R, G, B components. Please explain in terms of bloack diagram. ...

Problems with "&amp;" changing to "&"
A lot of Firefox users I know, says they have problems with validation where the ampersand sign has to be written as &amp; to be valid. I don't have Firefox my self and don't wont to install it only because of this, so I hope some of you gurus can enlighten me with this :) In what circumstances can the "&amp;" in the source code be involuntary changed to "&" by a browser when or other software, when editing and uploading the file to the web server? E.g. writing a string like "sc_project=402887&amp;java=0&amp;security" is cha...

How to use &quot;GetLastInputInfo&quot; in &quot;user32.dll&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hi, &nbsp; I need to logout user if he doesn't make action during 5 minutes, "GetLastInputInfo" method in the "user32.dll" library, return the tick of the last action, so I can&nbsp;know the inactivity time of the login user. &nbsp; But I try to using "Call Dll function" item in Labview 8.1, and each time I run VI, Labview crash. &nbsp; Next, is information about the method : &nbsp; DLL###############################User32.dll &nbsp; Syntax###############################BOOL GetLastInputInfo(PLASTINPUTINFO plii); &nbsp; Parameters###############################plii : [out] Pointer to a LASTINPUTINFO structure that receives the time of the last input event. Private Type LASTINPUTINFO &nbsp;&nbsp;&nbsp; cbSize As Long &nbsp;&nbsp;&nbsp; dwTime As Long End Type Return Value###############################If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. &nbsp; Remarks###############################This function is useful for input idle detection. However, GetLastInputInfo does not provide system-wide user input information across all running sessions. Rather, GetLastInputInfo provides session-specific user input information for only the session that invoked the function. &nbsp; You can see also my VI source. &nbsp; GetLastInputInfo.vi: http://forums.ni.com/attachments/ni/170/31...

plug-in &quot;not installed&quot; in my LabVIEW project's &quot;Build Specifications&quot;
I moved my LabVIEW project from one computer to another, now when I click on any item under the project's "Build Specifications", I get an error reading "The plug-in for the selected item is not installed on your system." Does anybody know how to fix this? I have no idea what this "plug-in" is.Attached is a screenshot. plug-in error.PNG: http://forums.ni.com/attachments/ni/170/222664/1/plug-in error.PNG ...

The .NET assembly expected to be at &quot;&quot; was loaded from &quot;NULL&quot;
Hello, &nbsp; I use NET Components in a LabVIEW 8.2.1. VI and all work very fine. Now I convert it to LabVIEW 8.5 and I always get a warning, when open it. The Warning is : &nbsp;The .NET assembly expected to be at "" was loaded from "NULL". As example I add my CallbackVI in the Attachment. If somebody has an idea to remove this warning I would be thankful. &nbsp; Thanks in advance TE_NET_ToolStrip.ClickCallback.vi: http://forums.ni.com/attachments/ni/170/304243/1/TE_NET_ToolStrip.ClickCallback.vi Oh I was glad to early. The problem was only solved one time. When I changed something and saved again, I had again the troubles. &nbsp; I will recreate the VIs now. I already done, but it didn't helped. Now I read, that old one should be closed. ...

The use of the &quot;XY graph&quot; with the &quot;Read Traces&quot;
Hi, I'm trying to plot on "XY Graph"&nbsp; some informations wich are taken directly from the "Read Traces", and the problem is that the Start timestamp wich i enter to the "Read Traces" don't correspond to the beginning of the X axeof the graph. Can some one help me please. Question pour le forum NI.doc: http://forums.ni.com/attachments/ni/170/334716/1/Question pour le forum NI.doc Hi basile Have you found an issue about your problem? Could you attach you code(.vi) please? Thanks. Regards. Hi&nbsp;&nbsp; R_DUVALThank you for your help but I found the solution to my problem.Best Regards ...

Difference between &quot;FP Close&quot; and &quot;FP Hidden&quot;
What is the difference between "Front Panel Close" and "Front Panel Hidden" ? "FP Close" works similar to "FP Hidden" at programming mode but not at the executable ! Is this normal ? At the executable "FP Close" seems to terminate the current vi. One more question: "FP Close" prevents the code that follows from been executed. It is a "violent" way to stop your current vi, but not the whole application. Am i right ? To add one additional thing: I made some tests now on how the Close/Hide differs for SubVIs, and saw no difference. So regardless of hiding or closing the FP of a SubVI, the execution of the VI keeps going on until either the VI is stopped or the MainVI gets unloaded.Attached you can find my test: Sub.VI is the Vi called by closeFP.VI using VI-Server. You can toggle several functions of the Sub, but please note that Sub does not get unloaded until closeFP is stopped.Norbert closeFP.vi: http://forums.ni.com/attachments/ni/170/299668/1/closeFP.vi sub.vi: http://forums.ni.com/attachments/ni/170/299668/2/sub.vi ...

How to define &quot;byte stream type&quot; for &quot;open file&quot;?
Hello, I created some numbers (type "double") in Matlab and stored in a file. What value should I use to specify the "byte stream type" for "open file" in Labview? Should I put something like "DBL" or "I32". I don't know where to find the list of legal "types" in Labiew help. Thanks so much! Felicia Looks like 7.1:<img src="http://forums.ni.com/attachments/ni/170/347924/1/read%20file%207.png"> The Matlab "double" is 64 bits (8 bytes). It doesn't make much sense to use an integer datatype to read a floating point value, so you would use DBL in LabVIEW. The numeric data types table can be found <a href="http://zone.ni.com/reference/en-XX/help/lv/71/lvhelp/Numeric_Data_Types_Table/" target="_blank">here</a>. By the way, this assumes you saved the file as raw binary, as opposed to a .mat file, which is something different. Message Edited by smercurio_fc on 08-08-2008 11:21 AM read file 7.png: http://forums.ni.com/attachments/ni/170/347924/1/read file 7.png Thank both of you! I'm using Labview 6.1 base "Read File", just like the picture above. I've specified the byte stream type as DBL; however, the output is an array of string. What should I do with the string? I've tried to use "Decimal String To Number" but I got an output of "0". I've also tried the "Read From SGL File" in Labivew and ...

Unconfigured, Bad Status &quot;A&quot;, Bad Status &quot;B&quot;
Greeting All. I recently upgraded to LabVIEW 8.5.1, including LabVIEW-RT.My application acquires data from an AI-110 -- Compact FP module.Anyhow, to make a long story short, my program started to malfunction.[After lots of pain and suffering,] I learned that the call fo FP Read produces the error:Unconfigured, Bad Status "A", Bad Status "B"The error is frequent, and I cannot help to think that it is considerably diminishing the performance of all other tasks.Any Ideas? Can you post your code?&nbsp; RayR&nbsp; Certainly. Attached, you'll find a VI that resembles my worker-VI - which I use in my project.I run this VI inside of a state machine.&nbsp; It is initialized at the onset of execution.Thereafter, it is called upon [to read data] at 2Hz.The session is closed at the end.Thanks. ai110.vi: http://forums.ni.com/attachments/ni/170/328071/1/ai110.vi ...

Race Condition: &quot;Elapsed Time&quot; and &quot;Boolean Crossing&quot;
Hello. We are experiencing a pretty strange issue here and we are not sure how to solve it. The attached VI's are a simplified version of the code, but that exhibits the same behavior: The MAIN vi controls a boolean that is an input of the SUB vi. The SUB vi analyzes this boolean, and if its state is different than the last one read, a timer is reset. While the required time (2 sec) has NOT elapsed, the SUB vi outputs the last remembered value after the time has elapsed, the SUB vi finally outputs the new value. Now, the problem appears when depending on how we change the input boolean (for instance, if you change its state as soon as the "elapsed time pulse" is generated), the new value is NEVER sent to the SUB vi's output. In other words, depending on the moment the input is changed, the SUB vi doesn't get the change and never resets the timer. How can we solve this issue? Is there any special configuration that needs to be done in the used functions? Thank you very much for all help. Daniel ...

&quot;Key Down&quot; event use in one page of tab control prevents using &quot;Value Change&quot; events on another page, even though separate case structure blocks handle the two
The attached VI has a tabbed control with two pages. On one page, titled "Using Value Change Events",&nbsp;there is a control and an indicator, and the underlying code processes a Value Change event on that control by adding one to the number and displaying it on the indicator. On the other page, titled "Using Key Down Events", there is an indicator, and the underlying code processes a Key Down event by displaying the scancode on the indicator. Both these underlying code blocks are in different cases of a case structure chosen by the tab control. Some extra items are necessary to be able to stop those blocks from cycling if the tab is switched or the End VI button pressed. &nbsp; Or, at least, that's what I wanted. &nbsp; What actually happens agrees with the above, if the Increment/Decrement is used to change the value in the control on&nbsp;the Value Change page.&nbsp;But everything stops responding if I type in the control to change the number. &nbsp; I think the problem involves the Key Down event structure, which is in what should be an inactive case of the case structure when this problem occurs. If I put a Disable structure around that Key Down event structure, the Value Change page items all work fine. Of course, the Key Down page items don't do anything with the Disable in place. &nbsp; Why does having a Key Down event handler in an inactive case structure make a difference? How can I use both event types on dif...

How can I use an iteration value from a &quot;while&quot; (or &quot;for&quot;) loop as part of a filename?
I am using the "Write To Measurement File" function&nbsp; inside a while structure and would like to incorporate the iterative value from the while-loop as part of the file name. I'm not sure how to do it. Any suggestions? &nbsp; ...

How can I modify the &quot;Type definitions&quot; of &quot;Function Prototype&quot; if I want build a DLL in Labview 8.5.1.?
Hello,We have a library with several VIs (API - Interfaces to our Real Time Target). This VIs we provide to our customer to generate own VIs to control the Real Time Target.Now we want to provide the functionality of this VI-library as DLL to our customer. The problem is, that labview use self definite name of type definitions. Also if I use "strict Type definition".Example:void GetOutputValues(VARIANT *Scale_In, int32_t ModelNr, uint16_t SignalID[], TD1:smileymad: *errorIn, VARIANT *Scale_Out, TD2 *Data, TD1 *errorOut, int32_t len)It is possible to modify "TD1" and "TD2"? I want to give useful names.GreetingsSteffen Hi Steffen, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try&nbsp;editing the .h file as follows: CHANGE FROM: typedef struct {&nbsp;LVBoolean status;&nbsp;long code;&nbsp;LStrHandle source;&nbsp;} TD1; CHANGE TO: typedef struct {&nbsp;LVBoolean status;&nbsp;long code;&nbsp;LStrHandle source;&nbsp;} TD1; typedef struct {&nbsp;LVBoolean status;&nbsp;long code;&nbsp;LStrHandle source;&nbsp;} LVErrorCluster; then your GetOutputValues prototype becomes: void GetOutputValues(VARIANT *Scale_In, int32_t ModelNr, uint16_t SignalID[], LVErrorCluster *errorIn, VARIANT *Scale_Out, TD2 *Data, LVErrorCluster *errorOut, int32_t len) If your source-code doesn't refer to "TD1", then&nbsp;you probably won't need to keep the TD1 prototype! Cheers. ...

Can classes &quot;make&quot; controls and indicators &quot;appear&quot; on the front panel.
This is what I was hoping to do. I would define a parent class called signal that was really just an interface class. All of the child classes, analog in, analog out, digital in, etc. would have to override the VI?s in the signal class. So, the first thing that the program would do is to read a text file line by line, and on each line there would be a tag telling the program which type of signal to create. Next the newly created signal would be casted up to the parent class and put into an array. Once I have my array of signals, on the front panel I would have an array of text boxes. The text boxes would be displaying the names of the signals. In a search text box, the user can type some of the characters that are in the name of a signal, and the array would reduce the list until the user finds the signal they want. Here?s what I can?t figure out. I wanted the user to click a button next to the text box, that is listing the name of the signal they wanted, and the controls for that type of signal would appear to the right of the text box. How do I make the controls appear to the right of the text box? The controls are basically an indicator for reading an analog input or several controls that allow for ramping or stepping an analog output or setting a digital output or reading a digital input, etc. I?m hoping that the class can ?make? the controls and indicators ?appear? on the front panel. Any suggestions? &nbsp; Thank you! &nbsp; "Then write some helper meth...

"&prock", not "&block"
In all of the code below, "prock" by itself is always a proc, while the combination "&prock" is always a block: def my_proc &prock # accepts a block prock # returns a proc end prock = my_proc { p "Hello, world" } prock.call def doit &prock # param is redundant, but illustrative yield # yields to &prock, a block end doit &prock # same as 'doit { p "Hello, world" }' So, it seems to me that "prock" above is distinctly clearer than "...

How do I disable the Dialog Box Pop Up when using the &quot;Open/Create/Replace File&quot; VI?
I would simply like to write data in real-time to a file without the operator being prompted by a Dialog Box. Please see attachment for the code I used. &nbsp; Thank you! LabVIEW_Write To File Code.doc: http://forums.ni.com/attachments/ni/170/243833/1/LabVIEW_Write To File Code.doc Try putting the entire path including the file name (and not just the folder) as a path constant (and not use the string to path function) to the file path input. &nbsp; <img src="http://forums.ni.com/attachments/ni/170/243916/1/Open_Create_Replace.PNG"> Message Edited by Dennis Knutson on 04-25-2007 01:37 PM Open_Create_Replace.PNG: http://forums.ni.com/attachments/ni/170/243916/1/Open_Create_Replace.PNG Dennis Knutson wrote: Try putting the entire path including the file name (and not just the folder) as a path constant (and not use the string to path function) to the file path input. Dennis, Good lesson for me ! :smileyhappy: I m also not familiar with this thing of putting the entire path of a file, even if I wire a False to the Advisory Dialog inout. I thought that it is the maximum feasibility in LV. You opened my eyes &amp; brain. :smileywink: ...

what the difference between &quot;Wait Until Next ms Multiple&quot; and &quot;wait&quot; vi's ?
Hi all. &nbsp; 1) What the difference between "Wait Until Next ms Multiple" and&nbsp; "wait"&nbsp;&nbsp; vi's ? 2) If i put thos vi's inside state machine, for example, inside state number 3, when the program reach to this state, the delay will ganerate&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; before or after the execution of other component in this state&nbsp; ? &nbsp; &nbsp; thanks :) Both will start in parallel to all the other nodes in the same frame but they still have different finctionality.&nbsp;You cannot guarantee&nbsp;what starts first.&nbsp;The main differences show up if you have other slow tasks in other frames of the same state or the slow task starts before the wait. &nbsp; Wait next ms multiple: This is only useful in a loop, because it tries to keep the same time frequency, irrespective of how long other nodes take. The first call might be way off. &nbsp; Analogy: Do something always 10 minutes after the hour. (If you start working on the hour, the first wait will only take 10 minutes, but then all further tasks will be spaced exactly one hour.) &nbsp; Wait(ms) Wait a give amount of time before continuing. &nbsp; Analogy: do something, take a 1 hour break, do something, take another 1 hour break, etc. The repetition rate will somewhat depend on the lenght it takes to do the other tasks. &nbsp; Here's a nice write-up by NI: &nbsp; <a href="htt...

Web resources about - Acqiuring data in &quot;Idle&quot; case and &quot;Go&quot; case - comp.lang.labview

Resources last updated: 3/19/2016 2:09:37 PM