Data Acquisition Stops Randomly

We are using a timed loop to read, display, and write data from a CompactDAQ device. Normally, the data reads, displays, and writes correctly, however there have been several occurrences where the write function failed without notice. When we went back to open up the data after a test, we found that the data ended early, ranging from 30 seconds in to a minute into the test. Has anyone encountered an error like this? Thank you for your help.

Thank you for the quick response. I have attached our VI for reference. To answer your questions:
Data is read with the DAQ assistant. Write to measurement file is used for writing the data. Both are within the same timed loop.
Errors are propogated across the timed loop and through the DAQ read and write functions.
Not sure if there were errors reported. How can I tell?
The data I opened after running the test was logged into a .lvm file. I have some code in the VI to automatically generate a timestamped filename, however it does not seem to work so I have been naming files manually in the settings of the "write to measurement file" function.
I apologize for the vague first post. Hopefully the VI sheds some light on the problem. Thank you for your help.
Attachments:
Data Acquisition - ANelson.vi ‏149 KB

Similar Messages

  • Stop and reset data acquisition

    I have a vi that takes raw vibration signals and filters, integrates and then displays.  The user watches the live display and then when ready clicks on the 'acquire' button.  The data is averaged and saved.  The user is then asked if they want to acquire more data.  My problem is when the 'live' screen comes back, there is a huge curved slope.  How do I reset the data acquisition?
    Ron

    Your problem is that your buffer han been filled up and overflowed while waiting for user to deside what to do. This problem can be solved if you do a "dummy read" with the number of samples per channel input unwired or set it to -1. If the task acquires samples continuously and you set this input to -1, this VI reads all the samples currently available in the buffer. Do the dummy read then you leave your saving routine. And you will start with a fresh buffer in the "live" screen. After all your application is a continuously reading type application 
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • How do you cyclicly trigger data acquisition after n pulses counted

    Hello all, please forgive my ignorance because I am very new
    to lab view and data acquisition. I am working on a system which is going to
    scan an object and produce an image. The gimble that I am scanning the object
    with is an X-Y type of gimble with stepper motors on each axis. The stepper
    motor controller will output pulses real time to indicate the real time
    position of the gimble in each axis. What I need to be able to do is count
    pulses from the stepper motor controller and then output a trigger pulse to
    trigger the data acquisition in a buffered mode when N number of pulses have
    passed and then generate another pulse to stop the acquisition after another N
    number of pulses have passed. The controller puts out 10,000 pulses per degree
    of travel. The velocity that I am traveling at is 20 degrees per second, so
    timing here is really important. I need to be able to utilize the speed of the
    daq card and not so much the speed of the computer to iterate through a loop. I
    have tried using the count down feature in the NIDAQ MX library but it does not
    appear to be useful to me. I set it up and it will count down but once it hits
    zero it continues to count down. My expectation was that it would either
    restart the down count or it would stop. I was expecting some sort of trigger
    event to take place once the count reached the zero point but I did not observe
    any sort of event taking place. Once again my knowledge and background is
    really limited so I could be missing something really fundamental here. I have
    tried using some of the legacy functions which would enable me to do exactly
    what I want to do but they do not seem to work with my daq card. I have a NI
    PCI-6122 and if anyone has any knowledge on how to get this type of card to
    talk to some of the non MX functions I would be more than happy to hear how. It
    seems to me though, that I am limited to the MX functions which I can not
    really translate into what I have learned I can do with the legacy functions. I
    thank you all once again for taking the time to read this I and I will
    appreciate any and all responses that can be helpful.
    ~ Randy Brown

    I have run a few more tests and obtained some data per the request of a telephone support engineer. I have some scope screen shots that might be able to shed some light on what is going on. I will provide a brief description of what I discovered before I show the resulting data. I discovered that using the number of up ticks and down ticks suggested does not yield the right timing for the clock pulses that I will need for triggering my data acquisition. When I use 55 low ticks and 2 high ticks as my settings I end up getting a pulse every 32 pulses read on the PFI line. I get the same results when I interchange the numbers, for example, when I set the program up for 2 low ticks and 55 high ticks I get the same resulting one clock pulse per 32 pulses on the PFI line. I started playing with the numbers and come to find that I was able to generate a pulse every 57 pulses in this setup. I set the high ticks to 2 and the low ticks to 71 and once I did that it generated a pulse every 57 pulses in. The results are not ideal though, a number of things happen within the first second of operation. One mode of operation the clock output pulse latches after a few pulses generated. Another mode of operation that I noticed was that it would generate n number of pulses and then just stop even though the program was still running. The results I am getting are not reproducible when it comes to the long-term operation of the clock pulse generation but the bottom line is not matter what happens the end result after 1 second is not what is expected. I will show below screen shots of my program and also scope shots for the respective modes of operation.
    Front End interface
    Block Diagram
    55 High ticks and 2 low ticks results
    55 low ticks and 2 high ticks results
    77 Low ticks and 2 high ticks results
    Undesired Latch after 1 second of operation
    N number of pulses generated and stopped while program was still running
     It appears the the long term operation (and when I say long term I mean after a second) is intermittent, it either latches high or low after a random number of pulses are generated on the clock output. I am not sure why this is happening. The one setup that I came up with that generates a pulse every 57 pulses is not going to work for the setup that I have I think I would have to reduce the 71 to 69 in order to compensate for the two pulses that happen while the output pulse of the clock is high. To be honest I have no idea what is going on and I am starting to wonder about my daq card. Being that it is not really reproducing the same results I am starting to think maybe something is wrong with it. Another possibility is that it might be the bnc 2110 that I am using. I will try another one tomarrow and see if this problem persisits. I am leaving now so I won't be able to try that as of yet but I wanted to pass this info and data along such that maybe you will notice something and be able to lead me in the right direction. Thank you again for all of your help.
    ~ Randy Brown

  • Data acquisition driven by encoder

    Hi everyone,
       I need to sample a capacitive sensor that measures the radial run-out (radial small displacement) of a rotating spindle. LabView v. 7.1 is employed to acquire the data by means of PCI-6036E card commercialized by National Instruments (NI). The spindle rotates at 100 rpm and a rotary incremental encoder is fixed at rear of spindle. The encoder gives two types of digital pulses as follows: a) A-quad-B pulses (it will be used only “A” pulses in this experiment); b) index pulse (one pulse per revolution). This encoder provides 1024 pulses type “A” per revolution. The measurements made by the sensor are driven by “A” pulses which are used as “external clock”. Therefore, every “A“ pulse, the card acquires one sample from sensor. Thus, 1024 data/rev are acquired. I want to sample 5 consecutive revolutions of the spindle. To start the data acquisition, the index pulse of the encoder is used as “start digital trigger”. Also, the index pulse should be used to count the number of revolutions of the spindle. In this way, when the number of revolutions is equal to 5, the data acquisition finishes. By contrast, the programmer also can set the number of samples equal to 5x1024 in the VI. The data acquisition is finished when the number of samples reaches this value. Similarly, the sampling process is started by the index pulse which is the “start trigger”. Note: 1) the sampled data should be put in a buffer. After the sampling process is finished, this data should be saved in a file of LabView; 2) In fact, the data acquired by the sensor are voltage analog input. Questions:1) Could you make a VI for this problem, please? Note: You can use the DAQ ASSISTANT EXPRESS VI or DAQmx TASK NAME CONTROL method.2) How to program the LabView in order to sample data triggered by the rotary encoder (pulse “A”)?3) What should I do to stop the data acquisition at the end of 5 revolutions?4) Could you send examples (VIs) similar to my problem above?5) How can I know if the program (VI) looses an “A” pulse? Is there any kind of error in VI that indicates a miss pulse?  In anticipation, thank you very much for any help. My e-mail: [email protected]                                                                                      Bruce

    Hello Bruce,
    I have a complete solution for this but I cannot give you the VIs because my customer has paied for it and all rights are transfered to him.
    What you need are two tasks.  One task is the analog in task. You must use the DAQmx Timing.vi and the DAQmx Trigger.vi to set it up as needed. Or you create a task in MAX with this setup. The other task is a counter task just counting the pulses from the z-Index.
    Next you need a small state machine with the states:
    init, start, wait and stop.
    init will initialize and start the tasks
    start will read out the z pulse counter and wait for a change from 0 to 1
    wait will read out the z pulse counter or the available samples property, when the desired number of z pulses or samples are available read the buffer with DAQmx Read.vi
    stop will stop both tasks and clear them.
     You will need two additonal counters which you don't have to check for lost A pulses and a external flip-flop electronic. The flip-flop will change it's state with each z pulse and the output will be used for gated counting. With each change of the z pulse counter you need to read out one of the additional counters to check if he had seen the correct number of pulses.
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

  • Data acquisition on the basis of time

           Hi everyone,
    I want to acquire the radial run-out (radial small displacement) of a rotating spindle using a capacitive sensor. To do so I will use the LabView v. 7.1. The PCI-6036E card from National Instruments (NI) will be utilized for data acquisition. The spindle turns at 100 rpm and a rotational incremental encoder is fixed at rear of spindle. This encoder provides an index digital pulse per revolution. This pulse should be used to start and finish the sampling process. I want to sample on the basis of time, by means of sampling rate of the card (Ksamples/s). So, let us suppose that I want to acquire 500 data/rev. The spindle takes 0.6 sec to complete one revolution. Thus, the required sampling rate is Fs = 500 samples/0.6 s = 833 samples/s. So, I should set the VI in LabView so that it samples only 833 data/s. Therefore, I will have to reduce the sampling rate of the analog-input channels in use. For example, let us suppose that the card provides 100 Ks/s when operating in multiple channels. Let us admit that there are 4 analog-input channels in use. So, the scan rate per channel is 25 Ks/s. This is too much for this application. I only need 833 samples/s. So, I should program the VI so that the card provides that required sample rate. As said earlier, I need to start and end the sampling process at the same point. Thus, to do that the index pulse of the encoder will be used. Also, I want to sample during 5 consecutive revolutions of the spindle. So, by means of a loop in VI, I should count the index pulse of encoder until the number of pulses be equal to 5 (= number of revolutions). At this instant, the sampling process should be stopped. Note: 1) the sampled data should be put in a buffer. After the sampling process is finished, this data should be saved in a file of LabView; 2) In fact, the data acquired by the sensor are voltage analog input. Questions:1) Could you make a VI for this problem, please? Note: you can use the DAQ ASSISTANT EXPRESS VI or DAQmx TASK NAME CONTROL method2) What should I do to stop the data acquisition at the end of 5 revolutions using the index pulse of encoder?3) Could you send examples (VIs) similar to my problem above? In anticipation, thank you very much for any help. My e-mail: [email protected]                                                                                      
     Bruce  

    duplicate post
    Continue in other thread
    Message Edited by smercurio_fc on 11-14-2008 09:10 AM

  • While loop and data acquisition timing worries

    Hello everyone, 
    I apologize in advance if this is a silly question, but I could not find the answer around here. 
    I have made a VI to record continuously from 64 analog channels at a 5kHz sampling rate. I then stream this data to a tdms file. The data acquisition and write functions are in a while loop. 
    I the same loop, I have a bunch of other loops, that each run on their own wait timers to help limit the amount of memory they take up. I am now worried that this may somehow affect my data acquisition timing.
    If I put a bunch of timed loops within another loop, does the outer loop run at the same pace as the slowest of the inner loops? And could that mess up my sampling rate?
    I have attached my VI, in case what I just wrote makes no sense at all. 
    Thanks for any tips...
    Attachments:
    Record_M8viaDAQv3.vi ‏237 KB

    Well, looking at your code you will only write to your TDMS file one time. You have multiple infinite loops within the main/outer loop. That means that the main loop will only run a single iteration because it cannot complete an iteration until all code within it completes. With at least two infinite loops inside the loop it will never complete. Not too mention the only way to stop your code is to hit the stop/abort button. NOt a very good way to stop your code. As someone once said using the abort to stop your code is like using a tree to stop your car. It will work but not advised.
    As Ben mentioned try to understand data flow better. You have unnecessary sequence frames in your code where normal data flow will control the execution sequence.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • Choice of design pattern for data acquisition system

    Hello all
    I have a trouble about selecting the suitable design pattern / architecture for a data acquisition system. 
    Here is the details of the desired system:
    There is data acquisition hardware and I need to use it by observing parameters on User interface. 
    the data acquisiton period, channel list to scan should be chosen on User interface. Besides, there are many user interface interactions. e.g. if user selects a channel to add scanlist, then I need to enable and make visible some other parts on user interface. 
    When user completes the channel selection, then he will press the button to start data acquisition. Then I also need to show the scanned values on a graph in real time and log them in txt file.
    I know that I cannot use producer consumer pattern here. because the data acquisition loop should wait for parameters to scan channels. and it works in a given period by user. so the user interface loop performs higher rate then consumer loop (data acquisition loop). it means queue will be bigger bigger. if I use notifier it will loss some data come from user interface. 
    is there any idea about that ? is there any suitable design pattern for this case ? 
    Thanks in advance
    best regards 
    Veli BAYAR
    Embedded Systems Software and Hardware Engineer 
    "You live in a graphical world. Why not program in one?"
    Solved!
    Go to Solution.

    johnsold wrote:
    Veli,
    I recommend the Producer/Consumer model with some modifications.
    You might need three loops.  I cannot tell for sure from your brief description.
    The User Interface loop responds to the user inputs for configuration and start/stop of acquisition.  The parameters and commands are passed to the Data Acquisition loop via a queue. In this loop is a state machine which has Idle, Configuration, Acquisition, and Shutdown states (and perhaps others). The data is sent to the Processing loop via a different queue. The Processing loop performs any data processing, displays the data to the user, and saves it to file. A notifier can be used to send the Stop or shutdown command from the User Interface loop to the other loops.  If the amount of processing is minimal and the file write times are not too long, the Processing loop functions might be able to occur in the Timeout case of the UI loop Event structure.  This simplifies things somewhat but is not as flexible when changes need to be made.
    I am not sure that a Design Pattern for this exact setup exists but it is basically a combination of the Producer/Consumer (Events) and Producer/Consumer (Data) Design Patterns.
    Lynn
    Check out this thread: http://forums.ni.com/t5/LabVIEW/Multiple-poll-case-structures-to-event-help/td-p/2551309
    There are discussions there about a 3-loop architecture that may help you.
    Jeff
    Jeffrey Zola

  • MultiThread for data acquisition (basic problem)

    Hi there,
    I want to create a data acquisition VI that perform acquiring data in an independant thread, and when the data is ready, displaying it in a graph. In another word, one thread for acquisition and another one for UI events (button to start / stop acquisition, display cursor...). Data acquisition is higher priority than displaying data. Any VI concrete sample for multithread ?? Thanks in advance.

    > Hi there,
    > I want to create a data acquisition VI that perform acquiring data in
    > an independant thread, and when the data is ready, displaying it in a
    > graph. In another word, one thread for acquisition and another one for
    > UI events (button to start / stop acquisition, display cursor...).
    > Data acquisition is higher priority than displaying data. Any VI
    > concrete sample for multithread ?? Thanks in advance.
    By default, the UI runs in the UI thread. The execution of the VI runs
    in the Standard execution system, which has its own thread. By default,
    these threads are at the same priority. If you want your DAQ to run at
    a higher priority, you can place your DAQ code in a subVI. Then set the
    subVI to run in any execution system you like at a higher
    priority.
    Call the subVI in parallel with the rest of your UI loop, and determine
    how you want the DAQ data to get to the UI. You can use a global, a
    queue, etc. Don't overlook simply using the terminal or local for the
    graph. All of these other methods have their advantages, but they also
    add overhead. At some point, you will need to copy the data from the
    DAQ code to the UI code. This is all that writing to a terminal or
    local does as long as synchronous display is not turned on.
    Greg McKaskle

  • Decisions based on the data acquisition in Labview

    Hello
    how can make decisions in labview based the output of the data acquisition..
    For example. if I have a voltage comming in from the light sensor...and lets say I want run the for loop this many times if the voltage comming out is greater than some threshold...any examples.
    Thanks
    SK

    1. What makes you think the for loop does not iterate?  If the Start Stop toggle switch is in the Stop position, the while loop inside the for loop will never end so the for loop will stay in its current iteration waiting for the while loop.  If the switch is true, then the for loop will run through its 10 or 20 iterations in 1 or 2 seconds.
    2. It is usually better to create and start the task outside the loop, write the data inside the loop and then clear the task after the loop finishes.
    3. Your indexing of the boolean array to write can be done very simply with the Quotient & Remainder function and a Subtract from 3 inside the false case of the CCLW/CLW structure.
    Run your VI with Highlight Execution (the light bulb on the block diagram toolbar) turned on and watch what it does.
    Here is a cleaned up version of your diagram showing the simplified indexing.
    Lynn

  • Real-Time Data Acquisition

    WHAT IS REAL-TIME DATA ACQUISITION AND
    WHAT ARE REAL TIME QUERIES AND
    DEAMON UPDATE AND HOW DO WE EXTRACT AND LOAD DATA
    Please Explain in detail.....
    regards
    GURU

    Hi,
    Real-Time Data Acquisition –BI 2004s
    Real-time data acquisition supports tactical decision-making. It also supports operational reporting by allowing you to send data to the delta queue or PSA table in real-time.
    You might be having complex reports in your BI System, which helps in making decisions on the basis of data of your transactional system. Sometimes (quarter closure, month end, year ending...) single change in the transactional data can change your decision, and its very important to consider each record of transactional data of the company at the same time in BI system as it gets updated in the transactional system.
    Using new functionality of Real-time Data Acquisition (RDA) with the Net Weaver BI 2004s system we can now load transactional data into SAP BI system every single minute. If your business is demanding real-time data in SAP BI, you should start exploring RDA.
    The source system for RDA could be SAP System or it could be any non-SAP system. SAP is providing most of the Standard Data Sources as real-time enabled.
    The other alternative for RDA is Web Services, even though Web Services are referred for non-SAP systems, but for testing purpose here I am implementing Web Service (RFC) in SAP source system.
    Eg will be a production line where business wants information regarding defective products in the real time so that production can be stopped before more defective goods are produced.
    In the source system, the BI Service API has at least the version Plug-In-Basis 2005.1 or for 4.6C source systems Plug-In 2004.1 SP10.
    Real-Time Data Acquisition -BI@2004s
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/f80a3f6a983ee4e10000000a1553f7/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/230d95df-0801-0010-4abb-ace1b3d197fd
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3db14666-0901-0010-99bd-c14a93493e9c
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3cf6a212-0b01-0010-8e8b-fc3dc8e0f5f7
    http://help.sap.com/saphelp_nw04s/helpdata/en/52/777e403566c65de10000000a155106/content.htm
    https://www.sdn.sap.com/irj/sdn/webinar?rid=/library/uuid/230d95df-0801-0010-4abb-ace1b3d197fd
    Thanks,
    JituK

  • Triggering a 6024E into data acquisition from start and end number of finite pulse generator from a 6602

    My motion control system is driven by a 6602 I wanted to acquire analog current (to a voltage via I/V converter) from a 6024 AI when:
    (1) At the start of the pulse generation
    (2) Stop at the end of the pulse generation
    (3) Read every possible data between and stream it on the harddisk
    (4) Option to skip at regular intervals to reduce amount of data accumulation
    Anyone have some suggestions? What I did try and attempted was to "loop an AI from a triggered intermediate Analog Input VIs" this is rather erratic!My question for the analog input software are:
    (1)Can you trigger an AI to start a continuous acquisition?
    (2) How do you do AI from a "start" p
    ulse train to "end" pulse train?
    (3) How do you manage time for File I/O meanwhile doing (1) and (2) above?
    Bernardino Jerez Buenaobra
    Senior Test and Systems Development Engineer
    Test and Systems Development Group
    Integrated Microelectronics Inc.- Philippines
    Telephone:+632772-4941-43
    Fax/Data: +632772-4944
    URL: http://www.imiphil.com/our_location.html
    email: [email protected]

    "(1)Can you trigger an AI to start a continuous acquisition?
    (2) How do you do AI from a "start" pulse train to "end" pulse train?
    (3) How do you manage time for File I/O meanwhile doing (1) and (2) above?"
    Answer 1 and 2)
    Yes you can, This VI is part of the search examples that ships with LV:
    "Continuous Acquisition & Graph Using Digital Triggering and External Scan Clock
    Demonstrates how to continuously retrieve data from one or more analog input channels using an external scan clock when a digital start trigger occurs."
    Go to Search Examples in the Help/Contents of LV. Then pick I/O Interfaces/Data Acquisition (DAQ)/Analog Input/Triggering an Acquisition/Triggering a Continuous Acquistion.
    This VI is appropriate ifs you want to clock the DAQ with some clock (external scan clock) other than the on board clock.
    The start trigger required by the DAQ card will be a TTL signal attached to the PFI0/TRIG1 pin of you DAQ card (via whatever signal conditioning you have).
    The external clock also needs to be TTL and is attached to the PFI7/STARTSCAN pin.
    You tell it which AI channel to use and wire that up appropriately.
    All of this stuff is in the context help for the VI.
    Answer 3)
    You have a misconception of how the acquisition makes its way into a file on the hard disk. You don't really "stream to disk." The VI above will run a buffered acquisition. The DAQ card sets up a buffer that fills with the data continously. When you use the VI you set up how the buffer is configured, you will see controls for buffer size, number of scans to read at a time, etc. The acquisition runs data into the buffer continously and reads from the buffer are a parallel process where chuncks of the buffer are extracted serially. You can end up with a scan backlog where the reads are falling behind the data. Making the buffer bigger helps. All of this is limited by the sampling capability of the DAQ card. 200kSamples/second is for one channel of AI. Divide by 2 for 2 channels. etc.
    The short answer is that the VI and DAQ card manage the file I/O for you.
    The VI above writes the scan out to the waveform chart on the front panel. You will want to wire that data out from the AI Read Sub VI to a spreadsheet file in tab delimited form or similar.
    Look inside the VI block diagram. There is a While loop containing the AI Read. Every time the loop runs (unless you hit STOP), the AI Read plucks the specified # of scans from the buffer (starting from the last unread datum). If you wire the double orange wire from AI Read out of the loop (and set the tunnel for Auto Indexing) the Vi will build another buffer in memory that is a series of AI Reads appended to each other, a sequencial record of the acquisition. Here you put in a Write to Spreadsheet VI. This is in the Functions Pallete, it is the first VI in the File I/O Pallette (icon looks like a 3 1/2 disckette).
    There is more to it than this. The spreadsheet Write is 1D or 2D only. By running the array out of the while loop with auto indexing enabled, you create a 3D array. (If you turn off auto indexing you will only get the last array performed by the AI Read.) You will need to create a new array withe the pages of the array placed serially into a 2d array. I don't think I want to get into that. It isn't that bad to do, but you should get some time messing with arrays on your own, then you will see how to do it yourself. One solution is to only run the While loop once with a buffer big enough to hold the whole acquisition, or in other words no loop at all. I don't know how many scans you want. The other thing is by wiring that AI Read out of the loop you are creating an array that must be dynamically resized as the loop runs. Kind of a no no. Better to know what you are acquiring size wise and letting the VI set up buffers and array space that does not need to be changed as the program runs.
    Caveat: I am fairly new to this and I could be wrong about the arrays and buffers and system resources stuff. However, I have done essentially what you are trying to do succesfully, but not "continuously." I limited the AI Read to one large read that gets what I need.
    "Continously" is usually reserved for screen writes as in the VI above. The computer is not required to continually allocate space for an ever expanding array to be written as a file later. Each time this VI runs the While Loop the data goes to the waveforn chart. Each new AI read overwrites the previous one. Sort of like if you turn the Auto Indexing off. When the VI stops, the waveform chart on screen would show the same data as was written to the spreadsheet.
    Feel free to email me directly: [email protected]. I will help as I can.
    Mike Ross

  • Problem in data acquisition

    Regarding to my project I have implemented a LabVIEW program which is doing data acquisition. We have LabVIEW 6i Installed in PXI-8170. The DAQ Card that we use is NI6030E DAQ Card Multifunction I/O.
    I have implemented a VI to acquire and plot and record multiple analog input channels. By using AI Acquire Waveforms VI to acquire waveforms from 4 channels in a single run and using Index Array function to extracts the data for each channel.
    For plotting waveforms, I use waveform chart for each channel. I put all this functions in a While Loop and use a stop push button to stop the acquisition. I also put another push button named Save to disk in the loop that by pressing it we can save data to a File by using Write to Spreadsheet File. VI, located in a case structure out of the while loop. I save data as a 2D array by connecting the waveforms output connector of AI Acquire Waveforms VI to the input connector of Write to Spreadsheet File VI.
    But I have some problem that I can not solve it yet which are listed below:
    1- I want to record all the data that I acquire for a specific time, but I can not. I only can save the specific part of the waveforms which I think it is specified by the number of samples/ch and Scan rate controls.
    For example I do the acquisition for about 1:30 minute and save it, but when I plot the data which is saved in the spreadsheet file; it is only the last 20 seconds. So I can not save all the data that I try to acquire.
    2- I want to record data for a specific time automatically. I mean when I run the VI after press the Save to disk push button the VI automatically start saving data for a specified period of time and then automatically stop. (How to define a timer to control the VI?)
    3- I want to start acquisition each time from zero base time. I mean when I do the acquisition for the first time and then I want to do it for second time, the pervious acquisition reset or clear and the time axes of each chart again start from zero not continue the pervious time. It means that I need to clear the chart.
    Regarding to this problem I try to use the AI Clear VI, but it didn�t work. May be I don�t know how to use it.
    Attachments:
    test4chPPG1.vi ‏49 KB

    I need your hints about these 3 problems.

  • Automatic data acquisition roi and integration

    HI, ,
    we are running a study into the ROI, , benefits and
    costs of investing into an automatic data acquisition system.
    found this resource
    http://www.highjumpsoftware.com/adc/VertexeraORCL022504
    that helps with the process -- it does not though
    cover best practices for how to integrate this
    system(s) with the underlying Oracle Apps 11 platform.
    any info on that will be appreciated.
    Thanks
    joe

    One period two spaces.  Not multiple periods.
    You have an inner while loop around your Write function with a True wired to the Continue terminal.  That loop will run forever and the outer loop will only run the first time.  You are forced to abort your VI to get it to stop.
    Get rid of the inner while loop.
    I would recommend looking at the online LabVIEW tutorials
    LabVIEW Introduction Course - Three Hours
    LabVIEW Introduction Course - Six Hours

  • Multiple Sound Card for data acquisition gives read buffer error

    I am using 6 usb based sound cards for voltages and currents mearuments of a three phase delta system.. Hardware is working well. but in labview when i use builtin Input=>sound box for data acquisition it also works well upto 4 inputs... but when i use more i.e. 6 it starts giving error "cannt perform action, read buffer is full" some thing like this... som times it goes to "not responding"...i have tried to find the solution and found in another post of this fourm to varry the sampling rate... i did it upto 96000 that is maximum ... but still problem is same...i need to know, how to manually increase the read buffer. if not possible then.. is there any way that labview stop giving any type of error during simulation?

    thnx i hv solved that problem ... now there is another problem... i am getting all my signals in computer but problem comes when i use phase detector. it keep on showing different values in phase measurement block.. how can i manage the signal with correct phase. i cannt send code cz it has many VIs and they are spread in computer. so i am pasting come photos that are showing different. look in picture...it is from same signal and the phase is different..
    Attachments:
    Capturexcvxccxvxcvcxvvxcvxcv.JPG ‏11 KB
    Capturexcvxcvxcvxcv.JPG ‏11 KB

  • Strain gauge data acquisition

    Hi,
    Carried out first test for my data acquisition project for uni today. The general basic operation is I am carrying out a test on a super duplex steel tube. A new load is applied every 30 seconds and the program should record when the change in strain occurs which is then plotted on a table in an excell file. Some slight issues that I was hoping someone could maybe explain to me...
    1) get a negative value. "-2.107" unsure how to solve this. Have swapped wires around and no luck. Not sure if maybe he filter in my lab view is causing problems as I get an error with it. Problems with differential amplifier maybe?
    2) I wanted my program to plot ten results before save to a file. However it only takes one value and then saves. This means to get the next value when a new load is applied I have to save to a new document.
    I will post the actual program soon. Any ideas help would be much appreciated.
    Cheers
    Mike.

    Hi there,
    I've had a bit of a look into your code, and have modified it a bit to try better understand it. I'm not quite sure what's happening to give you negative results out of your strain analysis, but I think I may have picked up on some other issues.
    I've commented the changes I've made, but in summary:
    1) Removed sequence structure and enforced dataflow with error line
    2) Modified the DAQ section to just a random number generator for the sake of testing.
    3) Set data feed into excel section to indexing output rather than last value
    4) set iteration count of the for loop to address 10 strain measurements out of the array
    5) Changed text file logging to "open or create" to avoid errors which might occur if the file already exists during multiple runs - but this would depend on you wanting to write to the same file each time
    Note: In your for loop, if your attempting to relate the loads in the first column to your last 10 strain measurements, then this would be an incorrect way to go about interacting with the listbox. Please see this example which demonstrates how to address items in a listbox: https://decibel.ni.com/content/docs/DOC-5808
    Attached is the edited/commented vi - I hope this helps in some way and I haven't misunderstood! I'll have another think about the negative values issue..
    Attachments:
    Strain Gauge Edit.vi ‏124 KB

