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

Light Control#

Light Controlカメラ機能を使用すると、最大4台のライトデバイスを制御できます。

この機能は、SLP プロトコルに基づき、カメラと照明器具が互いに直接通信できるようにします。

Basler Lightまたは他社製のLED照明ソリューションを使用する場合は、カメラとライト間の通信を有効にするためにBasler SLP Strobe Controllerが必要です。

Basler Camera Light を使用する場合は、コントローラー機能がすでに含まれているため、別のコントローラーは必要ありません。

情報

dart M camera modulesの場合、Light Control機能は、現在、Basler dart Mインターフェイスボード(⁠Interface Board ⁠dart M GigE RJ45 PoEまたは⁠Interface Board dart M GigE RJ45 AUX)を使用している場合にのみ利用できます。

機能を使用する#

照明器具の設定#

照明器具を設定するには、次のようにします。

  1. pylon Viewer を使用する場合は、[機能]ペインの[ポーリング]オプションが選択されていることを確認してください。

    pylon Viewer のポーリングオプション

  2. カメラがアイドル状態であること、つまり画像をキャプチャしていないことを確認します。

  3. まだ接続していない場合は、照明器具とコントローラーを接続します。
  4. パラメーターを BslLightControlMode パラメータを On.
  5. 実行します: BslLightControlEnumerateDevices コマンド。
    これにより、以下の手段でライトデバイスの通信が可能になります。 GPIO line および以下が割り当てられます。 light device ID.
  6. 環境内に 複数 のライトデバイスがある場合は、 BslLightDeviceSelector パラメータを設定して、設定するデバイスを指定します。
    デバイスが正しく接続されていることを確認します。つまり、 BslLightDeviceErrorStatus パラメータが以下を返します。 NoError.
  7. Basler SLP Strobe Controller を使用する場合は、次のようにします。

    1. パラメーターを BslLightDeviceControlMode パラメータを Current.
    2. パラメーターを BslLightDeviceOperationMode パラメータを Off.
    3. パラメーターを BslLightDeviceMaxCurrent パラメータに、連続動作時のライトの定格電流(mA)を設定します。

      注意 – 高すぎる公称電流定格を指定すると、照明が損傷する可能性があります。

      電流制御を使用する場合は、ライトが耐えられる公称電流定格を必ず指定してください。

      そうしないと、動作中にライトが損傷します。

  8. パラメーターを BslLightDeviceBrightness パラメータに希望の明るさを設定します。
    100.0の値は、ライトデバイスの定格電流の100 %に相当します。50 %に設定すると、電流が2分の1に減少します。明るさを100 %超に設定することもできます。これは オーバードライブ.

  9. パラメーターを BslLightDeviceOperationMode 目的のモードへのパラメーター:
    • Onと呼ばれます:ライトを連続点灯させます。
    • Strobe:ライトを ストロボモード.
  10. 必要な場合は、ユーザーセットに設定を保存します。

情報

  • Basler Camera Lightを使用する場合、 BslLightDeviceControlMode および BslLightDeviceMaxCurrent パラメータは自動的に設定されます。
  • 電流から電圧へ、またはその逆に切り替えるたびに、短時間のコントローラー初期化フェーズが発生し、その間は接続されている照明が点灯することに注意してください。これは最大 15 秒間持続する場合がありますが、通常の動作です。

ストロボモード#

ストロボモードを使用すると、照明器具を連続的に点灯しておくのではなく、必要なときにフラッシュのように動作させることができます。

ストロボモードを使用すると、次のような利点があります。

  • 照明の寿命を延ばすのに役立ちます。必要なときだけ照明を動作させることで、LED の発熱を抑えます。これにより、照明の劣化プロセスを遅らせることができます。
  • ストロボモードでは、照明をオーバードライブできます。つまり、供給電流を最大 500 %(照明コントローラーの場合)まで増大させることで、照明の明るさを上げます。

ストロボモードを有効にするには、ライトデバイスを選択して、 BslLightDeviceOperationMode パラメータを Strobe.

