Synchronization output analog and an entry for imaging

Hi all

I'm stuck in my higher studies project and really need help. I tested an imaging system, where one uses two mirrors MEMS to analyze the sample and a tube set (PMT) allows to acquire voltage signals and translate them into images of scanning laser.

I use the same DAQ card for input and analog output. The DAQ card sends features X and Y of the MEMS mirrors so that the reason for scanning 2D starts left to right and up and down.

Scanning rate: 131500 pixels per second.

Size: 1170 by line, 514 ranks in total pixels.

Thus, the mirror will scan 601 380 pixels per image, which takes approximately 4.57 seconds to complete. I almost finished this part in LABVIEW.

However, only a part of the scanned pixels are read by the PMT. We want to get an image of 512 x 512 pixels. For example, the PMT works like this:

(1) the sampling rate is also 131500.

(2) skip the first row.

(3) starting at the second row, the PMT will jump the first 329 pixels, read in the next 512 pixels and skip the rest 329 pixels again. Then, it moves to the next line.

(4) jump the last row.

My approach in the plate sequence

(1) ignore the signals of all 841 (1170-329 = 841).

(2) create a loop for, run 512 times.

(3) in each loop, first jumping 658 signals (329 x 2), then read the signals then 512 MB.

(4) wait 1499 pixels left to complete the digitization (1170 + 329).

Problem

The mirror and PMT must start and finish at the same time running. However, when I run my VI for the analog input and create the image on the Panel, it takes 5.7 seconds to complete, which means that they are not at all synchronize. It seems that there is some unexpected time in the loop for, but I don't know how to change the code to meet the requirement of calendar.

Please see the attached VI. Any help is greatly appreciated.

~ Sheng

My approach in the plate sequence

(1) ignore the signals of all 841 (1170-329 = 841).

(2) create a loop for, run 512 times.

(3) in each loop, first jumping 658 signals (329 x 2), then read the signals then 512 MB.

(4) wait 1499 pixels left to complete the digitization (1170 + 329).

Consider this: add up all these pixels, both those you want to record and those you want to ignore.

If I read you right, that would be:

841 + 512 * (658 + 512) + 1499

Regardless of this number, set up a task that many samples and record the whole bloody thing.  Let the time of equipment for you.

Then, AFTER that data are in hand, pass by and throw the first 841 points, then for each loop, throw away 658 and keep 512... etc.

IOW, let the MATERIAL which made the better material: precise timing.

Let the SOFTWARE do what does best software: weird logic.

Tags: NI Software

