# In-Sight ビジョンシステムにデータを送信する

ControlLogix PLC からスプレッドシートにデータを送信するには、ReadUserDataBuffer 関数を使用して、データを EtherNet/IP スタックからプルする必要があります。この関数は、FormatInputBuffer 関数内で作成されたデータフォーマットを取得し、ネットワークからの出力のデータ領域からデータを読み取って、このデータをフォーマットしてスプレッドシートに挿入します。このデータは、RPI サイクルごとに PLC から受信されます。対応するスプレッドシートのデータは、スプレッドシートが実行されたときのみ更新されます。

1. 空のセルを右クリックして、FormatInputBuffer 関数をスプレッドシートに挿入します。

2. [FormatInputBuffer] ダイアログの [追加] ボタンをクリックして、2 つの 32 ビット浮動小数点数をリストに追加します。

3. [OK] ボタンをクリックして、[FormatInputBuffer] プロパティシートを閉じます。
4. 空のセルを右クリックして、ReadUserDataBuffer 関数をスプレッドシートに挿入します。ReadUserDataBuffer 関数の [バッファ] パラメータを、先ほど作成した FormatInputBuffer 関数へのセル参照として設定します。

5. 空のセルを右クリックして、GetBufferData 関数をスプレッドシートに挿入します。GetBufferData 関数の [ReadBuffer] パラメータを、先ほど作成した ReadUserDataBuffer 関数へのセル参照として設定します。GetBufferData 関数の [インデックス] パラメータにより、FormatInputBuffer のどのデータ値を参照するかが決定されます。例えば、[インデックス] パラメータを 0 に設定すると、FormatInputBuffer の最初の浮動小数点データ値が返されます。[インデックス] パラメータを 1 に設定すると、FormatInputBuffer の 2 番目の浮動小数点データ値が返されます。

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

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

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

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

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

11. In-Sight ビジョンシステムをオンラインにします。

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

13. [Controller Tags] ダイアログを開き、InSight_Top_Output.Data1 と InSight_Top_Output.Data2 の値を変更します。PLC で InSight_Top_Out.Data1 と InSight_Top_Out.Data2 の値を変更した後、PLC で SetUserData ビットを設定し、SetUserDataAck ビットが設定されるのを待ってから、SetUserData ビットをクリアします。ReadUserDataBuffer セルがスプレッドシートで実行されると、スプレッドシート内の値が更新されます。