Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Triggering issue with Basler Sprint and NI PCIe-1427

Hello Friends, happy Monday!!

 

I have an issue with encoder triggering on a Basler Sprint and I was hoping for a few suggestions.

 

I'm triggering every line with an encoder tick (we're not using the quadrature encoder, just triggering on one of the encoder lines) from a 2-axis micro-stage. I'm acquiring a giant image (100s of megapixels) by stitching together many smaller images that I acquire in rows and columns. The smaller images are 4k x 4k images. I'm taking  many of these per column in the larger image. All is well until I get to the bottom of a row. Sometimes I'm moving the stage just fast enough that I miss an encoder tick. No huge deal for our imaging, but the problem I get is that we're now 1 encoder tick short on the last image, so it times out. I've tried to come up with a clever way to resolve this issue, but is there any way to tell the IMAQ driver to just hand me what's in the buffer when I reach the end of my linear move and not worry about the final triggers? 

 

I'm in ExSynch programmable  (aka triggered programmable) mode on the sprint. Again, all works well until I reach the bottom image in my array on one of my colums (sometimes I can get across the entire 'large image' with no problems, but usually I end up missing 1 encoder tick somewhere.... and I really dont' want to turn down the speed of my stage for this application). 

 

One thing I tried was to get to the end of the move, and then move the stage in small increments up and down while trying to close the IMAQ connection... this doesn't seem to work well either, although I believe I have some kind of race condition stopping my success in this case, so don't worry about that too much. I'd really like to be able to either fake the last encoder pulse or two, or just grab what's in the buffer right now and fill in a fake line below that small image before I stitch it into the large image.

 

Any thoughts are appreciated!

 

-Matt


LabVIEW Integration Engineer with experience in LabVIEW Real-Time, LabVIEW FPGA, DAQ, Machine Vision, as well as C/C++. CLAD, working on CLD and CLA.
0 Kudos
Message 1 of 3
(3,005 Views)

My first suggestion would be to intentionally overshoot the end of the strip.  It sounds like your stage can't go any further, though.

 

My second suggestion would be to move in reverse approximately one image.  Since you know how many images you are supposed to get, you could just move all the way back to the top.  That will give you the extra pulses to finish the image.  It may give you extra images, but you can ignore those.

 

Don't close the image acquisition until that last image is buffered, or you will lose it.

 

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 2 of 3
(2,993 Views)

Thanks for the suggestions Bruce. I'll goof with this thing a little today and see what I come up with.

 

Hope all is well!!

 

-Matt


LabVIEW Integration Engineer with experience in LabVIEW Real-Time, LabVIEW FPGA, DAQ, Machine Vision, as well as C/C++. CLAD, working on CLD and CLA.
0 Kudos
Message 3 of 3
(2,990 Views)