# In-Sight ビジョンシステムからデータを取得する

In-Sight ビジョンシステムから ControlLogix PLC にデータを取得するには、WriteResultsBuffer 関数を使用して、データを EtherNet/IP スタックにプッシュする必要があります。

この関数は、FormatOutputBuffer 関数によって作成されたデータバッファを取得し、WriteResultsBuffer で設定したイベントが実行されると、In-Sight ビジョンシステムのデータ領域にそのデータバッファを書き込みます。スプレッドシートの実行が完了すると、このデータは次の RPI サイクルで PLC に転送されます。

Buffer Results Enable が設定されている場合、このデータ領域への EtherNet/IP バッファの書き込みはキューに入れられます。設定されていない場合は、新しい結果で以前の結果が上書きされます。

ヒント: ResultsValid はデータの読み取り準備ができるまで High にならないため、この設定によって生じる PLC ロジックのわずかなタイミングのずれを回避するには、ResultsValid ビットを使用してデータの読み取り時期を決定します。

1. スプレッドシートにCount、Rand、EditInt、Sum 関数を挿入します。Sum 関数のパラメータを、Rand 関数と EditInt 関数の戻り値の合計へのセル参照として設定します。

2. 空のセルを右クリックして、FormatOutputBuffer 関数をスプレッドシートに挿入します。
3. [FormatOutputBuffer] ダイアログの [追加] ボタンをクリックします。これでセル選択モードになります。Sum 関数を含むセルを選択します。
4. [FormatOutputBuffer] ダイアログで、[データ型] プルダウンメニューを使用してデータ型を [32 ビット浮動小数点数] に変更します。

5. [FormatOutputBuffer] ダイアログの [追加] ボタンを再びクリックします。これでセル選択モードになります。Count 関数を含むセルを選択します。

6. [OK] ボタンをクリックして、[FormatOutputBuffer] プロパティシートを閉じます。

7. 空のセルを右クリックして、WriteResultsBuffer 関数をスプレッドシートに挿入します。WriteResultsBuffer 関数の [バッファ] パラメータを、先ほど作成した FormatOutputBuffer 関数へのセル参照として設定します。

8. RSLogix で、オフラインモードにします。

9. RSLogix で、[Data Types] > [User-Defined] フォルダを右クリックし、メニューから [New Data Type] を選択します。

10. 新しいデータ型にわかりやすい名前を付けて、2 つの浮動小数点数値を [Members:] リストに追加します。

11. 次に、ユーザ定義データ型を使用して新しいタグをプロジェクトの [Controller Tags] に追加します。

12. COP 命令を MainRoutine ラダーロジックプログラムに追加します。

    注: [Length] フィールドは、COP の [Dest] フィールドにコピーされる入力構造体の数を示しています。
13. In-Sight ビジョンシステムをオンラインにします。

14. RSLogix で、[Offline] ボタンのドロップダウン矢印をクリックして [Download] を選択します。

15. このプログラムが ControlLogix PLC にダウンロードされると、スプレッドシートの Random セルと Acquisition Counter セルのデータが InSight_Top_Input タグに浮動小数点形式で表示されます。