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

MELSEC Communication プラグインは、MELSEC 通信プロトコルを利用して、PLCと通信します。転送される情報は、プラグインの構成によって定義されます。たとえば、リクエストされたコマンドや結果の値など、情報のタイプごとにいわゆる「フィールド」が用意されています。フィールドのセットは、プラグインの起動時に .csv ファイルにエクスポートされ、PLC のグローバルな「ラベル」のセットを表します。 エクスポートされた .csv ファイルは、PLC プログラミングソフトウェア GX Works GX Works は Mitsubishi Electric の PLC エンジニアリングソフトです。Mitsubishi Electric MELSEC シリーズ の PLC の構成、プログラム、監視に使用できます。 にインポートし、そこで PLC プログラムの基礎として使用できます。

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

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

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

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

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

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

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

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

Global Label」ファイルのインポート

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

提供しているドキュメンテーションでは、GX Works2 バージョン 1.612N を使用しています。GX Works3 や異なるバージョンの GX Works2 を使用する場合、ユーザーインターフェースやパラメーター名が、サンプル画像として表示されているものと異なる場合があります。なお、GX Works の概要、機能、GX Works と連携して MELSEC シリーズ の PLC をプログラムおよび監視する方法については、Mitsubishi Electric のウェブサイトを参照してください。

GX Works」で、このファイルは以下の手順の説明に従ってインポートできます。

  1. Project」パネルを開きます。
  2. Global Label」を右クリックし、メニュー項目「Read from CSV File...」を選択します。

静的フィールド

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

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

フィールド

データタイプ

説明

gMV_VersionMajor

WORD

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

gMV_VersionMinor

WORD

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

gMV_Heartbeat

WORD

ハートビートモードに使用するカウンタ。値は、プラグインの実行中に常に更新されます。接続が引き続き有効かどうかを確認したり、予期しない切断を処理したりするために使用できます。

gMV_CurrentState

INT

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

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

gMV_LastResultId

DWORD

最終結果の ID。

gMV_NumberOfRecipes

DINT

利用可能なレシピの数。

gMV_PreparedRecipeIds

ARRAY [0..31] OF BOOL

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

gMV_RunningJobId

DWORD

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

gMV_AcquisitionDoneCount

DWORD

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

gMV_AckCommandCode

INT

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

gMV_ErrorCode

DINT

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

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

gMV_ErrorCause

INT

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

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

gMV_DroppedResultCount

DWORD

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

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

gMV_ResultId

DWORD

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

gMV_ResultRecipeId

DINT

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

gMV_ResultJobId

DWORD

表示された結果を生成したジョブの 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>

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

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

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

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

  • BOOL
  • WORD
  • DWORD
  • INT
  • DINT
  • REAL
  • LREAL
  • STRING[32]

gMV_Result_<TYPE>_<INDEX>

それぞれのデータタイプの実際の結果値。各結果はそれぞれのフィールドに書き込まれます。結果フィールドのラベルは、接頭辞「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」の最初の 2 つのビットは、この INT 結果を入手できるかどうかを示します。

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

フィールド

説明

gMV_ItParamUseArray_<TYPE>

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

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

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

gMV_ItParam_<TYPE>_<INDEX>

それぞれのデータタイプの反復パラメーターの値。反復パラメーターフィールドのラベルは、接頭辞「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」の最初の 2 つのビットは、これらの値がレシピで定義されたそれぞれの値を上書きするために使用されるかどうかを示します。

MERLIC の状態

MELSEC Communication プラグインを使用する場合、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 の状態」を参照してください。