トリガー信号とストロボ持続期間の設定#

一般に、照明器具のトリガーは次のように動作します。

  • 最初はライトが消灯しています。
  • トリガー信号によりライトが点灯します。
  • ライトは一定時間点灯し続けます。これがストロボ持続時間です。
  • ストロボ持続時間が終了すると、ライトは再び消灯します。
ace 2、boost R、dart Mカメラ#

ace 2、boost R、およびdart Mカメラでトリガー信号とストロボ持続時間を設定するには:

  1. パラメーターを BslLightControlTriggerSource パラメータに、接続されたライトを点灯するために使用するソースを設定します。例: FlashWindow.
  2. If applicable, set the BslLightControlTriggerActivation パラメーターを次のいずれかの値に設定します。
    • RisingEdge (デフォルト):信号が入力されると、接続されているすべてのライトが点灯します。 立ち上がる(つまり、信号ステータスがLowからHighに変化する)ときにトリガーが有効になります。
    • FallingEdge: 信号が入力されると、接続されているすべてのライトが点灯します。 立ち下がる(つまり、信号ステータスがHighからLowに変化する)ときにトリガーが有効になります。
    • AnyEdge: 信号が入力されると、接続されているすべてのライトが点灯します。 立ち下がるまたは立ち上がる.
  3. パラメーターを BslLightDeviceStrobeMode パラメーターを次のいずれかの値に設定します。
    • Automatic: ストロボの発光時間は、カメラのフラッシュウィンドウ時間(BslFlashWindowDuration パラメータ)によって制御されます。この BslLightDeviceStrobeDuration パラメータは読み取り専用になり、計算されたストロボ発光時間が表示されます。
    • Manual: 次のパラメータを使用して、ストロボ発光時間を自分で定義できます: BslLightDeviceStrobeDuration パラメータ。
  4. ストロボモードを選択した場合は、 Manual パラメータを希望のストロボ発光時間(マイクロ秒)に設定します。 BslLightDeviceStrobeDuration パラメータを希望のストロボ発光時間に設定します。

情報

  • トリガー Width Exposure Mode またはExposure Autoオートファンクションを使用している場合は、自動ストロボモードを使用しないでください。そうでないと、カメラと照明が予期しない動作を示す可能性があります。
  • Sequencer 機能を使用している場合、自動ストロボモードは利用できません。
  • 自動ストロボモードでは、計算されたストロボ持続時間はフラッシュウィンドウ持続時間よりも短くなる可能性があります。これは、ライトが点灯するまでにかかる時間、つまり点灯遅延を補正するために行われます。
  • カメラがその能力の上限で動作している場合、オーバートリガーが発生する可能性があります。
ace U/Lカメラ#

ace U/L カメラでトリガー信号とストロボ持続時間を設定するには、次のようにします。

  1. カメラを使用している場合は、 ローリングシャッター を次のように設定します: BslLightControlTriggerMode パラメーターを次のいずれかの値に設定します。

    • ExposureActive: 露光開始時に接続されているすべてのライトが点灯します。このモードは、画像を オーバーラップ させて取得しない場合にのみ使用してください。
    • FlashWindow: カメラの Flash Window 信号が立ち上がると、接続されているすべてのライトが点灯します。このモードを使用する場合は、お使いのカメラモデルでフラッシュウィンドウ信号が利用可能であることを確認してください。

    グローバルシャッターカメラでは、露光が開始すると、接続されているすべての照明が常に点灯します。

  2. パラメーターを BslLightDeviceStrobeMode パラメーターを次のいずれかの値に設定します。

    • Automatic: ストロボ発光時間は、カメラの ExposureTime パラメータによって制御されます。
    • Manual: 次のパラメータを使用して、ストロボ発光時間を自分で定義できます: BslLightDeviceStrobeDuration パラメータ。
  3. ストロボモードを選択した場合は、 Manual パラメータを希望のストロボ発光時間(マイクロ秒)に設定します。 BslLightDeviceStrobeDuration パラメータを希望のストロボ発光時間に設定します。

