コンテンツにスキップ

Timer#

Timerカメラ機能を使用すると、特定のカメライベントで高になり、特定時間が経過すると低になるタイマー出力信号を設定できます。

機能を使用する#

ace 2、boost、およびdart IMXカメラ#

情報

このセクションでは、Counter機能がこのace 2、boost、およびdart IMXカメラでどのように動作するかを説明します。aceclassic/U/Lカメラの場合は、ここをクリックしてください。

仕組み#

Timer 1 and Timer 2の2つのタイマーを使用できます。

タイマーの仕組みは次のとおりです。

  • 内部タイマーを開始するトリガーソースイベントが発生します。
  • 遅延が期限切れになり始めます。
  • アームの遅延が期限切れになり始めます。
  • 遅延が期限切れになると、タイマー出力信号は高になり、設定した持続時間の間は高に維持されます。
  • 持続時間が経過すると、タイマー出力信号は低になります。
  • アームの遅延時間が経過すると、カメラは次のトリガーソースイベントを受信できます。

Timer Operation

Timerの設定#

タイマーを設定するには、次の手順に従います。

  1. TimerSelectorパラメーターを目的のタイマー(Timer1など)に設定します。
  2. TimerDurationパラメーターを、目的のタイマー持続時間(マイクロ秒単位)に設定します。
  3. TimerDelayパラメーターを、目的のタイマー遅延(マイクロ秒単位)に設定します。
  4. TimerTriggerArmDelayパラメーターを、目的のアーム遅延(マイクロ秒単位)に設定します。
  5. LineSelectorパラメーターを、タイマー信号に使用する出力ラインに設定します。
    ラインがGPIOラインの場合は、ラインを出力として設定する必要があります。
  6. ステップ1でTimer 1を選択した場合、LineSourceパラメーターTimer1Activeに設定します。
  7. ステップ1でTimer 2を選択した場合、LineSourceパラメーターTimer2Activeに設定します。

Starting a Timer#

Timer Trigger Source

TimerTriggerSourceパラメーターを使用すると、タイマーを開始するソースを指定できます。

トリガーソースを指定するには、次の手順に従います。

  1. TimerSelectorパラメーターを目的のタイマー(Timer1など)に設定します。
  2. TimerTriggerSourceパラメーターに、タイマーの開始に使用するソースを設定します。

これで、カメラが選択したソースで信号を検出するたびにタイマーが開始されます。

開始されると、設定された遅延に関係なく、タイマーのステータスはすぐにTimerTriggerWaitからTimerActiveに変わります。ただし、タイマー出力信号は、遅延時間が経過してから高になります。

例1:TimerTriggerSourceパラメーターをLine2に設定した場合。Line 2の入力信号または出力信号が変化すると、タイマーが開始されます。

例2:TimerTriggerSourceパラメーターをSoftwareSignal1に設定したとします。これで、チャンネル1を介してSoftwareSignalPulseコマンドを実行するたびにタイマーが開始されます。

Timer Trigger Activation

デフォルトでは、タイマーは、選択したトリガーソースの信号が上昇したとき(つまり、信号ステータスが低から高に変化したとき)にのみ開始されます。

この動作を変更するには、TimerTriggerActivationパラメーターを次のいずれかの値に設定します。

  • RisingEdge(デフォルト):信号が上昇したとき(信号ステータスが低から高に変化したとき)にタイマーが開始されます。
  • FallingEdge:信号が下降したとき(信号ステータスが高から低に変化したとき)にタイマーが開始されます。
  • AnyEdge:信号が下降または上昇するとタイマーが開始されます。
  • LevelHigh:信号がのときにタイマーが開始されます。信号が低に変わるとタイマーは停止するため、再度開始する必要があります。
  • LevelLow:信号がになるとタイマーが開始されます。信号が高に変わるとタイマーは停止するため、再度開始する必要があります。

情報

