EtherNet/IP オブジェクトモデルと入出力アセンブリオブジェクト - In-Sight 4.x.x ファームウェア

このトピックでは、In-Sight 4.x.x 以前のファームウェアが実行されている In-Sight ビジョンシステムの In-Sight オブジェクトモデルについて説明します。モデル一覧およびサポートされているファームウェアバージョンについては、ファームウェアのバージョンをご参照ください。 モデル一覧およびサポートされているファームウェアバージョンについては、ファームウェアバージョンをご参照ください。

In-Sight オブジェクトモデル

EtherNet/IP ネットワークでは、In-Sight ビジョンシステムはサーバとして機能し、明示的および非明示的 I/O メッセージングの両方をサポートします。例えば、検査データを、明示的メッセージによって、または非明示的接続によって、クライアントに転送することができます。非明示的な接続は、画像取り込み、トリガ、およびスプレッドシートのイベントの制御に使用することもできます。

識別オブジェクト、Ethernet リンクオブジェクト、TCP/IP オブジェクト、およびそのほかの内部オブジェクトは、EtherNet/IP 仕様によって必須とされています。アセンブリオブジェクトのさまざまなインスタンスは、EtherNet/IP クライアントとアプリケーションデータを交換するために使用されます。ビジョンオブジェクトは、In-Sight ビジョンシステムに固有の情報を提供するために、In-Sight システムによって定義されます。これがどのように行われるかという詳細については、「ビジョンオブジェクトの属性とサービス」の節を参照してください。In-Sight ビジョンシステムによって提供される現在のオブジェクトモデルを下の図に示します。

  • アセンブリオブジェクト: アセンブリオブジェクトは、複数のオブジェクトの属性をバインドして、各オブジェクト間でのデータの送受信を 1 つの接続でできるようにします。アセンブリオブジェクトを使用すると、入力データまたは出力データをバインドすることができます。「入力」と「出力」という用語は、ネットワーク側から見た定義です。「入力」はネットワーク上にデータを生成し、「出力」はネットワークからデータを消費します。
  • 識別オブジェクト: このオブジェクトは、デバイスの識別情報とデバイスに関する全般情報を提供します。
  • Ethernet リンクオブジェクト: Ethernet リンクオブジェクトは、Ethernet 802.3 通信インタフェースについて、リンク固有のカウンタとステータス情報を保持します。
  • TCP/IP オブジェクト: TCP/IP オブジェクトは、デバイスの TCP/IP ネットワークインタフェース設定を照会 (可能な場合は設定も) するメカニズムを提供します。該当する項目の例としては、デバイスの IP アドレス、ネットワークマスク、ゲートウェイアドレスなどがあります。
  • ビジョンオブジェクト: ビジョンオブジェクトには、In-Sight ビジョンシステム固有のすべてのサービスと属性が含まれます。これには、画像取り込み、検査、ジョブの変更、および In-Sight Explorer スプレッドシートとの通信などが含まれます。

入出力アセンブリオブジェクト

入出力データの I/O アセンブリデータ属性の形式は、次のとおりです。

ファームウェアのバージョン   入力アセンブリインスタンス   出力アセンブリインスタンス
4.1.0 ~ 4.7.4 11 21
4.8.0 ~ 4.9.x 12 21
4.10.x 12 21
:  
  • Job Pass ブロック、Exposure Complete ブロックおよび Current Job ID (16 ビット整数) ブロックを含む入力アセンブリインスタンス 12 を使用する場合は、メジャーリビジョン 10 の In-Sight アドオンプロファイル (AOP) が RSLogix とともに PC にインストールされている必要があります。
  • EDS で作成されたプロファイルを使用する場合、入力アセンブリの最大サイズが 500 バイトであっても、EDS で作成されたプロファイルは最大 496 バイトの接続しか許可しません。
  • Rockwell RSLogix Studio 5000 バージョン 21 ~ 25 を使用している場合、In-Sight EDS で作成されたプロファイルのデフォルト入出力アセンブリサイズ (各 496 バイト) は編集できず、デフォルトの最大の入出力アセンブリサイズに戻されます。
  • Acquisition ID は画像取り込みの終了時に増加し、画像とともに検査サブシステムに移動します。検査が完了する前に、RPI に応じて PLC で更新することができます。Inspection ID は、Inspection Completed ビットがトグルするときに増分されます (このとき、Results Valid は high に設定され、Inspecting ビットは low に設定されます)。
  • In-Sight ファームウェアを In-Sight 4.9.x から 4.10.x にアップグレードする場合の入出力アセンブリテーブル間の違いについては、「入出力アセンブリの変更」のトピックを参照してください。

