Jump to content

Neville D

Members
  • Posts

    752
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Neville D

  1. Avoid using Local variables with arrays. Every local variable forms a copy of the data, and large arrays means lots of copies, and lots of calls to the Memory manager which can slow things down. You can also get race conditions if you have locals littered all over the code with multiple reads and writes occuring in different loops. Use a shift register that is intialized to an empty array to carry your data from the true case through the false case. Neville.
  2. Hi Irene, there is a new VI 'transparency' property node in LabVIEW 8.0 to do just that. See: Examples>New for LV 8>TransparentVI.vi Neville.
  3. I agree, but one area that requires every bit of speed and optimization is image processing. The CVS is woefully underpowered for all but the simplest of vision applications and even with a PXI chassis or desktop PC, speed is always a concern. It is these applications that can benefit from tweaking of the LV code, or sometimes even a transfer of key parts of the code to a dll seems to speed things up by factors of 20-40%. It would be nice if NI got LabVIEW RT to work with the new INTEL dual-core processors.. <sigh..> Another area of improvement would be the screen redraws that you mentioned. Hardware acceleration support for a few graphics cards would really help with graphically intense panels that are sometimes required.. I once had a monitoring app that had about 15 tab sheets with 45 plots all told! All at customer request. The app once slowed dramatically because I put a decoration box around some plots but forgot to "move to back" and that transparent redraw was the final straw on the camel's back. Neville.
  4. Are you loading the exact same version of labview? If you have developed the VI with the Full Development System, and are opening it with the LabVIEW Base version installed some of the additional functions won't be there. I think FFT is not part of the Base version (I may be wrong). Else you might not have installed the additional toolkits (Wavelet Transform DEFINITELY needs the advanced signal processing toolkit) which are on a different CD. Neville.
  5. What version of LV are you using? What Browser? What URL were you typing in? What error message if any were you getting? You might try: from another PC that has LV loaded on it, try to see if you can connect to the remote panel of the VI on the server. Remote panels use the LV Web Server as well. If it doesn't work, it implies some IT settings are incorrect on your network. Neville.
  6. Did you first publish the VI's using the web publishing tool? This creates the html document on the Server which can then be viewed/controlled by a client. Use Tools>>Web Publishing Tool to first create the html document of your VI. also, as a troubleshooting tool, try to access the front panel of the VI from the local (server) machine itself via a web browser. If this works, then its probably some configuration settings on your intranet, and your IT person might be able to help. Neville.
  7. Hi Mark, Any chance you could post your icon editor here? Hass your previous upload to LAVA been modified? Thanks, Neville.
  8. The idea with the mathscript node is if you have a few functions already written in Matlab, you don't need $5k Matlab licence to run on multiple machines; just cut and paste the matlab code into the mathscript node. I like it.. its like having Matlab for free on your PC! Neville.
  9. Are the 200 buttons the same or different? If the same, replace them all with a strict type def button, and then any changes you make to the typ-def'ed button will propagate to all of them. Neville.
  10. Just to simplify matters, I would sample everything at the highest rate required, and reduce the sampling rate when either writing to file, or displaying on a plot. There is a decimate array function that you can use to display/write every 10th (or whatever you choose..) point. You anyway won't be able to sample at different rates on channels if you are using the same DAQ card, since they use the same scan clock. Synchronizing data from different sample rates and writing them to files is quite difficult and ultimately not worth the effort. Write everything at a high sample rate to start with, figure out what is the lowest sample rate you can live with and write all data at this rate to 1 file. Make the PID loop a timed loop that wakes up when data is ready for it to process. Read and write data in chunks of 500 to 1000 pts instead of trying to read points individually and writing to file. I think you will be ok with windows; no need for any RT hardware, so long as you don't try to use excel, check your email and browse the web at the same time. In the past, I have written a sort of DAQ daemon. It is a separate simple VI that just reads the AI channels at a fast rate, and writes averaged data to a Q. You can call this VI in a sub-panel (so you can see its working). The main app reads the DAQ data from Q and processes it. Analog Output is best used software timed. Read AI, process, spit out AO value, within a timed loop or regular loop with a wait until next ms multiple block. Neville.
  11. I'm not sure if this will help, but according to the PID User Manual, the anti-windup is already built in to the PID vi's. Neville.
  12. Hi Justin, Use the event structure to find when a control is being updated, check the input string and then write your warning message to the property node>tip strip of the control. Keep checking with the event structure, to clear the tip strip (write an empty string to the tip strip property) when the user adjusts the input again. You know, this is the perfect use-case to implement an X-Control! then just propagate your X-control for the number of string controls you have on your panel. Neville.
  13. Aquila, goto the NI knowledge base and type in inport NT and you should see the patch that you require to install on NT machines to make it work.. As far as I remember the patch was only required for older versions of LabVIEW.. but I may be wrong. Neville.
  14. The Student edition is the same as the FDS (Full Dev. system) which has most of what you need except the ability to build standalone executables. For that you need to add the Application builder. Otherwise you need to install the LV environment on every machine that you want to run your code on, and that could violate your licence agreement. The Developer Suites include a lot of toolkits and addons thrown in, which are not part of the Student Edition. for example the Dev. Suite includes -Database Toolkit -Internet Toolkit -PID control Toolkit -SPC toolkit -Report Generation for Microsoft Office Toolkit -State Diagram Toolkit etc.. but I think you don't need any of them for Robotics projects. One thing is that the Vision stuff sells as a separate module to LabVIEW. This is not a part of the Student Edition, and is VERY expensive. You need licences for the 1394 driver to acquire images, and another to process the images (Vision Module), and a run-time licence if you ever deploy the application as an exe. So I would leave out the Vision part of your experimentation, unless you have access to it at your University. For communication I would stick to serial for now. Note that you cannot use the USB port for general purpose IO. USB requires a system level driver to be installed in Windows for each USB device. You can use the NI-VISA libraries to talk to any USB Test & Measurement device. Read the NI documentation, it is for the most part, well-written. Good luck and have fun. Neville.
  15. Have you tried re-initializing your SCXI modules and DAQ card through NI-MAX? Sometimes things go funny with SCXI and re-initializing seems to help. NI-MAX>Devices & Interfaces>DAQmx Devices>SCXI module <right click and select initialize for each of the modules and the DAQ card as well. Hope this helps. Neville.
  16. Sorry, but I just don't get why you would want to move controls around while running?? If you want to display different controls in the same spot, use a tab control with all the controls and flip programmatically to the required tab sheet. Neville.
  17. The example is at: examples/measure/maxmple.llb/Limit Testing Measurement.vi Neville.
  18. Add another plot to your chart, which plots 'NaN'. Add a point to this plot only when it satisfies your condition. This way special points will show up with a different marker. You can add a different plot with a different marker to satisfy more than one condition (upper and lower limits for example). There is an example under charts somewhere in your LV examples. Neville.
  19. I think in the LV 6 you could use either the VISA Serial functions or the old-style serial functions. Try using VISA. Also, upgrade to the latest VISA version (3.4 ?) from the NI website, after making sure it will work with LV 6.0 (it mostly should, but pls confirm it). Also, post a code snippet if you can. Neville.
  20. Take a look at: Low price USB DAQ Are you planning on using with LabVIEW Linux? I am not sure if they provide linux drivers. PS I have never used this product but it looks interesting, and the price is definitely right! Neville.
  21. can you describe your hardware a bit? 1 which DMM? (Is it externally powered or battery operated) 2 Laptop or PC? 3 Native Serial port or USB-Serial adapter? (what brand)? 4 Where in the code is it stopping? at the Serial read or the file write? 5 What version of LV ? (using VISA serial functions or old-style serial functions?) etc. This will help you and us trouble-shoot your problem. Neville.
  22. Hi Raymond, It might be possible to use a PFI pin as a digital trigger, and then configure your acquisition to start as soon as a "high" is received on the PFI pin. You can also, in theory, internally hook up all your DAQ cards together using the RTSI bus, so that a trigger on one, triggers all the cards. You will have to buy the RTSI cable or build your own. That way your acquisition is truly hardware triggered, with no S/W polling in loops. Look at the DAQ Hardware trigger examples, and the RTSI bus examples in LV. Neville.
  23. You need to build the exe making sure to include the analysis functions before starting the build. In the past to get past this rather annoying error, I have just written my own Mean.vi like so: NevilleDownload File:post-2680-1137789746.vi
  24. There are a number of ways to get data from a daq loop to the UI: 1 An LV2-style (functional) global. 2 Using a Q to write data from the DAQ loop to the UI loop. Take a look at the various Design patterns under New>Design Patterns. Yes Datasocket documentation should be cleaned up a bit. Datasockets are a way to communicate with a LabVIEW program on a different machine across a network (intranet or internet), without having to develop your TCP/IP communications from scratch. You can get up and running very quickly with it, but it does have a few quirks. Neville.
  25. Talk to your local NI Rep. They should be able to give you old versions of LV (assuming you have a current LV 7 licence) so that you can go all the way back to LV 4. Alternately, they might be able to transfer it for you if there aren't too many VI's. Sorry, did you say "UNIX"? Are you trying to get to LV 4 UNIX version? that might be impossible unless your code has no platform specific VI's (DAQ?/toolkits etc etc). I don't think NI support HP-UX any longer. Now its only Windows, Mac and Linux. Neville.
×
×
  • Create New...

Important Information

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