コンテンツにスキップ
ステージングサーバー
開発サーバー

Sequencer(ace 2およびboost R)#

Sequencerカメラ機能を使用すると、一連のパラメーター設定を定義し、連続した画像に適用できます。

シーケンサーセットと呼ばれる最大32セットのパラメーター設定を定義できます。カメラはトリガー信号を受信すると、シーケンサーセットを1つずつ順番に適用します。

例えば、Sequencer機能を使用して、設定済みの画像ROIまたは露光時間をすばやく変更できます。

機能を使用する#

Sequencerモード#

  • シーケンサー設定モードではシーケンサーを設定できますが、操作はできません。
  • シーケンサーモードではシーケンサーを操作できますが、設定はできません。

Sequencer設定モード#

シーケンサー設定モードを有効するには、次の手順に従います。

  1. パラメーターを SequencerMode パラメータを Off.
  2. パラメーターを SequencerConfigurationMode パラメータを On.

これでシーケンサーを設定できるようになりました。

情報

  • 設定モードでは、一部のカメラパラメーターが使用できない場合があります。つまり、これらは読み取り専用に設定されています。pylon Viewerの[Features - All]ペインで、使用可能なパラメーターを確認します。

Sequencerモード#

Sequencer モードを有効にするには、 SequencerMode パラメータを Onを設定します。これにより、Sequencer 設定モードが無効になります。

これでシーケンサーがトリガー信号を受信し、設定されたとおりに進行する準備ができました。

情報

  • デフォルトでは、Sequencer モードを有効にすると、カメラは Sequencer セット 0 を即座にロードします。この動作を変更するには、 SequencerSetStart パラメータに希望の開始セットを設定します。
  • シーケンサーモードでは、一部のカメラパラメーターが使用できない場合があります。つまり、これらは読み取り専用に設定されています。pylon Viewerの[Features - All]ペインで、使用可能なパラメーターを確認します。
  • シーケンサーモードでは、設定されたシーケンサーセットに基づいて一部のカメラのパラメーター値が計算されます。
    • イメージ PayloadSize パラメータ値は、設定された最大の Sequencer セットのサイズを反映します。
    • 画像バーストにおける画像の最大可能数、つまり AcquisitionBurstFrameCount パラメータの最大値は、設定された最大の Sequencer セットを使用して計算されます。
  • ネットワーク接続が不安定になった状況に対処するために、 SequencerSetActive パラメータを使用して、現在アクティブな Sequencer セットを確認します。
  • 使用可能な場合は、Sequencer Set Active chunkを使用して、使用されるシーケンサーセットを追跡できます。有効にすると、各画像には、画像取得に使用されるシーケンサーセットのインデックス番号を含むチャンクデータが含まれます。
  • 一部のカメラでは、Sequencer モードを有効にするとオーバーラップ画像取得が無効になり、カメラの最大フレームレートが低下します。これは、「オーバーラップ画像取得の可用性」が「カメラがフリーラン画像取得に設定されている場合のみ」と指定されているこのテーブル内のすべてのカメラに適用されます。

What's in a Sequencer Set?#

Sequencerセットには、次のパラメーターが含まれます(使用可能な場合)。

  • AutoFunctionROIWidtha
  • AutoFunctionROIHeighta
  • AutoFunctionROIOffsetXa
  • AutoFunctionROIOffsetYa
  • BinningHorizontalab
  • BinningVerticalab
  • BinningHorizontalModeab
  • BinningVerticalModeab
  • BslFlatFieldCorrectionMode
  • BslFlatFieldCorrectionSetIndex
  • ExposureTimec
  • Gain
  • Heightad
  • OffsetXad
  • OffsetYad
  • PixelFormata
  • SequencerSetNext
  • SequencerTriggerActivation
  • SequencerTriggerSource
  • Widthad

  1. Basler ace 2 V および boost カメラでは使用できません。

  2. FPGAビニングの設定のみが保存されます。

  3. Sequencer の操作または設定時、Exposure Time モードは Standard または Common に事前設定されており、変更できません。

  4. シーケンサーを操作または設定する際、Multiple ROI機能は無効になっています。

他のすべてのカメラパラメーターは、Sequencer機能を使用して制御できません。

情報

シーケンサーセットをロードまたは保存すると、変更していないパラメーターも含め、常に上記のすべてのパラメーターがロードまたは保存されます。例えば、露光時間を変更し、他のすべてのパラメーターをデフォルト値のままにした場合、他のすべてのパラメーターの値も保存され、ロード時に上書きされます。

Configuring the Sequencer#

