Line Debouncer#
충분히 긴 신호만 카메라로 전달되어 유효하게 작동합니다.
이 기능은 ace 2, boost 및 dart R 카메라에서만 사용할 수 있는 Input Filter 기능과 유사합니다.
기능 사용법#
작동 원리#
Line Debouncer는 들어오는 하드웨어 트리거 신호의 상승 에지와 하강 에지에서 원치 않는 짧은 신호(접점 바운스)를 필터링합니다. 이를 위해 Line Debouncer는 하드웨어 신호의 논리적 상태 변화와 지속 시간을 평가합니다.
이 평가 기간의 최대 지속 시간은 다음 항목으로 정의됩니다. LineDebouncerTime 파라미터. Line Debouncer는 신호의 지속 시간을 측정하여 유효한 신호를 식별하는 시계 역할을 합니다.
하드웨어 신호의 논리적 상태가 변경될 때마다(high에서 low로 또는 그 반대로) 시계가 카운트하기 시작합니다.
- 새로운 논리적 상태의 지속 시간이 지정된 Line Debouncer 시간보다 짧은 경우, 새로운 논리적 상태는 유효하지 않은 것으로 간주되며 영향을 미치지 않습니다.
- 새로운 논리적 상태의 지속 시간이 Line Debouncer 시간과 같거나 더 긴 경우 경우, 새로운 논리적 상태는 유효한 것으로 간주되어 카메라에서 유효하게 작동할 수 있습니다.
정보
Line Debouncer 시간을 지정하면 유효한 트리거 신호가 카메라에 도달한 시점과 논리적 상태의 관련 변경 사항이 카메라로 전달되는 시점 사이에 지연이 발생합니다.
지연 시간은 최소한 다음 항목의 값과 같습니다. LineDebouncerTime 파라미터. 이는 카메라가 신호의 유효 여부를 확인하기 위해 지정된 시간을 기다리기 때문입니다. 마찬가지로 Line Debouncer는 유효한 트리거 신호의 종료를 지연시킵니다.
아래 그림은 Line Debouncer가 하드웨어 트리거 신호의 상승 에지와 하강 에지에서 유효하지 않은 신호를 필터링하는 방법을 보여줍니다. 카메라에서 논리적 상태 변경을 허용하는 Line Debouncer 시간에는 "OK"라는 레이블이 지정되어 있습니다. 하드웨어 트리거 신호에 상대적인 지연도 함께 설명되어 있습니다.
Line Debouncer 활성화#
- 카메라가 hardware triggering용으로 구성되어 있는지 확인하세요.
- 다음 값 중 하나로
LineSelector파라미터를 원하는 입력 라인으로 설정합니다(예:Line1. - 다음 파라미터에 값을 입력합니다:
LineDebouncerTime파라미터.
Debouncer 값 선택#
- 다음 값 선택:
LineDebouncerTime값 너무 낮음 유효하지 않은 신호 및 신호 상태가 수락되는 결과가 발생합니다. - 너무 높은 값을 선택하면 유효한 신호 및 신호 상태가 거부됩니다.
Basler는 유효하지 않은 신호의 예상 최대 지속 시간보다 약간 더 긴 Line Debouncer 시간을 선택할 것을 권장합니다.
짧은 유효 신호가 거부될 위험이 약간 있지만 대부분의 시나리오에서는 이 접근 방식이 좋은 결과를 제공합니다. 애플리케이션을 모니터링하고 너무 많은 유효 신호가 거부되는 경우 필요에 따라 값을 조정하십시오.
샘플 코드#
ace Classic/U/L GigE 카메라#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Select the desired input line */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line1");
CHECK(errRes);
/* Set the parameter value to 10 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "LineDebouncerTimeAbs", 10.0);
CHECK(errRes);
기타 카메라#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Select the desired input line */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line1");
CHECK(errRes);
/* Set the parameter value to 10 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "LineDebouncerTime", 10.0);
CHECK(errRes);
또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.