PLC との通信のためのフィールド

MODICON®* プラグインは、Modbus 通信プロトコルを利用して、PLCと通信します。転送される情報は、プラグインの構成によって定義されます。たとえば、リクエストされたコマンドや結果の値など、情報のタイプごとにいわゆる「フィールド」が用意されています。フィールドのセットは、プラグインの起動時に .csv ファイルにエクスポートされ、PLC のグローバルなシンボルのセットを表します。 エクスポートされた .csv ファイルは、PLC プログラムで変数リストを作成するときにリファレンスとして使用できます。

.csv ファイルの各フィールドに対して、PLC に特定のメモリブロックが予約されます。フィールドは、PLC とプラグインの両方により、必要なデータの書き込み/読み取りに使用されます。フィールドは、PLC のメモリ上で 2 つのブロックに分けることができます。フィールドの 1 つのブロックは、PLC がコマンドを要求したり、実行時の引数を定義したりするために使用します。これに対して、もう一方のブロックは、プラグインにより、ビジョンシステムが提供する情報、たとえばビジョンシステムに関する一般情報や実行結果などを書き込むために使用されます。PLC は、プラグインが書き込むフィールドの情報を読み取って処理できます (その逆も可能です)。各フィールドには定義済みの名前があります。

いくつかのフィールド (たとえばビジョンシステムの現在の状態を含むフィールドなど) は、設定の固定部分であり、常に提供されています。このようなフィールドを静的フィールドと言います。これに対して、動的なフィールドもあります。これはプラグインの構成に依存し、プラグインの各パラメーターが適切に設定された場合にのみ提供されるフィールドです。続くいくつかのセクションでは、プロトコルの固定部分である静的フィールドと、プラグインがそれに対して設定されている場合にのみ追加される動的フィールドの概要を示しています。

PLC のフィールドのエクスポート

フィールドのセットは、MERLIC RTE Setup の「通信」タブでエクスポートできます。

  1. 左側の MODICON®* プラグインインスタンスを選択すると、プラグインの構成が表示されます。
  2. 必要に応じて、エクスポートする .csv ファイルの保存場所とファイル名を調整します。各パラメーターはパラメーターカテゴリ Export Symbols にあります。
  3. MERLIC RTE Setup の下部にある「 プラグインの起動」ボタンをクリックすると、指定したファイルにフィールドがエクスポートされます。

プラグインが起動したとき、つまり起動ボタンを押したときに、フィールドが自動的にエクスポートされます。エクスポートされたファイルには、すべての必須フィールド、それぞれのデータタイプと割り当てられたメモリアドレスについての情報が含まれています。

フィールドは、PLC とは関係なくエクスポートできます。エクスポートするとき PLC への接続は必要ありません。ただし、接続が確立されていない場合は、プラグインを起動できないというエラーメッセージが表示されます。.csv ファイルをエクスポートするだけの場合なら、このエラーは無視できます。

EcoStruxure™ Machine Expert - Basic の PLC 用プログラムを実装する場合、エクスポートしたファイルは通信に必要なフィールドとメモリブロックのリファレンスとして機能します。 これについては、次のセクションで説明するようにファイルをインポートできます。

シンボル付きのファイルのインポート

プラグイン構成の選択したフィールドを .csv ファイルにエクスポートした後、このファイルを「EcoStruxure™ Machine Expert - Basic」でインポートして、PLC プログラムの実装にそれぞれのフィールドを使用できます。

提供しているドキュメンテーションでは、「EcoStruxure™ Machine Expert - Basic EcoStruxure™ Machine Expert - Basic は Schneider Electric の PLC エンジニアリングソフトウェアで、 Schneider Electric の Modicon®* PLC の PLC の構成、プログラム、監視に使用できます。」バージョン 1.2 SP1 Patch 1 build 65760 を使用しています。異なるバージョンのプログラムを使用する場合、ユーザーインターフェースやパラメーター名が、サンプル画像と異なる場合があります。「EcoStruxure™ Machine Expert - Basic」、その概要と機能、および Schneider Electric Modicon®* の PLC のプログラミングと監視に利用する方法については、Schneider Electric のウェブサイトを参照してください。