Maybe you are looking for

  • How to bring attachement in BPM

    Hello, We are on XI3.0 SP10. This question concerns an RFC to SOAP scenario. we are sending purchase order from EBP to XI by RFC (bapi). Inside XI we use a BPM for mapping. RFC doesn't support attachements. How can we catch the attachement in the BPM

  • MacBook Pro - Sony HDR-SR1

    I'm new to the Mac world. I just bought the Sony HDR-SR1 and found out it doesn't have the iLink connection. My previous camcorder was a simple connection and this is proving to be difficult. Does anyone have advice on cables, connections, etc?

  • Imac Replace Screen/Screen Failure?

    Hi All I'm thinking of getting the 21.5 imac but I have a bit of a concern about it since it's an all-in-one If the screen/monitor fails, is the entire imac stuffed?  So I have to get the entire imac replaced?? Just out of curiosity, how long would a

  • JDBC adapter missed data from database

    Hello Experts We have a repeatative issues in JDBC sender adapter .While it is reading data from database sometimes we are facing the problem tat all the data is not read by adapter but PI read date is generated for all the records. Some times the is

  • Execute Bex query from ABAP

    Hi, I am using the method mentioned by Durairaj (@  /people/durairaj.athavanraja/blog/2005/04/03/execute-bw-query-using-abap-part-i ) to execute queries from ABAP. When I try to execute a query with characteristics in rows and if the characteristics