Conditionally capturing certain data while continuously acquiring data

In case my question has totally confused you, let me describe the situation, a general one which I'm sure some of you have already tackled.
Suppose you're acquiring data from several channels (let's say two waveforms). And you only want to capture their amplitudes (Y1, Y2,etc.) when either a button is pushed (i.e., things are steady state, now grab that data) or when something else has changed a certain amount (say their frequency has changed 2 Hz).
When I say "capture", I simply mean grabbing the data into a separate array of X,Y values for later processing or on-line plotting while still acquiring data.
Hopefully, this makes sense. Would greatly appreciate any thoughts on this, as it's a
situation that I seem to run into often.
All the best, Hunter

Your use of the terms "Waveforms" and "amplitude" implies a measurement of many samples into one number (for each channel).
For example, if your signal was pure 100 Hz, 1.000 Volts peak, and you captured a 0.1 second block of that signal, then you would have 10 cycles in the capture buffer, varying from +1V to -1V. You can use the RMS function to turn that block of samples into a number of 0.707, meaning the RMS value is 0.707V (= 1.0 V peak).
The basic philosophy would be:
1... Start a continuous acquisition. By specifying NUMBER oF SAMPLES = 0 in the AI-START vi, you will acquire data forever (until the buffer overflows, or until stopped).
2... Periodically (based on a timer), you ask the AI READ function to read zero samples. This does not remove data, but it does tell you how many samples are in the buffer.
3... You immediately read that many samples out of the buffer, and convert from volts to engineering units (if appropriate).
4... If you are measuring their frequency, you need to perform an FFT now. The highest peak in the magnitude of the FFT output is the dominant frequency in the signal. (Freq. of peak = Index of peak * Sample Rate / NPoints in block.
5... If you are doing FFTs, you get a big speed advantage if your block size is a power of two (128, 256, 512, 1024, etc.). If so, then replace step 3 with *-IF-* backlog >= N (power of 2) then read N points from buffer.
6... Apply your criteria - *-IF-* the button has been pressed, *-OR-* if the frequency of channel 2 is different, then compute the RMS or peak values and append to your final results array. Otherwise do nothing.
If you want to detect 2-Hz changes, you need to know the rules of how FFTs work - the frequency resolution is the BIN WIDTH, which equals the sample rate divided by the number of points in the block. If you have a 1000 Hz sample rate and a 1024 point block, your resolution is 1000 / 1024 or just less than 1 Hz. But if you have a 1000 Hz sample rate and a 32 point block, your resolution is 1000 / 32 or about 30 Hz.
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com
Blog for (mostly LabVIEW) programmers: Tips And Tricks

Similar Messages

  • Data source doesn't show porper data while flat file data loading

    Hi Experts,
    I am trying to load data from flat file for info object 0GL_ACCOUNT. I have created an application component and data source.
    My question is after loading text data in the corresponding data source, it shows only few characters of the actual data.
    For Ex. in my original data i have G/L account name "Comp Hardware Purchase" but after loading into the data source it shows only "Comp Hardwa".
    I want to show the whole name "Comp Hardware Purchase ".  I know there is some text length problem but i couldn't find it. What steps i need to follow?
    Please help.
    Full points will be given to the useful answers ****
    Thanks and Regards,
    Niranjan Chechani

    HI Niranjan,
    Go to your data source and check whether the field and infoobject are having the same lenght. If the infoobject lenght is less than your field lenght wihc is coming from Flat file then such issue occur.
    Search for your flatfile datasource and and doubel clik on the datasource and check the fileds tabs, there you will have the mapping or you can also check your Transfer or Update rules of  the target.
    Regards,
    Nanda.S

  • Generating a beep and continuously acquire data at the same time

    Hello
    Recently I started programming in LabVIEW, and I encountered a problem:
    I am using the DAQ assitant in order to acquire a a signal from a Force/Torque tranducer (and tre aquisition is working pretty well) but the problem is that I need in the meantime to run an experiment, and sometimes generate a beep- the problem is that when the beep works- the data acquisition stops.
    My question is: is my problem described as a real-time problem? and can it be solved?
    Lavi

    Hey Lava,
    If you are using Windows, and you set the "use system alert" to TRUE, you shouldn't experience the delay caused by using the standard speaker. Also, that will allow you to customize the beep sound with any wave file. (Of course, your computer will also need a sound card.)
    I've shown this with a quick little VI that generates a chart with random data. If you use the default beep, there is a delay. If you use the system alert, there is no delay in the chart.
    Hope that helps.
    Attachments:
    BeepTestBD.png ‏25 KB
    BeepTestUI.png ‏20 KB

  • Acquiring data from instruments and wiring it to a while loop

    Hello,
    I am very new to labVIEW and was thrown into a project.  Essentially what I am trying to accomplish is to acquire data from my four sensors and use that data to compute drag.  In order to compute the drag, an initial guess at what the drag is must be given and then calculations are carried out in a while loop that converges on a solution once the difference between the current drag output and the previous drag estimate falls below a certain percentage.  I am continuously acquiring data so I need some sort of way to incoporate a timer to allow time for the while loop to converge and then output the drag value.  Right now I am generating a signal since I do not have the sensors hooked up and labVIEW will not let me connect the signal generator to the while loop and gives me an error that I have connected two terminals of different types.
    If I could figure out how to wire my DAQ assistants to the while loop I could figure everything else out
    Thank You,
    Ellen

    Hi Ellen,
    I might need a little more information before I can help you. How are you simulating your signals? If you're using the DAQ assistant express VI, are you simulating hardware in MAX? Or are you using the simulate signal express VI?
    Alos, what VIs or functions do you have inside the while loop that you are trying to connect to?
    Perhaps posting a screenshot would be useful. I'm sure we will be able to solve your problem.
    Here is a help page that you might find useful.
    http://zone.ni.com/devzone/cda/tut/p/id/4656
    Joel G
    Applications Engineer
    National Instruments UK & Ireland

  • Exception thrown while trying to acquire data from Profile Data Control

    I created a new WebCenter Portal Application (with JDeveloper 11.1.1.4).
    Then tried to acquire data from Profile Data Control through getProfile().WCUserProfile to create a read-only form with profile data.
    After deploying (to internal WLS) and running I got a popup saying:
    *Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.1.2.v20101104-r8475): org.eclipse.persistence.exceptions.ValidationException Exception*
    Description: Cannot acquire data source [java:comp/env/jdbc/WebCenterDS].
    Internal Exception: javax.naming.LinkException: [Root exception is javax.naming.NameNotFoundException: While trying to lookup 'jdbc.webcenter.CustomPortalDS' didn't find subcontext 'webcenter'. Resolved 'jdbc'; remaining name 'webcenter/CustomPortalDS']; Link Remaining Name: 'jdbc/webcenter/CustomPortalDS'
    The question is how can I create such a data source to acquire data needed?

    Hi, there's two ways, in both ways you need use the user <PRE>_WEBCENTER that RCU create.
    1 - You can go in your console and create de dataSource, as Yannick sad. You can use your production database if you want get some more real tests, or you can get some develope database and run RCU. You can copy the configuration from you WLS server that are installed webcenter to make this easy.
    2 - In develop mode you can just create a database connection name "WebCenter", just like sad here:
    http://download.oracle.com/docs/cd/E17904_01/webcenter.1111/e10148/jpsdg_people.htm#BABICGCH

  • Acquiring data faster

    Hi, I am changing a code to operate a  Keithley 2401 sourcemeter. I want to be able to change the voltage applied on a solar cell and record the corresponding current in different bias modes, IV curves. Also, I want to repeat measurements in defined amount of time. Finally, all data should be saved in text files automatically. I have changed the original code and I achieved what I wanted my problem is that it takes a while to acquire data. It takes 30 min to run 100 IV curves with 50 points in the bi directional mode. Is there any way to make it faster? I am very knew to labview so my code is probably full of mistakes, all suggestions are very welcomed. I am using Labview 2014.
    Thanks.

    Is there a hardware limitation to your speed? Can the Keithley keep up? You have Wait nodes in the VI which could slow down the timing, but it sounds like your instrument communication is the limiting factor because those waits aren't long enough to cause it to take 30 minutes with 5000 data points.
    Is there a sample rate setting that you need to configure on your Keithley? It looks like you're reading a certain number of points and waiting until all of those points come in before moving on. If you Keithley is only giving you those points at a slow rate, then that would limit how fast you can run this applcation.
    (This is the most likely fix to your slow rate, find the sample rate setting and increase it. Maybe this has something to do with the "Step Delay" input, which is 2 seconds?)
    I don't know much about the VIs your using. Do you need to "Configure", "Enable", and "Read" multiple times each loop, every single loop? The only thing that looks to be changing with each iteration is the Index that you write to the "Save" VI.

  • OSB: Cannot acquire data source error while using JCA DBAdapter in OSB

    Hi All,
    I've entered 'Cannot acquire data source' error while using JCA DBAdapter in OSB.
    Error infor are as follows:
    The invocation resulted in an error: Invoke JCA outbound service failed with application error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/DBAdapter1/RetrievePersonService [ RetrievePersonService_ptt::RetrievePersonServiceSelect(RetrievePersonServiceSelect_inputParameters,PersonTCollection) ] - WSIF JCA Execute of operation 'RetrievePersonServiceSelect' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/soademoDatabase].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.soademoDatabase'. Resolved 'jdbc'; remaining name 'soademoDatabase'.
    ; nested exception is:
    BINDING.JCA-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    JNDI Name for the Database pool: eis/DB/soademoDatabase
    JNDI Name for the Data source: jdbc/soademoDatabase
    I created a basic DBAdapter in JDeveloper, got the xsd file, wsdl file, .jca file and the topLink mapping file imported them into OSB project.
    Then I used the .jca file to generate a business service, and tested, then the error occurs as described above.
    Login info in RetrievePersonService-or-mappings.xml
    <login xsi:type="database-login">
    <platform-class>org.eclipse.persistence.platform.database.oracle.Oracle9Platform</platform-class>
    <user-name></user-name>
    <connection-url></connection-url>
    </login>
    jca file content are as follows:
    <adapter-config name="RetrievePersonService" adapter="Database Adapter" wsdlLocation="RetrievePersonService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/soademoDatabase" UIConnectionName="Connection1" adapterRef=""/>
    <endpoint-interaction portType="RetrievePersonService_ptt" operation="RetrievePersonServiceSelect">
    <interaction-spec className="oracle.tip.adapter.db.DBReadInteractionSpec">
    <property name="DescriptorName" value="RetrievePersonService.PersonT"/>
    <property name="QueryName" value="RetrievePersonServiceSelect"/>
    <property name="MappingsMetaDataURL" value="RetrievePersonService-or-mappings.xml"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="GetActiveUnitOfWork" value="false"/>
    </interaction-spec>
    </endpoint-interaction>
    </adapter-config>
    RetrievePersonService_db.wsdl are as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <WL5G3N0:definitions name="RetrievePersonService-concrete" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService" xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/" xmlns:WL5G3N1="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService" xmlns:WL5G3N2="http://schemas.xmlsoap.org/wsdl/soap/">
    <WL5G3N0:import location="RetrievePersonService.wsdl" namespace="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService"/>
    <WL5G3N0:binding name="RetrievePersonService_ptt-binding" type="WL5G3N1:RetrievePersonService_ptt">
    <WL5G3N2:binding style="document" transport="http://www.bea.com/transport/2007/05/jca"/>
    <WL5G3N0:operation name="RetrievePersonServiceSelect">
    <WL5G3N2:operation soapAction="RetrievePersonServiceSelect"/>
    <WL5G3N0:input>
    <WL5G3N2:body use="literal"/>
    </WL5G3N0:input>
    <WL5G3N0:output>
    <WL5G3N2:body use="literal"/>
    </WL5G3N0:output>
    </WL5G3N0:operation>
    </WL5G3N0:binding>
    <WL5G3N0:service name="RetrievePersonService_ptt-bindingQSService">
    <WL5G3N0:port binding="WL5G3N1:RetrievePersonService_ptt-binding" name="RetrievePersonService_ptt-bindingQSPort">
    <WL5G3N2:address location="jca://eis/DB/soademoDatabase"/>
    </WL5G3N0:port>
    </WL5G3N0:service>
    </WL5G3N0:definitions>
    Any suggestion is appricated .
    Thanks in advance!
    Edited by: user11262117 on Jan 26, 2011 5:28 PM

    Hi Anuj,
    Thanks for your reply!
    I found that the data source is registered on server soa_server1 as follows:
    Binding Name: jdbc.soademoDatabase
    Class: weblogic.jdbc.common.internal.RmiDataSource_1033_WLStub
    Hash Code: 80328036
    toString Results: ClusterableRemoteRef(8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1 [8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1/291])/291
    Binding Name: jdbc.SOADataSource
    Class: weblogic.jdbc.common.internal.RmiDataSource_1033_WLStub
    Hash Code: 92966755
    toString Results: ClusterableRemoteRef(8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1 [8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1/285])/285
    I don't know how to determine which server the DBAdapter is targetted to.
    But I found the following information:
    Under Deoloyment->DBAdapter->Monitoring->Outbound Connection Pools
    Outbound Connection Pool Server State Current Connections Created Connections
    eis/DB/SOADemo AdminServer Running 1 1
    eis/DB/SOADemo soa_server1 Running 1 1
    eis/DB/soademoDatabase AdminServer Running 1 1
    eis/DB/soademoDatabase soa_server1 Running 1 1
    The DbAdapter is related to the following files:
    C:\ Oracle\ Middleware\ home_11gR1\ Oracle_SOA1\ soa\ connectors\ DbAdapter. rar
    C:\ Oracle\ Middleware\ home_11gR1\ Oracle_SOA1\ soa\ DBPlan\ Plan. xml
    I unzipped DbAdapter.rar, opened weblogic-ra.xml and found that there's only one data source is registered:
    <?xml version="1.0"?>
    <weblogic-connector xmlns="http://www.bea.com/ns/weblogic/90">
    <enable-global-access-to-classes>true</enable-global-access-to-classes>
    <outbound-resource-adapter>
    <default-connection-properties>
    <pool-params>
    <initial-capacity>1</initial-capacity>
    <max-capacity>1000</max-capacity>
    </pool-params>
    <properties>
    <property>
    <name>usesNativeSequencing</name>
    <value>true</value>
    </property>
    <property>
    <name>sequencePreallocationSize</name>
    <value>50</value>
    </property>
    <property>
    <name>defaultNChar</name>
    <value>false</value>
    </property>
    <property>
    <name>usesBatchWriting</name>
    <value>true</value>
    </property>
    <property>
    <name>usesSkipLocking</name>
    <value>true</value>
    </property>
    </properties>
              </default-connection-properties>
    <connection-definition-group>
    <connection-factory-interface>javax.resource.cci.ConnectionFactory</connection-factory-interface>
    <connection-instance>
    <jndi-name>eis/DB/SOADemo</jndi-name>
              <connection-properties>
                   <properties>
                   <property>
                   <name>xADataSourceName</name>
                   <value>jdbc/SOADataSource</value>
                   </property>
                   <property>
                   <name>dataSourceName</name>
                   <value></value>
                   </property>
                   <property>
                   <name>platformClassName</name>
                   <value>org.eclipse.persistence.platform.database.Oracle10Platform</value>
                   </property>
                   </properties>
              </connection-properties>
    </connection-instance>
    </connection-definition-group>
    </outbound-resource-adapter>
    </weblogic-connector>
    Then I decided to use eis/DB/SOADemo for testing.
    For JDeveloper project, after I deployed to weblogic server, it works fine.
    But for OSB project referencing wsdl, jca and mapping file from JDeveloper project, still got the same error as follows:
    BEA-380001: Invoke JCA outbound service failed with application error, exception:
    com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/DBAdapterTest/DBReader [ DBReader_ptt::DBReaderSelect(DBReaderSelect_inputParameters,PersonTCollection) ] - WSIF JCA Execute of operation 'DBReaderSelect' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/SOADataSource].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.SOADataSource'. Resolved 'jdbc'; remaining name 'SOADataSource'.
    ; nested exception is:
    BINDING.JCA-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/SOADataSource].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.SOADataSource'. Resolved 'jdbc'; remaining name 'SOADataSource'.
    You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server. This exception is considered not retriable, likely due to a modelling mistake.
    It almost drive me crazy!!:-(
    What's the purpose of 'weblogic-ra.xml' under the folder of 'C:\Oracle\Middleware\home_11gR1\Oracle_OSB1\lib\external\adapters\META-INF'?
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • Acquiring data continuously with a start and stop trigger

    I am currently acquiring data continuously (1000 samples at 5k/s) using a start trigger to start the acquisition and stopping the acquisition with a digital line. The problem with this is that I want the acquisition to stop immediately on a trigger, in otherwords I don't want it to finish with 500 or 200 samples of useless data. I am using a PCI 6024 E. Any suggestions would be appreciated.

    The trick will be to minimize the number of post-trigger scans that will occur after your stop trigger. The stop (reference) trigger requires a minimum of 2 post-triggered scans. Therefore, the way to stop your acquisition as soon as possible is to configure your stop trigger to have only 2 post-triggered scans.
    I've included a little bit of code to illustrate this in LabVIEW 7.0. The number of post-trigger scans will equal the buffer size less the number of pre-trigger scans. Since the minimum number of post-triggered scans is 2, we'd have to set the number of pre-trigger scans to the buffer size less 2. This is wired as the minimum number of pre-trigger scans acquired input to the AI Control.vi in the example.
    This should do what you're
    after. Best of luck to you as you get this all put together.
    Jim Laudie
    Applications Engineer, National Instruments
    Attachments:
    example.vi ‏85 KB

  • Acquire data continuously (buffered semiperiod) with the 6602 board

    Hello,
    I post this qestion again because I think in my previous thread it will be wraped. :-)
    I use an PCI6602 card and 3 or 5 counters on it in buffered-semiperiod measurement.
    The planned measurement can last one day or longer so there will be a lot of values.
    What is the best way to process the values? Maybe calculate something and
    write these results to a file.
    I've read something about double buffered acquisition. Also something about
    a circular buffer.
    In the document "Lab VIEW Data Acquisition Basic Manual" the circular buffer is described.
    But I can't find any examples for double buffered acquisition and circular buffers.
    Has someone an example?
    Will I need such a t
    echnique? Or is there an other possible solution to handle the
    amount of data continuously?
    And when will be the best point of time to do the analyses of the data.
    Inside the while-loop or outside?
    Is it a problem to do this with the 3 counters simultaneously?
    I would be thankful for any tipps.
    I attached an file (library), where you can see the configuration (Measure Buffered SemiPeriod.vi).
    thanks in advance
    Peter
    Attachments:
    Measure_Buffered_SemiPeriod.llb ‏949 KB

    Peter,
    If your measurement will last for a day, you will need to log the data to file. Otherwise, it is very likely that you program will be unable to store that quantity of data. A double-buffered acquisition and a circular-buffered acquisition are the same operation. They refer to a continuous acquisition where a finite buffer is used in a circular fashion (new data is continually written over the current data as the buffer is filled). Of course, this requires the user to read data from the buffer before it is overwritten. In the program you attached to this post, you are already performing a double-buffered acquisition because you have the Buffer Mode controls set to "Continuous". With regards to analyzing this data, it would be best to do this
    after the acquisition is complete. Furthermore, you should be able to do this with three counters without any problems. Of course, if you need to perform more than three buffered measurements simultaneously, the additional counters will need to use interrupts.
    Good luck with you application.
    Spencer S.

  • Error: Inappropriate data for continuous time axis while displaying in Time-series Line in OBIEE

    I wanted to use time series line in my analysis but I couldn't get What kind of data is required for this graph? It shows inappropriate data for continuous time axis. I had total amountmin vertical axis and time(year) in horizontal axis.

    Check this if not helpful then follow 2 links at bottom
    OBIEE - Time Series Conversion Functions : AGO and TODATE | GerardNico.com (BI, OBIEE, OWB, DataWarehouse)
    ~ http://cool-bi.com

  • Not enough memory issue while acquiring data

    Hi all,
    I am trying to acquire audio data @ 50KS/s for 20 sec. using the PXI 4498 card in the PXI system. To acquire data I am using the DAQmx functions.
    Step1 : Created DAQmx channel
    Step2: Set the no. of sample to read as 20X50=1000000 to the DAQmx Timing function
    Step3: DAQmx Read funtion to read the data. (Set the timeout as 20x2=40Seconds)
    PLease find the attached screen shot of the block diagram.
    Issue is sometimes I am facing the memory issue when I run this VI. Popup saying that "Not enough memory to complete this Operation"  is getting popup and the Vi getting stop abruptly. Kinldy look into the screen shot and suggest me the apprapriate method to read the data at mentioned acquisition rate.
    Note: The problem is not consistent. Sometimes I am facing the error and sometimes not.
    Thanks in advance
    Giridhar
    Attachments:
    Block diagram.jpg ‏208 KB

    I think actdi is talking about loading an external database directly from the XML file using the jdbc XML driver, correct? I have not tried this yet, but am curious as to the results.
    http://docs.oracle.com/cd/E17904_01/integrate.1111/e12644/appendix_xml_driver.htm#CHDFIJEH
    Hope this works.
    Enjoy!
    Michael R.

  • How do i deal while acquiring data rising ni9237

     
    Hi everybody,
    I created under matlab a code that acquire data from four gauges fixed to a beam using NI9237, the aim of my code is to estimate the applied force to the beam, my problem is that at the in the end of acquisition i get the expected force devided by 10(7000N rather than 70000), i am pretty sure that the problem comes form the NIdevice, does any one of you have a suggestion?
    Yours Faithfully.
     

    Hello ismailel,
    You can test your device using NI MAX by following this tutorial:
    http://www.ni.com/tutorial/4638/en/
    Last version of MAX:
    http://www.ni.com/download/ni-system-configuration-14.5.0/5158/en/
    Best regards,
     

  • How do i deal while acquiring data unsing ni9237

    Hi everybody, I created under matlab a code that acquire data from four gauges fixed to a beam using NI9237, the aim of my code is to estimate the applied force to the beam, my problem is that at the in the end of acquisition i get the expected force devided by 10(7000N rather than 70000), i am pretty sure that the problem comes form the NIdevice, does any one of you have a suggestion?
    Yours Faithfully

    This is not a new idea for data acquisition and doesn't belong in the Idea Exchange.  It is a regular problem asking for help.
    It belongs in the Multifunction DAQ board.
    I'll ask to have it moved.

  • Audio data to be acquired at 192khz

    hi ...
    well i  have made a VI to acquire  audio data  and then write it to a file to furthur process it. the problem is that  when i send  stram of audio data upto 48 khz the data is captured continuously, but if i try to  send a stream of 64khz or 192 khz the data is acquired but for a little time. i want to acquire data of 192khz stream continuously.  i m using labview 6.2 and dio32hs card.
    i want to acquire data at 192khz for atleast 6 min continuously.
    is it possible???
    please help..
    thanx and regards
    vivek modgil

    Look at the producer consumer template for multithreading.
    Essentially what happens if you use a simple model like
    Initialize()
    DaqLoop
       Read()
       Process()
       Display()
       Save()
    LOOP
    is that if the saving and/or sace takes too long the next itteration of read will have caused a buffer over run in the daq task.  This is more evident in the faster Acquisition rates.  Making the buffer larger only delays the onset of this event.
    A better model is (Threads are just parallel loops)
    Thread 1 (Producer):{
    Initialize DAQ()
    DaqLoop
       Read DAQ data()  //all data avaliable.
       send data to a Queue
    }Loop(until done)
    Kill queue();
    Thread 2 (Consumer):
    DataLoop
      Wait for data at queue; // put in some timeout  ie 100ms 
      If new data-> Process() Display(); Save();
    }Loop(While queue is valid)
    This is just a starting point.  Look at the producer/consumer model.
    This ensures that the DAQ loop will (should) never overrun and the consumer loop will attempt to keep up with the data.  Saving data to file is slow so do this post acquisition if possible (IE build array in memory).
    Paul 
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • How to store data while Labview can overwrite the unwanted data

    Hi,
               My name is
    Panakalu. Currently I am doing a project using Labview. I need a help
    from anyone of you. I am in desperate need of help. Here is my problem.
    I want to acquire data from a arbitrary generator. Actually I have to
    store transients from a device. This process is going to run for
    atleast 8 hours. So I cannot store all the data acquired. This made me
    to I keep a threshold level for the acquired transients. So please any
    body tell me how I can overwrite the data which is below the threshold
    level and continue writing the data to hard disk when the data is above
    the threshold level. Also I have to store this data in different files.
    That is for every 5 seconds I have to store the data into another file.
    If the first 5 seconds data is stored in a file named data1.xls, then
    the next 5 seconds data should be stored into a file named data2.xls.
    Like this I have get 100 different files. I am using third party
    drivers for labview. My data acquisition card is from EXACQ
    TECHNOLOGIES.
    Please help me in this matter. Your help in this matter is really
    appreciated.
    Thanking You All
    Panakalu           

    Take one step at a time. 
    To write data to a file every 5 minutes, it might be best to accumulate the data into an array.  Use a while loop.  Collect the data inside the loop and check if it is above threshold.  If so, append it to the array.  Inside the loop you can check the time.  If 5 minutes have elapsed, exit the loop.  After exiting loop, write to a file.  A big loop must surround all this code to repeat it over and over.  The big loop can create the file name.  Use the i terminal, convert the number to a character, and conatenate the character to the basic file name, like "data" + "2" + ".xls".  Try this on you own, post your code, and we can continue to help you with problems.
    Here is a template to help you get started:
    Message Edited by tbob on 11-10-2005 12:06 PM
    - tbob
    Inventor of the WORM Global
    Attachments:
    template.PNG ‏15 KB

Maybe you are looking for