コンテンツにスキップ

Periodic Signal (dart E)#

The Periodic Signal camera feature on dart E cameras allows you to synchronize image acquisition on multiple cameras.

機能を使用する#

仕組み#

Basler dart E cameras that support the Periodic Signal feature provide an additional camera signal source, PeriodicSignal1. The signal is synchronized to electrical signals applied via the camera's input line 1.

たとえば、入力ライン1に0.3秒間の電気信号を印加すると、カメラの内部周期信号が適応し、カメラは0.3秒ごとに画像をキャプチャします。

電気信号の周期を増減させると、カメラの内部周期信号が新しい時間に適応するまでに時間がかかります。カメラのフレームレートは、それに応じて増減します。電気信号の印加を停止すると、画像取得は停止します。

この機能には、標準的なハードウェアトリガーと比較して、次のような利点があります:

  • It allows edge triggering (rising or falling edge, configured via the BslPeriodicSignalActivation parameter). Standard hardware triggering only allows level triggering.
  • カメラは信号が周期的であることを「認識している」ので、次の信号を予測して、カメラを画像取得のために準備することができます。これにより、トリガー信号の検出から実際の露光開始までの時間が短縮されます。
  • You can specify a negative trigger delay (configured via the BslPeriodicSignalDelay parameter), which means that the camera acquires images before the electrical signal is actually applied.

情報

Baslerは、電気信号を一定の速度で印加することをお勧めします。撮影周期の増減によりカメラの動作が不安定になり、フレームが落ちてしまうおそれがあります。

Periodic Signalの設定#

同期画像取得をカメラに設定するには:

  1. 定期的な信号によってトリガーされるようにカメラを設定します。
    1. Set the TriggerMode parameter to On.
    2. Set the TriggerSource parameter to PeriodicSignal1.
  2. 信号遷移タイプを設定します:
    • If you want the camera to capture images on the falling edges of the input signal, set the BslPeriodicSignalActivation parameter to FallingEdge.
    • If you want the camera to capture images on the rising edges of the input signal, set the BslPeriodicSignalActivation parameter to RisingEdge.
  3. 信号遅延を設定します:
    • If you want the camera to capture images immediately when the input signal arrives, set the BslPeriodicSignalDelay parameter to 0.
    • If you want the camera to capture images before or after the input signal arrives, set the BslPeriodicSignalDelay parameter to any other value in nanoseconds. For example, if you set the parameter to -500000, the camera acquires an image 0.5 seconds before the next signal is expected to arrive.
  4. カメラの入力ライン1を介して周期的に電気信号を印加します。

サンプルコード#

// Configure the camera to be triggered by the periodic signal
// Note: You must set the trigger source first and then the trigger mode
camera.TriggerSource.SetValue(TriggerSource_PeriodicSignal1);
camera.TriggerMode.SetValue(TriggerMode_On);
// Set the transition type to falling edge
camera.BslPeriodicSignalActivation.SetValue(BslPeriodicSignalActivation_FallingEdge);
// Set the signal delay to 0
camera.BslPeriodicSignalDelay.SetValue(0);
INodeMap& nodemap = camera.GetNodeMap();
// Configure the camera to be triggered by the periodic signal
// Note: You must set the trigger source first and then the trigger mode
CEnumParameter(nodemap, "TriggerSource").SetValue("PeriodicSignal1");
CEnumParameter(nodemap, "TriggerMode").SetValue("On");
// Set the transition type to falling edge
CEnumParameter(nodemap, "BslPeriodicSignalActivation").SetValue("FallingEdge");
// Set the signal delay to 0
CIntegerParameter(nodemap, "BslPeriodicSignalDelay").SetValue(0);
// Configure the camera to be triggered by the periodic signal
// Note: You must set the trigger source first and then the trigger mode
camera.Parameters[PLCamera.TriggerSource].SetValue(PLCamera.TriggerSource.PeriodicSignal1);
camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On);
// Set the transition type to falling edge
camera.Parameters[PLCamera.BslPeriodicSignalActivation].SetValue(PLCamera.BslPeriodicSignalActivation.FallingEdge);
// Set the signal delay to 0
camera.Parameters[PLCamera.BslPeriodicSignalDelay].SetValue(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 */
/* Configure the camera to be triggered by the periodic signal */
/* Note: You must set the trigger source first and then the trigger mode */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSource", "PeriodicSignal1");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
/* Set the transition type to falling edge */
errRes = PylonDeviceFeatureFromString(hdev, "BslPeriodicSignalActivation", "FallingEdge");
CHECK(errRes);
/* Set the signal delay to 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslPeriodicSignalDelay", 0);
CHECK(errRes);
# Configure the camera to be triggered by the periodic signal
# Note: You must set the trigger source first and then the trigger mode
camera.TriggerSource.Value = "PeriodicSignal1"
camera.TriggerMode.Value = "On"
# Set the transition type to falling edge
camera.BslPeriodicSignalActivation.Value = "FallingEdge"
# Set the signal delay to 0
camera.BslPeriodicSignalDelay.Value = 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 */
/* Configure the camera to be triggered by the periodic signal */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSource", "PeriodicSignal1");
CHECK(errRes);
/* Set the transition type to falling edge */
errRes = PylonDeviceFeatureFromString(hdev, "BslPeriodicSignalActivation", "FallingEdge");
CHECK(errRes);
/* Set the signal delay to 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslPeriodicSignalDelay", 0);
CHECK(errRes);

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