結果モード
MELSEC Communication プラグインは、次の 2 つのタイプの結果モードを提供しています。「Free-running」と「Dequeue from buffer」です。カテゴリ「Result Handling Behavior」のプラグイン構成で目的のモードを設定する必要があります。
選択されている結果モードにかかわらず、フィールド「gMV_LastResultId」では常に新しい結果が利用可能かどうかが示されます。最新の結果の ID が含まれており、新しい結果が利用可能になったときは常に更新されます。したがって、ビジョンシステムを断続的に再起動しない限り、ID は常に単調に増加します。初期時には 0 に設定されており、これはまだ結果が得られていないことを意味します。結果 IDは厳密に正の値になるため、最初の結果レコードの ID は 1 になります。
選択されたモードに応じて、結果は以下のようにさまざまな方法で提供されます。
利用可能な結果モード
「Free-running」モード
このモードが選択された場合、新しい結果が利用可能になるとすぐに、それぞれの結果フィールドに書き込まれます。これは、たとえばハードウェアトリガーによって、特に実行サイクルが独立して同期される場合や、アプリケーションのタイミングがそれほど重大でない場合などに、連続実行と連携した特定の監視アプリケーションに便利です。
一般的に、自走モードでは特定の結果レコードの一貫性が保証されない場合があります。PLC がこのレコードの処理を実行したかどうかに関係なく、新しい結果がすぐに現在の結果を上書きするためです。その結果、一部の結果は失われる可能性があります。
「Dequeue from buffer」モード
このモードを選択した場合、MELSEC Communication プラグインの内部 FIFO キューが受信結果の保存に使用されます。バッファは MELSEC Communication プラグインに内蔵されています。その容量は、プラグイン構成のパラメーター「Result buffer capacity」で定義されます。MERLIC の中の結果バッファを指す MERLICINI ファイルの「ResultBufferSize」と混同しないようにしてください。
新しい結果が利用可能になると、最初にそれぞれのバッファにエンキューされます。その後、PLC は、「DequeueResult」コマンドを使用して、最も古い結果レコードを対応するフィールドに書き込むようにリクエストすることができます。そして、リクエストされた結果レコードは、すぐにキューから取り除かれます。PLC が結果を十分な早さでデキューせず、結果のバッファ容量を超えた場合、バッファ内の最も古い結果がドロップされます。つまり、バッファがオーバーフローすると、次にデキューされる結果は削除されるということです。この場合、フィールド「gMV_DroppedResultCount」は、ドロップされた結果ごとに、初期値である 0 から増分されます。したがって、結果モード「Dequeue from buffer」を使用した場合にドロップされた結果の数が含まれます。
通常のコマンドハンドシェイクは、結果レコードの一貫性を保証するために必要な同期を提供します。詳細については、「プラグインと PLC の間の通信」を参照してください。
結果レコード
結果レコードは実行後に返され、PLC メモリの以下のフィールドが含まれます。これらは現在表示されている結果を表し、それぞれ新しい結果が利用可能になったとき (「Free-running」モード)、または結果がバッファからデキューされたとき (「Dequeue from buffer」モード) にまとめて更新されます。
|
フィールド |
説明 |
|---|---|
|
gMV_ResultId |
現在表示されている結果の ID。 |
|
gMV_ResultRecipeId |
表示された結果を生成したレシピの ID。 |
|
gMV_ResultJobId |
表示された結果を生成したジョブの ID。 |
|
gMV_ResultState |
表示された結果の状態:
|
|
gMV_ResultUseArray_<TYPE>... |
それぞれのデータタイプの結果が照会可能であるかどうかを示す指標。これには、各ビットがこのデータタイプの特定の結果に指標として割り当てられる配列が含まれます。配列のサイズはプラグインの構成に依存します。つまりカテゴリ Writing Data to PLC Memory のそれぞれの結果データタイプの設定に依存します。 たとえば、プラグインパラメーター「INT (signed 16-bit integer) result allocation」が 2 に設定されている場合、フィールド「gMV_ResultUseArray_INT」は PLC メモリに追加されます。「gMV_ResultUseArray_INT」の最初の 2 つのビットが TRUE であれば、データタイプ INT の両方の結果を入手できます。 |
|
gMV_Result_<TYPE>_<INDEX> |
それぞれのデータタイプの実際の結果値。各結果はそれぞれのフィールドに書き込まれます。 これらのタイプのフィールドは、プラグインの構成が適切に設定されている場合にのみ、PLC メモリに追加されます。たとえば、プラグインパラメーター「INT (signed 16-bit integer) result allocation」が 2 に設定されている場合、結果の値の 2 つのフィールドが PLC メモリに追加されます。「gMV_Result_INT_0」と「gMV_Result_INT_1」です。実行後、「gMV_ResultUseArray_INT」の最初の 2 つのビットは、この INT 結果を入手できるかどうかを示します。 |