I/O アセンブリデータ属性コンポーネントのマッピング

次の表に、In-Sight ビジョンシステムの I/O アセンブリデータ属性のマッピングを示します。

データコンポーネント名 クラス インスタンス数 属性
名前 番号 名前 番号
Set Offline Vision 78 Hex 1 ForceOffline 8
Trigger Enable Vision 78 Hex 1 AcqTriggerEnable 9
Trigger Vision 78 Hex 1 AcqTrigger 10
BufferResultsEnable Vision 78 Hex 1 BufferResultsEnable 13
Soft Event N Vision 78 Hex 1 SoftTrigger bit N 18
Online Vision 78 Hex 1 Online 6
OfflineReason Vision 78 Hex 1 OfflineReason 7

Trigger Ready

Trigger Ack

Exposure Complete

Missed Acquisition

Vision 78 Hex 1 AcqStatusRegister 11
User Data Vision 78 Hex 1 User Data 12

System Busy

Inspection Completed

Results Buffer Overrun

Results Valid

Vision 78 Hex 1 InspectionStatusRegister 14

Inspection ID

Inspection Data

Vision 78 Hex 1 InspectionResults 16

ビジョンオブジェクトの属性

このセクションでは、EtherNet/IP ビジョンオブジェクト内に存在するさまざまな属性とサービスについて説明します。

クラスコード: 78 Hex - このオブジェクトは、In-Sight 4.x.x 以前のファームウェアが実行されている In-Sight ビジョンシステムで実行可能なすべての操作をモデル化します。

インスタンス属性

属性 ID アクセスルール 名前 データ型 属性の説明
6 Get Online BOOL

0 = オフライン

1 = オンライン

7 Get OfflineReason BYTE

0 = オンライン

1 = プログラミング

2 = ディスクリートオフライン

3 = 通信オフライン

4 ~ 255 = 予約済み

8 Set ForceOffline BOOL 1 = In-Sight ビジョンシステムをオフラインにします。
9 Set AcqTriggerEnable BOOL

0 = 取り込みトリガは無効です。Trigger Ack を 0 にリセットします。

1 = 取り込みトリガは有効です。

10 Set AcqTrigger BOOL AcqTriggerEnable が真のとき、In-Sight ビジョンシステムは AcqTrigger が 0 から 1 に変わると画像を取り込みます。
11 Get AcqStatusRegister BYTE

ビット 0: Trigger Ready

ビット 1: Trigger Ack

ビット 2: Acquiring

ビット 3: Missed Acquisition

ビット 4 ~ 7: Reserved

12 Set

UserData

BYTE 配列

検査への入力として使用できるユーザ定義データ。

:  In-Sight ファームウェア 4.x.x が実行されている In-Sight ビジョンシステムの場合、UserData 属性に書き込まれるデータは書き込まれるときに表示されます。
13 Set

BufferResultsEnable

BOOL ResultsBufferEnable が真のとき、ResultsAck 属性が真に設定されるまで、検査結果のバッファリングを有効にします。
14 Get

InspectionStatusRegister

BYTE

ビット 0: Inspecting

ビット 1: Inspection Completed

ビット 2: Results Buffer Overrun

ビット 3: Results Valid