Baslerは、シーケンサーを以下の2つの手順で設定することを推奨します。

  1. 目的のカメラ設定(露光時間や画像ROIなど)をシーケンサーセットに読み込みます。
  2. シーケンサーセット進行を設定します。すなわち、シーケンサーがセットから次のセットに進む方法とタイミングを定義します。

Sequencerセットへのデータの読み込み#

各シーケンサーセットには、0~31の範囲の固有のインデックス番号があります。目的のカメラ設定(露光時間や画像ROIなど)をセットに読み込むことができます。

次の手順に従ってシーケンサーセットに読み込みます。

  1. シーケンサーが設定モードであることを確認します。
  2. シーケンサーセットに保存するカメラパラメーターを設定します。
  3. パラメーターを SequencerSetSelector パラメータに希望のセットのインデックス番号を設定します。
  4. 実行します: SequencerSetSave コマンド。
  5. 使用するすべてのセットについて、手順2~4を繰り返します。

例:セット0と1に異なる画像ROI設定を読み込むとします。これを行うには、次の手順に従います。

  1. を調整して、最初の Image ROI を作成します。 Width, Height, OffsetXおよび OffsetY パラメータ値が含まれます。
  2. セット0を保存します。
  3. に対して異なる値を指定して、2番目の Image ROI を作成します。 Width, Height, OffsetXおよび OffsetY パラメータ。
  4. セット1を保存します。

その後、カメラが2つの画像ROI間で迅速に変更できるようにシーケンサーセット進行を設定できます。

Sequencerセット進行の設定#

シーケンサーを制御するには、シーケンサーがセットから次のセットに進む方法とタイミングを定義する必要があります。

シーケンサーセットごとに、以下を定義する必要があります。

基準 パラメーター
次に来る必要があるセット SequencerSetNext
シーケンサーを次のセットに進ませるトリガー信号 SequencerTriggerSource
信号の立ち上がりエッジや立ち下がりエッジなどで、トリガー信号が有効とみなされるタイミング SequencerTriggerActivation

必要に応じて、いわゆるパスを設定することにより、各セットに対して上記を2回定義できます。例えば、Line 3のトリガー信号を受信したとき(= パス0)にカメラをセット1に進めるように定義できますが、Line 4のトリガー信号を受信したとき(= パス1)にセット3に進むように定義できます。

これがすべてセットアップされると、カメラはシーケンサーセット間の遷移のタイミングと方法を正確に把握し、基本的に状態機械のように動作します。

Sequencerセットはフレームトリガーとは無関係に進行

シーケンサーは、画像取得とは無関係に進行できます。画像は常に、カメラがフレームトリガー信号を受信した時点でアクティブなセットを使用して取得されます。

例えば、入力ライン3を使用してシーケンサーセット進行をトリガーできますが、ライン4を使用して画像をトリガーできます。

設定する場合 同期する 画像取得と Sequencer の進行を同期させるために、Basler は Sequencer の Trigger Source を以下に設定することを推奨します。 ExposureStart.

シーケンサートリガーソースとフレーム開始トリガーソースを同じ信号ソースに設定しないでください。そうしないと、カメラが予期しない動作を示す場合があります。

