Reading Time Stamp from Spreadsheet File
--2236062.1075961301373.JavaMail.quiq.tekken Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello, I am having trouble in finding a way to read the timestamp (which is in string format) from a data file and converting this to a number in order to create a plot. I have included a sample file for this. I wish to plot Drag vd Time, however, when I retrieve the timestamp data, I only get the first number from the timestamp. I dont have problems retrieving the drag data. Can anyone suggest a method in which to retrieve the timestamp data in order to plot against Drag. (Doesnt matter if its relative or absolute time) thanks in advance --2236062.1075961301373.JavaMail.quiq.tekken Content-Type: text/plain; name=DragvTime_test.txt Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=DragvTime_test.txt Content-Description: Sample File Year2004 RFT Number test Customer Name FORD Customer Model Part DescriptionFront Caliper Part Number and Issue ddd Sample Prefix tqf Test Requirement Time Stamp Measured Drag (Nm) Experienced Pressure (MPa) Runout (mm) Phase 08:24:21.716, 31/01/20042.691797- 23.135157 1 08:24:21.814, 31/01/20042.122374- 23.135157 1 08:24:21.912, 31/01/20043.420955- 23.135157 1 08:24:22.010, 31/01/20042.426949- 23.135157 1 08:24:22.108, 31/01/20042.228313- 23.135157 1 08:24:22.206, 31/01/20043.473925- 23.135157 1 08:24:22.304, 31/01/20041.526467- 23.501373 1 08:24:22.402, 31/01/20042.943402- 23.501373 1 08:24:22.500, 31/01/20043.115553- 23.135157 1 08:24:22.598, 31/01/20041.526467- 23.501373 1 08:24:22.696, 31/01/20042.943402- 23.135157 1 08:24:22.794, 31/01/20043.367158- 23.135157 1 08:24:22.892, 31/01/20042.109132- 23.135157 1 08:24:22.990, 31/01/20042.069404- 23.135157 1 --2236062.1075961301373.JavaMail.quiq.tekken--
Position adjustment of cursor name in XY-graph
I put tens of cursors on X-Y graph using property node. Also. I used the names of the cursors as some indicators. Is there a way to decide the position of the "cursor name"? e.g., like using the property node. Presently, I adjust the position menually one by one. I am not talking about the position of cursor, but about the position of the cursor name(possibly the position seem to be related to the cursor position). The second problem occurs when I copy the X-Y graph to another vi. In that case, the position of "cursor name" changes to a wierd position, such as out of the graph. Please let me know to control the position of the cursor name.
Re: different frames
Gabriel, You need to provide a bit more information. What do you mean by "frame" - front panel? - block diagram? -image acquisition? Tim
Re: Item names in a strictly typed ring control do not update.
Thanks for your response. However, I found the following sentence in the link http://zone.ni.com/devzone/conceptd.nsf/webmain/A9FBCAA7A3D7922186256A3000652B56?opendocument#8";>LabVIEW custom controls ... "A strict type definition forces almost everything about the control or indicator to be identical, including cosmetic properties such as size, color, and appearance. Strict type definitions also define other values, such as range checking on numeric controls and the item names in ring controls." It turns out that the item names get updated if the ring control has sequential values associated with the items, but does not get updated if the values associated with the items are not sequential. I chose text rings over enums because I wanted the value associated with the items to be non-sequential for this particular control. Once again, thanks for your response. Regards, Sudhir Gopinath
Re: Filtering out and sending data to the correct graph depending on data identifier
So it sounds like you want to send back a sequence of two-byte binary data samples. Thus, you'll use the Type Cast function. (When I talked about ASCII, I meant that encoded the value "142" as three ASCII characters, '1', '4' and '2'. It sounds like you are not going to encode your data this way.) Back to the continuous vs. query mode... It's kind of weird to be combining both of those. Usually devices either constantly spew data, or they are queryable. Maybe they can do either, but they are typically put into one mode or the other as part of their configuration. But let's run with this. Here's what I'm envisioning, and you can tell me if I'm right. When no queries are going on, the satellite is constantly spewing out... !Temp1[data]End !Temp2[data]End !Temp3[data]End and starting over... !Temp1[data]End etc. If the satellite receives a query, it reports the results back at the next opportunity. Something like this... !Temp1[data]End !Temp2[da Computer queries for ?Temp1 while receiving !Temp2 ta]End !Temp1[data]End !Temp3[data]End etc. If that's the case, then I think you'll want two parallel loops. One is responsible for waiting for a reason to query for a specific data value. It doesn't do anything until that data is needed. The other loop is constantly reading, and has no idea whether data was queried, or just received as part of the normal spewage. It is responsible for taking whatever is read, parsing it and updating some data structure (e.g., a set of globals) that contain the latest data values. The rest of your program that needs to display or log or analyze the data just looks at the globals. Is any of this making sense? Am I off track? Brian PS: I think any posting that contains the noun "spewage" is worthy of a 4-star rating, don't you? ;-)
Re: intaller remove other labview applications
Use different compile scripts for different versions of your program--what needs to be different in the compile script is the registry key the installer is looking for. When an install package finds that the key is already registered it will try and do the uninstall, which is really handy if you want it to do that, and not handy at all if you don't :)
RE: [W] VI Server vs. System Exec.
As I understand it a version of LabVIEW can always(?) open a VI written with an earlier LV version but the converse is not true. If you have access to LV7 you can try 'Save with Options' to save those LV7 VIs as LV6.1 VIs. Sometimes this causes errors though... Probably the better option is to mass compile (Tools --> Advanced --> Mass Compile) your LV6.1 VIs to LV7. Make sure you keep a backup of your 6.1 code in a safe place, as a recent poster to this list recently learned. If you don't have access to LV7 you might be out of luck, unless someone on the list offers to 'downgrade' your VIs. I don't have LV7 yet, so I'm not volunteering. :) Johann Junginger Research Scientist Xerox Research Centre of Canada [EMAIL PROTECTED] Ph: (905) 823-7091 x306 Fax: (905) 822-7022 -Original Message- From: Niesen, Melissa [EPM/MTN] [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 04, 2004 18:03 To: '[EMAIL PROTECTED]' Subject: [W] VI Server vs. System Exec. I have several built VIs I want my users to have easy access to. So, I made a program launcher in LabVIEW that they can use to browse through the available programs and start them, among other things. I used VI Server in this launcher to run the built applications. Now, I've run into a problem. The launcher is built in LV 6.1 and some of the programs are in 7.0, which gives me unhelpful errors. Could it be that VI Server in the 6.1 launcher cannot start programs written in 7.0? If so, would there be any drawbacks if I just went ahead and started the programs using the System Exec? Or is there a way to get around the problem and still use VI Server? All of the computers are running Windows, but I like to keep things as platform-neutral as possible. Thanks for any tips, Melissa Niesen Fisher Controls Division of Emerson Process Management
Re: when to consider giving different port number to every new client that is connecting to the server?
When the server receives requests from the clients, does it really reply in parallell, or does it handle the requests sequencially? If the latter, improve the performance by dynamically creating connection handlers that process requests from each client individually. Compression is another thing that may improve the performance.
Re: tcp read / tcp write ?
No.
Re: Filtering out and sending data to the correct graph depending on data identifier
Hi Brian and thanks for your feedback. A few comments: I'm "tagging" the data, because I want to be able to sample and send in a loop from the satellite side, without querying for the data. But I also want to be able to query specifically for data manually. I don't know what I will end up doing in the final application though, so right now I'll go with ASCII (easyer to check for errors and read for humans) and the identifiers, I might remove them later. Also, I'm not sure if using just a /n character (8 bit ASCII code) is good enough, because the data comming is from an ADC circuit (or actually 10) and they can have any value from 0 to 1024 and the data might accidentally contain a sequence that in ASCI corresponds to the /n character. Thats why I will use at least 2 characters for the end of data sign. :)
Re: i am trying to communicate with a robotic arm which is...
You said that the robot arm came with a driver. Typically this is DLL. I'm assuming that this works but you want to integrate control of the arm with a LabVIEW program. Hopefully the vendor can provide and API (Application Program Interface) that describes the functions in the DLL. The DLL would do all of the communication to the device through the parallel port. If you want to use LabVIEW functions (i.e. outport or VISA Write) to talk to the serial port, then I think you'll have to uninstall the driver and duplicate it's functions.
Why the control passes the previous value to my function?
I want to use a control to subscribe to value of a modbus register through datasocket and pass the present register value to other functions. I found that after subscribing, the control shows the present register's value but pass the previous value to others instead of current value. When I put breakpoint into the program, the operation is correct. But when I remove the breakpoint away, that strange thing happens again. It looks as if there is some delay. How can I solve it? Thank you for your help. Steven
Re: Is there a way to create a multi-state button or have a pict ring behave like boolean?
I just had a thought (don't everyone cringe at once)... You could change the text on the button programmatically using property nodes and then when the button was pressed, read the button text to see which "state" it was in. A little clunky but it should work. There are other, better ways of doing this, but I think that this is a "workable" solution. By building a typedef list of texts for the button, you could change it quite easily. I may try this just to see how it works. Rob
Re: Invoke Node Method: Close FP (LV7)
"I've just been playing it safe and closing all references" Good go! Someone will benefit by this appraoch. It may even be you. Thanks for the kind words. Ben http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=261&HRedirected=True&HUserId=101_3529&RFORMNUMBER=6";>Ben Rayner http://volt.ni.com/niwc/common.jsp?page=products_certification_cld&node=10638";> Certified LabVIEW Developer www.DSAutomation.com
Re: [W] Image acquisition
Hi Jean-Pierre; I had to look for this particular camera (photometrics 300). I did not spend much time but it seems to me that the camera is made by Roperscientific and they also provide the frame grabber (PCI bus). By the sound of it, I guess the camera is RS170 and most probably has some special features which makes is so special! (I guess it communicates with the card). Now, I don't know what exactly you want to do? I guessed you want to write a particular program in LV. If you want to have the functionality of PVCAM (I think it is Roper's software) then you will need more information regarding their DDL's and most probably their SDK. If you can get hold of the pointer to the pixel values in the memory, (assuming you would know the image format) then the rest of the job is a piece of cake! But getting hold of "that" pointer may not be an easy job. What would I do? I would buy a frame grabber from NI and a compatible camera according to my application and then IMAQ 7 and viola! If you need further help please contact me Regards + Dr. Hamid R. Yazdi Federal Mogul Manufacturing technology 3935 Research park drive Ann Arbor, MI 48108 Tel: 734 222 4108
RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
The benefits are that you can see the signal change during the 120 second acquisition time. You could see a 200 hz signal oscillate back and forth for example. This is the approach taken by the JTFA (joint time frequency analysis) toolkit. They use gabor spectrograms that take gaussian windows of the data. There is a tradeoff between response time (ie time to put that frequency on the screen) and accuaracy (ie long data sets). The overlapping FFT with exponential averaging is a tradeoff but it all depends on the requirements of the job. If you want real time display then you can't wait for that long 120 second acquisition time. Also if you want information about frequency changes within that 120 seconds. -Scott At 13:56 -0500 02/04/2004, Bruce Ammons wrote: >I don't see any benefit to averaging parts of the signal. If you >average within a single revolution, you will lose your phase >information. There is no benefit of averaging sections of repeated >signals either. Just do a large FFT for each revolution and average >them. > >FYI, you could average the signals themselves or the complex FFTs for >repeated signals. I don't recommend averaging magnitude and phase in >this case. > >Bruce > >-- >Bruce Ammons >Ammons Engineering >www.ammonsengineering.com >(810) 687-4288 Phone >(810) 687-6202 Fax > > > >-Original Message- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On >Behalf Of Gerd Rech >Sent: Wednesday, February 04, 2004 10:26 AM >To: Bruce Ammons >Cc: Info LabVIEW >Subject: AW: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" > > >I have a phase reference pulse once per rev which starts the >acquisition. So I should get consistent phase readings for repeated >measurements. However, I was wondering if it would make sense to average >parts of the signal(using overlapping segments) for speeding up the >averaging process. The idea is to make as much use as possible out of >the data that I get into the PC. > >Gerd > > >-Ursprungliche Nachricht- >Von: Bruce Ammons [mailto:[EMAIL PROTECTED] >Gesendet: Mittwoch, 4. Februar 2004 15:27 >An: 'Gerd Rech'; [EMAIL PROTECTED] >Betreff: RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" > > >The only way to get meaningful phase is to start your acquisition at the >same phase for every segment. An example of this would be an encoder >pulse. If each acquisition starts at a once per rev pulse from the >encoder, they will all have the same phase components. Another >possibility is doing order tracking, where there is a fixed number of >samples per revolution. If you shift your window by the number of >samples per revolution, you will get the same phase again. > >Any time you have a steady stream of data with no reference point, the >phase data is essentially useless. If it is a repeating signal you >should be able to identify a reference point. I suppose if you don't >have a hardware signal, you could use convolution to identify repeating >cycles of data. If phase is important, you should have a reference >signal. > >Bruce > >-- >Bruce Ammons >Ammons Engineering >www.ammonsengineering.com >(810) 687-4288 Phone >(810) 687-6202 Fax > > > >-Original Message- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On >Behalf Of Gerd Rech >Sent: Wednesday, February 04, 2004 3:36 AM >To: [EMAIL PROTECTED] >Subject: Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" > > >Hi folks, > >I know the "overlapping average" technology from signal analysers. In >those cases I used them up to now, phase was not relevant. Now I have an >idea about a different use where phase would be important. Scott's >comment that phase would be meaningless if overlapping averaging is used >is making me thinking. > >What about this: >1. Cut the long waveform stream into a number of (overlapping) pieces. >2. Use the FFT vi for each piece, which will produce amplitudes and >phases for each frequency bin. 3. Average apmlitude and phase for each >frequency bin separately. > >Would this create meaningful phase? >I would guess yes, as all pieces were acquired in a consistant stream of >data originally. > >Seems that my mathematical understanding does not reach far enough to >understand this completely. > >Cheers > >Gerd
Re: Invoke Node Method: Close FP (LV7)
Very Slick. Thanks for the indepth reply. It certainly has helped. I've just been playing it safe and closing all references. It was indeed the creation of a "bigger badder VI" in which I came to wonder about this. Thanks for clearifying. Steve
Re: Item names in a strictly typed ring control do not update.
Sudhir, This is an expected behavior with strictly typedef ring constants. Instead of menu rings, you will want to use enums. A Strict typedef keeps its cosmetic information on the front panel but not on the Block Diagram. The type of the ring does not depend upon its strings - like it does with enums. See a similar post on this topic bellow: http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500080016B2&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0";>Strict Type Def with Menu Ring does not automatically update linked constants Zvezdana S. National Instruments
Re: what is the difference between wiring a datasocket reference...
John, Thank you for contacting National Instruments. To answer your first question, whether it is better to wire a URL or reference into a DataSocket Read/Write depends on your application. When you are going to be writing or reading multiple times to the same connection (such as using a loop), it is more efficient to first open a DataSocket connection before the loop, pass a reference to your write/read functions within the loop, and then close the connection after the loop. Using only a DataSocket Read/Write will cause your connection to open and close each time the loop repeats. This can significantly increase the load on your processor and system resources. LabVIEW will allow you to supply a URL directly to a DataSocket Read/Write, which is useful if you are only going to be making one read or write. You can open multiple DataSocket connections simultaneously using DataSocket Open. It is recommended, however, that you close every connection once you have finished performing the necessary tasks for that connection. I believe you can perform both read and write functions to the same connection before closing it if you wire a =93ReadWrite=94 constant to the =93mode=94 connector of the DataSocket Open VI. I hope this helps! Matthew C Applications Engineer National Instruments
Re: Channel configuration with HP34970A
The driver comes with a complete set of functions and several high level examples that incorporate them. There's one called HP34970A Advanced Scan Example that will take voltage and/or resistance measurments from a single scan list. It is easily modified to take other measurments. There's another one called HP34970A EZ Scan Example. To use either one as is, open it, specify the address of the instrument, enter a channel list, pick the configuration, and then run it.
Re: Q: Compare LabView for Linux & Windows
Gerald N. wrote: > Hello, > > I've a question regarding LabView. > > We are looking for a new plattform for developing test systems and > think LabView fits our requirements. Now LabView is available for > Linux as well as for Windows. I believe LabView has been available for Linux for some time now. But the development tree was far behind the Windows version. Apparently both platforms are now "on the same page". I'm still awaiting my copy of LabView for Linux, so I cannot confirm this. > Are there any advantages of LabView for Linux compared with LabView > for Windows? One possible disadvantage is that NI does not provide or support hardware drivers for the Linux operating system. To find those, have a look at http://www.comedi.org/ Hopefully in a few months I'll also have a better idea of what developing LabView on the Linux platform is like. Patrick Allen
synchronize communication on tcp/ip
want to achieve synchronous Bi directional Communication in a client server setup using tcp ip . The client sends some data to the server and immediately start waiting for an acknowledgement from the server. now, how do i ensure that the client reads the acknowledge ment and not the data that it wrote to the server( i am using character 'A' for acknowledgement and the server data being sent back to client can easily have it). I am not sure if I am very clear in asking the question . Please revert if you think you understood the query or may be with little more elaboration you would be able to.
RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
I don't see any benefit to averaging parts of the signal. If you average within a single revolution, you will lose your phase information. There is no benefit of averaging sections of repeated signals either. Just do a large FFT for each revolution and average them. FYI, you could average the signals themselves or the complex FFTs for repeated signals. I don't recommend averaging magnitude and phase in this case. Bruce -- Bruce Ammons Ammons Engineering www.ammonsengineering.com (810) 687-4288 Phone (810) 687-6202 Fax -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gerd Rech Sent: Wednesday, February 04, 2004 10:26 AM To: Bruce Ammons Cc: Info LabVIEW Subject: AW: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" I have a phase reference pulse once per rev which starts the acquisition. So I should get consistent phase readings for repeated measurements. However, I was wondering if it would make sense to average parts of the signal(using overlapping segments) for speeding up the averaging process. The idea is to make as much use as possible out of the data that I get into the PC. Gerd -Ursprungliche Nachricht- Von: Bruce Ammons [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 4. Februar 2004 15:27 An: 'Gerd Rech'; [EMAIL PROTECTED] Betreff: RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" The only way to get meaningful phase is to start your acquisition at the same phase for every segment. An example of this would be an encoder pulse. If each acquisition starts at a once per rev pulse from the encoder, they will all have the same phase components. Another possibility is doing order tracking, where there is a fixed number of samples per revolution. If you shift your window by the number of samples per revolution, you will get the same phase again. Any time you have a steady stream of data with no reference point, the phase data is essentially useless. If it is a repeating signal you should be able to identify a reference point. I suppose if you don't have a hardware signal, you could use convolution to identify repeating cycles of data. If phase is important, you should have a reference signal. Bruce -- Bruce Ammons Ammons Engineering www.ammonsengineering.com (810) 687-4288 Phone (810) 687-6202 Fax -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gerd Rech Sent: Wednesday, February 04, 2004 3:36 AM To: [EMAIL PROTECTED] Subject: Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" Hi folks, I know the "overlapping average" technology from signal analysers. In those cases I used them up to now, phase was not relevant. Now I have an idea about a different use where phase would be important. Scott's comment that phase would be meaningless if overlapping averaging is used is making me thinking. What about this: 1. Cut the long waveform stream into a number of (overlapping) pieces. 2. Use the FFT vi for each piece, which will produce amplitudes and phases for each frequency bin. 3. Average apmlitude and phase for each frequency bin separately. Would this create meaningful phase? I would guess yes, as all pieces were acquired in a consistant stream of data originally. Seems that my mathematical understanding does not reach far enough to understand this completely. Cheers Gerd
RE: Teststand help
In LabVIEW, there are TestStand Native VI's for: Get Boolean, Set Boolean, Get String Set String Get Number, Set Number Get Variant, Set Variant etc. These are all available in the scalar, or array variety, (and I've actually created multi-dimensional array VI's also.) and these are available from the TestStand Pallet on the LV Block Diagram and Front Panel If these TestStand VI's are not available, you may need to either reinstall TS, or find the TS .llb on NI web site and download and copy it to the vi.lib directory under LV. In TS, you need to wire a sequence reference in to the LV connector from TS. You must enable the Sequence reference check box in TS's Specify module dialog. Then use the Seq Ref and wire to the TS VI's and pass data back and forth at will. The variable can be accessed via name stored on the Locals tab of any sequence. These are referenced by "Locals.variablename" in LV. actually, the examples are quite good for this detail... Rick Mahoney Equipment Test Design Lockheed Martin Corp Syracuse, New York 13221 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Scott Serlin Sent: Wednesday, February 04, 2004 12:03 PM To: [EMAIL PROTECTED] Subject: Teststand help Can anyone help me pass variables from my VI into teststand to run the pass/fail test? I'm able to get my VI to run but cannot get the info out of my VI and into teststand after the VI runs. How do I do this? How do I also pass that info into the pass/fail test? Any other teststand tips would be appreciate. Thanks. Scott
Re: Stopping Labview when it has to search for a file...?
if labview is continuosly looking for the same file. Then you need to move that file into the the same directory as your VI by using the library manager. This will stop labview for searching for the same VI everytime. Also when the VI is loading there is an option to stop the loading of your VI and search for the files yourself By hitting the stop button.
Re: How do I create a code interface node on OS X?
Hi, Yes, you can create a CIN on Mac OS X. You can find more information on it in the http://digital.ni.com/manuals.nsf/websearch/8D930295FFBF9F7686256D2C00624728?OpenDocument&node=132100_US";>Using External Code in LabVIEW manual pages 3-10 to 3-12. I hope this helps. Feroz National Instruments
RE: [W] Image acquisition
I don't really see a need for anything else for your application. If you are using a non-NI driver to acquire from the image, you should be getting a 2D array from the camera. If not, you should be able to easily convert it to a 2D array. The summing operations are standard array manipulation. You can always display the results using an intensity plot or picture control. If you want higher speed, you could use the new image control in LV 7. You might have to install IMAQ to get that control. Bruce -- Bruce Ammons Ammons Engineering www.ammonsengineering.com (810) 687-4288 Phone (810) 687-6202 Fax -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jean-Pierre Drolet Sent: Wednesday, February 04, 2004 10:18 AM To: Info-LabVIEW Subject: [W] Image acquisition Hello all. I'm not familiar with image acquisition and I have to communicate with a CCD camera, Photometrics CE 300, using its driver PVCAM. The camera acquires a spectrum and the only processing required is to sum horizontal or vertical lines into bins. I have LabVIEW 7 Pro and I would like to know if someone here can tell me what else is required to get this job done. Thanks Jean-Pierre Drolet Avensys.
Re: General LS Linear Fit - Number of Equations
What I am seeing is that all of the algorithms (SVD, Givens, Givens2, etc.) work up to 90 coefficients (although SVD sometimes reports error -20003 in my application), but fail starting at 91 coefficients. I need something more like 600+ coefficients. Has anyone run across an alternative LS Fit VI? I found a customer-sumitted alternative called "General_LS_Linear_Fit+.vi", but it still uses the same NI DLL function. I wouldn't mind writing one myself if someone could point me to a write-up of any of the algorithms. Thanks, Travis
Re: Why do graph cursors sometimes NOT appear in the location that I assign them to?
Yes, I have tride both many times. I actually get the same result on a machine with an evaluation license installed! You have to look very closely to see that the cursor is not in the correct location. Run the program and then zoom in. It will be close, but not exact. Keep that zoom and then run again. The cursor will move a second time! The most obvious one is the left most blue cursor. After the first execution it appears at about 2.95MHz (after executing under the default zoom). Do you see it now?
Re: do all the sub VIs in a reentrant VI need to be reentrant?
Thanks Ed! I wasnt sure I thought a VI that was made reentrant actually would with every instance will have its own copies of all the subVIs in it which it would not share with anything else. This mean for my main VI to be renentraant I have to look at each subVI(basically most of them are from database connectivity add-on toolkit)and see how they are suppose to behave and set them accordingly. Have you tested out anything like this yourself? -Sumit
Re: Problem with converting levenberg marquardt fitting program from LV6.1 to LV7
Ruud, Thank you for contacting National Instruments. The problem does in fact have to do with the very small values of Y. As you mentioned, the solution is to scale the Y values, perhaps by multiplying them by 10^+8. The following link will take you to a knowledge base article that will give you more information: http://digital.ni.com/public.nsf/websearch/6F23B120B7A2C585862566F700130A0A?OpenDocument Hope this helps! Matthew C Applications Engineer National Instruments
Stopping Labview when it has to search for a file...?
When loading opening a new test sequence in labview, the software may go off and search for a dll that may be located in another unexpected directory. Usually, the software will find the file before you can determine which file it was searching for and what path it expected to find the it and where it eventually found it. Is there a way to stop the software load when labview has to search for a file so that the user can easily determine what files may be in an incorrect directory...?
Getting Library Function Call errors!
Just recently, we've been trying to upgrade our testers to an Analogic Digitizer which uses Dll files for programming. So we've modified our test code with the appropriate library function calls and have tried to run the software via our labview test executive. It seems that when we run the new software via the test executive, we see errors induced in the operation of our Asset 3.1.1 Boundary Scan Library function calls...? These older Asset LFC's have not been modified with the latest upgrades and are currently running with the older version of production test software without issues. I'm thinking we've run into a memory constraint of some type that my be due to the 5.1.1 version of LabView software. Could you tell me if there are any memory constraints with this version of Labview...? If there's a limitation to the number of vi's and/or library function calls that can be contained within a single library...? We are trying to run the software via a library without diagrams... Could you also give me the name and number of your nearest technical representative so I may be able to hash this out with him/her over the phone if need be...?
Re: do all the sub VIs in a reentrant VI need to be reentrant?
It depends on how you want your sub-vis to behave. Any sub-vi will follow what is set in its execution properties. So if it=92s set for reentrant operation, it will run that way. If it=92s not set for reentrant operation, the same instance of the VI will be used regardless of what is calling it. So reentrant VI=92s can call the same instance of sub-vis and they will share data within the non reentrant sub-vis. So you=92ll need to decide how you want the sub-vis to work and set them appropriately. Ed
Teststand help
Can anyone help me pass variables from my VI into teststand to run the pass/fail test? I'm able to get my VI to run but cannot get the info out of my VI and into teststand after the VI runs. How do I do this? How do I also pass that info into the pass/fail test? Any other teststand tips would be appreciate. Thanks. Scott
Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
At 09:36 +0100 02/04/2004, Gerd Rech wrote: >What about this: >1. Cut the long waveform stream into a number of (overlapping) pieces. >2. Use the FFT vi for each piece, which will produce amplitudes and phases >for each frequency bin. >3. Average apmlitude and phase for each frequency bin separately. > >Would this create meaningful phase? >I would guess yes, as all pieces were acquired in a consistant stream of >data originally. I would guess not. Because the phase for each piece is referenced to the time of starting for each piece there is effectively a phase difference applied to each fft. So to do this over the whole data set you would have to off set the phase for each frequency bin by the starting time* frequency of that bin. That would make all the phases referenced to the same starting time. Then you could average them. Otherwise each frequency bin will have a different phase offset added to it for each segment esstially causing it to be averaged to zero. -Scott
RE: RE: IMAQ references/LV7
Don, Thanks for the IMAQ examples. What I am finding is that if you drag the property node into another blank VI then drag the reference to the blank VI front panel problems occur: 1. The reference does not show as an IMAQ reference but a odd looking thing with a red x PlugInContol Refnum when I try to connect this reference to the property node in the blank VI I get an insane error and LV7 crashes. 2. I cant seem to find the proper IMAQ reference. I really what to do the coding at a sub-VI level not on the top level this is where the problems lie. Jack Hamilton Hamilton Design [EMAIL PROTECTED] www.Labuseful.com 714-839-6375 Office
Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
At 16:19 +0530 02/04/2004, Dr Sanjay Gupta wrote: >Gerd, > >Why not just add up the complex fft's of the various segments prior to >computing the magnitude and phase. Works every time. Works differently. That is a vector addition. For a varying phase it will reduce your signal. For overlapping FFTs phase slip will reduce the signal to zero after enough time. RMS averaging will average the magnitude. Very different. -Scott -- Dr. Scott Hannahs, Head of User Research Instrumentation http://sthmac.magnet.fsu.edu National High Magnetic Field Laboratory, Florida State University 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 Do not meddle in the affairs of sysadmins, for they are easy to annoy and have the root password.
Re: General LS Linear Fit - Number of Equations
I'm having the same problem. Seems that if you have more than 90 parameters, the General LS Linear Fit.vi returns error -20021. Seems like there is an unstated maximum array size for the GenLSFit_head function in the DLL the vi calls. Did you ever find a workaround?
Re: What does the error "VISA Status code: bfff0015" mean?
RJ: Use viGetAttribute(vi,VI_ATTR_ASRL_AVAIL_NUM,&nBytes); Dan Mondrik National Instruments
Re: Filtering out and sending data to the correct graph depending on data identifier
Regarding your string parsing... Maybe I don't understand your protocol, but it looks to me like it's just a simple query/response protocol. So I'm not sure what you mean when you talk about a continuous stream of data. It seems like you'd just send "?Temperature1\n" and immediately do a VISA Read knowing that the data you expect back is for "Temperature1". I'd suggest that you terminate your data with an end of line character, and use VISA's termination character functionality to simplify the read. E.g., have the satellite return something like "!Temperature1[Data]\n". Then configure "\n" as your VISA termination character. You could leave out the "Temperature1", since you should know what you queried for. But, it does make a good sanity check if you identify the data that comes back with the appropriate channel name. Is the data encoded in ASCII? If so, then the "Scan from String" and "Spreadsheet String to Array" functions will be useful. If it's in binary format, you'll probably end up using the Type Cast function. I'd suggest downloading some of the native LabVIEW instrument drivers on http://ni.com/idnet/. E.g., download something for an oscilloscope that includes a serial interface. This should provide you with several examples of how to read data with VISA and parse it. This should also show you many examples of how to get real-valued data (orange) instead of pink or blue. I hope this helps. Brian
Re: Why does converting a SGL to SGL get rid of coersion dots?
Here is an update I recieved this AM. "Ben, I spoke with the LabVIEW PSE's today and explained the situation. I used your example VI to illustrate the behavior and it was decided that this required additional investigation. It was suggested that I file this officially as a bug and then see what the owning developer has to say about this behavior. I will put a link to your original thread in the report with instructions to update the thread with additional information or to notify me and I will do so. Either way, I will let you know what I find out. " Sharing what I know, Ben http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=261&HRedirected=True&HUserId=101_3529&RFORMNUMBER=6";>Ben Rayner http://volt.ni.com/niwc/common.jsp?page=products_certification_cld&node=10638";> Certified LabVIEW Developer www.DSAutomation.com
Re: Best books to get up to speed with LabView 7?
You can see the classes and books NI offers at the http://www.ni.com/training/";>customer education page.
RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
Actually, it shouldn't work every time. If you have two identical FFTs with opposite phases, adding the complex FFTs will cancel them out. You would lose data if you add up all the complex FFTs, and the "average" value would be smaller than the correct value. Bruce -- Bruce Ammons Ammons Engineering www.ammonsengineering.com (810) 687-4288 Phone (810) 687-6202 Fax -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dr Sanjay Gupta Sent: Wednesday, February 04, 2004 5:49 AM To: Gerd Rech Cc: [EMAIL PROTECTED] Subject: Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" Gerd, Why not just add up the complex fft's of the various segments prior to computing the magnitude and phase. Works every time. Sanjay Gupta +-+ + Chief Scientific Officer & Former Head Phones:0512-2597830 (Off)+ + Advanced Centre for Materials Science 2574628, 3117477 (Res)+ + Indian Institute of Technology + + Kanpur 208016, India Fax:+91-(0)512-2597459 + + + +-+
RE: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
The only way to get meaningful phase is to start your acquisition at the same phase for every segment. An example of this would be an encoder pulse. If each acquisition starts at a once per rev pulse from the encoder, they will all have the same phase components. Another possibility is doing order tracking, where there is a fixed number of samples per revolution. If you shift your window by the number of samples per revolution, you will get the same phase again. Any time you have a steady stream of data with no reference point, the phase data is essentially useless. If it is a repeating signal you should be able to identify a reference point. I suppose if you don't have a hardware signal, you could use convolution to identify repeating cycles of data. If phase is important, you should have a reference signal. Bruce -- Bruce Ammons Ammons Engineering www.ammonsengineering.com (810) 687-4288 Phone (810) 687-6202 Fax -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gerd Rech Sent: Wednesday, February 04, 2004 3:36 AM To: [EMAIL PROTECTED] Subject: Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi" Hi folks, I know the "overlapping average" technology from signal analysers. In those cases I used them up to now, phase was not relevant. Now I have an idea about a different use where phase would be important. Scott's comment that phase would be meaningless if overlapping averaging is used is making me thinking. What about this: 1. Cut the long waveform stream into a number of (overlapping) pieces. 2. Use the FFT vi for each piece, which will produce amplitudes and phases for each frequency bin. 3. Average apmlitude and phase for each frequency bin separately. Would this create meaningful phase? I would guess yes, as all pieces were acquired in a consistant stream of data originally. Seems that my mathematical understanding does not reach far enough to understand this completely. Cheers Gerd
Re: GPIB Read.vi does not output right data?
Based on the data you included in your question, I would guess your (A) analyzer is set to return data in ASCII format while your (B) analyzer is set to return data in binary format. Typically data encoding format is settable on many instrument. Therefore, you can set (B) to return data in the same format as (A). Alternatively, the binary format is probably an IEEE 488.2 definite length block format. You might choose to return data in binary format for improved performance. Below is a link to some examples for parsing definite length block format: http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=C993A8A8911F19DDE034080020E74861&p_node=DZ52341&p_submitted=N&p_rank=&p_answer=&p_source=External";>Waveform Encoding and Scaling for Instrument Control Applications
DLL calling convention
Hello Here's my problem. DLL looked always magic to me, so I tried to work with them to see how it works. I wrote a DLL in Labwindow/CVI 6.0 and my first fonction had the following prototype extern int __cdecl MyDLL_Init (int In1,char *Out2); I did'nt exactly know why using a C type declaration or a standard one but the I followed a typical example found in the Developer zone. Actually my function had one integer input (In1) and two output: a status Integer and a C string parameter. I called the function in Labview 6i following the example given and I was surprised that everything worked the first time. I wanted to add another output string to my function, so I changed the prototype extern int __cdecl MyDLL_Init (int In1,char *Out2,char *Out3); I changed the configuration in Labview Call Library Function and then Labview crashed all the time. I tried to call the DLL in a CVI program and everything went well. I came back to Labview and it crashed again. I came back to the first prototype and it worked well. I thought it might be the fact that Labview does not use C type string but it worked fine with only one output string, so it does do the conversion if the String Format is correctly chosen in the configuration. Finally I just changed the convention from cdecl to stdcall and everything worked well. As a mechanical engineer, I am more a self-taught programmer and most of the time I change everything till it works without understanding very well but I wonder why this happens like this. Thank you very much Louis
Re: Comment effacer un startup.exe dans un field point
as tu essay=E9 via le ftp!
can labview record data through a serial connection from a load cell controller?
I am assembling a system and need to be able to control both a newport motion controller (already has LV drivers, so I am sure that's all set) as well as take load data from a Sensotec load cell controller - the controller uses a serial connection for data transfer. Can I use labview to readily acquire data from the load cell controller (it's a sensotec 2000, if that helps)?
Re: Quel est le VI actif ?
as tu essay=E9 de peser sur pause une fois qu'il est pris dans une loop, et ensuite tu peux faire avancer le program step by step.
Re: Waveform Chart Y-T Values
The only difference is that the 6.1 version that creates an x array is just called Get Waveform Time Array.
Re: Automation close (windows) does not work.
Have you test your vi over long period of time? Did you see the memory increased steadly? Or does it go to a level and then drop back to a lower level? >From what I tested, it seems the memory does not increase all the time. The memory usage increased to a certain amount and then maintain that level (decrease and increase to that level again). Therefore I don't think there is a memory leak. The memory profile I did also does not indicate any memory leak. -Joe
Re: How can I move keyfocus on different contols using a keybord input?
It works as I anticipated. This is the answer. Just out of curiosity how would you programmatically control the order. I think turning the order off will use property settings of contorls to false. To program the order of keyfocus I need to know what user is typing and whenever tab is pressed I need to set keyfocus property to true. Not sure how to read user'skeyboard input.
ScreenPrinting pauses LabVIEW application
System Configuration: LabView 6.02 Windows NT 4.0 Pentium III 800 MHZ dual CPU, 256 Mbytes PXI chassi Problem: My LabView application encounters two intermittent problems while printing. A printer is directly connected to the system thru the printer port. The first problem occurs in the serial communication (RS232) with another computer (VAX) while printing. Characters are detected missing from the string of characters that my system is receiving from the VAX (other computer). This problem occurs almost every time that my system prints a page. The second problem is not as frequent as the first one. This one appears to occur the first time that you try to print after a long time without printing. What occurs is that if one tries to print at the same time that one of the Control fields (String control) number is changed, the field is locked out and the number can not be changed unless the file that is open (recording data) is closed.
Re: Motion Problems
Jack, Losing exactly 32768 encoder counts is different than just losing some random number, so noise is not the issue, at least in that way. Anyway, regarding debounce, it's only when using the E-Series board's method of reading encoder signals that debounce is an issue. The circuit in the NI motion and counter boards correctly handles noise in an encoder because it detects both positive going and negative going edges and counts up or down accordingly. The E-Series boards need debounce because what they do is use one signal for up-down direction, and then look at only one of the edge directions on the other signal. Noise on the second signal can result in extra counts, because the other edge directions are ignored. --David At 10:20 PM 2004-02-03 -0800, Jack Hamilton wrote: David, It would seem that your loosing encoder counts or counting encoder noise. There is a very old NI app AN084 note Using Quadrature Encoder with E-Series DAQ Boards which suggests a debounce circuit for encoders. Why NI does not put this circuit in their encoder circuit is a mystery. I would also check that the cabling your using is shielded, encoder pulses can get up into high frequencies which can cause electrical noise problems. I recently ran into this very problem with an encoder connected to an E-Series board. The de-bounce circuit corrected the problem completely. Jack Hamilton Hamilton Design [EMAIL PROTECTED] www.Labuseful.com 714-839-6375 Office - -W-H-E-A-T-W-H-E-E-L-L-E-N-S-T-O-W-I-N-D-O-W-I-N-G-G-P-R-O-G-R-A-M-W-E-B- - -- David A. Moore - Moore Good Ideas, Inc. -- -- (801) 773-3067 - NI Alliance Member -- -- 1996 Allison Way --- www.MooreGoodIdeas.com -- -- Syracuse, Utah 84075 - [EMAIL PROTECTED] -- -
Re: Synchronize read from RS232
If the message transmitted by your sensor is always terminated by a specific character, e.g. CR or LF, just enable that as the VISA termination character for serial reads and set a timeout that is a bit longer than the sensor interval, e.g. 2-3 times as long. Use a VISA Read function and wire a large value to 'bytes to read' (larger than the maximum expected message length). VISA Read will wait until a complete message is received and then return it. If the message doesn't have a termination character, read one byte at a time in a while loop and assemble the bytes into a string or array using a shift register. Use appropriate code to detect when a complete message has been assembled. Either of these methods will return the sensor response to your LV program as soon as possible after the sensor has sent it, which is what I assume you mean by 'on time'. There are two possible problems to bear in mind when you have a device that sends data continuously, rather than in response to a request: first, that readings may build up in the serial buffer before your program starts reading them, and second, that the first response you read may have the beginning chopped off, if you opened the port while the device was half-way through sending something. Make sure you've considered both of these. (Using the 'flush' function can help, but remember you might flush the buffer while the device is half-way through sending!)
Re: importing vi from old LV versions (Mac to Win)
I believe that opening the old VI's and re-saving them in LV 4 would also work. If you don't have LV4 or 5 then a conversion kit for old VI's is supposedly available from NI. You might be able to find a workaround for problem (2) by temporarily moving some of the problem VI's out of where they currently are in the hierarchy (vi.lib?) before you load your old VI's, and/or creating 'wrapper' VI's to go around the new VXI VI's that have the connectors in the places you need. If the conversion in (3) is a problem, can you avoid it by saving the VI's into an LLB on the Mac before bringing them to Windows?
Re: [W6.1] RMS averaging with "FFT Spectrum (Mag-Phase).vi"
Gerd, Why not just add up the complex fft's of the various segments prior to computing the magnitude and phase. Works every time. Sanjay Gupta +-+ + Chief Scientific Officer & Former Head Phones:0512-2597830 (Off)+ + Advanced Centre for Materials Science 2574628, 3117477 (Res)+ + Indian Institute of Technology + + Kanpur 208016, India Fax:+91-(0)512-2597459 + + + +-+
intaller remove other labview applications
I need to have different versions of my application (with different names, different directories, different start menu entry...), installed with a setup.exe from application builder. On WinXP, that's ok. But on Win2k when i run the "new" setup.exe, the installer try to uninstall the last version of my app. That's impossible to work with the two latest versions... how doing ??
Re: Filtering out and sending data to the correct graph depending
Thanks for a fast reply with relevant information! :) I think using a history buffer and have one graph will be to slow. The satellite will be active for 6 - 8 hours, and towards the end of that time, I think (I don't know) that the time it would take to read in the buffer and then display the data would be significant, taking away resources needed to keep logging the new, incomming information. So, I will try and play with the property node and see if I can get anywhere. Now, the first part of my question still remains valid for anyone who has a few minutes to answer it, about how to "multiplex" the incomming command and data to the correct "branch". Yet again, thanks to Greg McKaskie for his quick reply.