ビット 4: Job Loading

ビット 5: Job Load Completed

ビット 6: Job Load Failed

ビット 7: Reserved

15 Set InspectionResultsAck BOOL クライアントが検査結果を受信したことを確認応答します。
16 Get InspectionResults STRUCT of (の構造体) 最後の検査結果。
InspectionID UINT 検査カウンタ。
Reserved UINT 予約済みフィールド。
InspectionResults BYTE 配列 最後の検査結果。
18 Set SoftTrigger BYTE

ビット 0: ソフトトリガ 0

ビット 1: ソフトトリガ 1

ビット 2: ソフトトリガ 2

ビット 3: ソフトトリガ 3

ビット 4: ソフトトリガ 4

ビット 5: ソフトトリガ 5

ビット 6: ソフトトリガ 6

ビット 7: ソフトトリガ 7

19 Set JobID INT

現在ロードされているジョブの ID 番号。または、現在のジョブに ID がない場合は -1。

この値を設定すると (0 ~ 999)、関連付けられた ID を持つジョブがロードされます。

20 Set JobName STRING

現在ロードされているジョブのファイル名、またはファイル名が不明な場合は空の文字列。

この値を設定すると、ファイル名が関連付けられているジョブがロードされます。

オンライン属性

オンライン属性は、In-Sight ビジョンシステムがオンラインまたはオフライン状態であることを示します。In-Sight ビジョンシステムがオフラインのときには、OfflineReason 属性を使用して、In-Sight ビジョンシステムがオフラインになっている原因を調べることができます。

OfflineReason 属性の値

Offline Reason 名前 説明

0

Online

ビジョンシステムはオンラインです。

1

Programming

ビジョンシステムのジョブが変更されています。

2

Discrete Offline

ディスクリート信号によって、ビジョンシステムがオフラインになっています。

3

Comm.Offline

通信プロトコルによって、ビジョンシステムがオフラインになっています。

:  複数のデバイスから In-Sight ビジョンシステムはオフラインにできます。このフィールドでは最小限のチャネルステータスを返します。

ForceOffline 属性を使用すると、In-Sight ビジョンシステムをオフライン状態にできます。ForceOffline 属性を True に設定すると、In-Sight ビジョンシステムがそれ以外の理由なしでオフラインに保持されている場合には、OfflineReason 属性が通信オフラインに設定されます。

画像取り込み属性

:  ネイティブモード コマンドによる、PLC/モーションコントローラからの取り込みトリガを許可するように、In-Sight ビジョンシステムを設定する場合は、SetEvent and Wait 関数を利用して、イベントコードを 8 (SW8) に設定することを推奨します。これによって、ビジョンシステムは、画像取り込みと検査の両方が完了してから「完了」レスポンスを PLC/モーションコントローラに送り返すようになるため、前の検査結果が PLC/モーションコントローラに送信されることはなくなります。ビジョンシステムからの「完了」レスポンスを使用して、検査結果の読み取り要求を送信する条件付き PLC ロジックを作成することもできます。

画像取り込み属性を使用することによって、画像を取り込むようにビジョンオブジェクトをトリガすることができます。ビジョンオブジェクトの画像取り込み属性をリセットするには、AcqTriggerEnable 属性が偽に設定されている必要があります。ただし、AcqStatusRegister が 0 の場合を除きます。この場合、AcqTriggerEnable 属性を真に設定して、ビジョンオブジェクト経由の取り込みを有効にすることができます。Acquisition Trigger がトリガを受け入れる準備ができると、AcqStatusRegister の Trigger Ready ビットがセットされます。

AcqTriggerEnable 属性が真に設定されている間、ビジョンオブジェクトは、AcqTrigger 属性が 0 から 1 に変わったことを検出するたびに、画像の取り込みを開始します。非明示的メッセージングによってこれを設定するときには、変更がビジョンオブジェクトによって確実に検出されるように、AcqStatusRegister の Trigger Ack ビットによって同じ値が検出されるまで、属性が変更状態に保たれる必要があります。

