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

Precision Time Protocol (Stereo ace)#

Precision Time Protocol(PTP)機能を使用すると、同じネットワーク内の複数のGigEカメラを同期できます。

IEEE 1588規格でプロトコルが定義されています。Baslerカメラは、IEEE 1588-2008(PTP Version 2とも呼ばれる)をサポートしています。

情報

PTP同期の精度は、ネットワークのハードウェアとセットアップによって大きく異なります。最高の精度を得るには、高品質のネットワークハードウェアを選択し、PTP有効ネットワークスイッチを使用し、GPS受信機を備えた外部PTPクロックデバイスをネットワークに追加してください。

機能を使用する#

PTPを使用する理由#

PTPを使用すると、複数のカメラのクロックを、ネットワークで検出された最も正確なクロック(いわゆるマスタークロックまたはベストマスタークロック)と自動的に同期させることができます。

次に示すように、お使いのシステムセットアップに応じて、マスタークロックはカメラまたは外部デバイスのいずれかになります。

  • システムにカメラのみが含まれている場合、カメラはカメラ同士でネゴシエートし、最も正確なカメラクロックを決定します。これは、マスタークロックとして機能します。
  • システムに外部デバイス(GPSレシーバーまたはマスターとして設定された追加のコンピューターなど)が含まれている場合、外部デバイスがマスタークロックとして機能します。

カメラのクロックが同期されると、それらのタイムスタンプを互いに比較できます。

ネットワーク内のマスタークロックが、GPSレシーバーを使用するなどして、国際標準時のTAIに基づいて絶対時間を配信する場合、カメラの同期クロックによって生成されたタイムスタンプから現地時間を決定できます。

マスタークロックがTAI時刻を配信しない場合、クロックは同期して動作していますが、それらの時刻はランダムタイムスケール上にあります(いわゆる任意タイムスケールモード(ARB))。このモードでは、絶対時間にバインドされないため、エポックは任意です。このタイムスケールは相対的なものです。つまり、そのネットワークでのみ有効です。最適なマスタークロックアルゴリズムでは、そのネットワークのマスタークロックとして最高の安定性と精度を備えたクロックを選択します。マスタークロックとして機能するカメラは、TAI時刻を配信できません。ARB時刻のみを配信できます。

PTP Clock Synchronizationの有効化#

カメラの電源をオンにすると、PTPは常に無効になります。PTPを使用する場合は、有効にする必要があります。

PTPを有効にするには、次の手順に従います。

  1. GPSレシーバーなど外部デバイスをマスタークロックとして使用する場合は、外部デバイスをマスタークロックとして設定します。
  2. PTPを介して同期させたいすべてのカメラで、 PtpEnable パラメータを true.
  3. すべてのPTPネットワークデバイスが十分に同期されるまで待ちます。ネットワークの設定によっては、数秒から数分かかる場合があります。
    デバイスが同期されるタイミングを確認するには、PTPクロック同期のステータスを確認します。

PTP Clock Synchronizationのステータスを確認する#

pylon SDKを使用してPTPクロック同期のステータスを確認する独自の方法を開発する必要があります。

PTPステータスの確認方法の例#

PTPステータスチェックを標準的に実装するには、次の手順を実行します。

  1. PTPを有効にします。
  2. Best Master Clockアルゴリズムが終了するのを待ちます。アルゴリズムが終了したかどうかを確認するには、 PtpStatus のすべてのカメラのパラメータ値が次のいずれかになるまで、ループ内で次の手順を実行します。 Master または Slave かつ、 Master を返すカメラが1台以下であること。 PtpStatus:

    1. 次を実行します。 PtpDataSetLatch 各カメラでコマンドを実行します。
      このコマンドを使用すると、カメラの現在のPTP状態の「スナップショット」を取得できます。「スナップショット」の実装により、すべてのパラメータ値がまったく同じ時点を参照することが保証されます。
    2. 次のパラメータを読み取ります: PtpStatus 各カメラのパラメータ。
    3. クロックが十分に同期されるまで待ちます。
      確認方法については、次のセクションを参照してください。
クロックが十分に同期されているかを確認する方法#

情報

このためには、 PtpOffsetFromMaster パラメータを使用します。これは、デバイスのクロックがマスターのクロックからどれだけ逸脱しているかを示します。すべてのオフセットが特定のしきい値(要件に応じて指定、例:50 µs)を下回るまで待つ必要があります。
クロックが制御メカニズムによって継続的に調整されるため、オフセットはしばらくの間マスター値の周囲で振動し、時間が経つにつれて振動の振幅は小さくなります。Baslerでは、最大値を確認することをお勧めします。 PtpOffsetFromMaster パラメータ値が一定期間(例:10秒間)しきい値を下回っていること。

  1. アプリケーションの要件に応じて、オフセット値のしきい値を定義します(50µsなど)。
  2. オフセット値をしきい値よりも低くする時間ウィンドウの長さを定義します。
  3. 現在のシステム時刻を読み取り、それを確認する時間枠の開始時刻として使用します。 PtpOffsetFromMaster パラメータ値よりも小さくなる場合があります。
  4. 次の手順をループで実行します。
    1. 各カメラで次を実行します: PtpDataSetLatch そして、次を読み取ります: PtpOffsetFromMaster パラメータ値よりも小さくなる場合があります。
      後で使用するために値をメモしておきます。
    2. 最大オフセット値を見つけます。
      • 1つ以上の絶対オフセット値が、指定された時間ウィンドウ内でしきい値を超えている場合は、時間ウィンドウの開始を現在時刻にリセットして、手順1に戻ります。
      • すべての絶対オフセット値が、時間ウィンドウ全体でしきい値を下回っている場合は、ループを停止します。
        すべてのクロックは十分に同期されました。

次の図は、マスターからのオフセットの経時変化を示しています。時間ウィンドウは赤の四角形で表されています。マスターからのオフセットの絶対値が小さいほど、精度は高くなります。

PTP Offset From Master Amplitude

複数のカメラを同期するために PTP を使用する場合の推奨事項#

PTP を使用して複数のカメラを同期する場合は、ネットワークを設定する際に以下の推奨事項に従ってください。ネットワーク設定は、同期失敗の最も一般的な原因です。

  • カメラネットワークのセットアップはできるだけ簡単にしてください。たとえば、スイッチ/ルーターのカスケードは避けてください。
  • IGMPスヌーピングで管理スイッチを使用している場合は、スイッチ設定のすべてのポートでIGMPマルチキャストを有効にする必要があります。そうしないと、同期に使用されるIGMPパッケージがブロックされます。
  • クロック精度を向上させるには、PTPグランドマスタークロックを提供するPTPスイッチ/ルーターを使用してください。