EcoStruxure™ Machine Expert - Basic」で、このファイルは以下の手順の説明に従ってインポートできます。

  1. Programming」ウィンドウに移動します。
  2. 左側で「Tools」タブを選択し、「Symbol list」をクリックします。

  3. Symbol list」ウィンドウで「Import」ボタンをクリックして、インポートのダイアログを開きます。

  4. .csv ファイルを選択し、「Import」をクリックします。

静的フィールド

このタイプのフィールドは、常に通信に使用できます。そのほとんどは、ビジョンシステムや現在の実行に関する情報を提供するためにプラグインによって書き込まれます。PLC によって書き込まれる静的フィールドはごくわずかです。

プラグインにより書き込まれる静的フィールド

フィールド

データタイプ

説明

GMV_VERSIONMAJOR

INT

プラグインのメジャーバージョン番号。

GMV_VERSIONMINOR

INT

プラグインのマイナーバージョン番号。

GMV_CURRENTSTATE

INT

MERLIC の現在の状態。たとえば、「SingleExecution」の場合は 72。

それぞれの状態の値やエンコード方法の詳細については、「MERLIC の状態」セクションを参照してください。

GMV_LASTRESULTID

DINT

最終結果の ID。

GMV_NUMBEROFRECIPES

DINT

利用可能なレシピの数。

GMV_PREPARERECIPEIDS

ARRAY [0..31] OF BOOL

どのレシピが現在準備中かを示す指標。これには配列が含まれ、その各項目は、インデックスに対応するレシピが現在準備できているかどうかを示します。 これはレシピが 32 以下しか定義されていない場合にのみ機能します。さらに、MERLIC を使用した場合、準備できるのは 1 つのレシピのみです。

GMV_RUNNINGJOBID

DINT

現在実行しているジョブの ID。

GMV_ACQUISITIONDONECOUNT

DINT

現在のジョブで実行された画像取得の数。初期時には 0 に設定されており、これはまだ画像が取得されていないことを示します。新しいジョブごとにリセットされます。

GMV_ACKCOMMANDCODE

INT

プラグインによって最後に確認されたリクエストされたコマンドのコード。

GMV_ERRORCODE

DINT

数値エラーコード。これはエラーの性質、重大度、影響を受けるコンポーネントに関する情報を提供します。

エラーが返される方法の詳細については、エラー処理を参照してください。

GMV_ERRORCAUSE

INT

エラーの原因となったコマンドのコード。「GMV_REQCOMMANDCODE」および「GMV_ACKCOMMANDCODE」フィールドで指定されたのと同じ数値を想定しています。

エラーが返される方法の詳細については、エラー処理を参照してください。

GMV_DROPPEDRESULTCOUNT

DINT

結果モード「Dequeue from buffer」の使用時にドロップされた結果の数。初期時には 0 に設定されており、ドロップされた結果ごとに増分されます。

PLC が結果を十分な早さでデキューせず、結果のバッファ容量を超えた場合、バッファ内の最も古い結果、つまり、次にデキューされるはずだった結果がドロップされます。

GMV_RESULTID

DINT

現在表示されている結果の ID。

GMV_RESULTRECIPEID

DINT

表示された結果を生成したレシピの ID。

GMV_RESULTJOBID

DINT

表示された結果を生成したジョブの ID。

GMV_RESULTSTATE

INT

表示された結果の状態:

  • 1 = 完了
  • 2 = 処理
  • 3 = 中断
  • 4 = 失敗

PLC により書き込まれる静的フィールド

フィールド

データタイプ

説明

GMV_REQCOMMANDCODE

INT

リクエストされたコマンドのコード。

使用可能なコマンドとそのコードの詳細については、プラグインと PLC の間の通信を参照してください。

GMV_COMMANDRECIPEIDINUSE

BOOL

GMV_COMMANDRECIPEID」で定義されたレシピを、「GMV_REQCOMMANDCODE」でリクエストされたコマンドに使用するかどうかの指標。

GMV_COMMANDRECIPEID

DINT

GMV_COMMANDRECIPEIDINUSE の値が TRUE に設定されている場合、GMV_REQCOMMANDCODE でリクエストされたコマンドに使用されるレシピの ID。

動的フィールド