情報

照明器具のオーバードライブ#

注意 – オーバードライブは照明を損傷する可能性があります。

このセクションの手順をよく読んで、接続されているライトの損傷を回避し、ライトが早期劣化しないようにしてください。

ライトをオーバードライブすると、ライトがストロボモードのときに、電流を増加させて、より高い光輝度を得ることができます。

照明器具をオーバードライブするには、次のようにします。

  1. Basler Light またはサードパーティ製ライトデバイスを使用している場合:

    1. 現在のデューティサイクルとストロボ発光時間から、デバイスに許容される最大電流を計算します。Basler ace 2、boost R、および dart M カメラでは、 BslLightDeviceDutyCycle パラメータを読み取ることで、現在のデューティサイクルを確認できます。
    2. パラメーターを BslLightDeviceOverdriveLimit パラメータをそれに応じて設定します。たとえば、ライトが定格電流の200%に耐えられる場合、オーバードライブ制限を200.0に設定します。

    カメラを使用している場合は、 Basler Camera Lightでは、オーバードライブ制限が自動的に計算され、 BslLightDeviceOverdriveLimit パラメータは使用できません。

  2. パラメーターを BslLightDeviceBrightness を100.0より大きい値に設定します。

オーバードライブする場合は、ライトの損傷を避けるために次の点を考慮してください。

  • ストロボモードでライトが耐えられる最大電流が不明な場合は、ライトのメーカーに問い合わせてください。
  • 電流が増加すると LED がより加熱するため、個々のストロボパルス間にライトが再び冷却するまでの十分な時間を確保する必要があります。一般的な経験則として、パルスの輝度を高くするほど、パルス間の間隔を長く空ける必要があります。
  • 露光時間が、pulseの長さとデューティサイクルに影響を与える点を考慮してください。

安全機能#

Basler 照明器具には、ハードウェアの損傷を避けるため、次の安全機能が実装されています。

SLP 照明コントローラーの安全機能#

2 A を超える電流と長い露光時間および高いデューティーサイクルの組み合わせにより、コントローラーのハードウェアが損傷する可能性があります。

これを回避するため、定格電流(BslLightDeviceMaxCurrent Basler SLP Light Controllerのパラメータ)を2000 mA超に設定します。

ただし、デバイスをオーバードライブしている場合は、電流が 2 A を超える可能性があります。

この場合、カメラは特定の照明器具設定の最大値を自動的に調整します。次の表を参照してください。

出力電流(公称電流 x 明るさ(%)) 最大ストロボ持続時間 最大デューティサイクル
2A未満 - 100 %
2 A to <3 A 5ms 15 %
3 A to <4 A 5ms 8 %
4 A to <5 A 5ms 6 %
5 A to <6 A 5ms 4 %
6 A to <8 A 1ms 4 %
8 A to <9 A 1ms 3 %
9 A to <10 A 1ms 2 %
Camera Lights の安全機能#

Basler Camera Lights で、選択した明るさがストロボ持続時間およびデューティーサイクルに対して高すぎる場合、ストロボ持続時間が短くなるか、トリガーが無視されます。次の表を参照してください。

必要な明るさ 最大ストロボ持続時間 最大デューティサイクル
0~100% - 100 %
101~200% 30ms 30 %
201~300% 10ms 20 %
301~500% 2ms 10 %
501~1000% 1ms 5 %

GPIO ライン設定#

カメラは、カメラの GPIO ラインの 1 つを介して照明器具と通信します。

  • On ace 2、boost R、およびdart Mカメラ、カメラは常に次を使用します: ライン3 光通信用。したがって、Light Control機能が有効になっている場合、 ラインモード Line 3のプロパティは次のように設定されます: InOut および 回線接続 が次のように設定されている場合、自動的に無効になります: LightControl.

  • On ace U/Lカメラでは、 BslLightControlSource パラメータは、カメラが光通信にどのGPIOラインを使用しているかを示します。

照明器具 ID#