:  明示的メッセージングを使用するときには、変更は常に検出されるので、この必要はありません。

画像取り込み時には、AcqStatusRegister の Trigger Ready ビットがクリアされて、Acquiring ビットがセットされます。画像取り込みが完了すると、Acquiring ビットはクリアされます。画像取り込みシステムが次の新しい画像取り込みを開始する準備ができると、Trigger Ready ビットが再びセットされます。

ほかの方法で画像取り込みがトリガされた場合、AcqStatusRegister の Exposure Complete ビットと Missed Acquisition ビットはアクティブなままになります。

検査結果属性

画像取り込みトリガの結果として取り込まれた画像は、検査のためにキューに入れられます。画像の検査の実行中は、InspectionStatusRegister の Inspecting ビットがセットされます。検査が完了すると、Inspecting ビットはクリアされ、Inspection Completed ビットがトグルされます。

ResultsBufferEnable 属性によって、ビジョンオブジェクトでの検査結果の取り扱い方が決まります。ResultsBufferEnable 属性が偽に設定された場合、検査結果は直ちに InspectionResults 属性に入れられます。

ResultsBufferEnable 属性が真に設定された場合は、InspectionResultsAck 属性を真に設定することによって確認応答されるまで、前の検査結果が InspectionResults 属性に入ったままになります。Results Valid ビットがクリアされたら、新しい結果を InspectionResults 属性に入れることができるようにするため、InspectionResultsAck 属性を偽に設定する必要があります。これを使用して、ビジョンオブジェクトとクライアントの間で結果を取得するためのハンドシェークを確立することができます。

InspectionStatusRegister の動作

検査ステータスレジスタビット ビット名 バッファリングが無効な場合の結果 バッファリングが有効な場合の結果
0 Inspecting 画像を検査しているときにセットされます。 画像を検査しているときにセットされます。
1 Inspection Completed 検査の完了時にトグルされます。 検査の完了時にトグルされます。
2 Results Buffer Overrun 常にクリア。 クライアントが前の結果に確認応答しなかったために、検査結果をキューに入れることができなかったときにセットされます。検査結果が正常にキューに入れられるとクリアされます。
3 Results Valid 検査が開始されるとクリアされ、検査が完了するとセットされます。 新しい結果が InspectionResults 属性に入れられるとセットされます。InspectionResultsAck 属性を真に設定することによって結果が確認応答されるまでセットされたままです。
4 Job Pass* 検査が完了したときに [ジョブの PASS/FAIL] のセルが合格を示すとセットされます。そうでない場合は、クリアされたままです。

Inspection Completed ビットが立つ前のジョブ PASS ビットは有効です。

新しい結果が InspectionResults 属性に挿入され、[ジョブの PASS/FAIL] のセルがその結果に対して合格を示すとセットされます。そうでない場合は、クリアされたままです。InspectionResultsAck 属性を真に設定することによって結果が確認応答され、ビットがクリアされるまで、状態は変化しません。

Results Valid ビットがセットされる前のジョブ PASS ビットは有効です。

* Job Pass ビットは Major Revision 10 以降にのみ組み込まれています。

ジョブ属性

ビジョンオブジェクトは、JobID および JobName 属性を設定することによって、In-Sight ビジョンシステムの不揮発性フラッシュメモリに格納されたジョブをロードすることができます。ロードが失敗した場合は、セット操作も失敗します。

ビジョンオブジェクトのサービス

共通サービス

ビジョンオブジェクトは、次の共通サービスを提供します。

サービスコード サービス名 サービスの説明
05 Hex Reset ビジョンオブジェクトをリセットします。
0E Hex Get_Attribute_Single 指定された属性の内容を返します。
10 Hex Set_Attribute_Single 属性の値を変更します。

リセットサービス