このタイプのフィールドは、デフォルトでは表示されていません。それらはプラグインが適切に構成されている場合にのみ、PLC メモリに追加されます。このように、プラグインの構成によって、どの動的フィールドを通信に利用できるかが決定されます。静的フィールドと同様に、動的フィールドにもプラグインが書き込むものと、PLC が書き込むものがあります。続くいくつかのセクションでは、動的フィールドについて説明します。

プラグインにより書き込まれる動的フィールド

フィールド

説明

GMV_RESULTUSEARRAY_<TYPE>_W0

それぞれのデータタイプの結果が照会可能であるかどうかを示す指標。

これには、各ビットがこのデータタイプの特定の結果の指標として機能する配列が含まれます。配列のサイズはプラグインの構成に依存します。つまりカテゴリ Writing Data to PLC Memory のそれぞれの結果データタイプの設定に依存します。

たとえば、プラグインパラメーター「INT (signed 16-bit integer) result allocation」が 2 に設定されている場合、フィールド「GMV_RESULTUSEARRAY_INT_W0」は PLC メモリに追加されます。「GMV_RESULTUSEARRAY_INT_W0」の最下位 2 ビットが 1 であれば、データタイプ INT の両方の結果を入手できます。

ただし、プラグイン構成でデータ型 INT の結果が 16 個を超えて定義されている場合は、「GMV_RESULTUSEARRAY_INT_W0」フィールドのビットだけでは結果それぞれの可用性を示すには足りません。この場合は、さらに「GMV_RESULTUSEARRAY_INT_W1」フィールドが追加されます。このフィールドが、データ型 INT の次の 16 個の結果の指標として使用できます。

利用可能なデータタイプ:

  • BOOL
  • INT
  • DINT
  • REAL
  • STRING[80]

GMV_RESULT_<TYPE>_<INDEX>

データタイプ BOOLINTDINTREAL の実際の結果値。

各結果はそれぞれのフィールドに書き込まれます。結果フィールドのシンボルは、接頭辞「GMV_RESULT_」の後に結果のデータタイプとインデックスを続けた形で構成されます。

これらのタイプのフィールドは、カテゴリ Writing Data to PLC Memory でプラグインの構成が適切に設定されている場合にのみ、PLC メモリに追加されます。

たとえば、プラグインパラメーター「INT (signed 16-bit integer) result allocation」が 2 に設定されている場合、結果の値の 2 つのフィールドが PLC メモリに追加されます。「GMV_RESULT_INT_0」と「GMV_RESULT_INT_1」です。シンボル「GMV_RESULT_INT_0」のフィールドはデータタイプ INT の最初の結果の値に使用され、シンボル「GMV_RESULT_INT_1」のフィールドは 2 番目の INT 結果に使用されます。実行後、「GMV_RESULTUSEARRAY_INT_W0」の最初の 2 つのビットは、この INT 結果を入手できるかどうかを示します。

GMV_RESULT_STRING80_<INDEX>_W<WORD_INDEX>

データタイプ STRING[80] の実際の結果値。

データタイプ STRING[80] の結果については、単一の WORDS のシーケンスを介してマッピングされるため、40 個のレジスタアドレスが予約されています。つまり、1 つの STRING[80] 結果の値に 40 個のフィールドがあるということです。これらのフィールドのシンボルは、他のデータタイプの結果のシンボルと似ていますが、接尾辞「W<WORD_INDEX>」が追加されています。追加の接尾辞は、「W」の文字とインデックス番号で構成されます。インデックス番号は、STRING[80] 値を定義している 40 個の WORDS のうち、つまりバイトのうち、各フィールドがどれを参照しているかを示します。

たとえば、データタイプ STRING[80] の最初の結果値のために予約されているフィールドのシンボルは「GMV_RESULT_STRING80_0_W0」、「GMV_RESULT_STRING80_0_W1」、... と続いて、「GMV_RESULT_STRING80_0_W39」まであります。これらのシンボルの最初のインデックス 0 は、フィールドがデータタイプ STRING[80] の最初の結果値を参照していることを示します。2 番目のインデックスは単一の WORDS のシーケンス内のそれぞれの単語を指します。したがって、シンボル「GMV_RESULT_STRING80_0_W0」のフィールドは、最初の STRING[80] 結果の最初の 2 バイトに使用されるということです。シンボル「GMV_RESULT_STRING80_0_W1」を持つフィールドは最初の STRING[80] 結果の 3 バイト目と 4 バイト目に使用され……というように、最後の 2 バイトに使われるシンボル「GMV_RESULT_STRING80_0_W39」を持つフィールドまで続きます。

