コンテンツにスキップ

Input Filter#

Input Filterカメラ機能を使用すると、ハードウェア入力信号からノイズ、干渉、または接点バウンスを除外できます。

この機能はLine Debouncer機能に似ており、ace Classic/U/Lカメラでのみ利用可能です。

機能を使用する#

仕組み#

次のカメラ設定のいずれかまたは両方を設定することで、入力フィルタリングを制御できます。

Input Filter Time#

デジタル入力信号は、カメラに到達したときに完全に形成されないことがよくあります。特に長いI/Oケーブルを使用している場合や近くに電源装置がある場合にノイズや干渉を受ける可能性があります。また、スイッチ出力はクロストークの原因となる場合があります。

その結果、「low」から「high」への変更(またはその逆)において、遷移中にロジックレベルが未定義の状態で数マイクロ秒かかることがあります。

入力フィルター時間を指定すると、これらの問題のほとんどを解決できます。

The input filter evaluates all changes and durations of logical states of the input signal. The duration of this evaluation period is defined by the BslInputFilterTime parameter.

評価中、カメラは時間の経過に応じて平均値を計算し、この計算結果にしきい値機能を適用してデジタル信号を再構築します。これにより、フィルター時間より短い信号pulseだけでなく、ノイズ、干渉なども除去されます。

情報

入力フィルター時間を指定し、入力信号が元の遷移後に安定していない場合、伝播遅延が増加します。

つまり、アナログI/O信号の変化からカメラの内部ステータスの変化までの時間が長くなります。

Input Hold-Off Time#

入力ホールドオフ時間の設定は、複数のトリガー信号が連続して到着する(接点バウンス)ことによる誤トリガーを回避する場合に便利です。

入力ホールドオフ時間が設定され、入力トリガー信号が着信した場合、カメラは信号を受信すると、ホールドオフ時間が経過するまで、それ以上のトリガー信号または信号変化の受け入れを停止します。

For example, if you set the BslInputHoldOffTime parameter to 10 and apply a trigger signal to the camera, the camera accepts the signal and stops accepting any further trigger signals or signal changes for 10 milliseconds.

Input Hold-Off Time:Timing Diagram

情報

入力フィルター時間とは異なり、入力ホールドオフ時間を指定しても伝播遅延は増加しません。

Input Filteringの設定#

  1. カメラがハードウェアトリガー用に設定されていることを確認します。
  2. Set the LineSelector parameter to the desired input line, e.g., Line1.
  3. If you want to configure the input filter time, enter a value for the BslInputFilterTime parameter.
  4. If you want to configure the input hold-off time, enter a value for the BslInputHoldOffTime parameter.

Input FilterおよびInput Hold-Off Timeの選択#

  • 入力フィルター時間または入力ホールドオフ時間の値が小さすぎると、無効な信号や信号状態を受け入れてしまいます。
  • 入力フィルター時間または入力ホールドオフ時間の値が大きすぎると、有効な信号や信号状態が拒否されてしまいます。

Baslerでは、次のアプローチを推奨しています。

  • 無効な信号の予想される最長時間よりもわずかに長い入力フィルター時間を選択します。
  • 2つの有効な信号間の予想される最短間隔よりもわずかに短い入力ホールドオフ時間を選択します。

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

サンプルコード#

// Select the desired input line
camera.LineSelector.SetValue(LineSelector_Line1);
// Set the input filter time to 10 microseconds
camera.BslInputFilterTime.SetValue(10.0);
// Set the input hold-off time to 20 microseconds
camera.BslInputHoldOffTime.SetValue(20.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select the desired input line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Set the input filter time to 10 microseconds
CFloatParameter(nodemap, "BslInputFilterTime").SetValue(10.0);
// Set the input hold-off time to 20 microseconds
CFloatParameter(nodemap, "BslInputHoldOffTime").SetValue(20.0);
// Select the desired input line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Set the input filter time to 10 microseconds
camera.Parameters[PLCamera.BslInputFilterTime].SetValue(10.0);
// Set the input hold-off time to 20 microseconds
camera.Parameters[PLCamera.BslInputHoldOffTime].SetValue(20.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 input filter time to 10 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "BslInputFilterTime", 10.0);
CHECK(errRes);
/* Set the input hold-off time to 20 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "BslInputHoldOffTime", 20.0);
CHECK(errRes);
# Select the desired input line
camera.LineSelector.Value = "Line1"
# Set the input filter time to 10 microseconds
camera.BslInputFilterTime.Value = 10.0
# Set the input hold-off time to 20 microseconds
camera.BslInputHoldOffTime.Value = 20.0

pylon Viewerを使用して、パラメーターを簡単に設定することもできます。