Build a 2D with values of data acquisition

Need to collect data from various sources, 6 lines of total and average values over 30 seconds. So I used a table with 6 x 2D enter on each shift registers and table functions to complete the table. I used a timer elapsed to enable a case statement all about this package that clears the berries after 30 seconds then restarts next block of data gathering. It works very well, but...

The question I have is that the code looks too complicated and a waste. I tried with indexing for loop and while loop etc. but the data between the loop and the loop only "catches the first batch, ignoring the rest so the table is filled with the same value, I know this is obvious, really given rules loops etc.."

It feels like there is a much better way to do this, suggestions for a cleaner method?

You initialize the array with a size of 10, you really don't need because you simply insert new items into the table its nothing but the picture of construction. Since you're inserting table and then the construction of brand new for a 2D painting all the time you duplicate values so he eats memory and you will find yourself in the mistake of leak memory. What you can do is initialize a 1 d array initialization with the number of channels and in all iterations just replace the values with a new one, so you will always have the last single value of all channels. Al same time write the table in a queue. In any other place where you want to save or view the data, you can read the data, and also you can connect it easily by reading from the queue.

Edit: Sorry I forgot your second 30 average requirement. That decides how much data, you can store in memory and it also depends on the speed at which you acquire the data. If you can give these details, it would be good.