SLP プロトコルを介して接続されたすべての照明器具には、照明器具 ID があります。ID は器具に保存されています。

有効な照明器具 ID は、1、2、3、4、7 です。すべての照明器具は、ID が 7(工場出荷時設定)に設定されて出荷されています。

デバイスを列挙する際、 BslLightControlEnumerateDevices コマンドを使用すると、カメラはIDが7に設定されたデバイスを自動的に検索し、1から4の間の次に利用可能なIDをそのデバイスに割り当てます。

複数の照明器具を使用する場合は、それらの ID をすべて異なるものにする必要があります。ID が同じ器具を使用すると、通信エラーが発生します。

  • 例 1:新しい 1 つの照明器具を接続し、複数の器具を列挙するとします。カメラはその新しい器具に ID 1 を割り当てます。次に、その器具を取り外し、別の照明器具を接続し、器具を再度列挙します。カメラはこの器具に再び ID 1 を割り当てます。
  • 例 2: 2 つの新しい照明器具を接続し、複数の器具を列挙するとします。カメラは、ID が 7 に設定されている 2 つの器具を検出し、割り当て可能な次の ID である 1 をそれぞれに割り当てます。

どちらの例でも、両方の照明器具をカメラに接続すると、通信エラーが発生します。競合を解決するには、ID の 1 つを変更する必要があります。

ヒント

競合を防ぐ最善の方法は、デバイスを 1 つずつ接続し、デバイスを接続した後は常に新しい一意の ID を割り当てることです。

Light Device IDの変更#

ライトのIDを変更するには、次の手順に従います。

  1. パラメーターを BslLightControlMode パラメータを On.
  2. パラメーターを BslLightDeviceOperationMode パラメータを Off.
  3. パラメーターを BslLightDeviceSelector 変更したいIDを持つBaslerライティングデバイスに対してパラメータを設定します。
  4. パラメーターを BslLightDeviceChangeID パラメータを希望のID(例: Device1.
    On ace U/Lカメラ)に設定すると、IDが即座に変更されます。
  5. On ace 2、boost R、およびdart Mカメラ、次を実行します: BslLightDeviceNewIDSave コマンド。

Light Control 機能使用時の考慮事項#

  • カメラの BslLightControlMode が次のように設定されている場合、自動的に無効になります: Onでは、 Serial Communication 機能が無効になります。これは、Light Control機能もSerial Communicationを使用するためです。
  • Basler Camera Lights use pulse width modulation (PWM), the Basler SLP Strobe Controller doesn't. If you're using very short exposure times (<500 µs) and a brightness value other than 100 %, PWM can lead to brightness fluctuations or to stripes in rolling shutter cameras.
  • 非常に短い Flash Window 信号の使用は避けてください。そうしないと、生成された画像内で一部の線が明るすぎ、それ以外の線が暗すぎるということになる可能性があります。
  • を設定する際、 BslLightControlMode パラメータを Onライティングデバイスが実際に点灯するまでに最大1秒の遅延が生じます。このため、最初の画像が暗すぎる場合があります。この画像を破棄するか、すべての画像が必要な場合は、適切な遅延の経過後に画像取得を開始してください。
  • Basler Camera Light をオーバードライブするときは、1 秒あたり 60 フレームを超える速度でカメラを動作させないでください。そうでないと、カメラと照明が予期しない動作を示す可能性があります。
  • Basler ace 2、boost R、およびdart Mカメラ: ユーザーセットからライティングデバイスの設定を読み込む場合、設定が適用されるのは BslLightControlEnumerateDevices コマンド。

オーバートリガー#

カメラがその能力の上限で動作している場合、照明器具のオーバートリガーが発生する可能性があります。オーバートリガーとは、照明器具がまだ照明をオフに切り替えている途中など、準備ができていない間にトリガーを受信することを意味します。これは、トリガーが無視され、次の露光時に照明が点灯しないことを意味します。

この問題をよりよく理解するには、次の例を検討します。