リセットサービスは、ビジョンオブジェクトの画像取り込みトリガシステムをリセットし、無効にします。また、ビジョンオブジェクトの検査結果バッファリングシステムを無効にし、クリアします。

オブジェクト固有サービス

ビジョンオブジェクトは、次のオブジェクト固有サービスを提供します。

サービスコード サービス名 サービスの説明
32 Hex Acquire 1 回の画像取り込みをトリガします。
33 Hex Reserved 廃止。
34 Hex SendNativeCmd ネイティブモードコマンドを In-Sight ビジョンシステムに送信します。
35 Hex GetInspectionResults InspectionResults 属性を取得します。
36 Hex Transfer User Data データをユーザデータ保持バッファの一部に転送します。
37 Hex Set User Data ユーザデータ保持バッファをユーザデータフィールドにラッチして、In-Sight にユーザデータへのアクセス権を与えることを、ビジョンシステムに対して通知します。

画像取り込みサービス

ビジョンオブジェクトの画像取り込みサービスは、画像取り込みシステムが画像を取り込む準備ができていた場合、画像取り込みをトリガします。画像取り込みをトリガできなかった場合は、次に画像取り込みが成功するまで、AcqStatusRegister の Missed Acquisition ビットがセットされます。

コマンドが失敗した場合、Acquire Service はベンダー固有のエラーコード 1F を返します。

SendNativeCmd サービス

SendNativeCmd サービスは、ドキュメント化されている任意のネイティブモードコマンド文字列を In-Sight ビジョンシステムに送信します。SendNativeCmd の要求データは、In-Sight ビジョンシステムに送信されるネイティブモードコマンド文字列を含む必要があります。応答データはネイティブモードコマンドの文字列結果を含みます。

SendNativeCmd 要求データのフォーマット

名前 説明
Command STRING 処理されるネイティブモードコマンド。

SendNativeCmd 応答データのフォーマット

名前 説明
Result STRING ネイティブモードコマンドの文字列結果。

コマンドが失敗した場合、サービスは次のベンダー固有のエラーコードの 1 つを返します。

エラーコード 説明 ネイティブモード戻りコード
1 正しくないコマンドです。 -
4 応答なし - システムはビジーです。  
100 Command Failed 0
101 コマンドを実行できません。 -1
102 -2
103 -3
104 -4
105 -5
106 -6

GetInspectionResults サービス

GetInspectionResults サービス (コード 0x35) は、ビジョンオブジェクトの InspectionResults 属性からデータを読み取ります。

GetInspectionResults 要求データのフォーマット

名前 説明
Size UINT 読み取る InspectionResults 属性のバイト数。
Offset UINT InspectionResults 属性へのオフセット。これは、InspectionResults 属性で読み取る最初のバイトを指定します。

GetInspectionResults 応答データのフォーマット

名前 説明
Data BYTE 配列 InspectionResults 属性のデータ。

Transfer User Data コマンド

このコマンドを使用して、データをユーザデータ保持バッファの一部に転送します。ユーザデータ保持バッファは、Set User Data コマンドが発行されたときにユーザデータフィールドにラッチされます。

要求フォーマット

名前 説明
Size UINT 書き込む User Data フィールドのバイト数。
Offset UINT User Data フィールドへのオフセット。
Data BYTE 配列 ユーザデータフィールドに書き込むユーザデータ。

Set User Data コマンド

PLC はこのコマンドを使用して、ユーザデータ保持バッファをユーザデータフィールドにラッチして、In-Sight にユーザデータへのアクセス権を与えることを、ビジョンシステムに対して通知します。

EtherNet/IP の関数

これらの関数は、In-Sight Explorer のスプレッドシートと (In-Sight 4.x.x 以前のファームウェアが実行されている) In-Sight ビジョンシステムの EtherNet/IP スタックとの間のデータの送受信に使用されます。

EtherNet/IP による通信

次の項目には、EtherNet/IP と In-Sight ビジョンシステムの設定と利用に関する情報と手順が記載されています。