Similar Questions

  • Synchronization of analog and digital output with the external sample clock

    Hello

    First of all sorry for my English, I will try to explain what I want to do.

    I want my PCIe-6321 to send two custom signals (modification sawtooths) on a mirror controller. I would also like to generate output with my card at the beginning of each tooth of saw. Everything must be synchronized with an external k-clock signal of 100 kHz. The idea is that whenever the PCI receives a trigger to external clock, it sends two analog output voltages and when he received 1024 clock ticks it will also send a pic of triggering TTL. What I do is first prepare the map and after that in a loop sending and modifing the output values of the two signals and at the same time send a digital signal Boolean in each arch, so when's done it 1024 iterations of the loop I send an event to the digital port. Attached you can see.

    The problem is that I don't know how to synchronize both. Can I use the sample clock just to the analog output? I can use sample for the two outputs clock, or do I need to use the output of the meter? If don't know how to use it here.

    If I do nothing else bad/wrong, I would be grateful for feedback.

    Thanks in advance,
    Pablo

    I don't know how but I find the solution. I'm generating more than a positive value (as I was triggered maybe very fast the oscilloscope has been absent there). If I put the sample clock of digital output to use the sampling/ao/Dev1 clock that it doesn't, but if I put to use the same source as the OD (terminal where my external clock is connected), but the trigger to start the DO to be Dev1/ao/StartTrigger this works. I don't really know why, but it does.

    Thank you for your patience and your help. I put here the final code.

  • Producer consumer with inputs and outputs analog and digital

    Hello world

    I'm working on a program of control system for some practical test work. Currently, I am working on the data acquisition of the Labview program component. My architecture is consumer-product loops with a what. My system will have analog inputs, outputs, analog inputs and digital outputs. It is not a criticism of time sytem, but I wish that all the acquisition of data to synchronize. I enclose my program because it is at the moment. I have difficulties to get all the data in the since that I have two types of data. In addition, I don't know if I have synced the four sequences of read/write correctly. I would be very happy if someone could take a look at my program and give me some advice. Thanks in advance.


  • How to trigger and outputs analog and digital Outout tasks begins on a counter to start?

    Hello

    I'm trying to synchronize the start of a task outputs analog, a task of digital output and a task of counter. I want to start the counter to serve the master trigger and analog and digital tasks to synchronize his departure.

    I guess I need something like:

    analogOutputTask.Triggers.StartTrigger.ConfigureDigitalEdgeTrigger ("?", DigitalEdgeStartTriggerEdge.Rising);

    digitalOutputTask.Triggers.StartTrigger.ConfigureDigitalEdgeTrigger ("?", DigitalEdgeStartTriggerEdge.Rising);

    analogOutputTask.Start (); Slave 1

    digitalOutputTask.Start (); slave 2

    () counterTask.Start; n / / master

    Where? is a string specifying a command source for the beginning of the task of the meter. However, I can't find what this string. Any suggestions?

    Thank you!

    -Jon

    Just FYI, the solution to this problem as well as some other ones is encapsulated in a short example .NET, I created. It is on the Web site of EITHER:

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

    This project shows how to synchronize all your analogue/digital outputs through tasks and forums in terms of synchronizing Calendar and start clock.

    -Jon

  • Main document folder and the other for images

    Can I save the document of Muse in its own folder and save all the images into a subfolder.

    The reason why I ask this question is that when I view the "Source" file it has a folder of images in front of the name of the image, as below.

    SRC ="... /images/newheaderwithcontactcell.jpg? CRC = 343601382"alt =" "data-image-width ="380"data-image-height ="93"/ >"

    muse main folder& image foldr-2.jpg

    See the following discussions for a better understanding.

    How can I structure my muse with records cc site

    Muse folder structure

    What Muse will get a folder of void structure?

  • Output {{productHeight}} and {{productWidth}} tags for calculation?

    Hello

    I need to perform the calculation using the height and width of a Liquid product, but with the fields for the dimensions of the product, I find no way out of these data. There is no standard tags from BC, nor liquids tags.

    I also looked in the BC Discovery API app and it shows the height and depth, but not in width.

    Someone at - he found how these tags to output?

    Thank you

    Paul

    Hi Paul,.

    You can use module_data to get the specific details if you're on the big presentation of the product.

    {module_data resources = 'products' version = "v3" field = skip "productWeight, productVolume, productHeight, productDepth" = "0" limit = "1" where = "\ {'id': '{{id}}' \}" = 'id' = "myData" collection order "}

    {{myData|json}}

    {{myData.items [0] .productVolume: time: myData.items [0] .productHeight}}


    productVolume is actually the width as written in "Product Dimensions"

  • What is the HTML code to disable click right on the mouse and do drag and drop option for images?

    I want to prevent the viewers on my site to download my images by right-clicking on the mouse or by simple drag-and - drop them on their desk. The HTML code for the < head > area to insert in the page properties metadata?

    Hello

    Check this code

    Dynamic Drive DHTML Scripts - disable right mouse click script

    It won't work if you put this code in the Page-> Page Properties-> head.

    Let me know if you have any question.

  • NEITHER USB-6343 analog and digital grounds

    In the manual for the NI USB-6343, it is said that the mass input/output, analog and digital terrestrial are related, but by a small sign. For my application, I am attaching all 3 these grounds to exit the box (I'm tie all areas with physical threads). It is perhaps a silly question, but it's OK to do, correct?

    This should be OK unless there are large currents flowing on ground conductors.  If you have important currents in the ground, you have other problems that must be resolved before you connect the DAQ hardware.

    Lynn

  • Integrate the outputs analog with analog inputs

    I have a program that displays 2 analog output waves and a separate program that captures the analog data through several materials of NEITHER. I need to integrate the program outputs analog in my analog input program.

    The program of analog output is fixed as "AO_Triggers_LowLevel.vi" and the analog input is fixed as "ExperimentDAQ.vi". When I try and integrate these programs I get 'error-200560 occurred at DAQmx waiting until the Done.vi' to my function to wait until it makes my task of analog input (background of the program). I think it is my mistake in the order that I'm wiring to the top of my son of error but I'm not sure. I watched several tutorials (Timing and synchronization features of DAQmx) but I'm totally stuck.

    Any suggestions are greatly appreciated. Thank you!

    Alberto M.

    I think I've fixed this problem. I extended my flat sequence structure to include the lines of task and error of my task outputs analog and things seem to work.  I'm still not sure about what caused my error and why it has solved the problem...

  • 6009 outputs digital and analog input synchronization

    Hello

    I work in a program NI 6009. I want to leds by car with outputs digital NI 6009. For example, leads first will be on until what 200 micro seconds then second led will be on up to 200 micro seconds, and then first of all led will be on up to 200 micro seconds. I'll take led with photodedector signals and connect analog output photodedector input NI 6009. I want to synchronize the outputs digital and analog input and separate the first and second led signals the analog input for NI 6009 channel. How can you do with NI 6009? Please ADV

    You can not do with the USB-6009 case. Its outputs digital are software with a maximum speed of slightly more than 100 samples per second. The outputs can produce 200 microsecond pulses and cannot be synchronized with the analog input.

    You need a device with outputs digital hardware timed or counters that can produce a pulse outputs.

    You can synchronize a bit digital output and analog input recording signal on an additional channel to HAVE. Will allow you to see the photodetector and LED the drive with the same schedule and such resolution as described by the sampling rate I. The maximum sampling frequency of AI on the USB-6009 case is 48 kHz that is shared by all channels. If you have two lights to led and photodetector two signals maximum sampling rate would be 48 kHz/4 = 6 kHz which is barely fast enough for your 200 US signals. For more than 4 channels, it won't be fast enough.

    I suggest a simple oscillator circuit building and use it to clock a flip flop. This will give you alternating signals to drive the LEDs. You can use a line to reset the flip flop to give you control without the need for high speed.

    Lynn

  • 9174 triggered output pulses and analog input synchronization

    Hello

    I have a cDAQ 9174 with a 9215 analog and a 9401 module. I wonder if this configuration is suitable for my use: a trigger digital extern is sent to the system to trigger a task of analog input, trigger a generation of pulses, with another counter, count of trigger events. Using two counters on 9401, it seems I have no left Terminal at the entrance of my trigger signal. The trigger DAQmx vi does not show counters entries in the list of signals; and if I select a PFI line, an error that says that the line is already in use..., I missed a few obvious solution? I have change my 9401 to a 9402 did?

    Thanks for any help,

    Vincent

    Hi Vincent,.

    So, looks like you need a single line to use as input to trigger events and another line to use for a generation of pulse output.  This should indeed be possible, since the 9401 has 8 lines that are configurable nibble (i.e. lines 0:3 could be configured as inputs, while the 4:7 lines could be taken out, or vice versa).

    However, a big caveat with the 9401 is that the lines must be reserved before each task is started.  This is a limitation of the direction of the line is implemented in hardware and is common as customers when something they using the 9401.  Explicitly reserving your tasks before starting must correct the behavior if that is indeed what you see.

    Best regards

  • How to synchronize the analog input and the output of two different USB data acquisition boards

    Hi all

    I have two tips very different USB NI USB 6008 case, which I use to acquire the data (analog input) and a USB of NI 9263 is a output analog only site I use to route a signal (in this case a square pulse). The reason why I use the outputs analog 6008 is because I need to deliver negative tension and need the full +/-10 v range.

    Looking at similar positions, I'm pretty sure that I can't use an external trigger or a common clock, I also tried to use the timed synchronization of the structures but no cigar.

    I'm including a quick vi I whipped showing how the jitters because of the lack of synchronization signal. The OD of the 9263 connects to AI in the 6008 in this example.

    I talked to a specialist in the phone and tols me that's not possible.

  • synchronize the outputs digital AND digital NI USB 6343 entry

    Hello

    I use NI USB 6343 to fly 1 TTL devices. This device can also produce a TTL signal to indicate if the door is opened/closed.

    I use digital Bool 1 line 1 Point. I was able to reverse the opening/closing of the door on time. But I would like to synchronize the DI and DO it right.

    I tried to throw in the clock aboard, but he failed.

    Is it possible to synchronize the DI and DOI onbaord/hardware clock?

    Any idea will be great!

    Thank you!!

    Hello

    Synchronization of your tasks of DI and shouldn't be possible with your device. You'll need them timeless has a clock that is usable by both. This information is available in the X series user manual

    http://www.NI.com/PDF/manuals/370784f.PDF
    PG 6-9 and 6-13

    You can also find information and examples of synchronization of the various tasks in the article below.
    http://www.NI.com/product-documentation/4322/en/

    Good luck

    Eric

  • synchronize the inputs and outputs on the USB-4431

    Hello

    I have an application that needs to send a signal on the USB-4431 and then capture it with an entry on the same device.

    Aware that I use two tasks to do this, one for input and one for output. I discovered that a trigger (on the RTSI bus) can cycles of sending/capture sychronisé departure operations so that it can be a constant offset between the captured signal and the output signal.

    Unfortunately, the code I found is for Matlab. I can't find an equivalent for it in the C API of NIdaq. The method is described here; http://www.mathworks.in/help/daq/synchronize-analog-input-and-output-using-rtsi.html.

    What I can't understand is how to implement this on the analog input:

    ai.ExternalTriggerDriveLine = 'RTSI0';
    

    Can someone shed light on how to do it?

    The rest of the things described here, seems to be feasible with a normal trigger:

    ao.TriggerType = 'HwDigital';
    ao.HwDigitalTriggerSource = 'RTSI0';
    ao.TriggerCondition = 'PositiveEdge';
    

    Thank you

    Nirvtek

    You can synchronize the HAVE and AO by sharing the start of relaxation between your two tasks.

    Choose one of your tasks as the "master" and the other to be the "slave" (any).

    Set up a trigger to start of digital dashboard on the task of the slave, and set the source of the trigger to be the trigger of the master's departure.

    Assume the following:

    The name of your device is 'Dev1 '.

    I is the main task

    AO is the task of the slave

    Here's what you would do to sync the two:

    (1) create the tasks I and AO in order that you want to

    (2) set up "timing" on the tasks of HAVE it and AO (you choose the sampling rates must be the same or power-of-2 many of the other (for example 100 K, 50 K, 25 K, 12.5 K, etc...))

    (3) configure your slave (the task of AO) task to have a numerical advantage start trigger and make the source is the trigger for the start of the task of the master (the task to HAVE it). In our case, "Dev1, AI, StartTrigger.

    (4) write data (a sine wave, presumably) to your task AO

    (5) start the task from the slave (the task of AO).  The task of the AO is now in the 'Started' State, but given that you've set up a digital trigger early, it won't actually generate data until he sees a numerical advantage of 'Dev1, AI, StartTrigger.

    (6) to start the main task (task to HAVE it).  The task of the AI does not have a trigger digital early, so the software will immediately generate a start trigger, which also causes a numerical advantage on "StartTrigger/AI/Dev1", which causes the task AO start at the same time.

    7) read your job to HAVE.

    You will notice a few 0 at the beginning of your data to HAVE. It's a result of something called "Filter Delay" and it is an inherent characteristic of all DSA devices - see the manual to use DSA and this article for more information on what is and how to cope.

    I hope this helps.

    EDIT: I just noticed that you pointed out an existing C example. It's exactly what you want. I don't know why you have a resource error booked - I tried it myself and (after changing the AO will of +/-10V to +/-3 .5V), it works beautifully.  Try to reset your device to the MAX (or DAQmxResetDevice() of your program)

  • analog and digital data synchronization

    Hi all

    I would like to help with what I seek to accomplish, if you don't mind much.

    I'm trying to synchronize the acquisition of analog and digital modes using a common trigger that launches both types of data collection at the same time. What I've done so far, is wasting his time trying different combinations to gather examples of LabVIEW 2011 on the synchronization of data - namely the 'Multi-multifunction-Synch AI lu Dig Chan.vi' and 'Multi-Device Synch-Analog Input-Finite Acq-Analog Start.vi.

    I tried to combine the two, because one contains digital and analog, the other contains the trigger for multiple tasks.

    I guess I should place the trigger (either digital or analog-eventually I will want to choose) then call the "Get Terminal name with device Prefix.vi. But from there I'm not sure wheter to connect the name of the terminal of the sample clock digital channel or a digital leading edge of the digital chain trigger.

    Also, the way it is wired now I get errors at the local terminal name, so I don't know exactly where this terminal must come from.

    I try my best, I could use a little help, I have attached my attempt with the examples that I speak to you.

    Thank you.

    Hi beefcake.

    The CtrInternalOutput internal output line is used as sample for your digital output sample clock source clock. If you change the settings for your CO Pulse Time is Dev1 and your digital output is Dev2, you will notice that the name of the product terminal would give Dev2/CtrInternalOutput. So what you get here, it's as well as the digital output device sees his sample clock, instead of the clock itself.

    If you just want to use a digital/analog input as your trigger, you should do something more as in the example above. Do you use multiple devices, or are all your lines on the same device? This example is more complicated because it is synchronization of signals on several devices.

    Looking at how this VI is wired, you can see that the digital signal triggers the analog signal. You want the analogue signal must be started first, so that when the digital signal triggers the analog task is already running and can trigger immediately. If the digital task started first, it can trigger until the similar task had started, and they do not exactly trigger at the same time.

    I hope that clarifies things. Kind regards

Maybe you are looking for