シーケンサーセット進行を設定するには、次の手順に従います。

  1. シーケンサーが設定モードであることを確認します。
  2. パラメーターを SequencerSetSelector パラメータを 最初に 設定する Sequencer セットに設定します。
  3. 実行します: SequencerSetLoad コマンド。
  4. 次の手順に従って、パス0のシーケンサーセット進行を設定します。
    1. パラメーターを SequencerPathSelector パラメータを 0 に設定します。
    2. パラメーターを SequencerSetNext パラメータを次に設定するセットに設定します。
    3. パラメーターを SequencerTriggerSource パラメータを次のセットに進めるために使用するソース信号に設定します。
      利用可能な トリガーソース 信号のいずれかを選択できます(例: Line1 または ExposureStart.
    4. If you selected a trigger source that can be high (1) or low (0), i.e., an I/O signal, set the SequencerTriggerActivation パラメーターを次のいずれかの値に設定します。
      • RisingEdge (デフォルト):ソース信号が 立ち上がる(つまり、信号ステータスがLowからHighに変化する)ときにトリガーが有効になります。
      • FallingEdge:ソース信号が 立ち下がる(つまり、信号ステータスがHighからLowに変化する)ときにトリガーが有効になります。
      • AnyEdge:ソース信号が 立ち下がるまたは立ち上がる.
      • LevelHigh:ソース信号が High。Sequencer セットがロードされたときに信号がすでに High の場合、Sequencer は直ちに次のセットに進みます。これは画像取得とは独立して発生します。
      • LevelLow:ソース信号が Low。Sequencer セットがロードされたときに信号がすでに Low の場合、Sequencer は直ちに次のセットに進みます。これは画像取得とは独立して発生します。
  5. カメラが別のセットに移行するための2つ目の条件を定義する場合は、 SequencerPathSelector パラメータを1に設定してステップ4を繰り返します。
  6. 実行します: SequencerSetSave コマンド。
  7. パラメーターを SequencerSetSelector パラメータを 次へ 設定する Sequencer セットに設定します。
  8. 目的のすべてのセットについて、手順3~7を繰り返します。

例#

例1:セットの循環#

画像取得中にシーケンサーセット0、1、2を順番に切り替えるとします。カメラが画像を取得するたびに、シーケンサーは次のセットに進む必要があります。

例1 状態図

これを行うには、シーケンサーを以下のように設定します。

Sequencer Set Selector Sequencer Path Selector Sequencer Trigger Source Sequencer Trigger Activation Sequencer Set Next
0 0 ExposureStart - 1
1 0 ExposureStart - 2
2 0 ExposureStart - 0

以下に、上記のようにシーケンサーを設定した場合の動作の概要を示します。

  • 有効にすると、シーケンサーはセット0(デフォルト)で開始し、最初の画像の露光を待機します。
  • その場合、カメラは現在のシーケンサーセット0を画像に適用してからセット1に進みます。
  • 次の露光が開始されると、カメラはセット1を適用し、セット2に進みます。
  • 次の露光が開始されると、カメラはセット2を適用し、セット0に進みます。
  • これでシーケンサーはセット0に戻り、上記のプロセスが繰り返されるようになりました。

例2:CounterとMultiple Pathsの使用#

n回目の画像取得ごとに特定のセットに進むようにシーケンサーを設定できます。

これには、Counter機能の使用と複数のパスの設定が含まれます。

画像取得中にシーケンサーセット0と1を交互に切り替えるとします。ただし、最初の画像と10番目の画像ごとにシーケンサーセット2を使用する必要があります。

例2 状態図

これを実現するには、次の手順に従います。

  1. パラメーターを SequencerStartSet parameterを2に設定します。
  2. Counter 1を次のように設定します。

    • CounterDuration = 10
    • CounterEventSource = ExposureStart
    • CounterResetSource = Counter1End
  3. 以下の表に示すようにシーケンサーを設定します。

Sequencer Set Selector Sequencer Path Selector Sequencer Trigger Source Sequencer Trigger Activation Sequencer Set Next
0 0 ExposureActive FallingEdge 1
0 1 Counter1End - 2
1 0 ExposureActive FallingEdge 0
1 1 Counter1End - 2
2 0 ExposureActive FallingEdge 0

情報

  • 画像取得を開始する前に、カウンターがリセットされていることを確認してください。それ以外の場合は、カウントされません。
  • 上記の設定では、シーケンサーセット進行が立ち下がりエッジアクティブでExposure Active信号を使用してトリガーされる間に、カウンターがExposure Start信号を使用してトリガーされることに注意してください。これにより、パス0とパス1のタイミングの競合を回避できます。

以下に、上記のようにシーケンサーを設定した場合の動作の概要を示します。

  • 有効にすると、シーケンサーはセット2で開始し、最初の画像の露光を待機します。
  • 最初の露光が開始されると、Counter 1はExposure Startイベントをカウントするように設定されているため、0から1に増加します。
  • 最初の露光が終了(Exposure Active信号が低下)すると、シーケンサーはセット0に進みます。
  • 次の8つの画像取得では、シーケンサーがセット0とセット1を交互に切り替え、カウンターが増加し続けます。露光が終了(Exposure Active信号が低下)するたびに、シーケンサーは進行します。
  • 10番目の 画像の露光が開始されると、Counterが最大値に達し(CounterDuration = 10)、リセットされて、カメラからCounter 1 End信号が送信されます。これにより、Sequencerはパス1上のセット2に移行します。 以下の前で パス0のTrigger Source条件(ExposureActive, FallingEdge)が有効になります。
  • これでシーケンサーはセット2に戻り、上記のプロセスが繰り返されるようになりました。

例3:ランタイムの選択#

必要に応じてランタイムにシーケンサーセットを選択するようにシーケンサーを設定できます。

これには、複数のI/OラインをTrigger Sourceとして設定し、 LevelLow および LevelHigh のオプションを使用することが含まれます。 SequencerTriggerActivation パラメータ。

シーケンサーセットの選択は、入力ライン2および3の信号ステータス(0 = Low、1 = High)を使用して制御するものとします。ラインのステータスに応じて、シーケンサーを以下のように動作させます。

Signal Status Line 2 Signal Status Line 3 Selected Set
0 0 0
0 1 1
1 0 2
1 1 3

これを行うには、シーケンサーを以下のように設定します。

Sequencer Set Selector Sequencer Path Selector Sequencer Trigger Source Sequencer Trigger Activation Sequencer Set Next
0 0 Line3 LineHigh 1
0 1 Line2 LineHigh 2
1 0 Line3 LineLow 0
1 1 Line2 LineHigh 3
2 0 Line3 LineHigh 3
2 1 Line2 LineLow 0
3 0 Line3 LineLow 2
3 1 Line2 LineLow 1

以下に、上記のようにシーケンサーを設定した場合の動作の概要を示します。

  • 両方の信号がローの間は、Line 2およびLine 3のTrigger Activationが LineHighに設定されているため、トリガーは非アクティブのままになります。表の行1および2を参照してください。したがって、Sequencerはセット0にとどまります。
  • Line 3の信号が立ち上がると、 LineHigh アクティベーションが発生し、Sequencerはセット0からセット1に直ちに移行します。表の行1を参照してください。その後、Line 2がまだローであるため、Sequencerはセット1にとどまります。
  • ライン2の信号も立ち上がると、シーケンサーはセット1からセット3に進みます。表の行4を参照してください。
  • ライン2の信号が立ち下がると、シーケンサーはセット1に戻ります。表の行8を参照してください。
  • ライン3の信号も立ち下がると、シーケンサーはセット0に戻ります。表の行3を参照してください。

情報

  • これは、両方のI/OラインのステータスをHighからLowに切り替えるなどして、両方のラインのI/O信号を同時に変更する場合にも機能します。
  • 画像取得は個別にトリガーする必要があります。I/Oラインのステータスが変更されると、シーケンサーはフレーム間で複数回進むことがあります。

サンプルコード#

// ** Populating the Sequencer Sets **
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Configure parameters to be stored in the first sequencer set
camera.Width.SetValue(600);
camera.Height.SetValue(300);
// Select sequencer set 0 and save the parameter values
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetSave.Execute();
// Configure parameters to be stored in the second sequencer set
camera.Width.SetValue(800);
camera.Height.SetValue(600);
// Select sequencer set 1 and save the parameter values
camera.SequencerSetSelector.SetValue(1);
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
// ** Configuring sequencer set advance **
// Assume you want to alternate between sequencer sets 0 and 1 using input line 3
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Set the start set to set 0
camera.SequencerSetStart.SetValue(0);
// Load and configure sequencer set 0
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetLoad.Execute();
camera.SequencerPathSelector.SetValue(0);
camera.SequencerSetNext.SetValue(1);
camera.SequencerTriggerSource.SetValue(SequencerTriggerSource_Line3);
camera.SequencerTriggerActivation.SetValue(SequencerTriggerActivation_RisingEdge);
// Save the changes
camera.SequencerSetSave.Execute();
// Load and configure sequencer set 1
camera.SequencerSetSelector.SetValue(1);
camera.SequencerSetLoad.Execute();
camera.SequencerPathSelector.SetValue(0);
camera.SequencerSetNext.SetValue(0);
camera.SequencerTriggerSource.SetValue(SequencerTriggerSource_Line3);
camera.SequencerTriggerActivation.SetValue(SequencerTriggerActivation_RisingEdge);
// Save the changes
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
INodeMap& nodemap = camera.GetNodeMap();
// ** Populating the Sequencer Sets **
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Configure parameters to be stored in the first sequencer set
CIntegerParameter(nodemap, "Width").SetValue(600);
CIntegerParameter(nodemap, "Height").SetValue(300);
// Select sequencer set 0 and save the parameter values
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Configure parameters to be stored in the second sequencer set
CIntegerParameter(nodemap, "Width").SetValue(800);
CIntegerParameter(nodemap, "Height").SetValue(600);
// Select sequencer set 1 and save the parameter values
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(1);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// ** Configuring sequencer set advance **
// Assume you want to alternate between sequencer sets 0 and 1 using input line 3
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Set the start set to set 0
CIntegerParameter(nodemap, "SequencerSetStart").SetValue(0);
// Load and configure sequencer set 0
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(0);
CIntegerParameter(nodemap, "SequencerSetNext").SetValue(1);
CEnumParameter(nodemap, "SequencerTriggerSource").SetValue("Line3");
CEnumParameter(nodemap, "SequencerTriggerActivation").SetValue("RisingEdge");
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Load and configure sequencer set 1
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(1);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(0);
CIntegerParameter(nodemap, "SequencerSetNext").SetValue(0);
CEnumParameter(nodemap, "SequencerTriggerSource").SetValue("Line3");
CEnumParameter(nodemap, "SequencerTriggerActivation").SetValue("RisingEdge");
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// ** Populating the Sequencer Sets **
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Configure parameters to be stored in the first sequencer set
camera.Parameters[PLCamera.Width].SetValue(600);
camera.Parameters[PLCamera.Height].SetValue(300);
// Select sequencer set 0 and save the parameter values
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Configure parameters to be stored in the second sequencer set
camera.Parameters[PLCamera.Width].SetValue(800);
camera.Parameters[PLCamera.Height].SetValue(600);
// Select sequencer set 1 and save the parameter values
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(1);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
// ** Configuring sequencer set advance **
// Assume you want to alternate between sequencer sets 0 and 1 using input line 3
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Set the start set to set 0
camera.Parameters[PLCamera.SequencerSetStart].SetValue(0);
// Load and configure sequencer set 0
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetNext].SetValue(1);
camera.Parameters[PLCamera.SequencerTriggerSource].SetValue(PLCamera.SequencerTriggerSource.Line3);
camera.Parameters[PLCamera.SequencerTriggerActivation].SetValue(PLCamera.SequencerTriggerActivation.RisingEdge);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Load and configure sequencer set 1
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(1);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetNext].SetValue(0);
camera.Parameters[PLCamera.SequencerTriggerSource].SetValue(PLCamera.SequencerTriggerSource.Line3);
camera.Parameters[PLCamera.SequencerTriggerActivation].SetValue(PLCamera.SequencerTriggerActivation.RisingEdge);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
/* 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 */
/* ** Populating the Sequencer Sets ** */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Configure parameters to be stored in the first sequencer set */
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", 600);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 300);
CHECK(errRes);
/* Select sequencer set 0 and save the parameter values */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Configure parameters to be stored in the second sequencer set */
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", 800);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 600);
CHECK(errRes);
/* Select sequencer set 1 and save the parameter values */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);
/* ** Configuring sequencer set advance ** */
/* Assume you want to alternate between sequencer sets 0 and 1 using input line 3 */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Set the start set to set 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetStart", 0);
CHECK(errRes);
/* Load and configure sequencer set 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 0);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetNext", 1);
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerSource", "Line3");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerActivation", "RisingEdge");
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Load and configure sequencer set 1 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 0);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetNext", 0);
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerSource", "Line3");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerActivation", "RisingEdge");
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);
# ** Populating the Sequencer Sets **
# Enable sequencer configuration mode
camera.SequencerMode.Value = "Off"
camera.SequencerConfigurationMode.Value = "On"
# Configure parameters to be stored in the first sequencer set
camera.Width.Value = 600
camera.Height.Value = 300
# Select sequencer set 0 and save the parameter values
camera.SequencerSetSelector.Value = 0
camera.SequencerSetSave.Execute()
# Configure parameters to be stored in the second sequencer set
camera.Width.Value = 800
camera.Height.Value = 600
# Select sequencer set 1 and save the parameter values
camera.SequencerSetSelector.Value = 1
camera.SequencerSetSave.Execute()
# Enable sequencer mode to operate the sequencer
camera.SequencerMode.Value = "On"
# ** Configuring sequencer set advance **
# Assume you want to alternate between sequencer sets 0 and 1 using input line 3
# Enable sequencer configuration mode
camera.SequencerMode.Value = "Off"
camera.SequencerConfigurationMode.Value = "On"
# Set the start set to set 0
camera.SequencerSetStart.Value = 0
# Load and configure sequencer set 0
camera.SequencerSetSelector.Value = 0
camera.SequencerSetLoad.Execute()
camera.SequencerPathSelector.Value = 0
camera.SequencerSetNext.Value = 1
camera.SequencerTriggerSource.Value = "Line3"
camera.SequencerTriggerActivation.Value = "RisingEdge"
# Save the changes
camera.SequencerSetSave.Execute()
# Load and configure sequencer set 1
camera.SequencerSetSelector.Value = 1
camera.SequencerSetLoad.Execute()
camera.SequencerPathSelector.Value = 0
camera.SequencerSetNext.Value = 0
camera.SequencerTriggerSource.Value = "Line3"
camera.SequencerTriggerActivation.Value = "RisingEdge"
# Save the changes
camera.SequencerSetSave.Execute()
# Enable sequencer mode to operate the sequencer
camera.SequencerMode.Value = "On"

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