# PLC からデータを読み取る

In-Sight ViDi 1.5.0 以降のファームウェアを実行しているビジョンシステムの In-Sight ViDi スプレッドシートから Siemens PLC にデータを取得するには、WriteResultsBuffer 関数を使用してデータを PROFINET スタックにプッシュする必要があります。この関数は、FormatOutputBuffer 関数によって作成されたデータのバッファを取り、そのデータを PROFINET Inspection Results モジュールの検査結果領域に書き込みます。システムは、次の更新サイクルに PLC から読み取ったデータを転送します。

## ワークフローの例

1. In-Sight ViDi で新しいジョブを作成します。
2. パレットの [スニペット] タブから、2 つのスニペット ([取り込み] > [AcqCounter] および [演算 & ロジック] > [Random]) をスプレッドシートに追加します。
3. AcquireImage セルを開いて、[トリガ] パラメータを [連続] に設定します。
4. 空白のセルを右クリックして [関数の挿入] を選択し、[関数の挿入] ダイアログを開きます。左側のペインで [入出力] カテゴリをクリックし、右側のペインで FormatOutputBuffer 関数をダブルクリックして、スプレッドシートに挿入します。
5. 最初の 4 バイトのデータは PROFINET バッファに自動的に追加されます。最初の 4 バイトは InspectionID と InspectionResultCode を 16 ビット整数として定義しますが、FormatOutputBuffer リストには表示されません。
6. [FormatOutputBuffer] ダイアログの [追加] ボタンをクリックします。これでセル選択モードになります。Random スニペットの [スケーリングした乱数] セルを選択します。
7. [FormatOutputBuffer] ダイアログの [追加] ボタンを再びクリックします。これでセル選択モードになります。AcqCounter スニペットのカウントセルを選択します。
8. [OK] ボタンをクリックして [FormatOutputBuffer] ダイアログを閉じます。
9. 空白のセルを右クリックして [関数の挿入] を選択し、[関数の挿入] ダイアログを開きます。左側のペインで [入出力] カテゴリをクリックし、その後、右側のペインで WriteResultsBuffer 関数をダブルクリックして、スプレッドシートに挿入します。
10. WriteResultsBuffer 関数の [プロトコル] パラメータを PROFINET に設定します。[バッファ] パラメータは、先ほど作成した FormatOutputBuffer 関数のバッファデータ構造体へのセル参照として設定します。