Hi,
I am programming a Specim FX10e camera with .Net. I have a Sick DFS60 Encoder attached to a conveyor belt and would like to trigger the camera with it, so that the camera acquires images with a certain frame rateaccording to the encoder signal. The encoder is conected to the corresponding camera pin, the trigger-nodes are set as follows:
→"Trigger Mode" = “On”
→"Trigger Selector" = “Frame Start”
→"Trigger Source" = “Line0” (the only avaliable physical trigger)
→"Trigger Activation" = “Rising Edge”
However, I don’t know what’s the next step, specially how to “read” the encoder signal in order to adapt the frame rate or control the acquisition. I am aware this is a very basic question, but I didn’t find code examples regarding this problem.
Ok, a more precise definition of the problem: I want to use the rising edges from the physical signal (Line0) as trigger for the frame acquisition. To put it into GenICam-Terms: I was so far able to set a counter with Line0 as CounterEventSource and RisingEdge as CounterEventActivation. For the acquisition I set the AcquisitionMode to Continuous and a trigger, with Line0 as TriggerSource and FrameStart as TriggerSelector value. The problem is, once the conveyor belt is running (and the encoder is pressumibly sending its signal) the AcquisitionActive Status remains false.
I would like to be able to:
- See whether frames are being acquired and
- Check how many frames were so far acquired
Any idea what am I missing or where could I look for support? I have so far worked with the Standard Feature Naming Convention Document (Version 2.5.).
Hi,
you should be able to use an encoder as the trigger source like you already explained:
→"Trigger Mode" = “On”
→"Trigger Selector" = “Frame Start”
→"Trigger Source" = “Line0” (the only avaliable physical trigger)
→"Trigger Activation" = “Rising Edge”
If you start the CVB grab now the camera will acquire one frame for each rising edge on Line0. You dont need to use the Counters in order to use the basic trigger functionality.
However you can use the Counters to count the number of events which have happened. I think you did also explain this correctly.
You need to start the CVB Grab in order for the camera to start the acquisition too. If the Grab is not started in CVB (the host SDK) , the camera is not going to start its acquisition and the AcquisitionActive Status remains false.
However the AcquitisionActive signal becomes true when the CVB Grab is started even when their is no trigger signal currently applied.
Acquisition Start Trigger Trigger Mode = off As soon as the acquisition is started by executingof the acquisition start command, the camera goes immediately into state “Acquisition Active” and is ready to capture frames.
You should better use Frame Active as an indicator if the camera is currently grabbing a frame. Frame Start Trigger Mode = on As soon as a frame start trigger has been received, a capture of one frame will be started and the frame status goes to “Frame Active”. Once one frame has been processed, that camera status goes to “Frame Trigger Wait” again. The camera
is ready to process frame start triggers, when the acquisition is active, showed by the
“Acquisition Active” status, and when the “Frame Trigger Wait” status is asserted.
This in combination with the one of the Counter events should solve your problem. You could use the Counter Event “FrameTrigger”.
2 Likes