Changing local variable dynamically
Hi, I'm testing 8 motor wich run in sequence for a certain amount of time... Each motor has a specific graph and information that should be updated... I'm using a for loop (n=8) and I'd like to use a generic local variable (changing its reference according to 'n') to update the right graph each iteration... Right now I'm using a Case (with 8 possibilities). Should be easier... Can this be done? Thanks Erick
Ploting graph on button click
On button click i am appending a new element to array, so that i can have selected reading in my array. This all things mention above is done in case structure, at true condition. now i want to use this arrays(witch are created at true case) When i press button plot, i should get a graph of above array. help me please.. Shital plz give me your e-mail id, so i can say thanks to you.
Buying LabVIEW abroad
Hi folks, Here in the UK, the Full version of LabVIEW costs 1685 UK pounds. In the US, it costs $1995, = c. 1100 UKP at the prevailing exchange rate. Even supposing we have to add VAT at the prevailing UK rate, this only takes the price up to c. 1300 UKP. So, is there any reason at all why I can't buy LabVIEW in the US and use it in the UK? I'm sure the marketeers at NI have some reasons they trot out in response to such enquiries, but seriously - why not? Anyone in the UK (or anywhere else in the world with a favourable exchange rate) done this? Any problems? Simon Simon Whitaker [EMAIL PROTECTED] Head of Software Development, Tiab Ltd tel: +44 (0)1295 714046 fax: +44 (0)1295 712334 web: http://www.tiab.co.uk/
creating enum from list
I would like to update a number of enums in my system using some sort of script, that would take c++ files, find enums in them and convert these enums into LV eums. I'm pretty sure we can get to the point where we have the elements of the enum in some sort of list, and the c++ enums will start at 0 and have a continuous stepsize of 1. The problem is to turn this list into a LV enum. Anyone have any ideas? //Martin
Removing files from Source Code Control
I have 420 seperate Vi's that form a project that is part of the LabVIEW inbuilt source code control , however due to test equipment problems I now need to have two slightly different versons of the same project and ideally they will be installed on local machines (currently on network drive) for the time being. Problem is even when I copy the files from the network to the local machine they are still governed bt SCC ie I have to check them in and out. What I really want to do is extract the 420 Vi's from SCC and copy them to a location of my choosing and then I can make changes and save multiple versions. Can this be done ?
Labview UK pricing?
An excellent question - maybe our friends at NI(UK) could give us an answer? -Original Message- From: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED] On Behalf Of Simon Whitaker Sent: Wednesday, March 31, 2004 9:41 AM To: Info-LabVIEW List Subject:Buying LabVIEW abroad Hi folks, Here in the UK, the Full version of LabVIEW costs 1685 UK pounds. In the US, it costs $1995, = c. 1100 UKP at the prevailing exchange rate. Even supposing we have to add VAT at the prevailing UK rate, this only takes the price up to c. 1300 UKP. So, is there any reason at all why I can't buy LabVIEW in the US and use it in the UK? I'm sure the marketeers at NI have some reasons they trot out in response to such enquiries, but seriously - why not? Anyone in the UK (or anywhere else in the world with a favourable exchange rate) done this? Any problems? Simon Simon Whitaker [EMAIL PROTECTED] Head of Software Development, Tiab Ltd tel: +44 (0)1295 714046 fax: +44 (0)1295 712334 web: http://www.tiab.co.uk/
LabVIEW and USB to 1-wire (DS2490)
I have made an USB to 1-wire adapter using DS2490. I can communicate with the DS2490 using USB standard requests, but I'm having a hard time getting data from the device attached to the DS2490 (i.e. DS1820). I'm using LabVIEW 7express.
Re: dinamically reading load cell
How did you progress ?
excel headers
I am continously acquiring data from transducers nad tthermocouples using the while loop and writing data to exel sheet. My problem is that i have not been able to automatically write headers of my choice to the excel sheet thereby categorizing the data from each transducer and thermocouple. How can we give header from the while loop or there is any other way ?
Re: LabVIEW Plug-in architecture
If you have LV7, there's one here: \Program Files\National Instruments\Labview 7.0\examples\viserver\plugins.llb\Plug In Example.vi HermanChan [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] I found in LabVIEW User Manual 17-2 saying that: Create a plug-in architecture for the application to add functionality to the application after you distribute it to customers. For example, you might have a set of data filtering VIs, all of which take the same parameters. By designing the application to dynamically load these VIs from a plug-in directory, you can ship the application with a partial set of these VIs and make more filtering options available to users by placing the new filtering VIs in the plug-in directory. Any sample code for doing this? Thanks.
Re: microsecond counter
err how to post in group? yeah it indeed help me in getting time stamps more than what i required(nanosecond counter)
Hi!!I want to scale an analogic signal, and I donĀ“t...
Hi!!I want to scale an analogic signal, and I don=B4t understand very well how interpolated option works in Scaling and Mapping. Can anyone explain to me, the option Interpolated, in the function , Scaling and Mapping? Thank you!
Re: Changing local variable dynamically
dumbest_dummie [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, I'm testing 8 motor wich run in sequence for a certain amount of time... Each motor has a specific graph and information that should be updated... I'm using a for loop (n=8) and I'd like to use a generic local variable (changing its reference according to 'n') to update the right graph each iteration... Right now I'm using a Case (with 8 possibilities). Should be easier... Can this be done? Thanks Erick Hy Eric, If I understood you right, you are trying to edit 8 graphs in a loop and with each loop step you'd like to modify a special one of your collection of 8. To do this I would get all eight references of the graphs and put it into an array ordered just like you'd like update the graphs. this array can be passed to the loop with auto indexing and so you'll get automatically get the right reference of the graoh to be updated.
Re: Ploting graph on button click
hi Julion.. i am very new to LabView, I am learning and working at the same time on LabView7 thanks for your help.. your both asn. was exactly what i want thank u very much. I gone through you ans to other que. Can you please tell what is that language. Regards Shital
Re: Ploting graph on button click
hi Julion.. i am very new to LabView, I am learning and working at the same time on LabView7 thanks for your help.. your both asn. was exactly what i want thank u very much. I gone through you ans to other que. Can you please tell what is that language. Regards Shital
How do I register to DotNET events?
Hi there, a couple of months ago I tried to register DotNET events with a labview application. I was told, that would be impossible right know. Through this feature stays very interesting for us, I'd like to re-request if anybody knows how this can be done or when NI plans to support this feature? Thanks, Sebastian Dau
unable to open resource files
I'm trying to execute a LabVIEW executable application from a simple C program, but I keep getting the error message unable to open resource files. The Labview application runs fine if I just execute it from the command line, but from a C-program it doesn't. I've tried the execl() function, and I've also tried to open the labview runtime dynamic libraries in the C program using uselib(), but without success. Does anyone have any ideas on this? I'm running Linux kernel 2.4. Thanks in advance!
Pointer to Pointer from DLL
Hello Dear Wireworkers Actually I'm drawing Code (some vi's) which give me access to a USB-Device. For this I'm using a dll which is provided by the manufacturer. It works great. I can send and recieve the data really fast. All the Basic Functions are woring properly. Now there is a Function to read and write the Contents of the EEProm on the Device. This DLL-Call wants a struct with some values in it. some DWords, some Booleans... no problem. But It also wants 4 pointers to strings. As the only possibility to simulate a struct is creating a array of U8 in the right size and type-cast it to a cluster or pull the data out myselfe, I'd get four pointers. This means I've got 4 32-Bit numbers which describe the memory-location where to find the strings. But how do I get the string in Labview? Only idea i have is to write an own dll to which I give the pointers and return the strings (I think I would need two ddl-calls. One to get the size of the string, and the second one to get the string) Is there another solution? Thanx and bye Marco
Re: clear xy graph...
hi while searching for my problem of clearing graph, i got your ans. i am very new to labView,i have labview7 i don't understand what is this cwgraph1.cleardata please give tell me indetail thanks in advance shital
Bill Gates Endorses the LabVIEW methodology
From a Reuters news story dated March 29, 2004 Gates also said advances in programming will allow software developers to create applications in less time by using visual representations of the inner workings of software rather than writing lines of programming code. http://story.news.yahoo.com/news?tmpl=storyu=/nm/20040329/tc_nm/tech_microsoft_gates_dc Alan Gleichman Hella Electronics Corp. Plymouth, Michigan
How can I define where my program opens a dialogue (for example in the middle of the monitor)?
I don't want to change the whole appearance of my VI, so it could be easier to define the position of my dialogue box that opens when I save my data. At the moment the dialogue box covers buttons where I can see what I'm saving (information I need to name my files).
Re: Labview UK pricing?
One guess might be Import taxes from a non-EU country. Another might be because of the localisation which has to be done for europe which might them be spread over ALL European versions of LabVIEW. Just guessing. Shane.
Re: Ploting graph on button click
I'm sorry, I'm french and I didn't really understand what you meant there ??!? Regards Julien
Re: excel headers
The easiest way to do this is to build a two dimensional array of strings. In the first row you can place your column headers. They you can use the array to spreadsheet string function. This will allow you to specify a delimiter, default is tab. They simply use the write characters to file function. You can specify a .xls extension for the file name. This will build your columns with headers on the top and everything will be in different cells. Hope this helps.
using picture ring with multiple controls
I am using a picture ring with 21 pics in it.each pic represent a state, I am using a flat task structure to execute this states. the question is how can I increment the picture ring from inside every single state/task? regards Luis
Re: How can I define where my program opens a dialogue (for example in the middle of the monitor)?
Are you using the standard SAVE dialog? Or are you using a custom VI as a dialog? If you're using the standard box, you can't change its location. You could move the window that calls it (the one with the info you want to see). Make it bigger, move the buttons to the outside edge, whatever. You could actually move it (record it's window position, set new position to 0,0, run dialog, restore original position), although that's a bit jarring. You could suggest a file name using the info (Run13 High Speed.txt or something). You could put the info into the prompt (Please save the data for the high-speed run13). If you are using a custom VI as a dialog, then you're free to move it (set its position) wherever. You could copy the info from the calling VI and display it on the SAVE dialog. Hope there's an idea you can use in there.
Re: VI loading times-out for 50 seconds when another networked PC is shut down
The paths to one or more of your VIs still point to your old computer. Only if it can't find the original does LabVIEW start to look for them locally. Once you've loaded everything with the old pc off the network, you should save every VI and the next time you do a load, it should automatically load everything locally because the paths have been updated. You can verify this by displaying the hierarchy and turning on the display of the full path in label.
Re: clear xy graph...
it's just a property node. like if you were to run a macro then look at the code for it. this is what it would look like. Just do what A rafiq said and you'll be fine.
Re: How can I fix this error code -1300..
That explains the error you got from the LV driver. The first thing it does is send the ID? string to get the type of instrument. There's a few more things you can try. Check or replace the GPIB cable. Try a different instrument and see if you can communicate with it. If that works then you know your cable and GPIB board are OK. Check the address setting on the instrument. Try different commands to program the instrument. Contact Agilent or check the manual to see if there's any dip switches/front panel buttons/menu options on the instrument that need to be set.
RE: OpenG Coding Challenge - Remove Backspace
It will be some work, but something like the evaluation done by NI on the different submissions. My vote is evaluation for not only minimum time but memory foot print etc. For the 1st NI challenge I was just out of the top 10, but I was about 0.1% of the size of any of the top 10. I always thought that should count for something. I think the fastest entries in this contest will also be very lean memorywise. This problem does not benefit from the lookup table techniques that worked so well in the NI challenge. next is average speed on multiple platforms. :-) (mine is still in the 20 mS range, but given that the peecee has a factor of 2 better compiler, and this is on an old 800 Mhz machine, it might come close to the posted times). It may be very interesting to create the executable and then profile it with some of the high end (not NI) performance tools. The best way to estimate your speed is to run both the example and your vi on your machine. Multiply the ratio of these by the speed of the example on the official machine (1008.6 ms). This should give you a decent prediction of your official time, despite the differences in hardware. It worked for me. My ratio here at home predicted my official time quite well. In fact, you may want to make a small change to your copy of Time Remove Backspace.vi to have it estimate the official time for you. Paul Brown
Programming guide for Amplifier research 30W1000B
Does anyone have the programming guide for an AR 30W1000B amplifier? Their website link is does not provide the manual and their customer service reps are out to lunch?
Re: Who can create a clock for me with the following functions??
Can you be a little more specific on your timer? From what I understand: I believe you want a countdown timer. You can set the time from which you would like it to count down. When the start button is pressed, it starts counting down. When you press stop, the time stops. If you press Start again, it resets to the time from which you would like it to count down, and goes again. If you press pause, it stops counting down, but if you release pause, it continues where it left off. Am I understanding correctly? Mark
I am looking for the solutions of application note 163, I tried but..
But it doesn't work as it should.
Re: Multiple Plots In Seperate Windows
Thanks thats really similar to what I am doing its just that my main form sends data which is causing the flashing. This design is a great idea. Thanks a MILLION for your help and time!
Re: How do you write to a 3D array?
3D array handling is not much different from 2D, you just have another coordinate to specify - page (row, column, page). Create a 3D array constant and wire it to e.g. the replace function and it will automatically scale up to show you the index and length options involved... PS. If you have XY arrays why not just have a 1D array of XY sets (as one would use for multiplot XY graphs)?You could even write the whole array to a graph (save you the extraction operations) and then choose to see whatever combination you would like by setting the color of the plots you want to hide to transparent.
Re: OpenG Coding Challenge - Remove Backspace
Hmm. Just got round to my second approach and it also takes 20ms. However if I change it to subroutine it comes down to 8ms here. Have the posted results been normal priority or subroutine? -- Dr. Craig Graham, Software Engineer Advanced Analysis and Integration Limited, UK. http://www.aail.co.uk/
Can I create a drag and drop interface with Labview
Can I import COM objects and use these objects as a drag drop Laview user interface?
Re: How do I register to DotNET events?
I think now they have this fixed with 7.0. I do know that there was a bug. here is a link. hope it helps http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101RNAME=ViewQuestionHOID=506500080009ABECategory=LabVIEW.LabVIEW+General
RDA delay
I am using SCXI 1000DC with 1121 ,1160 modules .these are installed at server .from remote computer I am running my application built in Labview7.but there is small delay when i run application from remote computer,because the processing and diplaying in the remote computer The two computers are connected wiht BNC cable throug Network cards. Now is it possible for me to run the application from remote computer and processing,command out put to the 1160 be at server to getrid off delay ?
Re: Need to output time
Yeah,I keep getting the same results, so I don't think it's the timer turning over. I worry that it might have to do with my buffered counting and the DMA channels. I have 3 DMA channels and all are being used in the counting. Could that somehow affect my counting? Thanks a lot. I'm a novice to Labview and don't understand a lot of the inner workings. Katie
Re: Adjusting Bitmap color range
The easiest way to do that would be to use a picture ring and modify the bitmap image for all the stages that you would need and place them into the picture ring and update the ring for each case.
Re: Multiple Plots In Seperate Windows
ithats really similar to what I am doing its just that my main form sends data which is causing the flashing.=A0/i --- I would suggest putting the data into a separate global function (better than global variable for non-trivial amounts of data), and letting the slaves pull it out. At least that's what I did. i This design is a great idea.=A0/i I can't send the code, as it was contract labor. iThanks a MILLION for your help and time!/i Please send check for one MILLION to: ;-
Adjusting Bitmap color range
Hello everyone I am currently using Labview ver 7.0. I currently have a bitmap picture of an AutoCAD drawing that I would like to edit programmatically. Basically I have some temperature sensors on my hardware and I would like to add a color range to a specific spot on my bitmap image. The way it would function is that as the temperature increased at the sensor, the color of that specific area in the bitmap would change color (yellow to red or something) My thought right now is to possibly try and accomplish this with either custom shaped color boxes, or by creating sections on my drawing and being able to color each section separately (similar to how you can section a picture for website links). The picture contains sections that are not square so a custom shape is best. If I have been unclear or feel I have left something out please contact me and I will try to be more descriptive. Thanks TK
How to create a PC self test in LabView?
I am evaluating the possibility of creating a PC self-test program in LabView. Is this possible?
Re: Digital I/O with multiple SCXI 1162 HV
Hello Randall, You can configure each SCXI-1162HV as a 32-bit port. This is cool because you can do a single read and acquire the status of all 32 lines. Since you have 4 SCXI-1162HV modules, you will need to configure each port and then you can read each port continuously in a while loop. If you are programming this in LabVIEW, you will need to have 4 VIs for configuring each port and 4 VIs in your loop for reading each port. You can also do this in DAQmx if you have LabVIEW 7.0 or other DAQmx supported software. Regards, Bill B Applications Engineer National Instruments
Re: Adjusting Bitmap color range
does anyone know how I can actually make a color area I want to make the colors fade from one to another, the same way a meter does
Re: How to create a PC self test in LabView?
help us understand your question. Do you mean that you want it to check various things on start up (ie monitor pluged etc) or what type of self test are you talking about. Please be more specific
Re: OpenG Coding Challenge - Remove Backspace
Craig Graham wrote: Hmm. Just got round to my second approach and it also takes 20ms. However if I change it to subroutine it comes down to 8ms here. Have the posted results been normal priority or subroutine? Apparently the tests are being done reentrant, but not with the VIs set to subroutine. Both changes give the same doubling in performance- I assume from ditching debug and UI code internally. Does a similar speedup from ditching debug code occur naturally in a built app for VIs that are not reentrant? I've never noticed, but I've never bothered looking at the effects of things like this before. -- Dr. Craig Graham, Software Engineer Advanced Analysis and Integration Limited, UK. http://www.aail.co.uk/
key navigation.
Dear LVers: I am sorry, my english is not so good. Anyway I will try once again. I can use the key navigation dialogue box, to choose keyboard shortcut that sets the key focus to control or that change the status in a boolean control. But I can choose only the nexts keyboards: home, page up, page down, escape, F1, F2, F3, etc. The problem is I would like to use other keyboard, for example A, B, left arrow, rigth arrow, up arrow, down arrow, and I can't choose these keyboards in the key navigation dialogue box, because they don't appear. What could I do? Daniel
Re: How to create a PC self test in LabView?
Memory test, HDD, Buses, Clock, Ports,... after a PC is manufactured a final test.
Re: VI loading times-out for 50 seconds when another networked PC is shut down
I agree with Dennis. I also want to point out that mass compiling would solve the loading delay problem for all of your VIs.
Re: How to use a USB-to-parallel adapter to communicate with my switch device?
Hey kelvin, Did you see the link that I posted earlier? If not, you can read my response above and view the text at the following url: http://exchange.ni.com/servlet/ ProcessRequest?RHIVEID=101RPAGEID=135 HOID=5065000800438A UCATEGORY_0=_49_%24_6_UCATEGORY_S=0 If that doesn't address your issue, please let me know. Thanks, Marcus G. National Instruments
Re: How can I communicate betwen parallel asynchronous VIs?
tmh, No, I'm pretty sure you understand perfectly, as that's exactly what I wanted to do. I knew that if you had two loops on a block diagram, they would execute in parallel, but I assumed that if you had a loop and a SubVI on a block diagram, that whichever one started executing first would have to terminate first. I was making the problem much more difficult then it needs to be, as that method would allow me to use notifiers to achieve the intended effect. As far as notifiers 'not working with the VI Server' as I must have put it, I got that straight from the LabVIEW help files. Under the topic Notifier Operation Functions I read that You cannot use notifiers to communicate with VIs on other computers. For example, you cannot use notifiers to communicate across a network or the VI Server. Originally, I was using a named notifier. So, my master vi would create a notifier to send commands with, then it would launch the slave vi asynchronously with an invoke node, and send commands when necessary. The Slave obtained the notifier by using the Obtain Notifier vi, supplying the same name as the Master did for the name parameter. This worked fine when I was testing - however once I built my program to be an executable, the Slave created a new notifier, rather than obtaining the same one being used by the Master. (I'm not 100% sure that's the exact reason - it may just not have received commands [it was a while ago that I was playing with that approach]. But I do know that that method works fine in an uncompiled program, but once it's compiled, it stops working. Who knows - there may exist actual ways to pass the notifier, like a global variable or something like that). According to the *fabulous* LabVIEW documentation, Queues don't have this limitation, so I rewrote my VI to use a queue of length one, rather than the notifier. -sidebar (does anyone find that the LabVIEW documentation can be frustratingly lacking at times? Like, why can't I use notifiers across the VI server? And why can I use queues? I'm not asking for them to show me the guts of LabVIEW, I just think that it would give developpers more control and confidence when coding that they know what's going on, and have at least a general idea of how things work) --end of sidebar However, somewhere in my switch between Queues and Notifiers, I must have messed up something, as after that worked fine during the testing phase, after a compilation, I received an error (1013 I believe) whenever I tried to load my slave saying Front Panel Heap Dump - which is strange because the front panel of my slave should not have been loading, and was supposed to have been removed from the executable. Not that that last bit is super relevent to the original topic of discussion, but it might be useful to someone later on. In any event, thank you for your help. I suspect that that will be the perfect solution for my needs, and when I get back to that chunk I was working on and get it working, I'll let you know. Thanks again.
Re: Need to output time
I believe the buffered counting could be the problem. You might consider posting to the daq forum for help on this aspect of your code. Were you able to learn anything when you auto indexed your wires? I was thinking over lunch that the default values for numerics is zero and when you concatenate arrays of different lengths the shorter one is increased in length with default values. If your loop itterats fewer times than you think, this would explain the column of zeros.
Re: Digital I/O with multiple SCXI 1162 HV
Thankyou Bill for the answer. It will be a few days before I start this project but wanted to head off any problems I could prior to starting it. Will there be any need for semaphores or other synchronization methods to prevent collisions with these vi=92s at the driver level? Thanks again for the response. Randall
Re: Multiple Plots In Seperate Windows
I actually got mine working with out using occurances. What benefits would I get by using them? As of right now as can be observed in my code, I just having everything in a while loop. I imagine this is as ineffiecent as possible due to constant polling. Is this what occurances would eliminate. Thanks.
Re: dinamically reading load cell
1)=09Yes, you are right. It isn=92t undersampled really, but reviewing the block diagram in my improvised Write Loggin VI , I have found that the =93raw=94 signal was averaged too (300 samples) and I recorded it as is. This is an answer for your item 3} too. 2)=09Sync pulses have different amplitudes because I=92m reading digital Sync pulses with the PCI-6013 A/D converter and I have some =93hum=94 between DGND and AGND. Because I=92m only interested in Time info, I don=92t care in amplitude modulations at this time Analyzing LOAD CELL LOGGIN graph, some averaged readings at Sync pulse windows, show =93minor=94 errors around real 73 grams trays, say + / - 10 gm, and many shows =93gross=94 errors around -30/40 gm. At first case I suppose a mix of rumble and trays hits, masking reads . Looking at second case, I saw some trays =93hanged=94 on the tracking rod and =93robbing=94 hence 30-40 gm. Now a technician, is fixing this kind of mechanical issues ( I hope), and engine isn=92t operative now. I think that in a couple of weeks, I will takes a =93real=94 raw signal and will send it to you. Before now, I tested the load cell weighting plastics tray only, but from now on, following votre conseil I will carry groups of 10 trays with known weights. When I take a static reading I get errors about +- 0,3gm from 0 to 500gm. I appreciate very much your help. Thanks a lot.
Combobox pausing operation of other VIs
Okay, I have a main VI which contains two paralell while loops. The first of which has 3 subVIs which contain a graph that upon user request get opened. Note the main VI does not pass any data to the subVIs. The other loop is what takes care of user events like a button being pressed and these comboboxes. While I have the VIs running and all three graphs are graphing different data in differetn windows but than I start to change the value of the combobox and it stalls all three graphs until the value is updated. The second loop waits until from panel activity but maybe I should use another method like an event loop, occurance, or notifier? any ideas
Re: Multiple Plots In Seperate Windows
i The way I have wrote it causes the windows to lose and gain focus as expected.=A0 Does anyone know how to stop the focus from constantly changing?=A0/ip The focus is changing because the execution is changing (in the same thread). You have the VI with the graph execute, and then quit. This will lose focus. My occurrence-based scheme had all child windows executing at the same time (different threads). This meant that the window on top had focus - no other window would have it until you clicked on that window (and brought it forward). Hope that helps.
Re: 500 cycles in a LV for loop, a c dll function can't open files anymore. why?
rtyu, If it is a memory leak, the task manager should show this behaviour just as Naresh suggested. Is the error generated for some specific file every time you run it ? Could you please send an example of a code which can reproduce the error. Arkadiusz Roszczewski National Instruments
Re: Excel collection variant
Dave, Your code is password protected, so I'm not able to review it. Even so, I tried implementing what you are doing on my own machine without success. I can neither read nor modify a DocumentProperties object. I can modify other visual basic objects, but not the documentProperties. My recommendation is that we try to implement a work around. The easiest work around is to use an excel macro to get the workbook's Document Properties and import them into LabVIEW. The macro code is already provided in the Visual Basic help file for builtInDocumentProperties: rw = 1 Worksheets(1).Activate For Each p In ActiveWorkbook.BuiltinDocumentProperties Cells(rw, 1).Value = p.Name rw = rw + 1 Next If you are unfamiliar with how to call an excel macro from LabVIEW, there is an example program that can guide you. You can find the program on our website at this url: http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3D9D856A4E034080020E74861p_node=DZ53003 Please let me know if this doesn't help. Thanks and good luck! Marcus G. National Instruments
Re: Print panel to selected printer
Steve, LabVIEW may not be populating your graph when you call the subVI. It's possible that you will have to open the front panel, print the graph, then close the front panel. This is particularly the case if you are using an older version of LabVIEW (pre-5.0). Knowledge Base (KB) 18FB2692 explains this problem more thoroughly. Use this url to review the KB: http://digital.ni.com/public.nsf/websearch/433544E20D6C423486256602004B2E59?OpenDocument Hope this helps! Marcus G. National Instruments
Re: saving and restoring,default controls values(LV7)
I can't explore yet, all Property Saver Toolkit features in deep, but I think that it is really GREAT !!! I get an easy and powerful solution to my requirement. Many Thanks.
Re: Multiple Plots In Seperate Windows
You have a rather hairy state machine going on (I looked at your code again). The difference I see is that you have ONE button which spawns window #1 or window #2 or window #3, depending on who's up already. But the logic to support that is part of the polling process of every loop. My app had one button for each window (each window was different). My reason for using occurrences was to eliminate all execution paths between the main and child windows. In other words the main didn't CALL the child directly, so therefore, they became parallel independent processes. This led to the correct behavior as far as windows on top, who has focus, etc. There are probably other ways to do it - VI server, for one. I did this project in 6.0 and didn't know about VI Server then.
Re: How can I communicate betwen parallel asynchronous VIs?
and I guess I should come up with a new expression other than frustratingly lacking at times, since I used that one already...
Re: three way switch?
kohokoho; Check out the followings: a href=http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B123AE0CB97A111EE034080020E74861p_node=DZ52036p_submitted=Np_rank=p_answer=p_source=External;Using a 3-State (3D) Switch in LabVIEW /a a href=http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B123AE0CBCC5111EE034080020E74861p_node=DZ52036p_submitted=Np_rank=p_answer=p_source=External;How to Create a Three-Position Vertical Switch /a Regards; Enrique Vargas www.visecurity.com
Re: Pointer to Pointer from DLL
Marco Tedaldi [EMAIL PROTECTED] wrote: Now there is a Function to read and write the Contents of the EEProm on the Device. This DLL-Call wants a struct with some values in it. some DWords, some Booleans... no problem. But It also wants 4 pointers to strings. As the only possibility to simulate a struct is creating a array of U8 in the right size and type-cast it to a cluster or pull the data out myselfe, I'd get four pointers. This means I've got 4 32-Bit numbers which describe the memory-location where to find the strings. But how do I get the string in Labview? How is life back in Switzerland? Well, it really depends. If the DLL is allocating them and just returning them to you you can read them with a little trick directly in LabVIEW. Create a Call Library Node. Configure it to use the library LabVIEW, calling the function MoveBlock with C calling convention and following parameters: return value : void 1) src: uInt32, by value, the 32 bit pointer from the struct 2) dest: C string or uInt8 array, depending if it is text only with zero termination in the buffer or binary data 3) len: int32, by value, the number of bytes to copy Preallocate a long enough buffer for the string or array in the LabVIEW diagram BEFORE wiring it to the input of the Call Library Node. this is best done with Intialize Array to create an uInt8 array and eventually converting it to a string with the Byte Array to String node. However there is the problem about who is gonna deallocate those buffers again? If the caller is supposed to do that without calling a function of the DLL itself you will have to find out, which API you can use for that. Ideally the DLL would have a specific function to which you pass the entire struct so that it will deallocate all embedded pointers properly. More likely though, does the function expect you to allocate those buffers BEFORE passing it to the DLL function and deallocating it afterwards. You could do that on LabVIEW diagram level similar to the MoveBlock solution above, calling DSNewPtr() and DSDisposePtr(), two other documented LabVIEW Code Interface Manager functions (checkout the Using External Code in LabVIEW Manual in the online documentation for their prototype definition), you can call in this way through the Call Library Node (this feature is not really documented anywhere but it works since about LabVIEW 5.0 without problems on all official LabVIEW platforms, which is the reason it those functions use C calling conventionand, and it's used in some of the VIs by NI themselves). However this gets soon almost unmanageable on LabVIEW level and if you have the possibility to create your own wrapper DLL I would certainly go for that solution. 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]
Re: Details on use of Device Control/Status.vi
Brooke Clarke [EMAIL PROTECTED] wrote: I'm writing an application where I need to be able to bit bang serial port output lines and check the status of serial port input lines in LV 5.1. In the vi.lib\instr\_sersup.llb folder there is the serial line control.vi and it uses two sub VIs to allow controlling the DTR and RTS lines by using the open serial driver.vi which can be opened and figured out plus the Device Control/Status.vi which is a yellow vi and can not be opened. I have the feeling that with the proper inputs to Device Control/Status.vi it would be possible to read the status of the serial port input lines CTS and DCD. Does anyone have details on using the Device Control/Status.vi? You must be using LabVIEW before 7.0. The new 7.0 serial VIs use VISA to control the serial port and VISA coincidentially allows you to controll all those handshake lines over properties of a VISA resource. The Device Control/Status node is not a VI but a built in LabVIEW node which is basically obsolute in LabVIEW 7.0. It was a direct interface to the Macintosh Device Manager interface together with Device Open, Device Read and Device Write nodes. You could theoretically control any device driver under Mac OS with these nodes directly, altough doing so could get a very tedious exercise, as the interface was rather low level compared to the rest of the LabVIEW functionality. Under Windows NI created a Macintosh Device Driver emulation layer for the serial port, which was located in the omnious serpdrv file. No other device emulation files where ever released. The io control codes into the serpdrv file are not public and I actually doubt there are any others, besides of the ones available in the _sersup.llb file, although this driver evolved over time having no real additional control options in LabVIEW 3 up to allowing some handshake control in LabVIEW 5. Don't bother about this interface at all. It's not worth the hassle, will most probably go away in LabVIEW 8 or 9 and VISA offers you a more complete control of serial port aspects in a much more platform independant way. 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]
Re: OpenG Coding Challenge - Remove Backspace
Craig Graham [EMAIL PROTECTED] wrote: Apparently the tests are being done reentrant, but not with the VIs set to subroutine. Both changes give the same doubling in performance- I assume from ditching debug and UI code internally. Does a similar speedup from ditching debug code occur naturally in a built app for VIs that are not reentrant? I've never noticed, but I've never bothered looking at the effects of things like this before. No, removing debugging only, will result in a gain of a few % execution speed at most. What speeds up things is, that for time critical or subroutine priority VIs, LabVIEW not only disables front panel updates (done anyway if the panel is not open), but even the code necessary to buffer the data for front panel display. A bitch to debug such a VI, (you really can't ;-) but a nice solution for a small atomic function, which has been throughly debugged beforehand. Don't do it for long executing functions though. LabVIEWs priority scheme is very strict and as long as a high priority clump (subVI) is executing in an execution system, little else will happen in that execution system, although in LabVIEW 7 this is a little aleviated through the default allocation of multiple OS threads per execution system. 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]
Re: Video capture cards, LV and Linux
Steven Hammer [EMAIL PROTECTED] wrote: Does anyone out there have any experience with a video capture card that can be used with LabVIEW (with IMAQ) and Linux? Any recommendations based on experience with any good cards? The main hassle (I'm sure - I'm a relative Linux newbie) will be setting up the card to use Linux. However, using it with LV will no doubt have its own troubles. Any tips on what to look out for with LV? I think you will be disappointed to know that IMAQ is not supported under Linux. It currently only runs under Windows OSes at all. You still can read in pictures and display them in the Picture Control but IMAQ functionality will not be available under Linux or any other non-Windows LabVIEW version. 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]
Running two copies of VI and seeing two FPs
Hi folks, I'm trying to get a VI set up so that it can have more than one open FP available at once. It's a log viewer and I'd like to be able to have two instances running side-by-side, with a different log file loaded into each one. Setting the VI to reentrant doesn't appear to be the complete solution. This must be a fairly common problem, and I'd be interested to hear from anyone who's managed to solve it. Cheers, Simon Simon Whitaker [EMAIL PROTECTED] Head of Software Development, Tiab Ltd tel: +44 (0)1295 714046 fax: +44 (0)1295 712334 web: http://www.tiab.co.uk/
Re: OpenG Coding Challenge - Remove Backspace
Rolf Kalbermatter wrote: What speeds up things is, that for time critical or subroutine priority VIs, LabVIEW not only disables front panel updates (done anyway if the panel is not open), but even the code necessary to buffer the data for front panel display. A bitch to debug such a VI, (you really can't ;-) but This can't be all there is to it though. Execution times (ms) for consecutive tests of a sub-VI; 29.6, 29.3Normal priority, not reentrant, panel open. 25.9, 26.4Normal priority, not reentrant, panel closed. 9.6, 9.6Normal priority, reentrant, panel closed. Going from non-reentrant to reentrant more than doubles the performance. Simply closing the panel to disable GUI code gives a comparitively slight improvement. Note that all VIs were saved to disk before running the tests. Is the data copied to the front panel even if the front panel is not open, and the update code to copy from the buffers to the screen is the only thing disabled when a VI is closed? It does not seem likely, since if you open a subVI after it has executed, the front panel does not contain the data loaded in to it during execution. -- Dr. Craig Graham, Software Engineer Advanced Analysis and Integration Limited, UK. http://www.aail.co.uk/
Re: dinamically reading load cell
I could only work from the data you supplied, so I looked at the graph. What you post, more often than not, determines who and how good the answer is. I still think that the damping of your measurement system will be critical to effective and accurate measurement as well. Check out the following http://www.tedea-huntleigh.com/ They supply accros the world. I think you should get the actual weigh system from them or similar. If the assistance if usefull, then you could help others by rating the answers. Good luck.
RE: OpenG Coding Challenge - Remove Backspace
Craig Graham [mailto:[EMAIL PROTECTED] wrote: Rolf Kalbermatter wrote: What speeds up things is, that for time critical or subroutine priority VIs, LabVIEW not only disables front panel updates (done anyway if the panel is not open), but even the code necessary to buffer the data for front panel display. A bitch to debug such a VI, (you really can't ;-) but This can't be all there is to it though. Execution times (ms) for consecutive tests of a sub-VI; 29.6, 29.3Normal priority, not reentrant, panel open. 25.9, 26.4Normal priority, not reentrant, panel closed. 9.6, 9.6Normal priority, reentrant, panel closed. Going from non-reentrant to reentrant more than doubles the performance. Simply closing the panel to disable GUI code gives a comparitively slight improvement. Note that all VIs were saved to disk before running the tests. An important remark, a otherwise your timings will be rather off. Is the data copied to the front panel even if the front panel is not open, and the update code to copy from the buffers to the screen is the only thing disabled when a VI is closed? It does not seem likely, since if you open a subVI after it has executed, the front panel does not contain the data loaded in to it during execution. Well that is indeed an indication that it is not copying data on closed front panels but I'm not entirely sure. Removing debugging only however will result in even less performance increase. So it can't be about debugging at all. It maybe has to do about the dataspace preparation then. For non reetrant VIs the data space is shared among all instances and probably needs to be initialized somehow each time the VI is called. Reentrant VIs maintain each their own dataspace and need no additional initialization before each call. Just a guess really! 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]
Re: three way switch?
http://www.openg.org/tiki/tiki-index.php?page=3+Way+Switch
RE: Video capture cards, LV and Linux
Steven Hammer [mailto:[EMAIL PROTECTED] wrote: Curses. No IMAQ in LV for Linux. That aside, I can still think of a use for a video capture card that works in LV/IMAQ under Windows AND is useable with Linux (without LabVIEW or IMAQ). Any recommendations for a card that fits both requirements? I have no experience with image acquisition HW under Linux but you could try following links: http://www.arvoo.com http://www.euresys.com They certainly should be usable from within LabVIEW using the Call Library Node to call directly into the driver API for the cards. 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]
Re: LVM file special blocks
Dear Lucke, For more information and/or examples on how to use the Read LabVIEW Measurement File Express VI, please refer to the VI, Function How-To Help under the Help menu and search for Read LVM. You will learn more aboit the special blocks. Refer also to the LabVIEW Help for this Express VI for more information. You can access the help for this Express VI by right-clicking it on the block diagram and selecting Help from the shortcut menu. I hope that my answer will help you. Sanaa TAZI Application Engineer National Instruments
Re: unable to open resource files
Hello Marnix, The reason for this may be that the computer is not searching the correct directories when the application is called. To change this, you will need to specify the LabVIEW directory as one of the default directories to search. Make the following changes while logged on as root. Edit the file /etc/ld.so.conf using a text editor. Add the path to the LabVIEW directory. For example, if LabVIEW 6.1 was installed in the default directory, add the line /usr/local/lib/LabVIEW-6.1. Run the ldconfig command to update the dynamic linker. The command is ldconfig -v. The -v (which stands for verbose) is optional and is used to check if liblvrt.so.6.1 is found. Let me know if this helps. Erik vH Applications Engineering National Instruments
Does anyone know if VI Analyzer Toolkit is included in the Full Labview 7.0 Package?
I have read that Analyzer Toolkit is a tool to improve your programm , and I would like to know if it is included in the Labview 7.0 that is composed by the followings CDs:Measurement Studio, Labview 7 Express, Toolset Sofware,, Device Drivers for Data Adquisition, Instrument Control..., Manuals, DSC,, OPC Server and Real time.
Re: tab control manipulation
Just create a local of the tab control and write the index of the page you want to that local.
Re: Hola!!!Yesterday, I asked a question about serial port...
Dear Mads; I have put the Bytes at port inside the while loop, and surprise!!!it works, but in one vi it works properly, and in another vi it doesn=B4t work, and the programm is similar, so I am thinking that it depends on the command that I sent.So, I will see if I can find a solution!! Thank you for everything!! Ciao!!!
Re: unable to open resource files
Hi Erik, thanks for the quick reply. I'm afraid it doesn't solve the problem though... I checked /etc/ld.so.conf, and the line you specify was already there. The directory it points to exists, liblvrt.so.6.1 is in it. Running ldconfig poses no problems either... What surprises me most is that the app does run from a shell command. Also if this shell command is given from within the C-program, for instance with system(), or by calling a script file that calls the app...
Re: Why every GOOP Get Data to Modify is set as reentrant?
Hi Pawel, The reason for the Get Data Modify.vi to be reentrant is that if you for example have two parallel executing VI which both tries to access and lock the attributes of the same object, one will successfully lock the attributes and continue execution. The other VI will be forced to wait until the attributes are unlock again. The Get Data To Modify for this will the will get stucked and not finishing executing until the attributes are unlocked or the timeout occurs (compare with a LabVIEW semaphore). Further, if you have another VI executing in parallel to the situation described above (totally three parallel activities) and this code tries to lock and modify another object of the same class. If the Get Data To Modify VI wasn't reentrent, this VI should be forced to wait until the Get Data To Modify finished executing for the first situation, actuall the second object is forced to wait on the first objects attributes to be unlocked! This is not the case if the Get Data To Modify is reentrant, the second objects attributes could then be locked immediatly and the execution continues as expected. Regards, Mattias Ericsson Endevo Main developer of the GOOP Inheritance Toolkit (please visit http://www.endevo.se/default.asp?lang=eng for more information about the new toolkit).
Why every GOOP Get Data to Modify is set as reentrant?
Hello All I found out that in every GOOP programs like e.g. report generation the vi Get Data to Modify is set as reentrant. Can somebody explain to me why it is so? thanks Pawel
RE: OpenG Coding Challenge - Remove Backspace
Paul Brown wrote: The best way to estimate your speed is to run both the example and your vi on your machine. Multiply the ratio of these by the speed of the example on the official machine (1008.6 ms). This should give you a decent prediction of your official time, despite the differences in hardware. It ain't necessarily so. [Be thankful you can't hear my singing!] My entry is 10% slower under LV7 and OS X than under LV6 and OS 9, but the original example slows down 2.5X with the same change in environment. Not all types of code scale the same. -- EnWirementally, Paul F. Sullivan SULLutions (781)769-6869 when a single discipline is not enough visit http://www.SULLutions.com
LV and GOOP
Hello all I have recently become interested in looking into GOOP for LV (I have been doing quite a bit of C# lately). I tried going to NI and downloading the GOOP wizard etc... but the link doesn't work. I am currently downloading Open G Toolkit etc... which I think has started down this road. I would like to hear from anyone with some insight , suggestions, examples etc... thanks Dan Bookwalter N8DCJ Hi-Stat a Stoneridge Co. 345 South Mill St. Lexington, Ohio 44904 (419) 884-1219 Phone (419) 884-4172 Direct (419) 884-4195 Fax [EMAIL PROTECTED] _ This electronic mail transmission contains confidential information intended only for the person(s) named. Any use, distribution, copying or disclosure by any other person is strictly prohibited. If you received this transmission in error, please send an electronic mail message to [EMAIL PROTECTED]
Re: UDP Package Size and Cycle Time
Hello Luca, Thank you very much for your detailed anwers. Unfortunately I am not able to open the UDPBuffer.vi. Whenever I try, there appears following message (sorry german installation): Resourcen nicht gefunden. Beim Laden des VIs 'udpbuffering[1].vi' ist ein Fehler aufgetreten. LabVIEW Ladefehlercode 8: Die VI-Ressourcen konnten nicht geladen werden. I have installed on my computer (Windows2000) LabVIEW Base Development V5.1 with no additional add-ons. Do you know what could be the problem? Thanks in advance. Urs
Re: Does anyone know if VI Analyzer Toolkit is included in the Full Labview 7.0 Package?
If you have LabVIEW full Development System it contains Analyzer Toolkit. For more informations/service please call NI-Germany.
Re: To associate the value of a control like a value of a selector of a CASE Structure
The Case selector value can only be decided during edit mode. It can not be dynamic in execution. Joe
Re: LabVIEW and USB to 1-wire (DS2490)
Did you check your hardware driver? Try do download the current driver for your hardware.
New Version of LabView - cool beans
Looks like NI is finally taking on Java... I'll drink to that! http://www.ni.com/news/releases/april0401.htm - andrew
To associate the value of a control like a value of a selector of a CASE Structure
I need that the value of the selector of a CASE Structure is din=E1mic. To need to connect the value of the selector with a numeric Control
Re: VI Slow Down/performance
Normally introducing a sub-VI is trouble-free and as you say it's better to arrange the code that way. If the code is to be called repeatedly (thousands of times) and it all needs to finish as fast as possible the accumulated overhead introduced can get significant and you must skip the sub-VI. (I actually suggested to NI two days ago to add a feature in LV where you can organize the code in a sub-VI and set it to flatten when compiled (or a new type of object) only for organization purposes and then have the compiler flatten the code to optimize performance). When it comes to memory usage the story is a bit more complicated. If you do not have the front panel in memory that will prevent some copies from being made, however even with the front panel removed / not in memory the sub-VI may introduce data copies. If the data amount is large (which is perhaps the case here?) this can be costly. Normally that would not give much of a performance penalty though - but if the amount of memory available is too small and the software must use virtual memory (disk) you can quickly get a significant performance drop. Could lack of memory be an issue here? If not, could you post the caller and sub-VI?
Re: VI Slow Down/performance
Hi Glen, Could it be that you're updating indicators on the main VI panel through references in the sub-vi? I know LV does this automatically sometimes when you make a sub-vi out of an existing piece of code and as far as I know uses a lot of CPU time... Even still, 10 times slower is really a lot. Hope this helps Shane.
Re: To associate the value of a control like a value of a selector of a CASE Structure
I'm not sure exactly what you mean. A case selector may be a Boolean, a string, an enum, or a number. You cannot dynamically add cases though so you would have to anticipate each possible value when you write the program. You can even specify a range. For example, if you have a numeric control wired to the selector, a value of ..0 in the case selector label would handle x less than or equal to 0, 1..3 would handle x greater or equal to 1 and less than or equal to 3, 4.. would be x greater than or equal to 4.
VXI libraries update
I'd want to upgrade some VIs from LabView version 4 to version 5.0.1, 6 and 7. When I open them, VXI VIs (VXIin.vi, VXIout.vi, ect) are recalled as VXIin_old.vi... and they don't work because LabView cannot find the code interface node (.lsb files) to load in these subVIs. Where could I find these codes? In the old Mac where I worked whit Labview 4 i can't find .lsb files. Can you help me? Thanks
Re: VI Slow Down/performance
Sorry, to see the differences in performance, set the speed switch to the left position. Then compare how quickly the X-axis increments. The one without the sub vi goes more than 10,000 points in a second. While the one with the sub vi does more like 1,000.
LV and GOOP
Hello all I have recently become interested in looking into GOOP for LV (I have been doing quite a bit of C# lately). I tried going to NI and downloading the GOOP wizard etc... but the link doesn't work. I am currently downloading Open G Toolkit etc... which I think has started down this road. I would like to hear from anyone with some insight , suggestions, examples etc... thanks Dan Bookwalter N8DCJ Hi-Stat a Stoneridge Co. 345 South Mill St. Lexington, Ohio 44904 (419) 884-1219 Phone (419) 884-4172 Direct (419) 884-4195 Fax [EMAIL PROTECTED]
Re: Trying to display histogram to look out for peaks but I am unable to do so.
Can you save and post your vi for earlier versions of LabView, say like 6.1?
Re: hide a subpanels border
I've had the same problem too. You cannot hide the subpanel borders with Labview 7 Evaluation or Full Development versions, only with the Professional version. However, you can of course Cheat ! The solution is to simply copy a subpanel with it's frame already hidden and paste it into your own application. You can find one such subpanel in the examples that came with Labview. The subpanels in Templates.vi do the trick and you can find it in: Labview 7.0\examples\general\controls\subpanel.llb Hope this solves the problem.