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 での名前 |
|---|---|---|
| 一括読出し | 0401 | Device Read |
| 一括書込み | 1401 | Device Write |
| ランダム読出し | 0403 | Read Random |
| ランダム書込み | 1402 | Write Random |
| モニタ登録/モニタ | 0801 / 0802 | Entry Monitor Device / Execute Monitor |
| 複数ブロック一括読出し/書込み | 0406 / 1406 | Read Block / Write Block |
フレームは 4E・3E・1E の3種類。新しく作るなら 3E か 4E
Ethernet で使えるフレームは3種類あります。
| フレーム | 特徴 |
|---|---|
| 4E | 3E にシリアル番号を加えたもの。複数の要求を送ったときに、どの応答がどの要求のものかを照合できる |
| 3E | MELSEC-QnA シリーズの Ethernet ユニットと同じ形式。SLMP の 3E フレームとも同じ |
| 1E | MELSEC-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