TimerTriggerActivationパラメーターは、高(0)または低(1)になるタイマートリガーソース(I/O信号またはExposureActiveなどの「Active」信号)でのみ使用できます。

Resetting a Timer#

タイマーをリセットするには、TimerResetコマンドを実行します。

タイマーのステータスTimerActiveからTimerTriggerWaitに変わります。

これで、設定されているアーム遅延に関係なく、タイマーをすぐに再起動できるようになりました。

Getting the Status of a Timer#

タイマーの現在のステータスを取得するには、TimerStatusパラメーターの値を取得します。このパラメーターは読み取り専用です。

可能な値は次のとおりです。

  • TimerTriggerWait:タイマーは開始を待機しています。
  • TimerActive:タイマーが開始されました。タイマーは、設定された遅延に関係なく、トリガーソースイベントが発生するとすぐにこの状態に切り替わります。アーム遅延が設定されている場合、タイマーはアーム遅延時間が経過するまでTimerActive状態のままです。
  • TimerIdle:タイマーはアイドル状態です。TimerTriggerSourceパラメーターがOffに設定されている場合(つまり、タイマーを開始できない場合)、タイマーはこの状態になります。

ace classic/U/Lカメラ#

情報

このセクションでは、Counter機能がace classic/U/Lカメラでどのように動作するかを説明します。ace 2 boost、dart IMXカメラについては、ここをクリックしてください。

仕組み#

1つのタイマーが使用できます:Timer 1。タイマーの動作は次のとおりです。

  • 内部タイマーを開始するトリガーソースイベント(Exposure Startなど)が発生します。
  • 遅延が期限切れになり始めます。
  • 遅延が期限切れになると、タイマー出力信号は高になり、設定した持続時間の間は高に維持されます。
  • 信号の持続時間が経過すると、タイマー出力信号は低になります。

Timer Operation

Timerの設定#

  1. LineSelectorパラメーターを、タイマー信号に使用する出力ラインに設定します。
    ラインがGPIOラインの場合は、ラインを出力として設定する必要があります。
  2. LineSourceパラメーターTimerActiveに設定します。
  3. TimerTriggerSourceパラメーターを、使用可能なトリガーソースイベントのいずれかに設定します。

    • ExposureStart:露光が開始されるとタイマーが開始します。
    • FlashWindowStartフラッシュウィンドウが開くとタイマー開始します。
  4. TimerDurationパラメーターを、目的のタイマー持続時間(マイクロ秒単位)に設定します。

  5. TimerDelayパラメーターを、目的のタイマー遅延(マイクロ秒単位)に設定します。

情報

一部のカメラモデルでは、最大タイマー持続時間とタイマー遅延の値を増やす必要があります。

Increasing the Maximum Timer Duration and Delay#

一部のカメラモデルでは、TimerDurationおよびTimerDelayパラメーターは、デフォルトの最大値4 095に制限されています。

これらのモデルで最大タイマー持続時間を延ばすには、次の手順に従います。

  1. 希望するタイマー持続時間を4 095で割り、結果を最も近い整数に切り上げます。
    例:タイマーの持続時間を50,000µsに設定するとします。50000/4095 = 12.21 ≈ 13。
  2. TimerDurationTimebaseAbsパラメーターを、手順1で決定した値(この場合は13)に設定します。
  3. TimerDurationパラメーターを目的のタイマー持続時間(この場合は50,000)に設定します。
    内部的には、カメラは次のようにタイマー持続時間を計算します:TimerDurationRaw x TimerDurationTimebaseAbs = TimerDurationAbs

これらのモデルで最大タイマー遅延を延ばすには、次の手順に従います。

  1. 希望するタイマー遅延を4 095で割り、結果を最も近い整数に切り上げます。
    例:タイマー遅延を6,000µsに設定するとします。6000/4095 = 1.47 ≈ 2
  2. TimerDelayTimebaseAbsパラメーターを、手順1で決定した値(この場合は2)に設定します。
  3. TimerDelayパラメーターを目的のタイマー遅延(この場合は6,000)に設定します。
    カメラは内部的にタイマー遅延を次のように計算します:TimerDelayRaw x TimerDelayTimebaseAbs = TimerDelayAbs

