RE: Dealing with large file
An even more stupid limitation is the 32000 data points per series. I mean, what is it with that? It is not as if 32000 is related to some power of two in a neat way. At least 65535 rows is 2^16 - 1. Nick. Subject: RE: Dealing with large file From: Michael Aivaliotis [EMAIL PROTECTED] Date: Tue, 18 May 2004 13:30:38 -0400 snip I agree this is a stupid limitation of Excel. snip Notice - This message contains privileged and confidential information intended only for the exclusive use of the addressee named above. If you are not the intended recipient of this message you are hereby notified that you must not disseminate, copy or take any action in reliance on it. If you have received this message in error please notify us immediately. Opinions, conclusions and other information in this e-mail and any attachments that do not relate to the official business of the firm are neither given nor endorsed by it. Any documentation produced using this data is uncontrolled and not subject to update. The recipient is responsible for reviewing the status of the transferred information and should advise us immediately upon receipt of any discrepancy. Any design details are applicable to the intended project only. Subject to contract, we retain copyright of all the transmitted material and it must not be reproduced wholly or in part, or supplied to any third party without our
Re: [W] Capturing the keyboard
George Zou wrote: Marco, Are you sure the video stops playing because loose the focus? Is it posible because loose foreground? Oh, that's a really interesting question. I can't answer this, because I don't know a way of letting the Application loose focus without loosing foreground too :-( Would it make any difference? Have you tried to set the video window as topmost window ? No, not until now. But I don't think this application has a setting like always on top or something like this :-( It is indeed posible to capture keyboard events from another application, but it's not easy. What do you mean with not easy? I've managed to geht the keypresses, that's easy, but I could not supress them for the other applications. By searcing the net, I've found out, the user32.dll has the functionality in need in it. The function is called SetWindowsHookEx (with the possibility to forward the Event back to windows or just supress it). But with the documentation I've found from microsoft (http://msdn.microsoft.com/) I was not able to find a way to use this functionality in LabView. Bye and thanx Marco
Re: DAQmx, etc.
Tim, you asked on Tue, 18 May 2004 10:24:03 -0700: In LV6 the 'AI read.vi' hogs the CPU waiting for the number of samples requested to be available. someone (sorry for not remembering the name) came up with a 'non-blocking AI read.vi' which i have been using happily. i noticed the new DAQmx 'contgraph.vi' is hogging the CPU also. is there a cure for it ( i think it makes DLL calls)? The idea bvehind this 'cure' is in a 1st call to ask for 0 (zero) samples and to get the number of availabel samples from that call. Than in a 2nd call ask for that number only. If you need more, wait an apropriate time and repeat. another question: i've been using LV2 style globals to pass data between parallel loops and am wondering if a queue is a better way to go? Both ways will work. Speed will probably not vary much. But queues are in the end easier to handle and maintain and to separate into different VIs. For example, a listener VI can autostop when the queue gets destroyed by a (the) writer. You do not need any extra technique to stop that -otherwise independent- loop. AND queues are variant as inserted from the libs; YOU define their data type when creating a new queue. A LV2-style global has to be made variant to function that way. (My older templates used strings as data format for LV2 globals and casted any given data to/from strings). HTH and Greetings from Germany! -- Uwe Frenz ~ Dr. Uwe Frenz Entwicklung getemed Medizin- und Informationtechnik AG Oderstr. 59 D-14513 Teltow Tel. +49 3328 39 42 0 Fax +49 3328 39 42 99 [EMAIL PROTECTED] WWW.Getemed.de
Re: Problem with atof within a C++ DLL which is used in Labview 6.1.
Today I will check the localized settings. That could be one possible solution. The C-Environment and the LabView environment are running on two differnt PCs. But I am sure, they are using the same MSVC libraries because I installed them on both PCs from the same CDROM. You ask me, if the string I passed to the DLL is ok? I do not pass any string into the DLL. A function within the DLL reads the strings out of an INI file and converts all necessary parameters to a double value (atof). These parameters are completly used within the DLL. There is no exchange between LV and the DLL. Sven Bone
RECHERCHE SCRIPT PID EN DAQmx....
j'ai d=E9j=E0 le PID control loop.vi en DAQ traditionnel; comment avoir celui correspondant en daqmx ?? je dispose de labview 7.1 et de daqmx7.2 merci d avance
Re: What happened if i check the property called Reentrant in SubVI's?
Yes, you can pretty much multiply the memory footprint of the reentrant VI with the number of instances you have. In other words having 50 instances of a 300K VI will cost you quite a bit of memory...if the VI is smaller it's not that much a worry though.
how to install and use labview goop wizard in labview 7.0 or 6.1
is there any tool kit for implementing my application using goop concepts
Re: help
Bonjour C est exactement ce dont j avais besoin. Merci encore
Intelligent Stepper Drives
George, I use a Parker L25i intelligent stepper drive. They're modular (plenty of room for expansion if you choose the correct power supply), use RS232 and can also store their own programs, which I find really handy for repeated moves. They're not exactly expensive either, and they can even be DIN-rail mounted for extra industrial appearance. They come with their own terminal-type program which isn't worth the hassle if you want to do any serious programming. Figuring out the command format to use it with VISA isn't too hard though with the likes of Portmon. I have done that myself, and I have VIs that can control the thing which are in development. Hope this helps, Steven Subject: Intelligent Stepper Drives From: George Gatling (Contractor) [EMAIL PROTECTED] Date: Tue, 18 May 2004 14:41:39 -0400 I am building some linear stages to be controlled by labview... -- Steven Hammer Research Associate Institute for Materials and Processes The School of Engineering and Electronics The University of Edinburgh Sanderson Building The King's Buildings EDINBURGH EH9 3JL Scotland United Kingdom Tel +44 131 650 5685 or +44 131 242 6294 Fax +44 131 667 3677 Email [EMAIL PROTECTED] Web http://www.see.ed.ac.uk/~shammer1
Re: pointer to array
Ok, let's do this the easy way... You said: If you would call the DLL fucntion through Call Library Node instead,LabVIEW would do all the work for you. How? I'm calling the function from the DLL but it still expects a pointer as an input parameter (pbyData). How can I feed in a simple array of U8 ? thanks for the help, Ivan
Re: Capturing the keyboard
Marco Tedaldi [EMAIL PROTECTED] wrote: We've got a Video-Application (not in LabView) which should show a video on the same screen as the labwiew-application runs. The Problem ist, that de Application stops playing the Video as soon as it looses the Focus :-( But the Operator needs to write some Data in the Labview-App while watching the Video. With the Initialize Keyboard.vi and the Acquire Input Data.vi I can get the Keyboard-Events even if the my app is in the bakcground, but the main-application still gets the events too, which could possibly disturb it :-( There you have a dilemma. The active window is also the one which has the keyboard focus and the whole concept of Windows is based on this. You might be able to trick a little with this with floating windows if they would be all in the same process but as separate process you can't make a window in one process active and give another window in another process the key focus. To do that you would have to deeply intervene in the Windows kernel itself. So I'm seeking for a way to capture the events completely whitout another application recieving them. As Bonus it would be great, to forward the unused Keys to the main-app. This should work on Windows. Portability is no issue at the Moment, so I could also use System DLLs or DirectX. Well, one way you could do this is writing a system wide keyboard hook in a DLL but this is going to be very tricky. The reason your video stops playing is probably because the video playback is driven by the windows message queue itself instead of in a seperate thread which can keep running eventhough the application is not active anymore. Using system wide keyboard hooks which pass the key first to LabVIEW to then pass it back to the application if LabVIEW didn't eat, it could slow down your video app very seriously. If my assumption of the reason the video stops playing is correct, another way could be however to just sent the main window of your video app regularly dummy events from within the LabVIEW app. Sending WM_NULL messages might be already enough to keep the video playback going and then your app wouldn't need to be active to keep playing. It would have the additional benefit of not misbehaving if the user happened to click into the LabVIEW app window and make it active instead. Rolf Kalbermatter CIT Engineering Nederland BVtel: +31 (070) 415 9190 Treubstraat 7H fax: +31 (070) 415 9191 2288 EG Rijswijkhttp://www.citengineering.com Netherlands mailto:[EMAIL PROTECTED]
modify the custom date format of XY graph by programmation
Hi everybody I want to modify the custom date format and the custom time format of XY graph by programmation Is it possible ?
pointer as an input parameter in call library function
Hi! I have a shared library (dll created in C++) that I want to access with Call Library Function. One of the function in this library needs a pointer to a memory buffer as an input parameter in the following way: long SetData(unsigned char *pbyData, unsigned short int *wDataLength); - The parameter pbyData (type U8) points to a buffer that contains an array (type U8); - wDataLength (int32) is the length of that array. What should I connect on the input of this function? Let's say I have the array I want to feed in into this function, how do I do that? Thanks in advance, Ivan
Unit indicator is not updated in Numeric Control
Hi, I observe the following problem in LabView 7.0: I have a numeric control with unit indicator. Depending on the value, the unit indicator should change its prefix (kilo,milli,etc.) and the displayed value is scaled accordingly. However, this does not work correctly: The value gets scaled, but the unit is not updated. I.e., 1. value is 100 mm, display is 100, unit is mm 2. values is .01 mm, display is 10, unit is still mm, but should be =B5m! More striking: The unit gets updated correctly once the user clicks on it (only an indicator!). Any ideas? Regards Matthias
Picture zoom distortion
Hello, I'm using LabVIEW 7.0 and W2k. My problem is about picture control and his zoom factor function. When the zoom factor is too high (ie 20), the display is deformed: a pixel is not square. Moreover, the distortion depends on the position of the scrollbar: at the center of the picture, a pixel has a size of 20*20 (normal!) but at top-center, it has a size of 20*10 and of 10*20 at left-center!!! By the fact that I need to know the position of the mouse on the picture to display the pixel value, the pointed pixel does not correspond to the pixel which the value is displayed. Regards.
Re: Detect UI activity stoping for at least 2 seconds
Thank you! I couldn't noodle this out because I was trying to do it in a reverse order.
Re: pointer to array
I really have problems understanding you... How can I pass an array of U8 to the Call Library Node parameter that expects U8 number and not an array. I'd get a broken wire... Please be more specific or please send me an example code. Thanks, Ivan
Re: LV2 style globals, events. Was Re: DAQmx, etc.
At 10:24 -0700 5/18/04, tim wen wrote: another question: i've been using LV2 style globals to pass data between parallel loops and am wondering if a queue is a better way to go? Scott Hannahs [EMAIL PROTECTED] wrote: Probably. If you are just passing data in one direction it can work well. With a LV2 style global you can build in internal processing and value manipulation to the global (ie intelligent global). If you're passing LARGE data, probably not, because LV2 style globals are more efficient than queues i.e. you can avoid making extra copies of the data. For small data where that doesn't matter, queues or notifiers are simpler to use. If your source loop is periodic and your destination loop is event driven, you might also want to consider generating a user-defined event that contains your data. That's probably the slowest choice, but can be the cleanest looking method. --David Moore - -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: pointer as an input parameter in call library function
I still didn't understand it...
Re: Unit indicator is not updated in Numeric Control
Dear Matthais, I think, value in the control gets scaled when u change the unit in the unit string, but not the unit when u change the value in the control. So if u need to scale the value the unit, u need to program by using convert unit function. Morevoer unit gets updated correctly only once u click on it. this is ture. i also experienced the same results. Hope it helps. Your feedbacks are welcome. Best Regards, Nirmal Sharma
Re: DAQmx, etc.
Hi, I'd like to clarify a few things about the blocking behavior of the Read vis (the same rules also apply to the rest of DAQmx). - One of the main problems with the blocking behavior in Traditional DAQ was that you could not do other operations while you were waiting in the AI.Read.vi for samples to become available. This was due to the single threaded model of the Traditional DAQ driver and the fact the Traditional DAQ used CINs (though they were replaced by DLLs in NI-DAQ 6.x) DAQmx if fully multithreaded and does not have this limitation. For example, you can run two versions of your contgraph.vi example simultaneously (on different devices) w/o problems. Alternately, if you have two parallel while loops in a VI with a Read.vi in one of them, the other while loop will not be slowed down while the Read vi is waiting for samples to become available. - Scott's non-blocking AI. Read vi in Traditional DAQ works by waiting for the requested number of samples to become available before calling the Read.vi. DAQmx supports this feature natively when -1 is wired into the number of samples per channel parameter on the DAQmx Read vis for continuous acquisitions. Here is the online documentation for this parameter. number of samples per channel specifies the number of samples to read. If you leave this input unwired or set it to -1, NI-DAQmx determines how many samples to read based on if the task acquires samples continuously or acquires a finite number of samples. If the task acquires samples continuously and you set this input to -1, this VI reads all the samples currently available in the buffer. If the task acquires a finite number of samples and you set this input to -1, the VI waits for the task to acquire all requested samples, then reads those samples. If you set the Read All Available Data property to TRUE, the VI reads the samples currently available in the buffer and does not wait for the task to acquire all requested samples. Regards, Rajesh Vaidya Measurements Infrastructure Group National Instruments Subject: Re: DAQmx, etc. From: Scott Hannahs [EMAIL PROTECTED] Date: Tue, 18 May 2004 15:16:16 -0400 At 10:24 -0700 5/18/04, tim wen wrote: In LV6 the 'AI read.vi' hogs the CPU waiting for the number of samples requested to be available. someone (sorry for not remembering the name) came up with a 'non-blocking AI read.vi' which i have been using happily. i noticed the new DAQmx 'contgraph.vi' is hogging the CPU also. is there a cure for it ( i think it makes DLL calls)? One version is at http://sthmac.magnet.fsu.edu/labview in the VI library. I think there are a number of these around. I have not updated it for DAQmx since it is not available for my development platform. :-( I don't know if it would be a simple modification to make it work with DAQmx. It is a fairly simple concept and not too complicated code. another question: i've been using LV2 style globals to pass data between parallel loops and am wondering if a queue is a better way to go? Probably. If you are just passing data in one direction it can work well. With a LV2 style global you can build in internal processing and value manipulation to the global (ie intelligent global). -Scott
Re: Datalogging and multiplot graphs/
Sounds like another request for a storage scope. I posted a crude example here. http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101RPAGEID=137HOID=50650005005A610100HTHREAD=90458UCATEGORY_0=_49_%24_6_UCATEGORY_S=0 I hope this helps, Ben
Est-il possible de changer le curseur de la souris sous labview?
l'objectif est de pouvoir changer le pointeur de la souris , lorsqu'une application cr=E9e sous labview travaille?
Re: How to call function in C# DLL
What is the way for LabVIEW 7.0 Call Function Library Node to call function generated by Visual Studio.net especially C# ? I think Rolf is right, and you will probably want to look at the tutorial on zone.ni.com. I searched for .NET and LabVIEW and the tutorial was on the top. Since the .NET or C# code will produce an assembly, the easiest thing to do is to use the .NET assembly. It is probably possible to build a DLL instead or put a DLL wrapper on it, but I'm not sure it is worth it. Greg McKaskle
Re: How to Run a VI when it is active?
Thnx for your explanation but i'm not certain if i understand what you mean, can you send me an example just simple Vi's but with this feature? Which feature, I described three. First is parallel loops, second is using the run method and not waiting for completion, and third is the IsFrontmost property of a VI. You might start by looking up the help and looking for examples on these individually. If you need additional help, please be more explicit. Greg McKaskle
Re: pointer to array
I really have problems understanding you... How can I pass an array of U8 to the Call Library Node parameter that expects U8 number and not an array. I'd get a broken wire... Please be more specific or please send me an example code. You might try searching for Writing Win32 Dynamic Link Libraries (DLLs) and Calling Them from LabVIEW on zone.ni.com. This tutorial goes over lots of DLL related issues and has an example of passing a numeric array in and out of a DLL. Greg McKaskle
Re: Why does program work only when highlight execution is on?
I second Ed's suggestions! You are not giving your device time to reply after your query. Ben
Re: Unit indicator is not updated in Numeric Control
Hi, from a physical point of view: A physical quantity is a number and a unit. I can convert the unit into any other compatible unit without losing information. I can express the length of my finger in inches, cm or km. The corresponding number changes, but the physical quantity stays the same. The Numerical Indicator obviously tries to optimize the display of the physical quantity by choosing a suitable prefix of the unit. It correctly changes the number, but does not update the displayed unit string. Only, when I click it... The value (the physical quantity) that I wire into the numerical indicator is always in mm, but when the value gets too small, like .01 mm, the numerical indicator decides to display it as 10 =B5m, which is correct of course. Only that the indicator shows 10 mm. Regards Matthias
Re: how can I setup a batch file for my VI?
I see a couple of problems. When you do a file open down near the left bottom of your diagram, you are specifying a datalog type of DBL. This will generate an error 71 when you try to open the text file. It also appears you have an error in the search and replace function at the top left of the diagram. I think you want the replace string to be c:\e7\processed and not c:\e7processed.
Continuous sin wave generation without buffer
I am using Labview 6.0.2 Base version, without Sine Waveform.vi (I have Simple Sine waveform, and Sine wave) but these functions are not the same as Sine Waveform.vi. When I try to open any virtual function generator it calls for this waveform which I don't have. I need a continuous sin wave that still maintains it's shape at 400 Hz. I have made a continous wave using a buffer and for loop, but it looks more like a sawtooth wave. Can somebody help me?
RE: DAQmx, etc.
That's funny, because I recently experienced the CPU slowdown also when reading fixed size blocks from a continuous acquisition in DAQmx. Perhaps it is not being totally blocked, but it definitely slows it down. Perhaps there is a bug in DAQmx that NI is not aware of. I am pretty sure I set up multithreading properly, but I'm not positive. I fixed the problem by using the old method. I check the number of samples available using a property node, calculate how many milliseconds it will be until my data is ready, use a millisecond delay to wait until the data is ready, then read the block of data. My CPU time went from a high percentage to a very low percentage when this was added to the code. 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 [EMAIL PROTECTED] Sent: Wednesday, May 19, 2004 8:59 AM To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: DAQmx, etc. Hi, I'd like to clarify a few things about the blocking behavior of the Read vis (the same rules also apply to the rest of DAQmx). - One of the main problems with the blocking behavior in Traditional DAQ was that you could not do other operations while you were waiting in the AI.Read.vi for samples to become available. This was due to the single threaded model of the Traditional DAQ driver and the fact the Traditional DAQ used CINs (though they were replaced by DLLs in NI-DAQ 6.x) DAQmx if fully multithreaded and does not have this limitation. For example, you can run two versions of your contgraph.vi example simultaneously (on different devices) w/o problems. Alternately, if you have two parallel while loops in a VI with a Read.vi in one of them, the other while loop will not be slowed down while the Read vi is waiting for samples to become available. - Scott's non-blocking AI. Read vi in Traditional DAQ works by waiting for the requested number of samples to become available before calling the Read.vi. DAQmx supports this feature natively when -1 is wired into the number of samples per channel parameter on the DAQmx Read vis for continuous acquisitions. Here is the online documentation for this parameter. number of samples per channel specifies the number of samples to read. If you leave this input unwired or set it to -1, NI-DAQmx determines how many samples to read based on if the task acquires samples continuously or acquires a finite number of samples. If the task acquires samples continuously and you set this input to -1, this VI reads all the samples currently available in the buffer. If the task acquires a finite number of samples and you set this input to -1, the VI waits for the task to acquire all requested samples, then reads those samples. If you set the Read All Available Data property to TRUE, the VI reads the samples currently available in the buffer and does not wait for the task to acquire all requested samples. Regards, Rajesh Vaidya Measurements Infrastructure Group National Instruments Subject: Re: DAQmx, etc. From: Scott Hannahs [EMAIL PROTECTED] Date: Tue, 18 May 2004 15:16:16 -0400 At 10:24 -0700 5/18/04, tim wen wrote: In LV6 the 'AI read.vi' hogs the CPU waiting for the number of samples requested to be available. someone (sorry for not remembering the name) came up with a 'non-blocking AI read.vi' which i have been using happily. i noticed the new DAQmx 'contgraph.vi' is hogging the CPU also. is there a cure for it ( i think it makes DLL calls)? One version is at http://sthmac.magnet.fsu.edu/labview in the VI library. I think there are a number of these around. I have not updated it for DAQmx since it is not available for my development platform. :-( I don't know if it would be a simple modification to make it work with DAQmx. It is a fairly simple concept and not too complicated code. another question: i've been using LV2 style globals to pass data between parallel loops and am wondering if a queue is a better way to go? Probably. If you are just passing data in one direction it can work well. With a LV2 style global you can build in internal processing and value manipulation to the global (ie intelligent global). -Scott
Re: Vertical centered text
Yes, Select the text in the string indicator you wish to center, then look under text settings, select justify then center.
Re: how can I setup a batch file for my VI?
How come its work if you just run readerv4.8 vi by it self?
Re: DAQmx, etc.
At 7:58 -0500 5/19/04, [EMAIL PROTECTED] wrote: If the task acquires a finite number of samples and you set this input to -1, the VI waits for the task to acquire all requested samples, then reads those samples. Is this a blocking wait like the non-DAQmx call into a CIN (or LLB) or is it a LV style wait where other LV nodes even in the same thread can execute? That would be nice! Is there a way to do this threading in our own created dlls (frameworks)?. I would like to make my PCI-GPIB library non-blocking but that is not trivial because of this limitation. Is there a way to set up a call back into LV for a non-blocking wait from a CIN or framework? Then again, DAQmx could be ported to all the other platforms since it was written in such a nice modular way that it only needs a trivial stub driver for other platforms. :-) -Scott
Re: LV2 style globals, events. Was Re: DAQmx, etc.
At 6:04 -0600 5/19/04, David A. Moore wrote: At 10:24 -0700 5/18/04, tim wen wrote: another question: i've been using LV2 style globals to pass data between parallel loops and am wondering if a queue is a better way to go? Scott Hannahs [EMAIL PROTECTED] wrote: Probably. If you are just passing data in one direction it can work well. With a LV2 style global you can build in internal processing and value manipulation to the global (ie intelligent global). If you're passing LARGE data, probably not, because LV2 style globals are more efficient than queues i.e. you can avoid making extra copies of the data. Interesting. Does anyone know why a queue would make extra copies of data. I haven't tried pushing MBytes thru queues but there doesn't seem to be any inherent reason that a queue would make extra copies of the data. It should make a copy upon entering the data into the queue and the caller would release it. Upon dequeue the queue should release the memory and the receiving VI would copy it. (Note: these may not be actual copies but passing of pointers). This should be equivalent to a LV2 style global with a USR? The exact same memory allocation/deallocation should take place. I guess the real test is to make a couple of benchmarks and profile it. -Scott
logic function disable items
what is the logic of the array of the function enable disable items on a Menu ring in LabView 5.1
Re: Vertical centered text
For vertical text, there's no simple setting. You can make the string indicator only as wide as a single character but you have to be careful about different fonts. Captions for controls and indicators can be stacked vertically - just show caption and then right click on the caption itself to select Vertical Arrangement. You could choose to hide the indicator itself and write your string values to the control's caption using a property node.
Re: Error -1073807343 when calling the open visa function
The error is defined by LV as: Error -1073807343 occurred at an unidentified location Possible reason(s): VISA: (Hex 0xBFFF0011) Insufficient location information or the device or resource is not present in the system. It looks as though the name of the session is okay, because it should look like = GPIB0::9::INSTR Are you using this name to open the VISA session or to initialize the instrument? Once the session is opened, you should get a name like: GPIB0::9::INST followed by the session number.. Unfortunately I don't have a true example of the number, but it looks like... GPIB0::9::INST:1 I'm not sure if the column is in front of the 1. Hope this helps.. JLV
Re: pointer as an input parameter in call library function
long SetData(unsigned char *pbyData, unsigned short int *wDataLength); - The parameter pbyData (type U8) points to a buffer that contains an array (type U8); - wDataLength (int32) is the length of that array. What should I connect on the input of this function? Let's say I have the array I want to feed in into this function, how do I do that? Double click or popup on the node and Configure. In the dialog, you need to add parameters until you have two inputs and a return value. For the return value, in the Type ring, choose Numeric -- the default will be for an I32. For the first parameter, change the name from arg1 to whatever you like, it doesn't really matter except as documentation. Then set the Type to Array. The fields below will default to I32, one dimension, and Array Data Pointer. Change the I32 to U8. For the second parameter, it should default to I32 by value. Change the name as you please, change the Type to U16, and change the Pass to be Pointer to Value. That should be it for the dialog. The Function Prototype at the bottom of the dialog should look similar to your first line above. --- To wire things up on the diagram. For the array, you will need an array of U8s. You can use a constant sized to the correct size, or you can use Initialize array to build one at runtime, or you can use Resize Array to take an existing Array and set it to the correct initial size according to what the DLL expects. There is no way for LV to know the initial assumption about the array size, you have to read the DLL documentation and set it. If you set it too small, the DLL writes past the end of the array and corrupts memory either crashing immediately, stopping the VI with an error, returning an error, or silently setting LV up to crash when things get unloaded. If you want to make certain it is the correct size, put a probe on the input wire or use execution hiliting to view the size of the input array. Wire this array to the top input on the Call Library. For the second parameter, wire up a U16, again it can be a constant, a control, or any other wire of the correct type. By the way, opening the help window, switching to the wiring or auto tool and hovering over a wire gives lots of datatype information about a wire. You can also wire the right side of the Call Library. For the moment, I'd just create indicators to view the results. If you still have problems, please be specific as to which step causes problems. Greg McKaskle
Re: What happened if i check the property called Reentrant in SubVI's?
I am calling the SubVI called Addition.Vi from the Main VI two times. In first case i haven't checked the property Reentrant and i am executing the main program. So only one instance will be created and the SubVi's will be executed sequentially. In second case i checked the property Reentrant in SubVI. So multiple instance will be created and the subVI's will execute simultaneously. Here my question is is there any difference in memory usage for both the cases? Rolf accurately summed up what is duplicated and what isn't. But the bigger issue is when to use reentrancy. As usual, the first issue to deal with is correctness. Memory versus performance tradeoffs are one thing, but making your program produce incorrect results is a bigger issue. One way to characterize a VI is -- functional or nonfunctional. Functional VIs are of the form y= f(x). For the same x, they will always produce the same y. Nonfunctional VIs such as a running average or a DSP filter do not do this, the history of previous calls will affect the result of a given call. Nonfunctional VIs can be represented as y= f(x,state), and can be implemented functionally so that state is a parameter, either the state info or a reference to the state. Or they can be implemented so that the block on the diagram holds the state. With a functional VI, you can change reentrancy without affecting anything but the memory/versus parallelism tradeoff. If you change reentrancy on a nonfunctional VI, you just made a big change to the behavior. Take a LV2 style global for example. Nonreentrant, and every reader sees the last writer. Make it reentrant, and nobody talks to anybody else, all readers get the initial value, and the writers send the data to their own copy. This VI works as intended only when nonreentrant. Now lets look at a running average. If reentrant, each call drops off new points for a channel and returns the running average for that channel. Drop a second and it works independently on a separate channel of data. Make the running average nonreentrant, and you are now combining the channels into one and returning the average of that data stream, which will probably produce very odd results. This VI works as intended only when reentrant. So the point is, before worrying about perfomance and parallelism, make sure your VI is functional first. If it is nonfunctional, the reentrancy only makes sense one way, and the compiler can't tell which makes sense, only the designer of the VI. Greg Mckaskle
Re: courious Q / was: Programmatically Creating Clusters
So if I got you right, this tool is meant as a universal logger and retriever of lab DAQ data. Your scientists seem to be satisfied with a SubVI containing all data that has been written some times, independently from what eqquipment was used and how it was composed to a complete system. This SubVI with data is than -later- be used to individually analyse or process those data, right? This is partly true... the sub-vi that reads the files actually returns a variant. This variant is a cluster of the same type as the rows in this particular file. To use the data in labview, you must define a cluster explicitly of the same type to convert the variant to labview data. And my original question was aimed at simplifying the task of creating this cluster. If this is true, you should at least also include some time stamps and logs of what VI wrote a given file, what instruments in what mode haven been used and so on. There may be a huge difference in, say, using a 4.5 digit DMM or a 6.5 one, allthough both will provide an array of Dbl into your cluster. Yes, this should be included... in the same header that defines the data type of the rows, there is also information about what equipment was used, which scientist took the data, any comments that seemed important at the time the data was acquired and so on. As far as time stamping... we usually time stamp each of the rows... our lab is controlled by a PLC and a supervisory computer archives all of our tags to a database. Therefore, with a time stamp it is possible to retrieve all of the known conditions in the lab... (magnetic fields, pressures, temperatures, etc) My original Q was meant on _how_ would you process that newly created cluster when you do not know anything about it at devellopment time. But in your case the key seems to be to make those data availabel again for some kind of interactive analysis using LV. This is half of it... in some cases, the data acquisition was ad hoc so we would not have any existing tools to handle this specific type of data... (we do however have a tool that will let you view any of these files, regardless of what is in them.) And in this ad hoc state, the scientists would be doing interactive analysis on the data. This situation is very common during the initial phases of many of our experiments, when we do not yet know exactly which instruments we will need, or what sort of data will ultimately appear in our papers. The other half is when we have predefined row types... this is more common in mature experiments... and in this case we could write reusable code to manipulate/analyze these files. In fact, we usually turn such things into finished applications. The magic is in the file format, which is flexible enough to allow for these ad hoc things, but always writes the data in the same way to the file (which is how we can have a universal viewer). And since the file includes all the metadata required to make sense of the data we never have to wonder what is in the file, or how to parse it. George George Gatling Applied Technology Division, SFA Inc. Space Physics Simulation Chamber US Naval Research Laboratory 202-404-5405 (phone) 202-767-3553 (fax) If trees could scream, would we be so cavalier about cutting them down? We might, if they screamed all the time, for no good reason. --Jack Handy
Re: logic function disable items
I'm not sure if you're asking why there should be disabled items or how to disable selected items. Why is because there may be situations where menu items don't apply and you don't want a user to select them. As to how, if you have a menu ring with items a,b,c, and d. If you want to disable b, this is element 1 in the array of elements and to disable it, you create an array with 1 as the only element and wire this to the property node DisabledItems (LV 6 and up. Not sure about name if 5.1). On the Front Panel, you can simply select the item you want to disable and then right click to enable or disable it.
Programmatically Make Current Values Default of a Global Variable
I wish to be able to modify and save programmatically some values stored on a global variable. When trying to do that by using Make Current Values Default with VI Server, I got an 1073 Invoke Node in Store_config.vi. The vi works fine when used with a vi and not a global variable or when the global variable is not called in the executing vi's. What could I do? Any ideas? One possibility would be to store retrieve the config values of the global variable on a file, but when there are many variables it is annoying to define the reading and saving vi's. Thanks for your help. PS. I use Labview 7.0 under win 2k
Re: Unit indicator is not updated in Numeric Control
Hi, I should have mentioned that I use the SI Notation in the indicator. So that is really a feature, not a bug. But the prefix isn't updated correctly. Matthias
Re: Unit indicator is not updated in Numeric Control
Hello, When units are used with numerics in LabVIEW, the physical quantity is always in the base unit type (for length, the base unit is meters). If you ever see a case where .01 mm is displayed as 10 micrometers, this is a flaw in LabVIEW. (I haven't been able to reproduce it). If you can include an example where this happens, that would be great. However, it sounds like what is being wired is .01 meters, which is 10mm. Also, there is an easy way to get the unit label to update as the value of the numeric changes. Click on the numeric control/indicator and select Properties... Then go to the Format Precision tab and select SI Notation as the format. This will cause the unit label to use the SI prefixes when appropriate. Other comments appreciated. Shawn
Internal Variables
I've been writing a lot of programs lately and have been having to create lots of worthless front panel indicators just to generate internal variables that the user will never need to see. Is there some other way to create variables that will only be used within the program code itself and that are -NOT- associated with anything on the front panel?
Re: radar
You can also use the polar plot VIs: http://digital.ni.com/public.nsf/websearch/9CEC8B2C1E67039586256DEF006F9A0E?OpenDocument
collecting through microphone port
I would like to record a voltage signal through the phono microphone port on my laptop.Could you tell what the port # is to do this and if there are any potential problems with this method?
Re: How to get continuous values
I think we need to learn more about your application. What instrument vendor and model are you using? When you say that the subVI connects for two seconds, is the two seconds spent inside of the ActiveX object, or are you doing something in the subVI to wait two seconds? If the two seconds is being spent in ActiveX, there's probably not much you can do about it (unless you are willing to not use the ActiveX object and just talk to the serial port directly). Note also that the measuring device itself may take two seconds to do any measurement. In that case, you can't go faster without replacing the device. Brian
Re: Programmatically Make Current Values Default of a Global Variable
The problem with the Make Current Values Default is that it cannot be used on a VI or Global that is currently running or in use. Using that method requires a re-compile, and that cannot be done while the VI is running. Reading and writing from a file is going to be your best option. Take a look at the a href=http://www.openg.org;Openg.org/a toolkit. Part of this package is a set of VIs that use Variants to read an entire front panel and write the values to a file. It can also read from the file and write back to the panel. You can get the download a href=http://www.openg.org/tiki/tiki-index.php?page=OpenG+Toolkit%3A+Downloads;here/a. This makes it very easy to save panel setups without having to define everything each time. You may want to do some reading on the site on how to install and use the toolkits. There is also a forum to ask questions about the various tools available. Ed
Re: Saving data in remote panel
Hmm Don't reall quite get what u mean. Are u saying that make a front panel that user will key in the file name himself without using dialog. Have not try out anyway.
Re: Why do I keep getting Error 1000 When I run Abort VI Method?
Hitman, Here is a KnowledgeBase that discusses the issue. a href=http://digital.ni.com/public.nsf/websearch/790AC75B07D971ED86256C53007BDCE9?OpenDocument;Why Do I Get Error 1000 When Attempting to Abort a VI Through VI Server?/a Evan National Instruments
Re: How to get continuous values
Hi Skob, There are different ways of calling a subVI in LabVIEW. I'll mention each of these ways in a little detail: The simplest is by inserting the subVI in the main VI (You will see the icon of the subVI on the block diagram). When this VI is called, the block diagram waits until the subVI is done executing, after which the main VI continues to execute the rest of the VI. Another way of calling a VI is called dynamically. The following links discuss the two way of calling a VI dynamically and their differences. a href=http://zone.ni.com/devzone/conceptd.nsf/webmain/B837D4F9277EC75786256990006EBE5B?opendocument;Serving Up Powerful Solutions - LabVIEW VI Server Examples/a a href=http://zone.ni.com/devzone/conceptd.nsf/webmain/04F9CCB32C67F24386256802007B878F?opendocument;Calling a VI by Reference/a a href=http://digital.ni.com/public.nsf/websearch/4838398F3B2798A186256B82007B4ED0?OpenDocument;What Is the Difference between Calling a VI with an Invoke Node and Calling a VI with a Call by Reference Node?/a Suggestions 1) Call your VI that acquires data dynamically. 2) Open connection to your instrument only once (especially because it seems like it takes a while for this). Then acquire the data. After you are done, close the connection. I hope this helps. Sincerely, Feroz National Instruments
Easy question: is it possible to copy an indicator or a...
Easy question: is it possible to copy an indicator or a control from the main Front Panel to the main Front Panel? This means I don't want to create a new control or indicator in the Block Diagram; just want to control or check the same function from different positions in the Front Panel (this is because my Front Panel is very large) More over, where can I find help to learn how to edit the appearence of the Front Panel? Thank u
Re: Unit indicator is not updated in Numeric Control
Hi Mattias, It seems wrong that the prefix isn't updated. I'm probably missing something simple, but I haven't been able to reproduce this (the unit label always updates correctly when I try it.) If you can write a VI and describe the steps to reproduce this, I would be interested. Otherwise, I'll just keep my eye open for this. Thanks for posting it. Shawn
Re: Internal Variables
The equivalent to variables in text based languages is the wire in LabVIEW. There is seldom any reason to create a dummy indicator with a properly written program. I'm assuming that when you create the dummy indicator, you then create a local variable of it to pass it's value to some other location in the program. As I said, the best way to do this is with a wire. Local variables create copies of the data and can result in race conditions. Besides wire, there are other ways to pass data, i.e. shift registers and queues. If you would post an example of one of your programs, I'm sure someone here on the forum could provide help in redesigning your architecure.
Re: Internal Variables
Well, the problem I'm having is that each time the program is run it saves a file for example test1.dat Now the way I see it, the easiest way to make the next file saved be titled test2.dat would be to have a variable that increments by one each time the user runs the program. It just seems to me like it would be immeasurably simpler to have an internal variable do this than some complicated architecture to accomplish the same goal.
Re: Internal Variables
The problem with wires is that in big programs you can get a jumbled mess - many wires tangled throughout the program. One attempt to overcome this is to use the dummy indicator and property node (value). I'm assuming the cleaner solution is to create a cluster (with all the initial values), pass it around (on just one wire - avoiding clutter) and use the cluster widgets to get and set values. Correct? Les
Test
Sorry, just testing. I have tried to reply to messages, but they get rejected. Please ignore... Phillip Brooks Test Engineer IET Labs, Inc. 10 Dedham St. Newton, MA 02461 [EMAIL PROTECTED] http://www.ietlabs.com
Re: [W] Capturing the keyboard
From: Marco Tedaldi [EMAIL PROTECTED] To: George Zou [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: Re: [W] Capturing the keyboard Date: Wed, 19 May 2004 08:43:24 +0200 George Zou wrote: Marco, Are you sure the video stops playing because loose the focus? Is it posible because loose foreground? Oh, that's a really interesting question. I can't answer this, because I don't know a way of letting the Application loose focus without loosing foreground too :-( Would it make any difference? It might be. Have you tried to set the video window as topmost window ? No, not until now. But I don't think this application has a setting like always on top or something like this :-( You can do this with lvwutil32.zip. You can download it from NI site. It is indeed posible to capture keyboard events from another application, but it's not easy. What do you mean with not easy? I've managed to geht the keypresses, that's easy, but I could not supress them for the other applications. You are polling. That's not event driven programming. If you poll too fast, you are waste a lot of UPC time; if you poll too slow, you might not be able to capture every key press. By searcing the net, I've found out, the user32.dll has the functionality in need in it. The function is called SetWindowsHookEx That's the way to go. (with the possibility to forward the Event back to windows or just supress it). But with the documentation I've found from microsoft (http://msdn.microsoft.com/) I was not able to find a way to use this functionality in LabView. That's what I mean not easy. George Zou http://gtoolbox.yeah.net _ Watch LIVE baseball games on your computer with MLB.TV, included with MSN Premium! http://join.msn.click-url.com/go/onm00200439ave/direct/01/
Aborting a SubVI
I have a VI that calls a subVI which runs a flat sequence loop. I am having trouble finding a way to stop the subVI so that the flat sequence does not finish the iteration. Basically, I want to be able to have a stop button on the front panel of my main VI that immediately aborts the subVI without progressing in the flat sequence. Any suggestions? Matt
time stamp to number conversion
Hi All, I notice in Labview 7.0 the 'Get Date/Time to Seconds' and 'Seconds to Date/Time' now output a Time Stamp rather than actual seconds. There is a 'To Time Stamp standard vi in the conversion pallet that converts a number (seconds) to a time stamp but I really need to convert from a Time Stamp to real seconds. Does anyone have a vi that might do this or is there something already in LabVIEW 7.0 I have overlooked? Many Thanks in Advance for your help. Sammy Mason
Re: Internal Variables
Hi Les, Since I almost always use a state machine, event structure, or a combination, that is exactly what I do - create a cluster with all of the elements I need to pass between different states and then use bundle/unbundle by name.
Re: collecting through microphone port
Normally the sound card (microphone) is on port 0. (At least on my laptop.) As far as potential problems, I assume that when you say record a voltage signal that you are recording something other than a normal microphone - i.e. connecting up a real voltage. If it has too high a level (or DC offset) you could fry your PC. If that's not a concern, the answers you get are in DAC values, not volts. You need to do your own calibration - which will need to change if anyone/anything adjusts the microphone volume settings. If that's not a concern, note that your PC's sound card may have low and high frequency roll-off, and might not have very good frequency response in general, and might not be linear. If you would like to take a quick look at what your signals look like, www.CompleteTest.com has a PC Scope on its Products page. The PC Scope uses the microphone port as an input and displays the signal on a scope-like display. It is written in LabVIEW 7.0. You can use it free for 10 days. Les Hammer Complete Test
Re: Aborting a SubVI
You can use an Invoke node with the 'Abort VI' method and get a reference to your subVI and kill it that way, but it's not good practice to use Abort to stop a VI, it's really a developmet/debugging tool. Another problem is the Sequence structure, they cannot be broken out of before it's done executing all of its frames. Your best bet is going to be to redesign your subVI so it doesn't use the sequence, and instead have it running in a While loop. You can then use a Queue to send a message from your main VI to the subVI to tell it to stop. A bit more work, but it's a better way to go about it. Ed
magnetic resonance application based on LabVIEW?
Looking for information about any project past or present that used LabVIEW to write a magnetic resonance application.
Re: record ECG during MRI scan
Please refer a HREF=http://exchange.ni.com/servlet/Redirect?id=11068504here/a.
Re: time stamp to number conversion
Use the Get Date/Time in Seconds widget. Connect it to a To Double Precision Float conversion to get the time (since 1904) in seconds. Les Hammer
Re: record ECG during MRI scan
Hey psk, There are two approaches here. If you know enough about the noise, you can write a program to filter it out. For instance, LabVIEW 7.0 has filter express VIs. Secondly, you could look into shielding your equipment. Are you using a shielded terminal block, cable, and a DAQ board with an electronic shield? Let us know some of the details if you want any help figuring out what we can do. Best regards, Justin T. National Instruments
Re: DAQmx, etc.
On 18/05/2004 at 11:24 AM, Info LabVIEW Mailing List [EMAIL PROTECTED] wrote: In LV6 the 'AI read.vi' hogs the CPU waiting for the number of samples requested to be available. someone (sorry for not remembering the name) came up with a 'non-blocking AI read.vi' which i have been using happily. i noticed the new DAQmx 'contgraph.vi' is hogging the CPU also. is there a cure for it ( i think it makes DLL calls)? While read operations in DAQmx consume 100% of the CPU, like reads in Traditional DAQ, there are a couple of critical differences: * In DAQmx, other threads in LabVIEW are not blocked and may continue to execute. In fact, even other threads performing DAQmx operations that involve other DAQmx tasks are not blocked and may continue to execute. * In DAQmx, read operations yield. That is, if there are other threads running on the system, they are not blocked and may execute. Basically, DAQmx read operations say, Hey operating system, if you have nothing better to do, let me run so I can be more responsive. As a result, the CPU monitor is not an effective tool to measure the efficiency of the application. Another potential disadvantage is that your [EMAIL PROTECTED] client won't run during read operations :) As a result, replacement read VIs should not be necessary for most applications that use DAQmx. This knowledge base article discusses this topic: http://digital.ni.com/public.nsf/websearch/ 09D80223FA84113D86256D6A004B97C3?OpenDocument geoff -- Geoffrey Schmit Senior Software Engineer National Instruments [EMAIL PROTECTED] www.ni.com
RE: Intelligent Stepper Drives
Title: RE: Intelligent Stepper Drives George, I've used RS-232 NEAT 310M stepper controllers in the past (over 5 years ago). They've worked quite well on high volume production lines that ran 24 hours a day. See: http://www.neat.com/ Regards, otto ---original message Subject: Intelligent Stepper Drives From: George Gatling (Contractor) [EMAIL PROTECTED] Date: Tue, 18 May 2004 14:41:39 -0400 I am building some linear stages to be controlled by labview... the application is fairly distributed, so PCI cards and drives are not so convenient. I am looking for a 1 or 2 axis stepper drive with integrated controller and RS232 or ethernet communication. The motors are fairly small (3 amps currently). The market seems saturated with stuff for the hobbiest, but I am looking for something a little more industrial and use out of the box. Anyone know of products like this? George Gatling Applied Technology Division, SFA Inc. Space Physics Simulation Chamber US Naval Research Laboratory 202-404-5405 (phone) 202-767-3553 (fax) If trees could scream, would we be so cavalier about cutting them down? We might, if they screamed all the time, for no good reason. --Jack Handy --End Original Message-- CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain information that is confidential and/or legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, please DO NOT disclose the contents to another person, store or copy the information in any medium, or use any of the information contained in or attached to this transmission for any purpose. If you have received this transmission in error, please immediately notify the sender by reply email or at mailto:[EMAIL PROTECTED], and destroy the original transmission and its attachments without reading or saving in any manner. (1)
LabVIEW.exe-Application Error
How do I stop this error from happening? It seems to be a random act of damage.
Re: record ECG during MRI scan
Thank you for your suggestion, I have tried filtering but the frequency range of ECG signal (0.5-100 Hz) is exactly same to frequency range of MRI induced artifacts (100Hz). It seems, very complex procedure will be requird. Don't know much abt shielding..i will do research abt it. thanks
writing data to an Excel worksheet using LabVIEW
I am currently writing numerical data to Excel using Invoke and Property Nodes in LabVIEW. My problem is that I want the data to be written to Excel but I want the spreadsheet to stay hidden until the writing process is complete.. Writing all the data on the screen takes upwards of two minutes for a spreadsheet that is only 1024 rows long (by about 20 columns wide). I see a Worksheet property called visible but I cannot find anywhere the acceptable values for this parameter. It's NOT binary as I would have guessed it to be but istead visible is asking for a 32 bit Integer. I need to know what 32 bit Integer numeric value might correspond to not visible. Or is there some other way to hide the spreadsheet while I write to it?? Also, when I right click on Visible among other things I get an option that says Help for Visible but when I select that nothing happens.. When I right click on any parameter of an invoke or property node, I get the same Help for but again nothings happens... What have I failed to install in terms of help files?? And can anyone answer my question about how to hide the spreadsheet while it is being written to or any other way to greatly speed up this writing to excel process?? Any help would be appreciated... thanks..
Is there an easy way to document a DAQ configuration using DAQmx?
I'm looking for an equivalent to the Virtual_Channel_Info_Grabber.vi that was available for traditional NI-DAQ. I want to be able to create a text/XML file with all of the configuration information for a task or virtual channel. Specifically signal conditioning settings.
Re: Datalogging and multiplot graphs/
LabVIEW 5.1 is pretty old. If you want to review LabVIEW 7.0, you can download the eval a href=http://sine.ni.com/apps/we/nioc.vp?pc=rescid=10440lang=USp_0=eval;here/a.
Re: Easy question: is it possible to copy an indicator or a...
If your front panel is so large that the user has to scroll up/down, left/right to see everyting, it's probably too large. As a rule of thumb, I design a front panel so it fits an 800/600 screen. Things like the tab control, pop-up subVIs, and sub-panels make this possible. I would suggest you start with Chapter 6 of the LabVIEW Development Guidlines (HelpSearch to LabVIEW Bookshelf). Using the same indicator on different scrolled locations is possible because you can programatically move it but it's pretty involved to get screen position, etc, and move something back and forth.
Re: Datalogging and multiplot graphs/
you should read in the file first. From the Read File VI, you now have (for example) an orange wire representing an array of doubles. Now take the new data you want to plot, and do a Build Array with the old data (read from the file) and then wire the built arrays into a graph. Somethings to keep in mind is that the arrays should be the same size (dimension). If you do a Build Array with array 1 having 10 pts, and array 2 having 12 points, the resulting array will be a 2x12 array. Therefore, you will have 2 extra points in array 1's slot in the new 2D array (that are the default vaue for that datatype). If your array are not the same size, you should resize them yourself before you call BUild Array (use Delete From Array, or Array Subset). Another thing to keep in mind is the time base, if the two signals don't have the same time base you can use Align Waveform Timestamps (if you have waveform data), or Interpolate 1D Array if you have an array.
Re: Datalogging and multiplot graphs/
nice! Where can I get the LV 7.1 eval version?
LabView driver for DATAQ DI-148 or DI-158 or DI-194
Looking for LabView driver for any of the $25 DATAQ data acquisition hardware
Re: LabVIEW.exe-Application Error
do you have any more specifics on the issue? What version of LV, what are you doing when the crash occurs (running a VI or editting), can you reproduce it, etc. Also, is there anything else reported with the crash, (error number, line number, module, .cpp file name, etc).
Re: Auto-Replace Currently Running VI?
the LV team made this drop dead simple in LabVIEw 7.0 by intgrating your VI and the command line. If you ahve LV 7.0, open the example called CommandLine.vi to see how it works. If you don't have LV 7, then I recommend that you look at the evaluation version just for this feature. The eval is free, and the example I mentioned is easily found from the Example Finder. This feature alone my make it worth your while to upgrade.
Re: Continuous sin wave generation without buffer
If you are performing any sort of mathermatical analysis, then you should upgrade your base version of LabVIEW to either full or professional. The extra cost for the upgrade will be paid for as soon as you call the Sinewaveform VI you mentioned. In addition to function generation, you will get analysis routines for FFTs, Linear Alg, Filters, Windowing, etc. I used to have the base version only, and I wonder how I got anything done. It seemed that I always needed to write my own math routines. What a waste of time! Just call the ones that the experts write, debug, and maintain.
Re: how to install and use labview goop wizard in labview 7.0 or 6.1
yeah, have you tried the information available from the NI site? Just type: +GOOP into the search field and you will get lots of information, tutorials, etc. here's the search results for the search mentioned above (http://search.ni.com/query.html?col=alldocsqs=-languagetype%3Anonenglish+-contenttype%3acommunitydiscussionslayout=defaultqt=%2BGOOP)
Re: string input to CIN is missing?
CINs are a pain. Whenever possible, use a Call Library Function (CLF) instead. Things will go much smoother for you. If you have LV 7.0, there is a shipping example called Call DLL.vi in the lv root\examples\dll\data passing\Call Native Code.llb. This example is an excellent resourse, and should address any issues you have with calling external routines from LabVIEW.
Re: Datalogging and multiplot graphs/
There exists no LV7.1 eval.
Will Value change events fire when changed via ActiveX?
I have a VI with an Event Structure defining several Value Changed events. These events are associated with various buttons on the control panel. When I work through the panel and press the buttons, the events fire correctly. However, if I connect via the COM/ActiveX control and change the control values, the button indicator light changes, but the Value Change event does not fire. Can we trigger value changed events remotely or must they be triggered via a mouse-click on the button?
Will Labview 6.1 work with Windows 98? If it does, will it be less efficient?
Thanks! Lauren
Re: VI for HP70843B??
No, we do not have a VI for this instrument. Have you managed to find one over the past few years? Ray
Re: Errror 1305 When installing Lab View 7
There are two possibilities: 1. There is a problem with the CD - Try copying the contents to your hard disk drive and try the install from that location. 2. The installer service does not have adequate permission to access your System32 folder - This can happen if you have NTFS on your drive and the System account does not have Full Access to this folder. If item two doesnt make sense, please repost and I will try to walk through in more detail. Naren
Re: append front panel image crashes in 7.0
try to generate an HTML report first, and then print that. Some printers are worse than other at printing (what looks like) a simple object. Otherwise, I would do some basic trouble shooting, like can you print a simpler front panel image (say two numerics) to the printer. Next, I would try to print to a different networked printer.
Re: Datalogging and multiplot graphs/
Labview 5.1 may be old but it is just as useful and has far lower machine requrements. I have LV 6i still the shrink wrap simply because we never had the time or resources to upgrade several years worth of code just to have the latest version.
Re: array to database
when putting arrays into a DB, you should define the column to be image data. (I'm sorry but I forgot the word that the DB people use, it's not image data, but I think it is similar...). Since an image is a 2D array, that data type works perfect for arrays of data. It will let you insert the entire array into one cell. Sometimes strings and databases don't work well with each other (null strings, and termination chars). Look at the shipping example(s) that come with the toolkit to see various ways around this. I think that Access (in trying to appeal to everyone) is the worst at arrays of strings.
Re: simulating a sinus-signal in a graph
either build a Waveform (using the Build Waveform VIs) and supply the initial time, and delta T. Or use the waveform Graph, and a bundle to supply the array of data with a initial time, and the delta T. LabVIEW ships with an example called Waveform Graph that illustrates the various ways to transform the data that is shown on the graph. The middle graphs show what you are looking for. Also, the LabVIEW help (which is excellent!) describes what you need to do in great detail. Just look for Waveform Graphs.
Errror 1305 When installing Lab View 7
When installing labView 7.0 receive the following: Error 1305.Error reading file: C:\WINNT\system32\ninetbrw.ocx. Verify that the file exists and that you can access it. My problem is that the installer places this file out there and does not seem to be able to access it.
Re: radar
Creo que quieres usar un polar plot de LabVIEW. Para hacer eso, tienes que tener LabVIEW 5.1 Full o Professional o mayor. Debajo hay unos enlaces con mas informacion. http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/9cec8b2c1e67039586256def006f9a0e?OpenDocument http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/f8f77c54c51b33a2862562ba0001ec44?OpenDocument Espero que esta informacion te ayude. Saludos, Erin
Motion control and break-points
I have a motion control application, where a Hall probe is moving through a magnetic field. The magnets can have quite awkward shapes, hence the intervals between the locations where I need to take measurements are not necessarily evenly spaced spaced along any of the axes. The implication is that I cannot use the modulo option to define multiple break-points for triggering my DAQ. Question is: can I define multiple break-points before starting a move, or is it always only one, as in the NI examples? Many thanks in advance, Mihai Costache Senior Research Development Engineer Industrial Research Ltd. Brooke House 24 Balfour Rd., Parnell PO Box 2225 Auckland, New Zealand DDI: +64 - 9 - 920 3645 Fax: +64 - 9 - 920 3106 www.irl.cri.nz Men stumble over the truth from time to time, but most pick themselves up and hurry off as if nothing happened. Sir Winston Churchill (1874-1965)
Re: Continuous sin wave generation without buffer
Just my 2 cents put you would benefit with upgrading to nothing less than 7.0 but why not go 7.1 If this is an option do it. DAQmx Assistant alone will save hours of design time. Not to mention all the other math functions now available with 7.1 Joe
Re: Aborting a SubVI
Ed, Thanks for your help. I was afraid you might say that about the sequence loop. I had read some articles that lead me to believe that I should re-design to another type of loop. I have a number of tasks that need to be complete before the next task starts, which made it seem (at the time) that the sequence loop was my best choice. Will the while loop be ok for that kind of requirement? Matt
Re: LabVIEW.exe-Application Error
also one other thing if this is already an executable does it work in design time. It sounds to me like there may not be any wait functions in any of the loops which will cause the cpu usage to max out.