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
になり、Master
がPtpStatus
になるカメラが1台だけになるまで、ループ内で次の手順を実行します。- 各カメラで
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スイッチ/ルーターを使用してください。