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レシーバーなど外部デバイスをマスタークロックとして使用する場合は、外部デバイスをマスタークロックとして設定します。
- On all cameras that you want to synchronize via PTP, set the
PtpEnable
parameter totrue
. - すべてのPTPネットワークデバイスが十分に同期されるまで待ちます。ネットワークの設定によっては、数秒から数分かかる場合があります。
デバイスが同期されるタイミングを確認するには、PTPクロック同期のステータスを確認します。
PTP Clock Synchronizationのステータスを確認する#
pylon SDKを使用してPTPクロック同期のステータスを確認する独自の方法を開発する必要があります。
PTPステータスの確認方法の例#
PTPステータスチェックを標準的に実装するには、次の手順を実行します。
- PTPを有効にします。
-
Wait for the Best Master Clock algorithm to finish. To determine whether the algorithm has finished, perform the following steps in a loop until the
PtpStatus
parameter value for all cameras is eitherMaster
またはSlave
and no more than one camera returnsMaster
asPtpStatus
:- Execute the
PtpDataSetLatch
command on each camera.
The command allows you to take a "snapshot" of the camera's current PTP state. The "snapshot" implementation ensures that all parameter values refer to exactly the same point in time. - Read the
PtpStatus
parameter for each camera. - クロックが十分に同期されるまで待ちます。
確認方法については、次のセクションを参照してください。
- Execute the
クロックが十分に同期されているかを確認する方法#
情報
For this, use the PtpOffsetFromMaster
parameter, which indicates how much a device's clock deviates from the clock of the master. You should wait until all these offsets are below a certain threshold (specified by you according to your requirements), e.g., 50 µs.
Due to the fact that the clock is adjusted continuously by a control mechanism, the offset will oscillate for a while around the master value with the amplitudes of the oscillations becoming smaller with time passing. Basler recommends checking that the maximum PtpOffsetFromMaster
parameter value is below the threshold for a certain period of time, e.g., for 10 seconds.
- アプリケーションの要件に応じて、オフセット値のしきい値を定義します(50µsなど)。
- オフセット値をしきい値よりも低くする時間ウィンドウの長さを定義します。
- Read out the current system time and use it as the start of the time window during which you want to check the
PtpOffsetFromMaster
parameter value. - 次の手順をループで実行します。
- On each camera, execute
PtpDataSetLatch
and read out thePtpOffsetFromMaster
parameter value.
Make a note of the values for later use. - 最大オフセット値を見つけます。
- 1つ以上の絶対オフセット値が、指定された時間ウィンドウ内でしきい値を超えている場合は、時間ウィンドウの開始を現在時刻にリセットして、手順1に戻ります。
- すべての絶対オフセット値が、時間ウィンドウ全体でしきい値を下回っている場合は、ループを停止します。
すべてのクロックは十分に同期されました。
- On each camera, execute
次の図は、マスターからのオフセットの経時変化を示しています。時間ウィンドウは赤の四角形で表されています。マスターからのオフセットの絶対値が小さいほど、精度は高くなります。
blazeカメラと2DカメラをPTP同期させる場合の推奨事項#
2DカメラをblazeカメラとPTP同期させる場合は、ネットワークを設定する際に次の推奨事項に従ってください。ネットワーク設定は、同期エラー発生の最も一般的な原因です。
- カメラネットワークのセットアップはできるだけ簡単にしてください。たとえば、スイッチ/ルーターのカスケードは避けてください。
- IGMPスヌーピングで管理スイッチを使用している場合は、スイッチ設定のすべてのポートでIGMPマルチキャストを有効にする必要があります。そうしないと、同期に使用されるIGMPパッケージがブロックされます。
- クロック精度を向上させるには、PTPグランドマスタークロックを提供するPTPスイッチ/ルーターを使用してください。