情報

TimerDurationTimebaseAbsおよびTimerDelayTimebaseAbsのパラメーター値によっては、カメラが正確なタイマー持続時間と遅延を達成できない場合があります。
例えば、TimerDurationTimebaseAbsパラメーターを13に設定すると、カメラは13の倍数のタイマー時間しか得られません。したがって、TimerDurationパラメーターを50 000に設定し、TimerDurationTimebaseAbsパラメーターを13に設定すると、カメラは自動的に設定値を可能な限り近い値に変更します(例:49 998、これは、最も近い13の倍数です)。

追加パラメーター#

  • TimerSelector:設定するタイマーを設定します。Basler ace classic/U/Lカメラは1つのタイマーしかサポートしていないため、このパラメーターがプリセットされており、変更できません。

特性#

すべてのカメラモデルを表示します

カメラモデル Default Maximum Value for Timer Duration and Delay
a2A1920-51gcBAS 16 777 215
a2A1920-51gcPRO 16 777 215
a2A1920-51gmBAS 16 777 215
a2A1920-51gmPRO 16 777 215
a2A1920-160ucBAS 16 777 215
a2A1920-160ucPRO 16 777 215
a2A1920-160umBAS 16 777 215
a2A1920-160umPRO 16 777 215
a2A2590-22gcBAS 16 777 215
a2A2590-22gcPRO 16 777 215
a2A2590-22gmBAS 16 777 215
a2A2590-22gmPRO 16 777 215
a2A2590-60ucBAS 16 777 215
a2A2590-60ucPRO 16 777 215
a2A2590-60umBAS 16 777 215
a2A2590-60umPRO 16 777 215
a2A3840-13gcBAS 16 777 215
a2A3840-13gcPRO 16 777 215
a2A3840-13gmBAS 16 777 215
a2A3840-13gmPRO 16 777 215
a2A3840-45ucBAS 16 777 215
a2A3840-45ucPRO 16 777 215
a2A3840-45umBAS 16 777 215
a2A3840-45umPRO 16 777 215
a2A4504-5gcBAS 16 777 215
a2A4504-5gcPRO 16 777 215
a2A4504-5gmBAS 16 777 215
a2A4504-5gmPRO 16 777 215
a2A4504-18ucBAS 16 777 215
a2A4504-18ucPRO 16 777 215
a2A4504-18umBAS 16 777 215
a2A4504-18umPRO 16 777 215
a2A5320-7gcBAS 16 777 215
a2A5320-7gcPRO 16 777 215
a2A5320-7gmBAS 16 777 215
a2A5320-7gmPRO 16 777 215
a2A5320-23ucBAS 16 777 215
a2A5320-23ucPRO 16 777 215
a2A5320-23umBAS 16 777 215
a2A5320-23umPRO 16 777 215
a2A5328-4gcBAS 16 777 215
a2A5328-4gcPRO 16 777 215
a2A5328-4gmBAS 16 777 215
a2A5328-4gmPRO 16 777 215
a2A5328-15ucBAS 16 777 215
a2A5328-15ucPRO 16 777 215
a2A5328-15umBAS 16 777 215
a2A5328-15umPRO 16 777 215
acA640-90gc 4 095
acA640-90gm 4 095
acA640-90uc 16 777 215
acA640-90um 16 777 215
acA640-120gc 4 095
acA640-120gm 4 095
acA640-120uc 16 777 215
acA640-120um 16 777 215
acA640-121gm 16 777 215
acA640-300gc 16 777 215
acA640-300gm 16 777 215
acA640-750uc 16 777 215
acA640-750um 16 777 215
acA720-290gc 16 777 215
acA720-290gm 16 777 215
acA720-520uc 16 777 215
acA720-520um 16 777 215
acA780-75gc 4 095
acA780-75gm 4 095
acA800-200gc 16 777 215
acA800-200gm 16 777 215
acA800-510uc 16 777 215
acA800-510um 16 777 215
acA1280-60gc 4 095
acA1280-60gm 4 095
acA1300-22gc 4 095
acA1300-22gm 4 095
acA1300-30gc 4 095
acA1300-30gm 4 095
acA1300-30uc 16 777 215
acA1300-30um 16 777 215
acA1300-60gc 4 095
acA1300-60gm 4 095
acA1300-60gmNIR 4 095
acA1300-75gc 16 777 215
acA1300-75gm 16 777 215
acA1300-200uc 16 777 215
acA1300-200um 16 777 215
acA1440-73gc 16 777 215
acA1440-73gm 16 777 215
acA1440-220uc 16 777 215
acA1440-220um 16 777 215
acA1600-20gc 4 095
acA1600-20gm 4 095
acA1600-20uc 16 777 215
acA1600-20um 16 777 215
acA1600-60gc 4 095
acA1600-60gm 4 095
acA1920-25gc 4 095
acA1920-25gm 4 095
acA1920-25uc 16 777 215
acA1920-25um 16 777 215
acA1920-40gc 16 777 215
acA1920-40gm 16 777 215
acA1920-40uc 16 777 215
acA1920-40ucMED 16 777 215
acA1920-40um 16 777 215
acA1920-40umMED 16 777 215
acA1920-48gc 16 777 215
acA1920-48gm 16 777 215
acA1920-50gc 16 777 215
acA1920-50gm 16 777 215
acA1920-150uc 16 777 215
acA1920-150um 16 777 215
acA1920-155uc 16 777 215
acA1920-155ucMED 16 777 215
acA1920-155um 16 777 215
acA1920-155umMED 16 777 215
acA2000-50gc 4 095
acA2000-50gm 4 095
acA2000-50gmNIR 4 095
acA2000-165uc 16 777 215
acA2000-165um 16 777 215
acA2000-165umNIR 16 777 215
acA2040-25gc 4 095
acA2040-25gm 4 095
acA2040-25gmNIR 4 095
acA2040-35gc 16 777 215
acA2040-35gm 16 777 215
acA2040-55uc 16 777 215
acA2040-55um 16 777 215
acA2040-90uc 16 777 215
acA2040-90um 16 777 215
acA2040-90umNIR 16 777 215
acA2040-120uc 16 777 215
acA2040-120um 16 777 215
acA2440-20gc 16 777 215
acA2440-20gm 16 777 215
acA2440-35uc 16 777 215
acA2440-35ucMED 16 777 215
acA2440-35um 16 777 215
acA2440-35umMED 16 777 215
acA2440-75uc 16 777 215
acA2440-75ucMED 16 777 215
acA2440-75um 16 777 215
acA2440-75umMED 16 777 215
acA2500-14gc 4 095
acA2500-14gm 4 095
acA2500-14uc 16 777 215
acA2500-14um 16 777 215
acA2500-20gc 16 777 215
acA2500-20gcMED 16 777 215
acA2500-20gm 16 777 215
acA2500-20gmMED 16 777 215
acA2500-60uc 16 777 215
acA2500-60um 16 777 215
acA3088-16gc 16 777 215
acA3088-16gm 16 777 215
acA3088-57uc 16 777 215
acA3088-57um 16 777 215
acA3800-10gc 4 095
acA3800-10gm 4 095
acA3800-14uc 16 777 215
acA3800-14um 16 777 215
acA4024-8gc 16 777 215
acA4024-8gm 16 777 215
acA4024-29uc 16 777 215
acA4024-29um 16 777 215
acA4096-11gc 16 777 215
acA4096-11gm 16 777 215
acA4096-30uc 16 777 215
acA4096-30ucMED 16 777 215
acA4096-30um 16 777 215
acA4096-30umMED 16 777 215
acA4096-40uc 16 777 215
acA4096-40ucMED 16 777 215
acA4096-40um 16 777 215
acA4096-40umMED 16 777 215
acA4112-8gc 16 777 215
acA4112-8gm 16 777 215
acA4112-20uc 16 777 215
acA4112-20ucMED 16 777 215
acA4112-20um 16 777 215
acA4112-20umMED 16 777 215
acA4112-30uc 16 777 215
acA4112-30ucMED 16 777 215
acA4112-30um 16 777 215
acA4112-30umMED 16 777 215
acA4600-7gc 4 095
acA4600-10uc 16 777 215
acA5472-5gc 16 777 215
acA5472-5gm 16 777 215
acA5472-17uc 16 777 215
acA5472-17um 16 777 215
boA4096-93cc 16 777 215
boA4096-93cm 16 777 215
boA4112-68cc 16 777 215
boA4112-68cm 16 777 215
boA6500-36cm 16 777 215
boA8100-16cm 16 777 215
daA1280-54lc Timer機能はサポートされていません
daA1280-54lm Timer機能はサポートされていません
daA1280-54uc Timer機能はサポートされていません
daA1280-54um Timer機能はサポートされていません
daA1600-60lc Timer機能はサポートされていません
daA1600-60lm 16 777 215
daA1600-60uc Timer機能はサポートされていません
daA1600-60um Timer機能はサポートされていません
daA1920-15um Timer機能はサポートされていません
daA1920-30uc Timer機能はサポートされていません
daA1920-30um Timer機能はサポートされていません
daA1920-160uc 16 777 215
daA1920-160um 16 777 215
daA2500-14lc Timer機能はサポートされていません
daA2500-14lm Timer機能はサポートされていません
daA2500-14uc Timer機能はサポートされていません
daA2500-14um Timer機能はサポートされていません
puA1280-54uc Timer機能はサポートされていません
puA1280-54um Timer機能はサポートされていません
puA1600-60uc Timer機能はサポートされていません
puA1600-60um Timer機能はサポートされていません
puA1920-30uc Timer機能はサポートされていません
puA1920-30um Timer機能はサポートされていません
puA2500-14uc Timer機能はサポートされていません
puA2500-14um Timer機能はサポートされていません

