// LEARN · MCプロトコル入門

MCプロトコルとは? SLMPとの関係と、できること

MCプロトコルは、パソコンなどの外部機器から三菱電機 PLC のデバイスを読み書きするための通信プロトコルです。SLMP との関係、フレームの種類、TCP と UDP の違いを三菱電機のマニュアルをもとに整理します。

更新

MCプロトコル(MELSECコミュニケーションプロトコル)は、パソコンや表示器などの外部機器から、三菱電機の PLC(シーケンサ)にアクセスするための通信プロトコルです。Ethernet やシリアルでつなぎ、決まった形式の電文を送ると、PLC がデバイスの値を返したり書き換えたりします。

PLC 側に通信用のラダープログラムを書く必要はありません。パラメータで通信の口を開けておけば、あとは外部機器からの要求に PLC が応えます。

MCプロトコルでできること

マニュアルが挙げている用途は次の5つです。

  • CPU ユニットのデバイスメモリや、インテリジェント機能ユニットのバッファメモリの読み書き
  • プログラムやパラメータなどのファイルの読み書き
  • リモート RUN/STOP/PAUSE、ラッチクリア、リセットによる CPU ユニットの遠隔操作
  • CPU ユニットのモニタ
  • CPU ユニットから外部機器へのデータの送信(オンデマンド)

実際によく使われるのは、最初のデバイスの読み書きです。D レジスタに入った生産数を読んで稼働状況を画面に出したり、M リレーを書き換えて段取りを切り替えたりする、といった使い方です。

外部からの要求を PLC が処理するのは、END 処理のタイミングです。要求を受けるとそのぶんスキャンタイムが延びます。そのためマニュアルは、大量のデータを扱うときは「少ない点数で複数回数に分けてアクセス」するよう勧めています。

SLMP は、MCプロトコルの 3E/4E フレームと同じ電文です

最近のマニュアルや製品では、SLMP(Seamless Message Protocol)という名前をよく見かけます。SLMP は Ethernet 向けのプロトコルで、SLMP リファレンスマニュアルには次のように書かれています。

SLMPの3Eフレームまたは4Eフレームは、MCプロトコルのQnA互換3Eフレームまたは4Eフレームと同じ伝文フォーマットです。MCプロトコルで使用していた外部機器を、そのままSLMP対応機器に接続できます。

処理コマンドSLMP での名前
一括読出し0401Device Read
一括書込み1401Device Write
ランダム読出し0403Read Random
ランダム書込み1402Write Random
モニタ登録/モニタ0801 / 0802Entry Monitor Device / Execute Monitor
複数ブロック一括読出し/書込み0406 / 1406Read Block / Write Block

フレームは 4E・3E・1E の3種類。新しく作るなら 3E か 4E

Ethernet で使えるフレームは3種類あります。

フレーム特徴
4E3E にシリアル番号を加えたもの。複数の要求を送ったときに、どの応答がどの要求のものかを照合できる
3EMELSEC-QnA シリーズの Ethernet ユニットと同じ形式。SLMP の 3E フレームとも同じ
1EMELSEC-A シリーズの Ethernet ユニットと同じ形式

1E は古い A シリーズとの互換用なので、新しく作るなら 3E か 4E を選びます。どれもバイナリコードと ASCII コードの2つの形式で送れます。マニュアルによると、バイナリは ASCII に比べて交信データ量が約半分になり、そのぶん交信時間も短くなります。

シリアル(C24)には、これとは別に 1C〜4C フレームがあります。この入門では Ethernet の 3E/4E フレームを扱います。

TCP は確実、UDP は軽い

Ethernet では TCP/IP と UDP/IP のどちらでも交信できます。違いは信頼性と回線の負荷です。

  • TCP/IP:コネクションを確立してから交信するので、データの信頼性が確保される。そのかわり回線の負荷は UDP より大きい
  • UDP/IP:コネクションを確立しないので回線の負荷が低い。そのかわりデータの信頼性は TCP より低い

書き込みのように取りこぼしが困る処理は TCP、頻繁に値を読むだけなら UDP、という使い分けがよくあります。

どの PLC につながるか

Ethernet 搭載のユニットであれば、MCプロトコル(SLMP)で交信できます。代表的なのは次の2種類です。

  • CPU ユニットの内蔵 Ethernet ポート(MELSEC iQ-R の CPU ユニットなど)
  • Ethernet インタフェースユニット(RJ71EN71、QJ71E71-100、LJ71E71-100 など)

内蔵 Ethernet ポートにつないだ場合、アクセスできるのは接続した PLC 自身だけです。ネットワーク越しに別の局へアクセスしたい場合は、Ethernet インタフェースユニットを経由します。

要求は1つずつ、応答を待ってから

MCプロトコルの交信は半二重です。要求を送ったら、その応答を受け取ってから次の要求を送ります。応答を待たずに次々と送ると、PLC 側で処理しきれずにエラーになることがあります(4E フレームで決められた数までは先行して送れます)。

次の記事では、実際の 3E フレームの電文を1バイトずつ読んでいきます。

出典

  • MELSECコミュニケーションプロトコルリファレンスマニュアル(SH-080003)p.17〜24, 28, 39〜40
  • SLMPリファレンスマニュアル(SH-080931)p.7〜17, 付2