時刻同期の設定
このトピックでは、IEEE 1588 (バージョン 2) 規格で定義されている CIP-Sync および PTP (Precision Time Protocol) を使用して、非決定性 Ethernet 上で In-Sight ビジョンシステムと外部デバイス (PLC など) の間でイベントを同期するように In-Sight ビジョンシステムを設定する方法について説明します。
- CIP-Sync/PTP は In-Sight 7000 Gen2 シリーズのビジョンシステム、128MB の不揮発性フラッシュメモリを搭載し、ファームウェアバージョン 4.5.0 以上を実行している In-Sight 5000 シリーズビジョンシステムで使用できます。In-Sight 5605 ビジョンシステム (ハードウェアタイプ 821-0032-1R)、In-Sight 5705 ビジョンシステム、In-Sight 5705C ビジョンシステムは例外で、CIP-Sync をサポートしていません。In-Sight 5605 ビジョンシステム (ハードウェアタイプ 821-0032-2R) は CIP-Sync/PTP をサポートしています。
- In-Sight ビジョンシステムで CIP-Sync と PTP を有効にする前に、ビジョンシステムがインストールされている環境に事前に PTP が実装されている必要があります。
- 時刻同期を有効にすると、ジョブ実行時間全体に 2 ~ 2.5% の処理時間が追加されます。
- In-Sight のタイムスタンプの精度は、8 ナノ秒です。
- 「Trigger at Time X」機能を使用しており、ネットワークが同じ CIP-Sync および PTP 規格で設定されている場合は、設定時刻の ± 5 マイクロ秒以内にトリガが発生します。それ以外の場合、設定時刻から最長で 100 マイクロ秒以内にトリガが発生します (最悪の場合のシナリオ)。
In-Sight ビジョンシステムでの CIP-Sync の有効化
- [センサ] メニューから、[日付/時刻の設定] を選択し、[日付/時刻の設定] ダイアログを起動します。
- [時刻同期] セクションで [時刻同期を使用する] チェックボックスをオンにします。
- ビジョンシステムの電源を入れ直して、PTP の使用を開始し、ビジョンシステムの日付と時刻の設定をマスタと同期します。
- [同期の詳細設定] ボタンを選択して、PTP スタックの現在のステータスに関する情報を表示します。
ローカルクロック情報
グランドマスタクロック (マスタシステムの時刻) に大きな変化があった場合でも、In-Sight ビジョンシステムが継続して適切に動作するようにするため、ローカルクロックは 100ns 分解能の常時稼働 64 ビット自走タイマとして実装されます。オフセットは、ローカルクロックとマスタクロックの間で維持され、PTP を介して同期化されます。PTP は、マスタクロックのチックレートと一致するように自走タイマのチックレートを調整するためにも使用されます。
ローカルクロックの現在値を返すには、Now 関数を使用します。Now 関数は、ローカルクロックの現在値と、ローカルクロックとマスタクロック間の現在のシステム時刻オフセットを取り込みます。時間・タイマデータアクセス関数を使用して、現在時刻のフィールドを返します。
画像取り込みのタイムスタンプを返す
In-Sight ビジョンシステムで、カメラトリガ入力を使用した画像取り込みがトリガされた場合は、GetExposureTimestamp 関数を使用して、画像露光の開始時間を取り込んで、返すことができます。この関数は、ほかの 時間・タイマデータアクセス関数で処理できる データ構造体を返します。
PLC へのタイムスタンプの送信
PLC に送信されるデータを設定する場合は、[フォーマット出力バッファ] ダイアログを使用してデータを追加および送信できます。符号なし、4 倍精度整数値を示す「uq」フォーマット指定子を持つ 64 ビット整数のデータ型を使用します。フォーマット出力バッファは、4 倍精度整数値でタイムスタンプを PLC に送信することができます。
上記の例では、セル E10 に、GetExposureTimestamp 関数の出力を参照する GetTimeValue 関数が含まれます。セル E9 には、Now 関数を参照する GetTimeValue 関数が含まれます。セル 25 ~ 28 にはビジョンツールのデータが格納されます。
EtherNet/IP を介したタイムスタンプを使用した In-Sight ビジョンシステムのトリガ
In-Sight ビジョンシステムでは、非明示的な EtherNet/IP 接続を使用してビジョンシステムにタイムスタンプを送信することで、画像取り込みをトリガすることができます。
この設定を行うには:
- AcquireImage 関数の [トリガ] パラメータを [タイムスタンプ] に設定します。
- 8 バイトデータをトリガタイムスタンプとして解釈するように EtherNet/IP モジュールの入力アセンブリを設定します。その設定を行うには、SetSystemConfig 関数を使用して、システム構成変数「EIP.TriggerTimestampInputOffset」を、PLC からタイムスタンプが書き込まれることになるユーザデータフィールドのオフセットに設定します。例えば、次の関数を In-Sight ジョブファイルに追加すると、トリガタイムスタンプフィールドがユーザデータフィールドの最初の 8 バイトとして有効になります。
- SetSystemConfig("EIP.TriggerTimestampInputOffset", 0)
トリガ設定を無効にするには、変数を 0 ~ -1 の値に設定します。
EtherNet/IP を使用して PLC から新しいタイムスタンプを受け取ると、In-Sight ビジョンシステムは、そのタイムスタンプによってトリガされた後に画像を取り込みます。タイムスタンプが過去のものである場合、すなわち到達すべきときより 1 時間以上前の場合は、TimeTriggerFault が発行され、「EIP.TriggerTimstampFaults」カウントがインクリメントされます。