サンプルコード#

ace 2、boost、およびdart IMXカメラ#

// Select Timer 1
camera.TimerSelector.SetValue(TimerSelector_Timer1);
// Set the timer duration to 1000 microseconds
camera.TimerDuration.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelay.SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
camera.TimerTriggerArmDelay.SetValue(5000.0);
// Select Line 2 and configure the line as output
camera.LineSelector.SetValue(LineSelector_Line2);
camera.LineMode.SetValue(LineMode_Output);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_Timer1Active);
// Specify that the timer starts whenever a rising signal is detected on Line 1
camera.TimerTriggerSource.SetValue(TimerTriggerSource_Line1);
camera.TimerTriggerActivation.SetValue(TimerTriggerActivation_RisingEdge);
// Reset the timer
camera.TimerReset.Execute();
// Get the current status of the timer
TimerStatusEnums timerStatus = camera.TimerStatus.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select Timer 1
CEnumParameter(nodemap, "TimerSelector").SetValue("Timer1");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDuration").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelay").SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
CFloatParameter(nodemap, "TimerTriggerArmDelay").SetValue(5000.0);
// Select Line 2 and configure the line as output
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
CEnumParameter(nodemap, "LineMode").SetValue("Output");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("Timer1Active");
// Specify that the timer starts whenever a rising signal is detected on Line 1
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("Line1");
CEnumParameter(nodemap, "TimerTriggerActivation").SetValue("RisingEdge");
// Reset the timer
CCommandParameter(nodemap, "TimerReset").Execute();
// Get the current status of the timer
String_t timerStatus = CEnumParameter(nodemap, "TimerStatus").GetValue();
// Select Timer 1
camera.Parameters[PLCamera.TimerSelector].SetValue(PLCamera.TimerSelector.Timer1);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDuration].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelay].SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
camera.Parameters[PLCamera.TimerTriggerArmDelay].SetValue(5000.0);
// Select Line 2 and configure the line as output
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
camera.Parameters[PLCamera.LineMode].SetValue(PLCamera.LineMode.Output);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.Timer1Active);
// Specify that the timer starts whenever a rising signal is detected on Line 1
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.Line1);
camera.Parameters[PLCamera.TimerTriggerActivation].SetValue(PLCamera.TimerTriggerActivation.RisingEdge);
// Reset the timer
camera.Parameters[PLCamera.TimerReset].Execute();
// Get the current status of the timer
string timerStatus = camera.Parameters[PLCamera.TimerStatus].GetValue();
/* 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 */
size_t len = 0;
char timerStatus_str[64] = {0};
/* Select Timer 1 */
errRes = PylonDeviceFeatureFromString(hdev, "TimerSelector", "Timer1");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDuration", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelay", 500.0);
CHECK(errRes);
/* Set the timer trigger arm delay to 5000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerTriggerArmDelay", 5000.0);
CHECK(errRes);
/* Select Line 2 and configure the line as output */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "LineMode", "Output");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "Timer1Active");
CHECK(errRes);
/* Specify that the timer starts whenever a rising signal is detected on Line 1 */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "Line1");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerActivation", "RisingEdge");
CHECK(errRes);
/* Reset the timer */
errRes = PylonDeviceExecuteCommandFeature(hdev, "TimerReset");
CHECK(errRes);
/* Get the current status of the timer */
len = sizeof(timerStatus_str);
errRes = PylonDeviceFeatureToString(hdev, "TimerStatus", timerStatus_str, &len);
CHECK(errRes);

