Jump to content

Gan Uesli Starling

Members
  • Posts

    76
  • Joined

  • Last visited

Everything posted by Gan Uesli Starling

  1. When trying out a new program most error messages that LabVIEW gives me are not very helpful because they refer to "unnamed task" such and such. And so I would like to give names to my tasks. It ought to be simple but still it illudes me. So now I ask... How do I give a name to a task so that error messages then will be helpful?
  2. Have configured my NI-9237 as an AI bridge, reading in CONTINUOUS with a very low sample rate and SAMPLES at ONE. I'm running on a FAST Dell Precision T7500 with USB to a cDAQ-9178. But I still get warnings of memory overrun due to not being able to read data fast enough. Tried a bunch of other values and none of them work. I rebooted the PC and the cDAQ and still no go. Any ideas?
  3. Thank you everyone. I tried both ways and decided to go with the Panel Close Event structure.
  4. I've had a request to disable or modify the RED X at top right of MS Window for a LabVIEW program. Everyone here knows to ONLY use File->Exit to quit from LabVIEW. Sometimes, though a harried operator on a PC with plural windows will accidentally click that RED X thinking it's the overlaying ap's window. This, of course, wreaks havoc on the test underway. Would be nice to make that impossible, or at least doubly hard. So...is there a way to do that? Or alternately, to cause an ARE YOU SURE? intermediary window? TIA, Gan
  5. Thank you, that works. Strangely, it is exactly what I was wanting to do in the first place, had I known (or remembered) that the INDEX ARRAY widget could be pulled down for multiple lines out (versus indexing one at a time inside a loop). For the cluster function, that much is obvious in the visual icon, and was the only reason I was going with clusters for this particular sub VI. Problem is I am allowed to do LabVIEW only seldom (even though I'm the designated 'guru' [coughs embarassedly] for all things LabVIEW) and usually only with other engineers waiting anxiously for me to update whatever it is that needs addressing. Thanks to everyone who replied.
  6. Thank you all for those. I'll be looking into them. Meanwhile, please help me to understand my problem because it still perplexes me. Here is a screenshot of three windows overlaying eachother. At bottom, showing through, is a tiny part of the main VI. You can see where I've put two probes, before and after my problematic cluster_to_array VI. At bottom is the probe results, showing (to my interpretation) a simple array of strings as input and the anomalous cluster of single-string arrays as output. At right is a window showing the contents of my custom VI from which the array-of-strings derives. What is going on here, please? Here is the result I get using one of the examples offered me. I am running LabVIEW 2010 as 32 bit on a 64 Bit DELL Precision T7500 under Windows 7. Where did I go wrong above?
  7. Paradon, but you clearly did NOT read my question. Setting cluster size is NOT a problem. I already do that. But from an ARRAY_OF_STRINGS it gives me a CLUSTER of 1-STRING_ARRAYS. And that will not do. I need a CLUSTER_OF_STRINGS from an ARRAY_OF_STRINGS.
  8. My Problem: I start with an array of N strings. Using the function "Array to Cluster" I get a cluster of 1-element arrays (each containing one string) when what I want is a cluster of N strings. My Question: How can I do any one of the following: A. Produce a cluster of strings from an array of strings? B. Break an array of arbitrary length into N strings? C. Build a cluster, adding strings one at a time (like pushing onto an array)? Why do I need this? Am saving widget values to a file at end of probram. Then on a cold restart, the user can elect to re-populate those same widgets with the end conditions of the last test. I had been doing it for up to four sets of each kind of widget using case statements. With four of each kind of widget I got by since each was only 16 cases. But now I must increase some of those four to eight (256 cases). And now they are asking for 12 (number of cases = Way Too Many) and can even see them one day asking for 16 or more (number of cases = OMFG!). Best solution woud be something like UNBUNDLE but for an array instead of a cluster.
  9. That built up nicely. Thank you! As for Real-Time, we have it on some stations but not on others. I found the PIDs only on the Real-Time installations, not on the 2010 Full Development ones. And I was wanting a single closed-loop feedback control which would work for all. I'm mostly self-taught in LabVIEW, so know mostly only what has worked for me to date. I write my VIs by guess and by gosh then debug them by trial and error. When that doesn't work I beg enlightenment form they who know. Thanks.
  10. Looking to control mass flow from feedback via coriolis meter. Proportional and Integral by themselves would do (no Differential). Looking to build it without the PIDs found only in Real-Time module. Found an ancient example in NI called Simple PID. Here it is... The ancient example in LV 5. But it is so very ancient that LV 2010 refuses to load it. I presume that's what I might have needed. Where can I find something like that, only newer?
  11. My first attempt (successful) at writing a machine control program was in several thousand lines of Perl/Tk. It was talking to a pair of LabJack controllers and ran an automated test rig for cycling contaminated fuel through jet engine nozzles. The GUI part was a major pain. I shouldn't like to do it again, but could if I had to. Getting a little rusty in Perl, mainly because of having LabVIEW. And with Tk having been semi abandoned by Perl, I might be inclined to switch to Python. Not because I find Python superior for a particular reason, but only because I'm getting interested in 3D with Rhino 4 and Blender 5.56. Python is ubiquitous in the 3D realms. Are there any Open Source graphical programming languages? Would be major cool to find out that there are. I'd give one a whirl.
  12. My project is getting rather big, the the function block busy...especially with nearly all wires clearly labled. It'd be a pain to downsize every label, one by one. Be nice if I could reduce the font size of ALL labels in one fell swoop. Any way to do that?
  13. I have a WaveformChart to track an output voltage. I tied a line from a numeric control (used elsewhere) so as to set the Y.Scale.Maximum (write mode) for said WaveformChart (so it would agree with said elsewhere). But changes to the numeric control have no effect on Y scale for the chart. Anybody know why not?
  14. I decided to simply move "DAQmx Flatten Channel String" VI outside the loop, placing it immediately after the Controls IO build array. I no longer have the Error In/Out from that particular VI as easily connectable there, but it'll still do, I think. The VI I'm building is rather big, quite a few signals to recorde. And there are several fo those Controls IO arrays, not just the one. And finally, as the rig is to be a test chamber eventually containing pressurized fire, I'd like to eek out whatever efficiency I might gain no matter how many hoops I myself must jump through to obtain it. Call it pre-CYA.
  15. Am seeing a red dot (indicating conversion) where I feed an array of I/O controls into "DAQmx Flatten Channel String" VI. Now the I/O controls array is created outside the loop but the VI is doing its conversion inside the loop. For efficiency's sake I'd like that red dot to go away by making the VI's required conversion outside the loop. How best to do that?
  16. I am using 2009, thank you. This one works just fine in the development environment. So I'll stick with it and hold the other ideas in reserve. My thanks to everyone for their input. All replies have brought me a measure of enlightenment. Thank's again.
  17. If I am writing a VI now from which I'll burn an Application later, will the first example work in the VI and not the App while the second example works in the App but not the VI? I'm a bit confused on the distinction. Enlightenment please?
  18. Wanting to get a return of the file path (or string of same) where the running VI is currently in. I can do this in Perl easily. If I wrote a Perl script named "Where_am_I.pl", having only three lines like so... use File::Basename; print dirname(__FILE__) . "\n"; sleep 5; ...and called it via MSDOS from the C: drive, like so... C:\>perl -e U:\foo\bar\Where_am_I.pl U:/foo/bar C:\> ...I'd get the dir where the script resides rather than the current dir from which I called it. I've tried a bunch of ways to do that in LabVIEW, but all I ever get is the CWD, not the script's own directory. How may I get the script's own directory, please? Why I want this: I want my VI to read and write *.INI files from and to it's own directory...no matter where that directory is...and no matter where or how it was originally called. Likewise I have Perl scripts in said directory. I want to also burn an *.exe from said VI which will be in a portable directory I can plunk down anywhere.
  19. Have heretofore only used SCXI and CompactDAC. Am now confronting a brand new PXI system stacked up on my desk without benefit of NI training. Which books and/or on-line tutorials specific to PXI and Real-Time would you kindly recommend that I may upgrade my wetware to synch with these brand new hardware and software?
  20. QUOTE (Neville D @ Aug 25 2008, 03:56 PM) Okay. I got it to work like so... http://lavag.org/old_files/monthly_08_2008/post-10610-1219702442.jpg' target="_blank"> PS -- The JPGs look better now that I edit from BMP to JPG using GIMP with Quality=100% on saving (versus default of 85%).
  21. QUOTE (Ton @ Aug 25 2008, 10:27 AM) Reading a task in Max? I can read any of the individual channels in DAQmx, sure. Individually, those all work. But how might I get these two tasks to run in parallel that way...outside of the VI itself? It is running two tasks which seems to hang. Whichever is 2nd to fire hangs with the error. But I have two 1520 modules in a 12-slot SCXI cage accessed by a 1600 USB module. They feed off-screen to right to a common while-loop but the hang-up is prior till then, at the place shown. It seems to me that there ought to be a way to use two 1520's differently for different kinds of signals in a 12-slot SCXI cage. Why else buy one? So I'm assuming that I must be missing something, or doing it out of order. Mind that I've only had the 1st two basic classes and only done three prior LabVIEW projects, none of them too very complicated and none of the others using SCXI. Thanks, Gan PS -- I downloaded your capture tool and will learn to use it in due course. Thanks.
  22. QUOTE (Neville D @ Aug 22 2008, 05:46 PM) Sure, no problem. But JPEGs are horribly fuzzy and my thought was that most folks would rather wait the extra ten seconds to get a screenshot that's easy to read. I'll try and remember to append both full-rez and blurries from now on. If I weren't behind the company's firewall I'd upload the high rez to my own Unix box under my desk at home and post links here for those so as to consume storage and bandwidth here only for the JPEGs. Humble apologies.
  23. I get a -50103 resource is reserved error on my SCXI 1500 module, also if I split the tasks across two modules. I am using these via a USB 1600 module slotted into the SCXI card rack. Attached are two screenshots. 1. The circuit. 2. Circuit showing error. How may I get around this error? Please be aware that I am still a novice at LabVIEW when you answer.
  24. QUOTE(Yen @ Jan 29 2008, 01:26 PM) Yup. Found it. And indeed it does work. Thank you. My book, "LabVIEW for Everyone" was not too very helpful with explaining this particular item. And that is why I originally chose to register here. But then while just stumbling around in LabVIEW itself I somehow got to an example...I think by simply double-clicking on the System Exec VI...which was very informative. Once to there I was able to play with various things and get it to work.
  25. Howdy, I am a 52-year old, married, father-of-one, test engineer for Woodward in Zeeland, MI. We make nozzles for turbine combustion systems. I test them. I've been doing that only 2 years. But I have 15 years in automotive fatigue and durability at my former employers of Paustra (3 years) and Benteler (12 years). My familiarity with LabVIEW is beginner-level. I do have one testing machine currently running on LabVIEW 8.0 which I had formerly had running (somewhat kludgedly) in pure Perl. I am entirely self-taught in programming. The history of my experience is as follows: 1. Forth - now all but forgotten. 2. PostScript - which I once used to do quite a lot but now only use for printing. 3. Perl - which I now use for almost everything but machine control. 4. Python - studied for a while but found nothing I couldn't do in Perl so gave it up. 5. SQL - which I use when I need to. 6. C - which I studied very briefly, enough to decide I hate it and quit. 7. LabVIEW - at which I am rank beginner but recognize will be very, very useful indeed. Anyway, I'll be searching the forum for how to launch Perl from LabVIEW. I don't need to send it anything, or get anything back, just launch it at a given time...probably end-of-test. I have several projects on my plate. I am planning them to pretty much all be detailed like so... 1. LabVIEW will control the hardware and store data in CSV. 2. LabVIEW should then launch Perl to parse the CSV, perform calculations and store the data in SQLite. 3. Perl will then generate the report in PostScript. 4. Perl will launch GhostScript to convert the *.PS to *.PDF. The PDF will be for sending to customers. Our own records will be the SQL database itself. I did make some attempt to generate pretty reports using pure LabVIEW but was either too clueless to get the pretty results I desired. I don't want to bend our report formats around LabVIEW's expectations. With Perl and PostScript I can always get just exactly what I want. Anyone more clue-endowed than myself is invited to try talking me out if it. Respectfully, Gan (say like "John")
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.