100 fps が可能なカメラは、露光時間を 50 ms に設定して動作しています。よって、カメラは露出間に一時停止せずに、1 秒あたり 20 フレームをすばやく連続して取得します。これは、照明器具のトリガーが 2 つの露光間の両端に正確に実行される必要があることを意味します。

しかし実際には、これはほとんど不可能です。なぜなら、固有のジッターにより、ライトがオフになりそうなときにトリガーが着信することがあり、そのような場合、トリガーは無視され、生成された画像は暗すぎるものとなるからです。

ジッターは不規則なため、これが起きるのを回避する正確な方法はありません。一部の画像が他の画像より暗いことに気付いた場合は、ライトを連続モードで動作させることを検討してください。また、Acquisition Frame Rate 機能を使用してフレームレートを調整することもできます。

オーバートリガーの監視#

On ace 2、boost R、およびdart Mカメラでは、 BslLightControlOvertriggerCount パラメータが利用可能です。接続されているライティングデバイスの少なくとも1つが準備できていない状態で、何回のトリガー信号が送信されたかを監視できます。

例: 4台のライティングデバイスがカメラに接続されていると仮定します。3台のデバイスが準備できていない状態でトリガー信号を送信すると、結果として BslLightControlOvertriggerCount パラメータが 1 増加します。

パラメーターは最大値として 65 535 までカウントします。到達すると、カウントを停止します。

オーバートリガーカウンターをリセットするには、次を実行します: BslLightControlOvertriggerCountReset コマンド。

エラーのチェックとクリア#

ace 2、boost R、dart Mカメラ#

Basler ace 2、boost R、およびdart Mカメラは、接続されたライティングデバイスから以下のエラーデータを読み取ることができます:

  • エラーステータスは、エラーを自分で修正するのに役立ちます。
  • Error Code により、エラーの種類に関する追加情報を取得できます。またこれは、Basler サポートでの評価にも使用します。