これらのタイプのフィールドは、カテゴリ Reading Data from PLC Memory でプラグインの構成が適切に設定されている場合にのみ、PLC メモリに追加されます。

たとえば、プラグインパラメーター「STRING[80] result allocation」が 2 に設定されている場合、結果の値の 80 個のフィールドが PLC メモリに追加されます。最初の STRING[80] 結果の値 (「GMV_RESULT_STRING80_0_W0」から「GMV_RESULT_STRING80_0_W39」まで) のフィールドが 40 個、2 番目の STRING[80] 結果の値 (「GMV_RESULT_STRING80_1_W0」から「GMV_RESULT_STRING80_1_W39」まで) のフィールドが 40 個です。

PLC により書き込まれる動的フィールド

フィールド

説明

GMV_ITPARAMUSEARRAY_<TYPE>_W0

各データタイプのレシピパラメーターが、次回の実行のために、対応する反復パラメーターのフィールドに定義された値で上書きされるかどうかを示す指標。

これには、各ビットがこのデータタイプの特定の反復パラメーターの指標として機能する配列が含まれます。 配列のサイズはプラグインの構成に依存します。つまりカテゴリ Reading Data from PLC Memory のそれぞれの反復パラメーターのデータタイプの設定に依存します。

たとえば、プラグインパラメーター「INT (signed 16-bit integer) iteration parameter allocation」が 2 に設定されている場合、フィールド「GMV_ITPARAMUSEARRAY_INT_W0」は、反復パラメーターの値のフィールド「GMV_ITPARAM_INT_0」および「GMV_ITPARAM_INT_1」とともに追加されます。「GMV_ITPARAMUSEARRAY_INT_W0」の最初の 2 つのビットが 1 に設定されている場合、データタイプ INT の最初の 2 つのレシピ値は、次の実行で、「GMV_ITPARAM_INT_0」と「GMV_ITPARAM_INT_1」で定義される値で上書きされます。

ただし、プラグイン構成でデータ型 INT の反復パラメーターが 16 個を超えて定義されている場合は、「GMV_ITPARAMUSEARRAY_INT_W0」のビットだけでは、それぞれの反復パラメーターの値が次の実行に使用されるべきかどうかを示すのに足りません。この場合は、さらに「GMV_ITPARAMUSEARRAY_INT_W1」フィールドが追加されます。これが、データ型 INT の次の 16 個の反復パラメーターの指標として使用できます。

GMV_ITPARAM_<TYPE>_<INDEX>

データタイプ BOOLINTDINTREAL の反復パラメーターの値。

各フィールドのシンボルは、接頭辞「GMV_ITPARAM_」の後に反復パラメーターのデータタイプとインデックスを続けた形で構成されます。

これらのタイプのフィールドは、カテゴリ Reading Data from PLC Memory でプラグインの構成が適切に設定されている場合にのみ、PLC メモリに追加されます。

たとえば、プラグインパラメーター「INT (signed 16-bit integer) iteration parameter allocation」が 2 に設定されている場合、結果の値の 2 つのフィールドが PLC メモリに追加されます。「GMV_ITPARAM_INT_0」と「GMV_ITPARAM_INT_1」です。シンボル「GMV_ITPARAM_INT_0」のフィールドはデータタイプ INT の最初の反復パラメーターの値に使用され、シンボル「GMV_ITPARAM_INT_1」のフィールドは 2 番目の INT パラメーターに使用されます。StartSingleJob」または「StartContinuous」コマンドをリクエストする場合、「GMV_ITPARAMUSEARRAY_INT_W0」の最初の 2 つのビットは、これらの値がレシピで定義されたそれぞれの値を上書きするために使用されるかどうかを示します。

GMV_ITPARAM_<TYPE>_<INDEX>_W<WORD_INDEX>

データタイプ STRING[80] の反復パラメーターの値。

