Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

external trigger timeout on imaq camera

Solved!
Go to solution

Hi all,

 

Thanks in advance for any help. I'm sorry for posting on such a common error, but I have not been able to locate any examples or previous forum discussions that have resolved my problem. Information in any form (examples, previous posts, suggestions) is appreciated.

 

My problem is that I am unable to externally trigger the shipped example "LL Triggered Ring.vi" without getting a timeout error.

 

I have been acquiring images on a Dalsa 1M60 camera for the past year using finite, externally triggered buffers, but the triggering method that has worked for me this past year is now failing due to the timeout error. I can confirm that my previous acquisition program still works and so the physical trigger is able to reach the camera just fine (trigger setup is identical to what I am trying with the ring buffer).

 

The error number is "1074397150 occurred at IMAQ Extract Buffer". I have increased the frame timeout, added flat sequence structures to ensure things happen in a correct order, separated counter into a separate while loop and recently  began a campaign of randomly changing parameters in hopes of getting lucky (I kid, but I'm getting that desparate). I realize that this is probably due to a fundamental lapse in understanding on my part and I would appreciate anyone who can set me straight.

 

Attached is the .vi

 

Cheers,

 

A

0 Kudos
Message 1 of 10
(6,989 Views)

Hi A,

 

My first thought would be to make sure that the camera file that's being used for the specific camera has all the triggering information set up properly. I'd also be interested to see if you're able to do a triggered acquisition in MAX as well as what frame grabber you're working with. 

David S.
0 Kudos
Message 2 of 10
(6,963 Views)

Hi David,

 

Thank you for taking the time to reply!

 

The camera file has (edit: been) set to exposure mode 4 which allows for external triggering. I am working with a PCI 1428 frame grabber. My trigger is a counter running on a clock from a PCI 6259 which I physically connect to the frame grabber.


Here we probably see the first lapse in my understanding of labview. I assume you meant for me to open a task in MAX and acquire any type of data using the trigger that I am sending to the camera? If so, I'm not sure how to do this since I would need to different measurement classes in the task (counter out, and analog/digital in). If I misunderstood your meaning, any further clarification would be greatly appreciated on how to use MAX to do a triggered acquisition.

 

 

Very best regards,

 

A

0 Kudos
Message 3 of 10
(6,952 Views)

Hi A,

 

So that sounds like the camera file should be set up right. Concerning running the triggered grab in MAX, what you would do is set up the DAQmx task to generate the trigger pulses in MAX and start that task. Then you select your camera in MAX, which should be listed under IMAQ Devices. You would make sure that the settings in MAX have the external triggering configuration set, then you can run a grab by hitting the grab button at the top. Since the DAQmx driver is controlling the pulse generation and the IMAQ driver is controlling the camera acquisition, there shouldn't be any conflict between the two. If you have any more questions, let me know!

David S.
0 Kudos
Message 4 of 10
(6,934 Views)

Hi David,

 

I cannot get the counter output to control the frame rate during the grab in MAX. It acquires at its normal (edit: internally timed) frame rate ~65 fps. Just to make sure I'm not crazy, I connected the trigger to a basler camera (DAQmx) and that worked just fine. I have never had any timeout errors when using grab to preview my images before acquisition on the dalsa so I think that mode 4 on this camera can execute a grab even without a trigger present. I have looked around for anything about some sort of "default mode" that I can switch so that it only grabs if there is a trigger present. No Luck. MAX allows for mode 0 which is internally timed and Mode 7 which is for triggering line readout. Any ideas how I might get around this?

 

Just in case there are any lingering questions about connections, the trigger that worked was going directly to the second (basler) camera. The trigger to the primary (Dalsa) camera passes through a IMAQ 6804 cable to the PCI 1428 then to the camera. I'm still able to trigger the camera using my previous acquisition program so the physical path of the trigger to the Dalsa appears to be okay.

 

Thanks again for taking the time to help.

 

Best,

 

A

0 Kudos
Message 5 of 10
(6,917 Views)

Hi A,

 

In MAX there should be a few settings related to the triggering of the camera, and those could be set so that you could perform a triggered grab in MAX. I'm also interested to know if you're able to successfully run the HL Triggered Ring (Express) example that ships with LabVIEW. If you can run this example, but not the other one, then it would point to an issue with the program, otherwise it may be a hardware issue.

 

David S.
0 Kudos
Message 6 of 10
(6,903 Views)

David,

 

Yes, I can run HL Triggered Ring which is encouraging. I have been 95% sure all along that it is my program rather than hardware, but it is nice to eliminate that 5%. I still have not been able to identify what exactly the problem with my program is. I have hooked the trigger line up to an oscillosope and can verify that the correct trigger is sent using my code. I have increased the timeout time to 10 seconds without any luck. I can't understand why the camera doesn't recognize the signal...

 

Thanks for continued suggestions!

 

Best,

 

A

0 Kudos
Message 7 of 10
(6,876 Views)
Solution
Accepted by topic author awinde

Hi A,

 

I'm glad to hear that the HL Triggered Ring works. That is promising since it proves the issue doesn't lie with the framegrabber. One thing I noticed is that the default # of buffers in the HL Triggered Ring example is 10, whereas the default is 5 in the Low Level version. Have you tried increasing the number of buffers in the low level program, and does this allow you to run it successfully?

 

 

David S.
Message 8 of 10
(6,857 Views)

Hi David,

 

The problem has been fixed! Thanks for all your suggestions! Apart from helping me get my code working, your steps to isolate whether it was a hardware or software problem was invaluable.

 

Thanks again!

 

Best Regards,

 

A

0 Kudos
Message 9 of 10
(6,843 Views)

Hi A,


I'm glad to hear it's working! Have a great day!

David S.
0 Kudos
Message 10 of 10
(6,829 Views)