Continuous acquisition and synchronization of two scanners

Hello!

I use two scanners high-speed NI PXI-5124. I'm running a continuous acquisition as in the attached example. I have two questions:

(1) is it possible to make life-long using another source of trigger software INSTEAD?

(2) depending on the answer to the first question - how to synchronize two scanners? In the attached example scanners have the same source of the clock, and they receive the same synchronization synchronization signal so the sampling rates are the same, but there is a lag of random phase each time I start the acquisition.

Thank you!

IVA

Hello, Mateusz!

I just apply the idea in the examples, as well as ideas from here, and here is the solution that works.

Thank you!

IVA

Tags: NI Hardware

Similar Questions

  • Error 50103 during continuous acquisition and triggering

    Hi all

    I'm ai0 data acquisition: 3 4 analog inputs (voltage) in continuous mode, display the data (tables and graphs) and data flow to TDMS files in a loop of the consumer.

    The same time, I want to be able to save "time windows" with my purchase. For example, I want to be probe ai1:2 and when the voltage exceeds a certain value, that is to say 0, 5V, I can trigger with analogue reference and get a certain amount of samples (finished samples) after and before (samples before). I am aware of how I can achieve this, an example of NOR is more useful: http://sine.ni.com/devzone/cda/epd/p/id/4840 .

    The problem is this: I don't want to stop the continuous acquisition which is already underway. If I try to start a new task (somehow "copy & paste" the example) that I get, as expected, error-50103, "the specified resource is reserved.

    So, is it possible to accomplish this task without having to fall on reserving resources problem? And if there is not a way could you suggest a way to make this front trigger and trigger sampling?

    Please find enclosed a snapshot of the code. I use a PCI-6254 with two SCB-68.

    Thank you and looking forward for you advice!

    Best regards

    Panos

    Have you seen this?

  • Continues RT Acquisition and generation LabVIEW

    I was referencing this example for a real-time application, I write:

    Continuous acquisition and generation reference example LabVIEW Real-time

    http://zone.NI.com/DevZone/CDA/EPD/p/ID/5366

    I use the exact code provided. I have run the vi host, configure the target primary vi to the IP address of my computer and HAVE AO point cards on my system. Just like instruced in the comments. The front panel of the host displays my data correctly.  Although time is not apear update waveform graph. The program expires correctly after 10 seconds.

    The problem is the PDM file.  The tdms file created is a stupid idea, nothing coherent when I go to open in Notepad. I see that the code is evaluated at 2.33 out of 5. Y at - it a correction for this code, or a better example to use?

    gardma wrote:

    The problem is the PDM file.  The tdms file created is a stupid idea, nothing coherent when I go to open in Notepad. I see that the code is evaluated at 2.33 out of 5. Y at - it a correction for this code, or a better example to use?

    Of course you can not read the file of PDM, you're not a computer

    TDMS files are written in binary, so try to read in Notepad will be meaningless.

    You need to convert to something readable as ASCII the first

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

  • Synchronize the analog continuous entry and continuous analog output using the unique PCI6024E data acquisition card

    Hello

    I want to generate the continuous signal and at the same time I want to read that signal that I generate using a single card DAQ. I want to generate signal and the received signal is synchronized and in phase.

    I looked at several samples on the sync, but it quiet confusing. One using the same clock of entry while the other use a trigger to start. I use the PCI-6024E DAQ card.

    Can someone help me in this regard?

    In two of these screenshots, the task to HAVE started first (that's what you want, because it is the task of the slave).

    Typically for AO, you can simply write a unique period of your waveform, and then regenerate again and again.  Your waveform would be preset before the task starts.  If you need to update the waveform on the fly according to enter programming during execution of the task, you would disable the regeneration.  In addition, if the wave form is such that it cannot be easily represented by a predefined buffer (for example, it is a strange frequency which is not a same ditch at the bottom of the sample clock), then non-regeneration is the way to go.

    Best regards

  • Continuous data acquisition and real-time analysis

    Hi all

    It is a VI for the continuous acquisition of an ECG signal. As far as I understand that the analog read DAQmx VI must be placed inside a while loop so it can acquire the data permanently, I need perform filtering and analysis of the wave in real time. How I implemented the block schema means that data stays int the while loop, and AFAIK the data will be transferred on through the tunnels of data once the loop ends the execution, it clearly isn't real-time data processing.

    The only way I can think to fixing this problem is by placing another loop that covers the screw scene filtering and using some sort of registeing shift to transmit the data in the second while loop. My question is whether or not it would introduce some sort of delay, and weather or not it would be supposed to be the treatment in real time. Wouldn't be better to place all the screws (aquicition and filtering) inside a while loop? or it is a bad programming practice. Other features I need to do is back up the data I na file, but only when the user wants to do.

    Any advice would be appreciated.

    You have two options:

    • A. as you said, you can place the code inside your current while loop to perform the treatment.  If you're smart, you won't need to put one another while loop inside your existing (nested loops).  But it totally depends on the type of treatment that you do.

    • B. create a second parallel loop to perform the treatment.  This would be separate processes to ensure that the treatment is not obstacle to your purchase.  For more information, see here .

    Your choice really depends on the transformation that you plan to perform.  If it's much the processor, this could introduce delays as you said.

    I would recommend that you start at any place in the first loop and see if your DAQ buffer overruns (you can monitor the rear of the buffer during operation).  If so, you should decouple the process in separate loops.

    In what concerns or not ' it would be considered as real time processing ' is a trick question.  Most of the people on these forums say that your system is NEVER in real time because you're using a desktop PC to perform processing (note: I guess it's the code that runs on a laptop or desktop?).  It is not a deterministic systemand your data is already "old" by the time wherever he leaves your DAQ buffer.  But the answer to your question really depends on how you define "real time processing".  Many lay it will set as the treatment of 'live' data... but what is "actual data"?

  • How to add corresponding elements of two arrays in a continuous acquisition?

    Hi all

    I am writing a program (in version 9.0 of labview) to acquire the signal of a fast set. I use the acquisition rate of 1.25 Ms with an external trigger. Now what I need, is to add the "n" data these acqisitions and then further process.  E.g. If I signal to 200µs acqiring can total number of data points with the acquisition of 1.25Ms rate will be 250. I'll get a table 1 d of 250 data points whenever I run my acquisition.

    Let's say Array 1of acquisition number 1, 0.1, 0.3, 0.5, 0.6,... up to a total of 250 data points

    Table 2 of the acquisition by number 2, 0.4, 0.5, 0.8, 0.4,... up to a total of 250 data points

    ----------------------------------------------------------------------------------

    Added table should be 0.5, 0.8, 1.0, 1.3... .route to a total of 250 data points

    -----------------------------------------------------------------------------------

    To do this, I need first to save the table of acqisition number 1, then run the No. 2 acquisition and add points of data corresponding to the saved table. This should continue at a nuber defined by the user to purchase say 10, 20 or 50... I don't know how to do it. Can someone help me with this problem?

    Thank you very much in advance

    Kind regards

    Champion

    I guess that time avarages and acquisition will not change during the measurement, so keep a cela outside loops. If you know your settings for made her make it constant.

    you create task (outside the loop) and a narrow at the end.

    Avoid the dashboard generation where possible. With no.. AV., and no. acq.points declared, the size of the arrays is fixed and you can (re) use a single Bay and replace the elements in the array.

    No need to collect all the data and avarage them after the rally. Just add

    I add a suggestion

  • continuous measurement and logging, LV2014

    In LabView 2012, I examined how project templates QueuedMessageHandler and the measure continuously and logging (CML). In addition, there are all of a lengthy and detailed documentation for the QMS. There is a much shorter documentation for CML, but readers of mention the QMS, given CML is based on this project template of course.

    I just got LV2014, and I began to consider the continuous measurement and model of forestry (DAQmx) inside LabView 2014 project. There is here a change which is not documented: a state machine additional typedef enum in the loop of paremeter. But there is no change in the QMS 2014 version, while this change is not explained in detail.

    You can direct me to some docs or podcasts more explaining the feature of the new version of CML?

    Also, when I try to run the continuous measurement and model of forestry project (DAQmx), just to see how it works, I see strange behavior: even though I always select "connect" in the trigger section, force the trigger button starts to blink, and two messages begin to iterate through the channel indicator : logging and waiting for release. But I always chose "log" is this a bug?

    I was reading an "interesting debate" since the year last too:

    http://forums.NI.com/T5/LabVIEW/buggy-LabVIEW-templates-amp-courses/TD-p/2298766/highlight/true/page...

    I understand that these models are only starting points, but I'd be very happy for some documentation to understand how to properly use these models (I was quite OK with the original models, but the new ones obtained more complex due to the state machine).

    Thanks for the tips!

    Hello

    The additional Typedef is necessary to ensure that only data acquisition-task is started.
    This is because the mechanical action is defined as "lock when released. For example, when you press on the
    Start button, then release, the changes of signal from false to true, and then it goes from true to false.
    It would be two events. During the first event, a new Message is created. Now, when you take a look at the "Message loop will vary."
    you will also see an additional type of def. In this VI data acquisition task is created and started. The problem now is the second event.
    Now another Message is created to start an acquisition process. And if another task-acquisition of data is started, you would get a problem with LabVIEW and DAQ hardware.
    But due to the fact that in the loop of the Acquisition, the State has the value of Acquisition with the first Message, the second Message does not start another DAQ-task.

    In the QMH there no need of this, because you don't start a data acquisition task.

    Two indicators during indexing, strength of trigger is set to false. If the program connects
    and force trigger is disabled. After the registration process, the flag is bit set to Wait on trigger
    because, as already stated, it is disabled. Now Force trigger is true once again, and it connects again. This process
    is repeated and the indicator is switching between these two States.
    When you open the VI "Loop of Message Logging", you will see that the trigger for the Force is set to false.

    Kind regards

    Whirlpool

  • I'm trying to move a song to my iPhone music library to the iTunes library on my MacBook Air.  I do not want to synchronize the two, so how do I simply copy/migrate the song on my computer?

    I'm trying to move a song to my iPhone music library to the iTunes library on my MacBook Air.  I do not want to synchronize the two (and they have never been synchronized), so how can I simply copy/migrate the song on my computer?  Is there a way to do, without having to re-purchase the song on the iTunes Store on my Mac?

    E-mail (for yourself) click on it in the email

  • Pavilion TS 17-g099nr: PCI Data Acquisition and processing of the Signal Windows 10 x 64 controller driver

    Hi, it is impossible for the moment to install the driver for PCI Data Acquisition and Signal Processing.

    I downloaded the driver from Intel, and it did not work... I found a version of this site for windows 8.1 unupdated and it does not work.

    A little help?

    Thank you!

    Hello:

    It could be one of two different drivers.

    Try this one first, and then restart the PC.

    This package contains the Intel Chipset Installation utility. This utility allows the operating system to show the correct name for the Intel hardware that is installed in the Microsoft Windows Device Manager. This package is provided for the laptop models running a supported operating system.

    FTP://ftp.HP.com/pub/SoftPaq/sp75501-76000/sp75561.exe

    If this does not work, try this one...

    This package contains the driver which allows Intel platform dynamic and thermal firmware setting. Intel platform dynamic and thermal environment information system temperature and power use for the thermal protection of the system to work properly. This package is provided for the laptop models running a supported operating system.

    FTP://ftp.HP.com/pub/SoftPaq/sp75501-76000/sp75506.exe

  • cDAQ for the continuous acquisition of data faster

    Hello

    I've only done very slow with LabVIEW data acquisition and I was wondering what the most fast (conservatively faster I'm not pushing the limits) data acquisition and recording of data possible on compact DAQ hardware? and the advantage of switching to a cRIO of a cDAQ really just for more reliable speed and data acquisition? I am interested on 30kS/s channels more analog input 5.

    Thank you very much!

    Rates are feasible, and you can stream to disk. It is only when you save in a text file that you need to start to worry about the use of a design of producer/consumer and a queue (in general).

    I'd be too concerned about real-time unless you do some kind of control loop where the reactions must be precisely timed (once again, in general).

    For very high acquisition rate (high MECH. / s), OR sell scanners that connect with USB in order to have some distance to go before you should start worrying.

  • How to abort Continuous Acquisition (which is set to acquire a constant number of samples per channel each iteration)?

    Hi all

    I would like to continuously acquire an input channel analog and, if necessary, be able to stop the acquisition as quickly as possible.

    I use a card NI USB-6289. I implemented a DAQmx (voltage) analog input task, set the clock sampling DAQmx 'continuous samples' and the rate required (IE 1000, which is 1 kHz). For the acquisition, I used a while loop with inside the DAQmx Read with Terminal 'number of samples per channel', wired (IE 1000). The while loop waits until 1000 samples are acquired and therefore continuously reads the channel in uniform batches of 1000 samples every second ticking. The while loop can be easily interrupted when the DAQmx has completed the acquisition of the lot being 1000 samples, but it takes the DAQmx finish their current task.

    My problem is how to stop the loop while the DAQmx Read lies in the middle to get 1000 samples WITHOUT delay all 1000 samples are received? Is it possible to interrupt the DAQmx Read?

    I could reduce "the number of samples per second", increasing the responsiveness of the while loop, but this is not the solution I prefer. I tried to destroy the task (outside the while loop), but that does not stop immediately the acquisition, Read DAQmx still finish acquire 1000 samples. I've included an example Subvi. When I was using a PCI card, I used a timed while loop with inside the DAQmx Read with Terminal 'number of samples per channel' wired-1 (= which means ' read everything in the buffer "). In this case, it was easy to stop the acquisition at any time: the timed, while the loop is abandoned and the acquisition has ceased immediately. But it does not work with an NI USB-6289 map (see thread http://forums.ni.com/ni/board/message?board.id=170&message.id=386509&query.id=438879#M386509) because of the different way the data are transferred to the PC.

    Thank you very much for your help!

    Have a great day,

    LucaQ

    Hi LucaQ,

    Your solutions are decrease of the number of samples, or record the time you want to stop and remove samples that have been acquired beyond this time. There is no other way to stop the actual reading out of the hardware store.

    Flash

  • synchronization of two loops for...

    HII...

    I am using two loops for and I want each iteration for both loops start at the same time...

    in fact I want to sync between these two loops...

    so when the each iteration of the two loops will start at the same time then these will be synchronized...

    also if a loop takes more time in an iteration the other loop should suspend until the end of the iteration of the other...

    please me... thanks hlp...

    Hi samir,.

    two options:

    1: when both FOR loops should have same time iteration why not just put all the code in a loop FOR?

    2nd: when 1 is not possible/wanted, you can use a notification utility. Set the notifier early iteration of the first for a loop and wait for the signal in the second loop...

    3rd: use call loops and synchronize them...

  • acquisition and recording of analog data with producer consumer model

    Someone on this forum, in a separate last week discussion, suggested that I use the producer model consumer data acq.  My ultimate goal is to acquire analog channels 1-4 continuous data, display graphical band style and save the data on the boot disk when the user presses the 'Start Saving' button (and will continue to display recorder cards).  Economy will stop when the user presses the button "Stop Saving" but strip map will continue to operate.

    My attempt to use the producer-consumer model is attached (LV 8.5 only).  It does not work.  I have not tried to implement for recording user controls - just trying to make simple continuous display and save (1 channel) at this stage, using this model.  VI runs, but the graphic Strip is never updated with the actual data, and the data file that is saved has zero byte inside.

    Thank you.

    WCR,

    Looked at your code, and you are right.  It won't work.

    Take a look at this example:

    http://decibel.NI.com/content/docs/doc-2431

    The VI of the acquisition must be inserted in the loop of the producer.  In addition, you must tell him how many samples for (otherwise, it will get 0).

  • Continuously measure and write waveform using PDM

    Hi all

    I'm doing my thesis by using Labview 2010 (since this is the only version currently available in University ). I need to read and save data from the microphone (currently to simulate a signal because I need to make the program work first) then save and analise IT (has not reached this point yet). I tried to use the structure of the event in order to record and then play tdms files. But unfortunately it saves only a small piece, then I inserted while loop, so it will record continuously but the program is not responding after registration, I push and I can only manually close the toolbar it. Please does someone could help me or suggest that something since I'm not very good for Labview and any comment is welcome. Here's what I've done so now. I tried searching forums for a similar solution but did not find anything useful (some had a much newer version so I could not open). Thank you.

    Hi and welcome to the forums,

    The reason why you can not stop the waveform recording or exit the application is because you have the case of the events set to "lock the table until the end of the matter for this event" (in edition events). This means that LabVIEW will not respond to the user until the end of this structure of the event, but because you have the option to press the while loop stop to complete the structure of the event means that you have a blockage and abandon the VI.

    The architecture of your application is not ideal - I highly recommend everything that takes a long time to execute within the structure of your event for the above reason (obviously you can uncheck lock as a quick fix Panel). I think I have a look at the design of producer/consumer model (events) (new... > model > frameworks) because it would be more appropriate for your application. You can manage your button presses in the structure of the event and have a state machine in the loop at the bottom for starting, running and stopping of your data acquisition.

    The idea is that you don't do very little inside the event structure so it frees up the façade, but the messages (e.g. power acquisition data, quit the application) are managed by another loop.

    I don't know if it comes in LabVIEW 2010, but there are examples of projects that include a project in 2012/2013 "continuous measurement and logging" which may be suitable for your application. There are also examples of the State machines and managers of messages queued.

  • Why the continuous measurement and Logging in LabVIEW 2012 Project uses strings instead of Enums and orders from the queue?

    Hello!

    I noticed that the continuous measurement and a project in LabVIEW 2012 Logging using chains instead of enums and orders from the queue. I wonder if there is a good reason for it?

    Kind regards

    Anguel

    First, string vs enum debate is probably the version of LabVIEW vim vs emacs. There are good arguments on both sides, and I doubt that there is always a "winner".

    A brief summary of our reasoning for the current state of the project examples:

    1. We used enums for the state machine because it is self-contained. A state machine will never tell himself to enter a State, he does not know. Knowing (as the programmer) all possible States with the help of an enum allows you to enlist the compiler in order to help us avoid mistakes to change the time (because you can't quite out an enum and LabVIEW can be said if you are not covering all cases to a structure of the case, etc..).

      Enums provide greater protection and rigidity by ensuring all withdrew at the time of publishing. This is often the 'default' recommendation that we do.

    2. We used strings for messages in queue manager because the producer of message and the message handler could be independent processes that are reused or traded. Channels avoid the need for the compiler to be able to connect the orders and push this responsibility to the programmer. This allows you to develop some sub-components independently as long as you agree to a series of channel commands that you can manage - you need not to share a file 'messages.ctl' or 'states.ctl '. It is conceivable a loop of message management a message it does not, how you can decide to either silently ignore it or will trigger an error (as we do in the model). The strings make it also easier if you want to swap the queues of LabVIEW outside by a TCP implementation for network vacilitate or intra-Processuse communication where the other end may or may not be written in LabVIEW.

      Channels to provide more flexibility (that is, you can add new commands to an existing via plugins system, you can pass parameters as part of the string, etc.) at the expense of pushing her potential errors at run time and to put more responsibility on the programmer.

    3. The actor's gifts frame a 3rd option - using classes such as messages. For me, it combines many of the advantages of these two enumerations (strictly typed, change errors) and strings (flexible and scalable), but with the disadvantage of being somewhat less transparent (you understand OO, be comfortable to navigate through a multitude of screws, legacy of understanding, etc.).

    I don't know there are other reasons, others to the breast OR had or seen as we validated models and examples of projects in-house, but here are my reasons. We know that we can not design for each situation there - our goal is to get useful models against new users to make them aware of what well thought LabVIEW programs are similar to experienced users know their applications better and I hope they do not hesitate to change what we provide or create their own designs, when they feel it's necessary. (On a side note, please share what you come up with - a community of experts sharing models would be really useful to us all LabVIEW users).

    Best regards

    Simon

Maybe you are looking for