エラーを確認してクリアするには、次の手順に従います。

  1. 複数のデバイスが接続されている場合は、次のようにします。
    1. Check the BslLightControlErrorSummary どのデバイスで問題が発生しているかを調べるためのパラメータ(例: Device2.
    2. パラメーターを BslLightDeviceSelector パラメータを問題が発生しているデバイスに設定します。
  2. 次の値を取得します。 BslLightDeviceErrorStatus パラメータを確認し、以下の表でその意味を エラーステータス 参照してください。
  3. エラーステータスが「ハードウェアエラー」の場合は、次のようにします。
    1. 実行します: BslLightDeviceErrorStatusReadAndClear コマンド。
    2. 次の値を取得します。 BslLightDeviceErrorCode パラメータを確認し、以下の表でその意味を Error Codes 参照してください。
    3. 可能であれば、エラーを修正します。
  4. エラーステータスが「Hardware Error」ではない場合:
    1. 可能であれば、エラーを修正します。
    2. 実行します: BslLightDeviceErrorStatusReadAndClear コマンドを実行してエラーステータスを NoError.
エラーステータス#

イメージ BslLightDeviceErrorStatus パラメータには以下の値を設定できます:

値 意味
Communication Error 照明器具とカメラ間のデータ伝送に障害があると、通信エラーが発生します。これは、使用するケーブルが長すぎる、または回線上のノイズが多すぎるなどの原因で生じる可能性があります。
接続ロスト 以前に接続していた照明器具への接続が失われました。これは、ケーブルが緩んだ場合などに発生する可能性があります。
Hardware Error ライトデバイスで技術的な障害が発生しています。ハードウェアエラーの種類についての詳細は、 BslLightDeviceErrorStatusReadAndClear コマンドを実行して エラーコード.a
照明器具エラー 照明器具に内部エラーが発生しています。a
No Error エラーは検出されませんでした。
未接続 ライトデバイスがカメラに接続されていないか、まだ列挙されていません。デバイスを列挙するには、 BslLightControlEnumerateDevices コマンドを実行してください。
サポートされていない器具のバージョン 照明器具は現在ご利用のカメラと互換性がありません。ファームウェアのアップデートが利用可能かどうかについて、サポートにお問い合わせください。
Error Codes#

イメージ BslLightDeviceErrorCode パラメータには以下の値を設定できます:

値 意味
0x30024 照明コントローラーのライティングコネクターに短絡があります。原因は照明器具の不良の可能性があります。
0x3002A Light Controllerが要求された電流を供給できません。 BslLightDeviceCurrent パラメータ値を指定します。
(その他) この Error Code については、Baslerサポートにお問い合わせください。

ace U/Lカメラ#

Basler ace U/L カメラは、接続された照明器具からエラーのリストを読み取ることができます。

最大25個のエラーを保存できます。26番目のエラーが発生すると、最も古いエラーが上書きされます。以後同様です。

エラーのチェックとクリアは、発生したエラーの数に応じた反復的なプロセスです。

エラーを確認してクリアするには、次の手順に従います。

  1. 複数のデバイスが接続されている場合は、次のようにします。
    1. Check the BslLightControlErrorStatus どのデバイスで問題が発生しているかを調べるためのパラメータ(例: Device2.
    2. パラメーターを BslLightDeviceSelector パラメータを問題が発生しているデバイスに設定します。
  2. 次の値を取得します。 BslLightDeviceLastError パラメータを下げて、以下の表でその意味を確認してみてください。
  3. 対応するエラーを修正します。
  4. エラーリストから最後のエラーを削除するには、 BslLightDeviceClearLastError コマンド。
  5. パラメータに BslLightDeviceLastError が表示されるまで、最後のエラーの取得と削除を繰り返します。 NoError.
値 意味
Communication Error 照明器具とカメラ間のデータ伝送に障害があると、通信エラーが発生します。これは、使用するケーブルが長すぎる、または回線上のノイズが多すぎるなどの原因で生じる可能性があります。
Connection Error 接続エラーは、照明器具とカメラ間の接続が切断されている場合、またはすでに通信エラーが発生している場合に発生します。他の原因としては、接続が緩んでいたり、コントローラーが完全に切断されていたりする可能性があります。
Hardware Error 照明器具に技術的な障害が発生しています。a
電流不足 Light Controllerが要求された電流を供給できません。 LightDeviceMaxCurrent パラメータ値を指定します。
No Error 最後にエラーメモリがクリアされてから、照明器具はエラーを検出していません。
短絡 照明コントローラーのライティングコネクターに短絡があります。原因は照明器具の不良の可能性があります。

  1. 電源を切断して再接続すると問題が解決する場合があります。確実に電源を入れ直すには、コントローラーを 5 分間電源から切断する必要があります。これは正常な動作です。複数のコントローラーを使用している場合は、他のコントローラーで障害が発生していなくても、それらの電源を入れ直す必要があります。

サンプルコード#

ace 2、boost R、dart M カメラ#
// Enable the light control mode
camera.BslLightControlMode.SetValue(BslLightControlMode_On);
//Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute();
//Select light device 1
camera.BslLightDeviceSelector.SetValue(BslLightDeviceSelector_Device1);
//Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceCurrent.SetValue(100.0);
//Set the brightness to 100 %
camera.BslLightDeviceBrightness.SetValue(100.0);
//Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.SetValue(BslLightDeviceOperationMode_Strobe);
INodeMap& nodemap = camera.GetNodeMap();
// Enable the light control mode
CEnumParameter(nodemap, "BslLightControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslLightControlEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslLightDeviceSelector").SetValue("Device1");
// Set the nominal current of device 1 to 100 mA
CFloatParameter(nodemap, "BslLightDeviceCurrent").SetValue(100.0);
// Set the brightness to 100 %
CFloatParameter(nodemap, "BslLightDeviceBrightness").SetValue(100.0);
// Set the operation mode to Strobe
CEnumParameter(nodemap, "BslLightDeviceOperationMode").SetValue("Strobe");
// Enable the light control mode
camera.Parameters[PLCamera.BslLightControlMode].SetValue(PLCamera.BslLightControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslLightControlEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslLightDeviceSelector].SetValue(PLCamera.BslLightDeviceSelector.Device1);
// Set the nominal current of device 1 to 100 mA
camera.Parameters[PLCamera.BslLightDeviceCurrent].SetValue(100.0);
// Set the brightness to 100 %
camera.Parameters[PLCamera.BslLightDeviceBrightness].SetValue(100.0);
// Set the operation mode to Strobe
camera.Parameters[PLCamera.BslLightDeviceOperationMode].SetValue(PLCamera.BslLightDeviceOperationMode.Strobe);
/* 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 */
/* Enable the light control mode */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslLightControlEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceSelector", "Device1");
CHECK(errRes);
/* Set the nominal current of device 1 to 100 mA */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceCurrent", 100.0);
CHECK(errRes);
/* Set the brightness to 100 % */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceBrightness", 100.0);
CHECK(errRes);
/* Set the operation mode to Strobe */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceOperationMode", "Strobe");
CHECK(errRes);
# Enable the light control mode
camera.BslLightControlMode.Value = "On"
# Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute()
# Select light device 1
camera.BslLightDeviceSelector.Value = "Device1"
# Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceCurrent.Value = 100.0
# Set the brightness to 100 %
camera.BslLightDeviceBrightness.Value = 100.0
# Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.Value = "Strobe"

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

ace U/Lカメラ#
// Enable the light control mode
camera.BslLightControlMode.SetValue(BslLightControlMode_On);
//Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute();
//Select light device 1
camera.BslLightDeviceSelector.SetValue(BslLightDeviceSelector_Device1);
//Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceMaxCurrent.SetValue(100.0);
//Set the brightness to 100 %
camera.BslLightDeviceBrightness.SetValue(100.0);
//Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.SetValue(BslLightDeviceOperationMode_Strobe);
INodeMap& nodemap = camera.GetNodeMap();
// Enable the light control mode
CEnumParameter(nodemap, "BslLightControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslLightControlEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslLightDeviceSelector").SetValue("Device1");
// Set the nominal current of device 1 to 100 mA
CFloatParameter(nodemap, "BslLightDeviceMaxCurrent").SetValue(100.0);
// Set the brightness to 100 %
CFloatParameter(nodemap, "BslLightDeviceBrightness").SetValue(100.0);
// Set the operation mode to Strobe
CEnumParameter(nodemap, "BslLightDeviceOperationMode").SetValue("Strobe");
// Enable the light control mode
camera.Parameters[PLCamera.BslLightControlMode].SetValue(PLCamera.BslLightControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslLightControlEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslLightDeviceSelector].SetValue(PLCamera.BslLightDeviceSelector.Device1);
// Set the nominal current of device 1 to 100 mA
camera.Parameters[PLCamera.BslLightDeviceMaxCurrent].SetValue(100.0);
// Set the brightness to 100 %
camera.Parameters[PLCamera.BslLightDeviceBrightness].SetValue(100.0);
// Set the operation mode to Strobe
camera.Parameters[PLCamera.BslLightDeviceOperationMode].SetValue(PLCamera.BslLightDeviceOperationMode.Strobe);
/* 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 */
/* Enable the light control mode */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslLightControlEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceSelector", "Device1");
CHECK(errRes);
/* Set the nominal current of device 1 to 100 mA */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceMaxCurrent", 100.0);
CHECK(errRes);
/* Set the brightness to 100 % */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceBrightness", 100.0);
CHECK(errRes);
/* Set the operation mode to Strobe */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceOperationMode", "Strobe");
CHECK(errRes);
# Enable the light control mode
camera.BslLightControlMode.Value = "On"
# Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute()
# Select light device 1
camera.BslLightDeviceSelector.Value = "Device1"
# Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceMaxCurrent.Value = 100.0
# Set the brightness to 100 %
camera.BslLightDeviceBrightness.Value = 100.0
# Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.Value = "Strobe"