basler / pypylon

The official python wrapper for the pylon Camera Software Suite
http://www.baslerweb.com
BSD 3-Clause "New" or "Revised" License
558 stars 207 forks source link

Unexpected low framerate with hardware trigger #285

Open Curiosady opened 3 years ago

Curiosady commented 3 years ago

Hello! I am using acA1920-40gc camera with hardware triggering and when camera receives less than 5 trigger per second all works as expected. 2 ms long impulses sending from controller to the camera and grows smoothly up to 20 times per second, but looks like some triggers just ignored when signals frequency increase. Testing code and output logs below.

import logging

from pypylon import pylon, genicam

logging.basicConfig(
    format='%(asctime)s - %(levelname)s - %(message)s',
    level=logging.INFO,
)

CAMERA = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())
CAMERA.Open()
CAMERA.TriggerMode = 'On'
CAMERA.ChunkSelector = 'Triggerinputcounter'
CAMERA.ChunkEnable = True
CAMERA.ChunkSelector = 'Framecounter'
CAMERA.ChunkEnable = True
CAMERA.StartGrabbing()

logging.info('Camera initialized, Model name: {0}, Exposure Time = {1} MS, Sensor Readout Time = {2} MS'.format(
    CAMERA.GetDeviceInfo().GetModelName(),
    CAMERA.ExposureTimeRaw(),
    int(CAMERA.ReadoutTimeAbs()),
    ))

while CAMERA.IsGrabbing():
    res = CAMERA.RetrieveResult(0, pylon.TimeoutHandling_Return)
    if res.IsValid():
        logging.info('Frame Counter = {0}, Trigger Counter = {1}'.format(
            res.ChunkFramecounter.Value,
            res.ChunkTriggerinputcounter.Value,
        ))
Camera initialized, Model name: acA1920-40gc, Exposure Time = 5000 MS, Sensor Readout Time = 23808 MS
2020-10-15 11:15:00,725 - INFO - Frame Counter = 403036, Trigger Counter = 1924650
2020-10-15 11:15:01,342 - INFO - Frame Counter = 403037, Trigger Counter = 1924651
2020-10-15 11:15:01,847 - INFO - Frame Counter = 403038, Trigger Counter = 1924652
2020-10-15 11:15:02,313 - INFO - Frame Counter = 403039, Trigger Counter = 1924653
2020-10-15 11:15:02,752 - INFO - Frame Counter = 403040, Trigger Counter = 1924654
2020-10-15 11:15:03,721 - INFO - Frame Counter = 403041, Trigger Counter = 1924655
2020-10-15 11:15:03,961 - INFO - Frame Counter = 403042, Trigger Counter = 1924656
2020-10-15 11:15:04,215 - INFO - Frame Counter = 403043, Trigger Counter = 1924657
2020-10-15 11:15:05,019 - INFO - Frame Counter = 403044, Trigger Counter = 1924658
2020-10-15 11:15:05,430 - INFO - Frame Counter = 403045, Trigger Counter = 1924660
2020-10-15 11:15:05,800 - INFO - Frame Counter = 403046, Trigger Counter = 1924662
2020-10-15 11:15:06,138 - INFO - Frame Counter = 403047, Trigger Counter = 1924664
2020-10-15 11:15:06,452 - INFO - Frame Counter = 403048, Trigger Counter = 1924666
2020-10-15 11:15:06,751 - INFO - Frame Counter = 403049, Trigger Counter = 1924668
2020-10-15 11:15:07,029 - INFO - Frame Counter = 403050, Trigger Counter = 1924670
2020-10-15 11:15:07,299 - INFO - Frame Counter = 403051, Trigger Counter = 1924672
2020-10-15 11:15:07,552 - INFO - Frame Counter = 403052, Trigger Counter = 1924674
2020-10-15 11:15:07,799 - INFO - Frame Counter = 403053, Trigger Counter = 1924676
2020-10-15 11:15:08,038 - INFO - Frame Counter = 403054, Trigger Counter = 1924678
2020-10-15 11:15:08,288 - INFO - Frame Counter = 403055, Trigger Counter = 1924683
2020-10-15 11:15:08,538 - INFO - Frame Counter = 403056, Trigger Counter = 1924688
2020-10-15 11:15:08,787 - INFO - Frame Counter = 403057, Trigger Counter = 1924693
2020-10-15 11:15:09,038 - INFO - Frame Counter = 403058, Trigger Counter = 1924698
2020-10-15 11:15:09,288 - INFO - Frame Counter = 403059, Trigger Counter = 1924703
2020-10-15 11:15:09,537 - INFO - Frame Counter = 403060, Trigger Counter = 1924708
2020-10-15 11:15:09,788 - INFO - Frame Counter = 403061, Trigger Counter = 1924713

Please help to understand what goes wrong and how to achieve desired FPS. NodeMap.txt

goodbooroondook commented 3 years ago

Hello!

Please, check debouncer attribute, and set it to zero. It defined equal to 10ms in your configuration file, and duration of trigger impulse is 2ms, so no wonder that you lose triggers.

It is better to contact to local Basler distributer directly (vitec.ru in Russia) If you will have other questions about camera setup.

Best Regards, Nikita Vitec ltd