Precision Time Protocol(blaze)#
IEEE 1588規格でプロトコルが定義されています。Baslerカメラは、IEEE 1588-2008(PTP Version 2とも呼ばれる)をサポートしています。
情報
PTP同期の精度は、ネットワークのハードウェアとセットアップによって大きく異なります。最高の精度を得るには、高品質のネットワークハードウェアを選択し、PTP有効ネットワークスイッチを使用し、GPS受信機を備えた外部PTPクロックデバイスをネットワークに追加してください。
機能を使用する#
PTPを使用する理由#
Precision Time Protocol(PTP)機能を使用すると、blazeカメラでSynchronous Free Run(blaze)機能を使用できます。
PTPを使用すると、複数のカメラのクロックを、ネットワークで検出された最も正確なクロック(いわゆるマスタークロックまたはベストマスタークロック)と自動的に同期させることができます。
次に示すように、お使いのシステムセットアップに応じて、マスタークロックはカメラまたは外部デバイスのいずれかになります。
- システムにカメラのみが含まれている場合、カメラはカメラ同士でネゴシエートし、最も正確なカメラクロックを決定します。これは、マスタークロックとして機能します。
- システムに外部デバイス(GPSレシーバーまたはマスターとして設定された追加のコンピューターなど)が含まれている場合、外部デバイスがマスタークロックとして機能します。
カメラのクロックが同期されると、それらのタイムスタンプを互いに比較できます。
ネットワーク内のマスタークロックが、GPSレシーバーを使用するなどして、国際標準時のTAIに基づいて絶対時間を配信する場合、カメラの同期クロックによって生成されたタイムスタンプから現地時間を決定できます。
マスタークロックがTAI時刻を配信しない場合、クロックは同期して動作していますが、それらの時刻はランダムタイムスケール上にあります(いわゆる任意タイムスケールモード(ARB))。このモードでは、絶対時間にバインドされないため、エポックは任意です。このタイムスケールは相対的なものです。つまり、そのネットワークでのみ有効です。最適なマスタークロックアルゴリズムでは、そのネットワークのマスタークロックとして最高の安定性と精度を備えたクロックを選択します。マスタークロックとして機能するカメラは、TAI時刻を配信できません。ARB時刻のみを配信できます。
PTP Clock Synchronizationの有効化#
カメラの電源をオンにすると、PTPは常に無効になります。PTPを使用する場合は、有効にする必要があります。
PTPを有効にするには、次の手順に従います。
- GPSレシーバーなど外部デバイスをマスタークロックとして使用する場合は、外部デバイスをマスタークロックとして設定します。
- PTPを介して同期させたいすべてのカメラで、次の設定を行います。
PtpEnableパラメータを次のように設定:true. - すべてのPTPネットワークデバイスが十分に同期されるまで待ちます。ネットワークの設定によっては、数秒から数分かかる場合があります。
デバイスが同期されるタイミングを確認するには、PTPクロック同期のステータスを確認します。
PTP Clock Synchronizationのステータスを確認する#
pylon SDKを使用してPTPクロック同期のステータスを確認する独自の方法を開発する必要があります。
PTPステータスの確認方法の例#
PTPステータスチェックを標準的に実装するには、次の手順を実行します。
- PTPを有効にします。
-
Best Master Clockアルゴリズムが完了するのを待ちます。アルゴリズムが完了したかどうかを確認するには、次の手順をループで実行し、
PtpStatusすべてのカメラのパラメータ値がいずれかになり、MasterまたはSlaveかつ1台を超えるカメラが次の値を返さなくなるまで繰り返します。Master各カメラでPtpStatus:- 実行する
PtpDataSetLatchコマンドを実行します。
このコマンドを使用すると、カメラの現在のPTP状態の「スナップショット」を取得できます。「スナップショット」の実装により、すべてのパラメータ値が正確に同じ時点を参照するようになります。 - 各カメラの
PtpStatusパラメータを読み取ります。 - クロックが十分に同期されるまで待ちます。
確認方法については、次のセクションを参照してください。
- 実行する
クロックが十分に同期されているかを確認する方法#
情報
これを行うには、デバイスのクロックがマスターのクロックからどれだけ乖離しているかを示す PtpOffsetFromMaster パラメータを使用します。これらのオフセットがすべて、要件に応じて指定した特定のしきい値(例:50 µs)を下回るまで待つ必要があります。
制御機構によってクロックが継続的に調整されるため、オフセットはしばらくの間マスター値の周囲で振動し、時間が経つにつれてその振動の振幅は小さくなります。Baslerでは、最大 PtpOffsetFromMaster パラメータ値が一定期間(例:10秒間)しきい値を下回っていることを確認することを推奨しています。
- アプリケーションの要件に応じて、オフセット値のしきい値を定義します(50µsなど)。
- オフセット値をしきい値よりも低くする時間ウィンドウの長さを定義します。
- 現在のシステム時刻を読み取り、それを、
PtpOffsetFromMasterパラメータ値を確認する時間枠の開始点として使用します。 - 次の手順をループで実行します。
- 各カメラで、
PtpDataSetLatchを実行し、PtpOffsetFromMasterパラメータ値を確認する時間枠の開始点として使用します。
を読み取ります。後で使用できるように、値をメモしておきます。 - 最大オフセット値を見つけます。
- 1つ以上の絶対オフセット値が、指定された時間ウィンドウ内でしきい値を超えている場合は、時間ウィンドウの開始を現在時刻にリセットして、手順1に戻ります。
- すべての絶対オフセット値が、時間ウィンドウ全体でしきい値を下回っている場合は、ループを停止します。
すべてのクロックは十分に同期されました。
- 各カメラで、
次の図は、マスターからのオフセットの経時変化を示しています。時間ウィンドウは赤の四角形で表されています。マスターからのオフセットの絶対値が小さいほど、精度は高くなります。

blazeカメラと2DカメラをPTP同期させる場合の推奨事項#
2DカメラをblazeカメラとPTP同期させる場合は、ネットワークを設定する際に次の推奨事項に従ってください。ネットワーク設定は、同期エラー発生の最も一般的な原因です。
- カメラネットワークのセットアップはできるだけ簡単にしてください。たとえば、スイッチ/ルーターのカスケードは避けてください。
- IGMPスヌーピングで管理スイッチを使用している場合は、スイッチ設定のすべてのポートでIGMPマルチキャストを有効にする必要があります。そうしないと、同期に使用されるIGMPパッケージがブロックされます。
- クロック精度を向上させるには、PTPグランドマスタークロックを提供するPTPスイッチ/ルーターを使用してください。