データタイプ STRING[80] の反復パラメーターについては、単一の WORDS のシーケンスを介してマッピングされるため、40 個のレジスタアドレスが予約されています。つまり、1 つの STRING[80] パラメーターの値に 40 個のフィールドがあるということです。これらのフィールドのシンボルは、他のデータタイプの反復パラメーターのシンボルと似ていますが、接尾辞「W<WORD_INDEX>」が追加されています。追加の接尾辞は、「W」の文字とインデックス番号で構成されます。インデックス番号は、 値を定義している 40 個の WORDS のうち、つまりバイトのうち、各フィールドがどれを参照しているかを示します。

たとえば、データタイプ STRING[80] の最初の反復パラメーターのために予約されているフィールドのシンボルは「GMV_ITPARAM_STRING80_0_W0」、「GMV_ITPARAM_STRING80_0_W1」、... と続いて、「GMV_ITPARAM_STRING80_0_W39」まであります。これらのシンボルの最初のインデックス 0 は、フィールドがデータタイプ STRING[80] の最初の反復パラメーターを参照していることを示します。2 番目のインデックスは単一の WORDS のシーケンス内のそれぞれの単語を指します。したがって、シンボル「GMV_ITPARAM_STRING80_0_W0」のフィールドは、最初の STRING[80] パラメーターの最初の 2 バイトに使用されるということです。シンボル「GMV_ITPARAM_STRING80_0_W1」を持つフィールドは最初の STRING[80] パラメーターの 3 バイト目と 4 バイト目に使用され……というように、最後の 2 バイトに使われるシンボル「GMV_ITPARAM_STRING80_0_W39」を持つフィールドまで続きます。

これらのタイプのフィールドは、カテゴリ Reading Data from PLC Memory でプラグインの構成が適切に設定されている場合にのみ、PLC メモリに追加されます。

たとえば、プラグインパラメーター「STRING[80] iteration parameter allocation」が 2 に設定されている場合、結果の値の 80 個のフィールドが PLC メモリに追加されます。最初の STRING[80] パラメーターの値 (「GMV_ITPARAM_STRING80_0_W0」から「GMV_ITPARAM_STRING80_0_W39」まで) のフィールドが 40 個、2 番目の STRING[80] パラメーターの値 (「GMV_ITPARAM_STRING80_1_W0」から「GMV_ITPARAM_STRING80_1_W39」まで) のフィールドが 40 個です。「StartSingleJob」または「StartContinuous」コマンドをリクエストする場合、「GMV_ITPARAMUSEARRAY_STRING80_W0」の最初の 2 つのビットは、これらの値がレシピで定義されたそれぞれの値を上書きするために使用されるかどうかを示します。

MERLIC の状態

MODICON®* プラグインを使用する場合、MERLIC の内部状態がフィールド「GMV_CURRENTSTATE」を介して PLC に転送されます。

現在の状態に関する情報を転送するバイトは、以下のようにエンコードされます:

ビットフィールドの位置

数値

MERLIC 状態

説明

0

1

Preoperational

このビットが 1 に設定されている場合、MERLIC の状態は「Preoperational」です。

3

8

OperationalAutomaticMode

このビットが 1 に設定されている場合、MERLIC の状態は「OperationalAutomaticMode」です。これは、MERLIC の状態が「Initialized」、「Ready」、「SingleExecution」または「StartContinuous」であることを意味します。

3, 4

24

Initialized

3 番目および 4 番目のビットが設定されている場合、MERLIC の状態は「Initialized」です。

3, 5

40

Ready

3 番目および 5 番目のビットが設定されている場合、MERLIC の状態は「Ready」です。

3, 6

72

SingleExecution

3 番目および 6 番目のビットが設定されている場合、MERLIC の状態は「SingleExecution」です。

3, 7

136

ContinuousExecution

3 番目および 7 番目のビットが設定されている場合、MERLIC の状態は「ContinuousExecution」です。

1

2

Halted

このビットが 1 に設定されている場合、MERLIC の状態は「Halted」です。

2

4

Error

このビットが 1 に設定されている場合、MERLIC の状態は「Error」です。

3, 8

264

OperationalFrontendAccessMode

3 番目および 8 番目のビットが設定されている場合、MERLIC は手動モードです。これは、MERLICMERLIC Frontend のみを介して制御可能なことを表します。手動モードについて詳しくは、MERLIC マニュアルで、Frontend の書き込みアクセスを参照してください。

詳細については、「MERLIC の状態」を参照してください。


* Modicon® is a registered trademark of Schneider Electric USA, Inc.