(Correct me if I'm wrong)

Tags: NI Software

Similar Questions

  • Sample clock dependence with small signals data acquisition

    Hi all

    I use a NOR-9205 on a NOR-cDAQ-9184 and noticing some interesting dependencies of waveform on my sampling rate selected. It seems that small changes in the sample clock frequency have a significant impact on the measured waveform.

    Quick background, I am in a position a signal with a ripple of mV ~ 10 with V 1.6 bias. I'm not interested in DC, only the AC signal but the NOR-9205 has only DC coupling. The application is a circuit where I expect simulations noise past the circuit must be greater than the higher noise frequencies. In the waveforms attached the background plot is the applied signal, and the top graph is the signal arising after that the signal was mostly annihilated. The two waveforms are measured with the NOR-9205.

    I am aware that this measure is less than the precision of the NOR-9205, which has a maximum precision of ~ 3 mV in his +/-5V range. However, if I can't at least on the basis of shape which is good enough for me. I'm also now pretty curious that data acquisition is actually to create this

    My best idea, is that it is a product of internal multiplexing of the 9205 with the DAC.

    The first plot shows the waveform at 20 000 Hz, which is what I expected:

    The second shows the waveform at 20 001 Hz, which seems to be modulated with a backup sawtooth:

    The waveform looks as expected for 20 000, 20003, 20004, 20005, 20008, 20009, 20010 and Hz 20011. The waveform looks like modulated to 20001, 20002, 20006 and Hz 20007.

    Ideally, I would like to understand this problem so that I can configure the measure in a stable way that I can count on the basic shape of the wave. Has anyone seen something similar?


  • Data acquisition in LabView for other suppliers DAQ cards that NEITHER

    Hello

    I am a beginner in LabView programming. I have a 32 channels base PCI card DAQ (i.e. PCI-1602 of the manufacturer, ICPDAS) and I want it to interface with Labview 8.5.

    So how cards DAQ in Labview 8.5, which are manufactured by other suppliers that NEITHER? Should I DAQmx (or some other driver) for that?

    What are the other drivers/components required to access of data PCI-1602 (device) of LabView 8.5 acquisition card?

    (1602-PCI card driver are installed in my win XP and dispalyed in Device Manager).

    Please provide some tutorial above mentioned the problem to interface.

    Please guide me in this regard. Thank you

    Waqar123 wrote:

    Hello

    I am a beginner in LabView programming. I have a 32 channels base PCI card DAQ (i.e. PCI-1602 of the manufacturer, ICPDAS) and I want it to interface with Labview 8.5.

    So how cards DAQ in Labview 8.5, which are manufactured by other suppliers that NEITHER? Should I DAQmx (or some other driver) for that? You will need the drivers from the manufacturer, of the Board of Directors.  In your case, "ICPDAS.

    What are the other drivers/components required to access of data PCI-1602 (device) of LabView 8.5 acquisition card? Same as above.

    (1602-PCI card driver are installed in my win XP and dispalyed in Device Manager). Ok.  Then take you care of my 2 answers above.

    Please provide some tutorial above mentioned the problem to interface. To learn more about LabVIEW, I suggest that you try to watch some of these tutorials.

    Please guide me in this regard. Thank you

    According to what you do with the DAQ cards, they can do the job however, from experience, there are some functions that I could achieve with the cards NOR that I couldn't with 3rd-party maufacturers.  This does not mean that this is your case. However, it is worth noting that it took me a while to understand why the code has worked with a single data acquisition card (NOR) but not another (Non-OR).

    The drivers that you have installed may or may not include examples and code in VI.  They may be DLL.  If this is the case, you can write LabVIEW "Wrappers" around these functions, as it will simplify your life.  If the drivers are in the form of DLLs, and there are no examples of LabvIEW or available VI, you must read on node library function call.

    R

  • Measurement of low-cost input analog (4-20mA) with data acquisition

    Hello

    I would like to have a very low cost measurement system loop which I can plug in my laptop current:

    I have a load, which is connected to a circuit of air conditioning/signal booster, which output a 4-20mA. I want to measure this current loop signal.

    An idea for the lowest cost system? I think that the most NOR DAQ are too expensive and too exaggerated.

    I have LabVIEW.

    Use of remote sensing current low-value resistance, then measure the fall of voltage through it with the help of an acquisition of data 6008/6009?  They have about $150.

    You will probably need to amplify current-sense with a MAX4372 or similar resistance to achieve a result that allows you to use a reasonable scale on data acquisition.  I measure the current through our products in almost all of our equipment to test in this way.  The size of the resistance of meaning as a result.  The 6008 is accurate enough, but it is not the fastest nor well presented.  But starting at $ 150, they are hard to beat.

  • Real-time display at the high frequency of data acquisition with continuous recording

    Hi all

    I encountered a problem and you need help.

    I collect tensions and corresponding currents via a card PCI-6221. While acquiriing data, I would like to see the values on a XY graph, so that I can also check current vs only voltage/current / time. In addition, data should be recorded on the acquisition.

    First, I create hannels to analog input with the Virutal DAQmx channel create, then I set the sampling frequency and the mode and begin the tasks. The DAQmx.Read is placed in a while loop. Because of the high noise to signal, I want to average for example every 200 points of the current and acquired for this draw versus the average acquisition time or average voltage. The recording of the data should also appear in the while loop.

    The first thing, I thought, was to run in continuous Mode data acquisition and utilization for example 10 k s/s sampling frequency. The DAQmx.Read is set to 1 D Wfm N Chan N Samp (there are 4 channels in total) and the number of samples per channel for example is 1000 to avoid the errors/subscribe for more of the buffer. Each of these packages of 1000 samples should be separatet (I use Index Array at the moment). After gaining separate waveforms out of table 1 d of waveforms, I extracted the value of Y to get items of waveform. The error that results must then be treated to get average values.

    But how to get these averages without delaying my code?

    My idea/concern is this: I've read 1000 samples after about 0.1 s. These then are divded into single waveforms, time information are subtracted, a sort of loop to sprawl is used (I don't know how this exactly), the data are transferred to a XY Chart and saved to a .dat file. After all that's happened (I hope I understood correctly the flow of data within a while loop), the code in the while loop again then 1000 samples read and are processed.

    But if the treatment was too long the DAQmx.Read runs too late and cycle to cycle, reading buffer behind the generation of data on the card PCI-6221.

    This concern is reasonable? And how can I get around this? Does anyone know a way to average and save the data?

    I mean, the first thing that I would consider increasing the number of samples per channel, but this also increases the duration of the data processing.

    The other question is on the calendar. If I understand correctly, the timestamp is generated once when the task starts (with the DAQmxStartTask) and the time difference betweeen the datapoints is then computed by 1 divded by the sampling frequency. However, if the treatment takes considerable time, how can I make sure, that this error does not accumulate?

    I'm sorry for the long plain text!

    You can find my attached example-vi(only to show roughly what I was thinking, I know there are two averaging-functions and the rate are not correctly set now).

    Best wishes and thank you in advance,

    MR. KSE

    PS: I should add: imagine the acquisition of data running on a really old and slow PC, for example a Pentium III.

    PPS: I do not know why, but I can't reach my vi...


  • I am building a system and I need to help experts to choose the data acquisition card.

    Hello world

    I am currently working on a design project I need to take a data acquisition card that responds to the output of the amplifier. I'll build a force detection system which I have taken the following as detector and amplifier:

    http://content.Honeywell.com/sensing/Sensotec/pdf_catalog08/008834-1-EN_Model_UV%20Bridge.PDF

    http://content.Honeywell.com/sensing/Sensotec/pdf_catalog08/008638-1-EN_Model_53.PDF

    Please recommend me which data acquisition card I could take. The only requirement I ask is to have less than 0.1% global uncertainty.

    Thanks for anyone who can help

    Since your amp has - 3db at 7 kHz and you need only 10 bits 0.1% will do almost any card with.   USB-6009 is the lower end. USB-6210 the next step.

    Then take a look at some other boundary conditions: do you need it calibrated? (Is there a QM adj. who could ask questions?) Space?, EMC/noise, entry, differential

    Take a look at the USB-9237 with a conditioner bridge construction...

  • Data acquisition tool NOR-DAQmx with Matlab R2012a

    Hello

    I'm trying to control NI USB-6211 of Matlab 2012 using NOR-DAQmx Data Acquisition tool:

    http://zone.NI.com/DevZone/CDA/tut/p/ID/3005

    I'm working on win7 64 bit. And I see the device AND Measurement & Automation Explorer.

    The tool does not work: DAQ_Demo_Browser do nothing. And I got the error "unexpected or unbalanced parenthesis or support" of AcqNUpdates_nonUI.m

    What is the problem?

    Thank you and best regards,

    Arthur Shulkin

    Hi Arthur,.

    Tools OR DAQmx for Acquisition of data with the Software Inc. MATLAB® from The Mathworks, supports up to the 2008 version of the MATLAB® software.  In order to use our products DAQ Multifunction with MATLAB® software, you could get back to 2008 or earlier, or instead use the Data Acquisition Toolbox provided by The Mathworks, Inc.

    Another option would be to import your ".m" files in a node MathScript in LabVIEW and use the functions of NOR-DAQmx everything in the LabVIEW development environment.  For more information on the Module LabVIEW MathScript, you can consult the information available on this link:

    Inside of the LabVIEW MathScript RT Module

    MATLAB® is a registered trademark of The MathWorks, Inc.

    Katie

  • DAQmx data acquisition with persistent error of nyquist

    Hi, I created a multi channel data acquisition vi (accelerometer 2 and 1 sound pressure) using models for producer.   The vi is attached. Thanks to labview 2011.  I get the error of nyquist (2 enclosed) when you make a bandpass filter between 50 to 5000Hz.  This happens despite having put my sampling rate to 22050Hz.  When I checked the output of wave I noticed that the signal has a dt 1 s.  The text output to check the result.  I could not understand how this is so since I had set the sample rate to 22 k Hz.  Any help will be much appreciated.  Thank you.

    I would do something like that.  You must calculate the dt of the set (with the recipricol) sampling frequency and use to initialize the shift registers.  This way you only need to change 1 constant if you need to change your sample rate.

  • do you need a power supply to the current entry with data acquisition or 9265

    Hello I just receive the NI 9265 Daq for research in my lab. I'm trying to present entry and display it on an oscilloscope. I don't get anything. I did some research on the internet, so my question is do you need a power supply to the current entry with data acquisition or 9265?

    Read the data sheet.  Clearly on the first page is a sentence which reads "the NI 9265 requires 9 V to 36 V external power.

  • Problem building from scratch data acquisition program

    Hi all

    I know that this may be a question trivial moment, but I can't find previous messages explaining my problem... I want to go round in circles

    I am trying to build a system with an analog input and digital output (I use the cDAQ 9172 with NI 9215 ADC and NI 9403 DIO) and I try not not to use the DAQ Assistant.

    But when I run the VI the list updated very slowly even with a delay loop of 1 ms and a sampling rate of 1000 and 100 samples read.

    I tried to insert a chart, but which shows nothing at all

    And based on my sampling rate (FS higher, faster the error pops up) I get an error saying that the samples I'm reading is not available more.

    I understand that something is taking too much time in my loop, but I don't see what it should be.

    Is it possible to configure this daqmx to taste at the request?

    The analogue output to / digital is part of a motor controller I am trying to build, where the analog input is feedback from motor position of a potentiometer and the

    Digital pulses are a PWM signal to a hardware engine controller.

    The program runs on a Lenovo T410 with 2, 66 GHz I7 cpu, 4 GB memory, Windows 7 and LabVIEW 2009 SP1

    Sorry if this is a double post!

    Kind regards

    Tommy

    Hi Tommy,.

    In fact, I think that one of the biggest problems is that you restart your digital task inside the loop every time.  Attached is the revised for you to try code, the loop now looks like the following:

    Notice the DAQmx beginning is now called before entering the loop for the digital task.  Rather than use a wait function, you can use the samples of reading parameter so that the ratio of samples to read / sampling frequency is equal to the length of the loop you want (DAQmx Read blocks until the appropriate number of samples have been received).  I also put the two tasks at the same time, so you can now write digital data while the DAQmx Read waits for the desired number of samples.

    Devices of simulations are often useful, but trying to compare the performance it is always better to have the actual hardware.  USB has particularly high latency 1 time of loop ms unfortunately probably not going to be achievable, but accurate performance will be dependent on the system.  Try to run this code and see what results you can get - if you always replace the samples then you will need to increase the number of samples read by loop (and therefore decrease the rate of loop).

    I hope this helps, don't forget to let us know if you have any questions.

    Best regards

  • 2 channels of AI on a data acquisition with the range of different sensitivity

    This vi is based on the 'new project' state machine on the home screen at the start of LV.

    A time loop is parallel to the main loop of the state machine, shown in the picture.

    It works continuously until you press the Exit button.

    The problem seems to be in start this... > read >... stop start > read >... stop along the error line.

    The reason for this clumsy arrangement power is measured voltages are in two lines of different sensitivity.

    The shunt voltage is small and needs-. 2 to the range of V.2. The load voltage is greater and 09:50 V range is good.

    In the initializing state, two separate vi 'create a channel' have been used to specify the range of voltage to the physical channel. The corresponding tasks are sent via via local variables.

    DAQmx errors happen randomly, sometimes the first iteration, sometimes the 50th.

    I tried to disable one or the other start > read > stop for the shunt voltage or load.

    I tried replacing them with the DAQ assistant.

    I tried various DAQmx vi: "wait" and "accomplishment of the tasks by resource cancel selected".

    But error-50103 "specify resource is reserved" keeps popping up.

    Is it possible to create two tasks on the device even when they are not used at the same time?

    The only reason is to measure in two voltage ranges.

    Win 7 Pro 64-bit

    2014 LV database

    Data acquisition equipment: USB-6210

    Thank you.

    This has been discussed many times. Do NOT use separate tasks. You can use different ranges for different channels with a single task. Just wire the task from one channel to another channel to create task.

    You also use local variables when they are certainly not needed.

  • Sampling frequency and Nyquist theorem - data acquisition

    Hi all

    I have a rectangular steel beam that is affected with a weight of 100 kg and I would look for the modules able to sample the signal correctly.

    The Nyquist theorem says that if half of the sampling frequency is higher than the input signal, it will be recorded correctly.

    What I think about it before you buy a data acquisition module to find the signal of the rectangular steel beam? I will perform an analysis model by finite elements using the elastic properties or properties of plastic? Is the natural frequency of the associated structure of the input signal?

    Thank you

    Husband

    Some technical assistance is appropriate, determine that the higher frequency component is interesting to your signal. Set your frequency of sampling to twice this value. In addition, to protect data, to build a filter of antisliasing of material it alleviates any energy above the highest frequency of interest.

    Mike...

  • The reading of data acquisition via tcp

    Hello

    I am building an application that controls an acquisition of data via tcp.

    I have a JAVA program that communicate with labview, give a command and data acquisition starts. (So, I read the correct Java data at Labview)

    My problem is if I try to read data acquired by data acquisition (continuous sample 1 k samples), I've read strange values.

    I transform of double values in the string and send it via tcp.

    How can I read it in Java? What type of socket should I use? What is a rate problem?
    I also tried to transform small/big-endian byte order, but it does not work.

    I enclose a sketch of this part of the application.

    Please help me, I try for 2 weeks!
    Thank you all...

    I find the solution in the lavag forum.
    I post here, if it can help someone.

    http://lavag.org/topic/16359-sending-LabVIEW-data-via-TCP/page__pid__99983#entry99983

  • Data acquisition reading incorrect when you use a loop

    Hello

    I wrote a simple VI (00, 01, 10, and 11) output to a circuit connected with 4 resistors. Based on what value the ciruit receives, it passes current through a particular resistance. It is again entered in Labview and traced.

    The problem is when I send a particular value (i.e the 00, 01 and 10 and 11) and get that back, it's okay. But when I send and receive the consectively connected via the loop counter, they are incorrect (not synchronized with the number of the loop).

    I made sure that circuit works very well. It has something to do with the loop synnchronization, reset, value compensation, etc. can be.

    Please Guide...

    Change your DAQ assistant that reads to be 1 sample on request.

    Right now it is set for continuous samples.  And 10 samples at 10 Hz.  Then it runs and starts.  The next iteration, you send a new digital out, but the wait for 4 seconds.  When you read again, you get the next 10 samples that are put into the buffer of data acquisition, but now 40 samples have actually entered the DAQ buffer.  In time your DAQ buffer will be finally complete and raise an error.  In the meantime, you will continually read data continues to become more tainted by the iteration.

  • motion control for vertical actuator and data acquisition

    Hello

    I am a researcher (a branch of civil engineering) geotechnical engineering and I have very little knowledge about the acquisition of control and data motion, so would need a lot of help from the experts OR. I have only knowledge base on these 2 aspects based on my reading of some materials on the Web site of NOR and youtube videos, so I hope that you bare with me . Here are my questions:

    I am trying to build an actuator which will be used to push a probe (a penetrometer with a load cell to measure the resistance of a soil sample), resembling the concept, photography in the attached file. I need to have these criteria for my system:

    (1) actuator, which can push the probe at speeds between 0.01 mm/s - 300 mm/s with precision and move the probe cyclically (upwards and downwards) in the vertical direction
    (2) load expected on the probe into the ground range: 0.02kN - 6 kN.
    (3) necessary to get the load cell load data and the speed of the probe.

    4) able to control the actuator to a PC (speed and posotion) and monitor data from transducers and data log time even the transducers.

    Guess my beginners is that I will need:

    For orders:
    (1) software - LabVIEW and NOR-motion assistant

    (2) controller - NI PCI-7342

    (3) driver/amplifier - analogue servo AKD Drive

    (4) motor - motor brushless servo AKM

    For the acquisition:
    (1) software - based LabVIEW development systems

    (2) amplifiers or other device - no idea what type on the conditioning of signals

    (3) data acquisition device - no idea what type

    Since I'm a beginner, is - that someone might recommend components (hardware and software) for the control and data acquisition. I'm on a tight budget, so I thankful if someone could help me to recommend components good enough to build my system.

    Thanks for your help.

    At these rates, you will need to run the sensor for the cDAQ.  You can configure the analog output on the Tritex nationally on the position.  There is an adjustable filter that you can set in order to get a clean enough to 300 Hz signal.  When you learn about the Tritex, make sure that let you them know what comms and e/s that you want to use.  If I remember, not all options have worked together.  The analog output may need to be my, but you can put a resistance through the acquisition of input data to get the voltage instead.  I don't remember all the details.  You should really not too much on the Tritex/LabVIEW side.  You will send your movement parameters (beginning of end of race, speed, position, accel, cut), and if you cycle (I believe you) or simply running in a loop.  You could also just be able to use the functions of jog.  When you get close to knowing exaclty what you need, PM me and I'm sure we can work something out with the drivers.  You need only the basics.  In fact, you could probably do this all your movements via digital and analog i/o.

Maybe you are looking for