ace classic/U/L GigEカメラ#

// Select Line 2 (output line)
camera.LineSelector.SetValue(LineSelector_Line2);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_TimerActive);
// Specify that the timer starts when exposure starts
camera.TimerTriggerSource.SetValue(TimerTriggerSource_ExposureStart);
// Set the timer duration to 1000 microseconds
camera.TimerDurationAbs.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelayAbs.SetValue(500.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select Line 2 (output line)
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("TimerActive");
// Specify that the timer starts when exposure starts
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("ExposureStart");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDurationAbs").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelayAbs").SetValue(500.0);
// Select Line 2 (output line)
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.TimerActive);
// Specify that the timer starts when exposure starts
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.ExposureStart);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDurationAbs].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelayAbs].SetValue(500.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 Line 2 (output line) */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "TimerActive");
CHECK(errRes);
/* Specify that the timer starts when exposure starts */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "ExposureStart");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDurationAbs", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelayAbs", 500.0);
CHECK(errRes);

その他のカメラ#

// Select Line 2 (output line)
camera.LineSelector.SetValue(LineSelector_Line2);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_Timer1Active);
// Specify that the timer starts when exposure starts
camera.TimerTriggerSource.SetValue(TimerTriggerSource_ExposureStart);
// Set the timer duration to 1000 microseconds
camera.TimerDuration.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelay.SetValue(500.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select Line 2 (output line)
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("Timer1Active");
// Specify that the timer starts when exposure starts
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("ExposureStart");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDuration").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelay").SetValue(500.0);
// Select Line 2 (output line)
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.Timer1Active);
// Specify that the timer starts when exposure starts
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.ExposureStart);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDuration].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelay].SetValue(500.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 Line 2 (output line) */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "Timer1Active");
CHECK(errRes);
/* Specify that the timer starts when exposure starts */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "ExposureStart");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDuration", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelay", 500.0);
CHECK(errRes);

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