콘텐츠로 바로 가기
STAGING SERVER
DEVELOPMENT SERVER

Line Debouncer#

Line Debouncer 카메라 기능을 사용하면 원치 않는 짧은 하드웨어 입력 신호를 필터링할 수 있습니다.

충분히 긴 신호만 카메라로 전달되어 유효하게 작동할 수 있습니다.

이 기능은 ace 2, boost, dart R 카메라에서만 사용할 수 있는 Input Filter 기능과 유사합니다.

기능 사용#

작동 방식#

Line debouncer는 들어오는 하드웨어 트리거 신호의 상승 에지와 하강 에지에서 원치 않는 짧은 신호(채터링)를 필터링합니다. 이를 위해 line debouncer는 하드웨어 신호의 논리 상태 변경 및 지속 시간을 평가합니다.

이 평가 주의의 최대 지속 시간은 다음 매개변수에 의해 정의됩니다. LineDebouncerTime parameter. Line debouncer는 신호의 지속 시간을 측정하여 유효한 신호를 식별하는 클럭 역할을 합니다.

하드웨어 신호의 논리 상태가 변경될 때마다(High에서 Low로 또는 그 반대로) 클럭이 카운팅을 시작합니다.

  • 새로운 논리 상태의 지속 시간이 지정된 line debouncer 시간보다 짧은 경우, 새로운 논리 상태는 유효하지 않은 것으로 간주되며 아무런 영향도 미치지 않습니다.
  • 새로운 논리 상태의 지속 시간이 지정된 line debouncer 시간과 같거나 더 긴 경우, 새로운 논리 상태는 유효한 것으로 간주되어 카메라에서 유효하게 처리됩니다.

정보

Line debouncer 시간을 지정하면 유효한 트리거 신호가 카메라에 도달하는 시점과 해당 논리 상태 변경이 카메라로 전달되는 시점 사이에 지연이 발생합니다.

지연 시간은 최소한 다음 항목의 값과 같습니다. LineDebouncerTime parameter. 이는 카메라가 신호가 유효한지 확인하기 위해 지정된 시간 동안 대기하기 때문입니다. 마찬가지로, line debouncer는 유효한 트리거 신호의 종료를 지연시킵니다.

아래 그림은 line debouncer가 하드웨어 트리거 신호의 상승 및 하강 에지에서 유효하지 않은 신호를 필터링하는 방법을 보여줍니다. 카메라에서 논리 상태 변경을 허용하는 line debouncer 시간은 "OK"로 표시됩니다. 하드웨어 트리거 신호에 상대적인 지연도 함께 설명되어 있습니다.

입력 신호에 미치는 Line Debouncer의 영향

Line Debouncer 활성화#

  1. 카메라가 하드웨어 트리거용으로 구성되어 있는지 확인하세요.
  2. 파라미터를 원하는 LineSelector 원하는 입력 라인에 대한 매개변수 (예: Line1.
  3. 다음 항목의 값을 입력합니다: LineDebouncerTime 파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다.

Debouncer 값 선택#

  • 선택 LineDebouncerTime 값 너무 낮음 은 유효하지 않은 신호와 신호 상태를 수용하는 결과를 낳습니다.
  • 너무 높은 값을 선택하면 유효한 신호와 신호 상태가 거부됩니다.

Basler는 유효하지 않은 신호의 예상 최대 지속 시간보다 약간 더 긴 line debouncer 시간을 선택할 것을 권장합니다.

짧은 유효 신호가 거부될 위험이 약간 있지만, 대부분의 시나리오에서는 이 방법으로 좋은 결과를 얻을 수 있습니다. 애플리케이션을 모니터링하고 너무 많은 유효 신호가 거부되는 경우 필요에 따라 값을 조정하세요.

샘플 코드#

ace Classic/U/L GigE Cameras#
// Select the desired input line
camera.LineSelector.SetValue(LineSelector_Line1);
// Set the parameter value to 10 microseconds
camera.LineDebouncerTimeAbs.SetValue(10.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select the desired input line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Set the parameter value to 10 microseconds
CFloatParameter(nodemap, "LineDebouncerTimeAbs").SetValue(10.0);
// Select the desired input line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Set the parameter value to 10 microseconds
camera.Parameters[PLCamera.LineDebouncerTimeAbs].SetValue(10.0);
/* 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);
# Select the desired input line
camera.LineSelector.Value = "Line1"
# Set the parameter value to 10 microseconds
camera.LineDebouncerTimeAbs.Value = 10.0
기타 카메라#
// Select the desired input line
camera.LineSelector.SetValue(LineSelector_Line1);
// Set the parameter value to 10 microseconds
camera.LineDebouncerTime.SetValue(10.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select the desired input line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Set the parameter value to 10 microseconds
CFloatParameter(nodemap, "LineDebouncerTime").SetValue(10.0);
// Select the desired input line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Set the parameter value to 10 microseconds
camera.Parameters[PLCamera.LineDebouncerTime].SetValue(10.0);
/* 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);
# Select the desired input line
camera.LineSelector.Value = "Line1"
# Set the parameter value to 10 microseconds
camera.LineDebouncerTime.Value = 10.0

pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.