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

## 共通サービス

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

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

### リセットサービス

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

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

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

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

### 画像取り込みサービス

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

コマンドが失敗した場合、画像取り込みサービスはベンダー固有のエラーコード 1F を返します。

### SendNativeCmd サービス

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

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

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

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

名前 | タイプ | 説明
--- | --- | ---
結果 | 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 要求データのフォーマット

名前 | タイプ | 説明
--- | --- | ---
サイズ | UINT | 読み取る InspectionResults 属性のバイト数。
オフセット | UINT | InspectionResults 属性で読み取る最初のバイトを指定します。

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

名前 | タイプ | 説明
--- | --- | ---
InspectionResults | STRUCT of | 最後の検査結果。
InspectionID | UINT | 検査カウンタ。
InspectionResultCode | UINT | WriteResultsBuffer 関数で設定された検査結果コード。
InspectionResults | BYTE の配列 | 最後の検査結果。

### Transfer User Data コマンド

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

### Transfer User Data コマンドの要求フォーマット

名前 | タイプ | 説明
--- | --- | ---
サイズ | UINT | 書き込むユーザデータフィールドのバイト数。
オフセット | UINT | 書き込むユーザデータフィールドの最初のバイトを指定します。
データ | BYTE の配列 | ユーザデータフィールドに書き込むユーザデータ。

### Set User Data コマンド

PLC は、このコマンドを使用して、ユーザデータ保持バッファをユーザデータフィールドに取得するように ビジョンシステム を促し、ビジョンシステム に対してユーザデータへのアクセス権を与えます。

この追加のユーザデータフロー制御が不要で、通信動作がアセンブリ I/O と同じ場合、次の手順に従うことで、Set User Data コマンドを使用する必要がなくなります。

1. In-Sight Spreadsheet を開いて ビジョンシステム を選択します。

2. 産業用イーサネットユーティリティを開きます。

3. [プロトコルの選択] ドロップダウンで、[EtherNet/IP] を選択します。

4. [ユーザデータバイパスの有効化] チェックボックスを ON にします。

5. [再起動] をクリックして [産業用イーサネットの設定] ダイアログを閉じ、ビジョンシステム を再起動します。

### EtherNet/IP の関数

次のスプレッドシート関数を使用すると、In-Sight Spreadsheet と EtherNet/IP スタックの間データを送受信できます。

- ReadUserDataBuffer

- WriteResultsBuffer

- GetBufferData