Photo of the hardware setup (). Introduction In order to bring-up a small piece of hardware, I had to whip-up a quick utility for controlling an LED light source. My tools of choice for this type of task are a C#, National Instrument Measurement Studio, USB-6008 input/output card.
At some point, I realized that a write-up like this one may be useful for those who are scratching the surface of Measurement Studio. Hardware The setup is built around National Instruments USB-6008 multipurpose I/O device.
I was connected to the laptop via USB. Constant current LED driver and LED itself were on a separate board (more detailed schematic).
LED output is proportional to the current. The driver circuit is design so that the LED current is proportional to the control voltage V_SET_I, which is generated by one of the analog outputs on USB-6008. Another digital control signal turns LED on and off. Block diagram of the hardware setup.
Initially, I’ve started to use Measurement Studio because I needed chart controls that can plot a lot of real time data - about 1000 points per second on 10 or so separate charts. The data would normally come from a serial port. Labview 7.1 Pds LECTRA.GRAPHICSPEC.FURNITURE.V2R5-Lz0 LEICA.GEO.OFFICE.COMBINED.V1.0-RiSE. LS-DYNA 960 + crack. LUSAS FEA V13.6.
(I've also uploaded the ) Software The purpose of the software is to provide a simple GUI, which allows the user to control the LED intensity with a slider and to turn the LED on/off with a toggle button. Mountain bike cleaning. Class Diagram Subclasses of DAQmx.Task are responsible for accessing the hardware channels. They expose public methods and properties while hiding the details such as physical designation of the channels involved.
For our tasks, additional writer objects ( AnalogSingleChannelWriter and DigitalSingleChannelWriter) are also created. State transition diagram for a DAQmx.Task object Writing to the Channel Writing to the channel is done by calling the WriteSingleSampleSingleLine() method of the channel writer object. Other types of channels have similar WriteX() methods. Notice that autoStart is set to true. The task briefly goes to the Running state, writes the sample, goes back to Committed state. There is a useful article in the MStudio online help “Using the Start Task function/VI”, which details when to call Start() and Stop(), and how autoStart works. Closing Remarks I’m planning to add a more elaborate version of this project that has sanity checking and error handling.
As always, bug notes, suggestions, insight, comments, requests, etc. References [1] [2] [3] [4] [5] Acronyms and Abbreviations NI National Instruments MStudio Measurement Studio made by NI DAQ Data Acquisition History • Initial draft. September 26, 2010. John Whitmire 5-Oct-10 4:21 5-Oct-10 4:21 I remember working with NI Measurement Studio's immediate predecessor in C++ and trying to make the transition into the newly released Measurement Studio. I never got it to work and stayed with the predecessor. NI's API was thorough, but not easy to work with, and I think your findings show that to still be the case.
(If pressed, I'd have to vote in favor of thoroughness, though.) Your catch about multiple channels will surely save someone a few hairs that might otherwise be pulled out. I believe you could extend your findings from the specific to a few more general principles and thereby increase the usefulness to your audience. How you got 'there' and why you had to take 'that' route increase the value of almost any article like this.
Initially, I’ve started to use Measurement Studio because I needed chart controls that can plot a lot of real time data - about 1000 points per second on 10 or so separate charts. The data would normally come from a serial port. Last Spring I’ve done a sizable project for one of my clients where Measurement Studio was used to control hardware more directly (through DAQmx).
Although the best practices were used, it was a fast paced project with some “code first, think later” attitude. Fortunately, I’ve got time to think now at the beginning of the next one. I went through the Spring’s project and compiled the class diagrams. Then I realized that putting them on the web could be useful. The rest of the article provides context for the diagrams. I would have found an article like this useful, if I had it when I was initially learning how to use Measurement Studio. Sometimes it's better to write components from scratch.