コンテンツにスキップ

Line Debouncer#

Line Debouncerカメラ機能を使用すると、不要な短いハードウェア入力信号を除外できます。

十分な長さの信号のみがカメラを通過し、有効になります。

This feature is similar to the Input Filter feature, which is only available on ace 2, boost, and dart R cameras.

機能を使用する#

仕組み#

ラインデバウンサーは、着信ハードウェアトリガー信号の立ち上がりエッジおよび立ち下がりエッジから不要な短い信号(接点バウンス)を除外します。これを実現するために、ラインデバウンサーはハードウェア信号の論理状態のすべての変化と期間を評価します。

The maximum duration of this evaluation period is defined by the LineDebouncerTime parameter. The line debouncer acts like a clock that measures the durations of the signals to identify valid signals.

クロックは、ハードウェア信号がその論理状態(高から低、またはその逆)を変更するたびにカウントを開始します。

  • 新しい論理状態の継続時間が指定されたラインデバウンスタイムより短い場合、新しい論理状態は無効と見なされ、影響はありません。
  • 新しい論理状態の継続時間がラインデバウンスタイムと同等またはそれ以上の場合、新しい論理状態は有効と見なされ、カメラで有効になります。

情報

ラインデバウンスタイムを指定すると、カメラに到着した有効なトリガー信号と、関連する論理状態の変化がカメラに渡された瞬間との間に遅延が発生します。

The duration of the delay is at least equal to the value of the LineDebouncerTime parameter. This is because the camera waits for the time specified to determine whether the signal is valid. Similarly, the line debouncer delays the end of a valid trigger signal.

The figure below illustrates how the line debouncer filters out invalid signals from the rising and falling edge of a hardware trigger signal. Line debouncer times that allow a change of logical state in the camera are labeled "OK". Also illustrated are the delays relative to the hardware trigger signal.

入力信号へのLine Debouncerの影響

Line Debouncerの有効化#

  1. カメラがハードウェアトリガー用に設定されていることを確認します。
  2. Set the LineSelector parameter to the desired input line, e.g., Line1.
  3. Enter a value for the LineDebouncerTime parameter.

Debouncer Valueの選択#

  • Choosing a LineDebouncerTime value that is too low results in accepting invalid signals and signal states.
  • 値が大きすぎると、有効な信号や信号状態が拒否されてしまいます。

Baslerでは、無効な信号の予想される最長時間よりもわずかに長いラインデバウンスタイムを選択することをお勧めします。

短い有効な信号を拒否するリスクがわずかにありますが、ほとんどのシナリオでは、このアプローチは良好な結果をもたらすはずです。アプリケーションを監視し、必要に応じて、拒否される有効な信号が多すぎる場合は値を調整します。

サンプルコード#

ace Classic/U/L GigEカメラ#
// 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を使用して、パラメーターを簡単に設定することもできます。