MCプロトコル通信で接続 (MITSUBISHI MELSECシーケンサ)
3Eフレーム バイナリコード で接続する方法
概要
MITSUBISHI MELSECシーケンサのEtherNetポートで利用できるMCプロトコル通信機能のプロトコルの中で、3Eフレームのバイナリコードでの通信方法について解説します。
MELSECシーケンサはMCプロトコルコマンドを受信するとコマンドに対応するデータを返信するのでラダープログラムは不要です。
Ethernetポートを利用したMCプロトコル通信は、TCP/IPとUDP/IPの両方の通信プロトコルが利用して通信を行います。
MCプロトコルとは
パソコンや上位機器からMCプロトコルコマンドをMELSECシーケンサに送信し、シーケンサのラダープログラム不要でデバイス(リレーやデータメモリ)の読出し・書込み・モード変更などを行うシリアルおよびEthernet通信で使用するプロトコルです。
フレーム(通信伝文)の種類
外部機器からEthernetで接続した場合のMCプロトコルのアクセス範囲は以下のようになります
MCプロトコル Ethernetフレームの種類
| フレーム | 特徴 | 互換性のある伝文 | 対応コード |
| 4E | 3Eフレーム+"シリアル番号" | SLMPの伝文 | ASCII/BIN |
| 3E | QnAシリーズのEthernetユニット用 | SLMPの伝文 QnAシリーズEthernetユニットの伝文 | ASCII/BIN |
| 1E | AシリーズのEthernetユニット用 | AシリーズEthernetユニットの伝文 | ASCII/BIN |
【参考】 シリアル通信で接続したときのフレーム
| フレーム | 特徴 | 互換性のある伝文 | 形式 |
| 4C | 最大のアクセス範囲 | QnAシリーズのシリアルコミュニケーションユニット専用(QnA拡張フレーム) | 1~5 |
| 3C | QnAシリーズのデータ交信用 | QnAシリーズのシリアルコミュニケーションユニット専用 | 1~4 |
| 2C | QnAシリーズのデータ交信用 | Aシリーズのシリアルコミュニケーションユニット専用 | 1~4 |
| 1C | Aシリーズのデータ交信用 | Aシリーズ計算機リンクユニット専用 | 1~4 |
【参考】 シリアル通信で接続したときの形式
| 形式 | コード | 備考 |
| 形式1 | ASCII | |
| 形式2 | ASCII | ブロック番号を付加 |
| 形式3 | ASCII | STX,ETXで囲んだ形式 |
| 形式4 | ASCII | 末尾にCR LFを付加 |
| 形式5 | BIN | 4Cフレームのみで使用可 |
3Eフレーム バイナリコードの伝文
Ethernet TCP,UDPのヘッダ部分を除く
要求伝文
接続局(自局)のDM10の値を読み出す例
| サブヘッダ | アクセス経路 | 要求データ長 | 監視タイマ | 要求データ |
| ネットワーク番号 | PC番号 | 接続先ユニットI/O番号 | 接続先ユニット局番号 | | | コマンド |
| | | | | | | 読み出し | サブコマンド | 先頭デバイス | 点数 |
| 50 | 00 | 00 | FF | FF | 03 | 00 | 0C | 00 | 08 | 00 | 01 | 04 | 00 | 00 | 0A | 00 | 00 | A8 | 01 | 00 |
- 要求データ長 : 監視タイマから要求データの最後までのバイト数 : 000C (12byte)
- 監視タイマ : 0.25秒 x 設定値 (0001H~0028H を推奨) : 0008 = 0.25 x 8 = 2秒
- 読み出しコマンド : 0401
- サブコマンド : 0000
- 先頭デバイス : A800000A : A8=DM, 00000A=10
- 点数 : 0001 : 1個
応答伝文
| サブヘッダ | アクセス経路 | 応答データ長 | 終了コード | 応答データ |
| ネットワーク番号 | PC番号 | 接続先ユニットI/O番号 | 接続先ユニット局番号 | | | |
| D0 | 00 | 00 | FF | FF | 03 | 00 | 04 | 00 | 00 | 00 | 34 | 12 |
- 応答データ長 : 終了コードから応答データの最後までのバイト数 : 0004 (4byte)
- 終了コード : 0000
- 応答データ : 1234 (16進数)
コマンド一覧
4C/3C/4E/3Eフレーム用コマンド一覧
| コマンド | 機能 |
| 0401 | 一括読み出し |
| 1401 | 一括書き込み |
| 0403 | ランダム読み出し |
| 1402 | ランダム書き込み |
| 0406 | 複数ブロック一括読み出し |
| 1406 | 複数ブロック一括書き込み |
| 0801 | モニタデータ登録 |
| 0802 | モニタ |
| 041A | 配列型ラベルの一括読み出し (iQ-Rシリーズのみ) |
| 141A | 配列型ラベルの一括書き込み (iQ-Rシリーズのみ) |
| 041C | ラベルのランダム読み出し (iQ-Rシリーズのみ) |
| 141B | ラベルのランダム書き込み (iQ-Rシリーズのみ) |
| 0613 | バッファメモリ一括読み出し |
| 1613 | バッファメモリ一括書き込み |
| 0601 | インテリジェント機能ユニット一括読み出し |
| 1601 | インテリジェント機能ユニット一括書き込み |
| 1001 | リモートRUN |
| 1002 | リモートSTOP |
| 1003 | リモートPAUSE |
| 1005 | リモートラッチクリア |
| 1006 | リモートRESET |
| 0101 | CPU形名読み出し |
| 1630 | リモートパスワードアンロック |
| 1631 | リモートパスワードロック |
| 0619 | 折り返しテスト |
| 1617 | エラー情報クリア |
| 1810 | ディレクトリ/ファイル情報読み出し |
| 1811 | ディレクトリ/ファイル情報サーチ |
| 1820 | ファイルの新規作成 |
| 1822 | ファイルの削除 |
| 1824 | ファイルのコピー |
| 1825 | ファイルの属性変更 |
| 1826 | ファイルの作成日時の変更 |
| 1827 | ファイルのオープン |
| 1828 | ファイルの読み出し |
| 1829 | ファイルへ書き込み |
| 182A | ファイルのクローズ |
| 0601 | シリアル通信専用 登録データ読み出し |
| 1610 | シリアル通信専用 データ登録 |
| 1618 | シリアル通信専用 グロバル信号制御 |
| 1615 | シリアル通信専用 伝送シーケンス初期化 |
| 1612 | シリアル通信専用 モード切替 |
| 0630 | シリアル通信専用 シーケンサCPU監視 登録 |
| 0631 | シリアル通信専用 シーケンサCPU監視 解除 |
| 2101 | オンデマンド |
デバイスコード一覧
| デバイス記号 | デバイスコード |
| Q/Lシリーズ | iQ-Rシリーズ |
| SM | 91 | 0091 |
| SD | A9 | 00A9 |
| X | 9C | 009C |
| Y | 9D | 009D |
| M | 90 | 0090 |
| L | 92 | 0092 |
| F | 93 | 0093 |
| V | 94 | 0094 |
| B | A0 | 00A0 |
| D | A8 | 00A8 |
| W | B4 | 00B4 |
| TS | C1 | 00C1 |
| TC | C0 | 00C0 |
| TN | C2 | 00C2 |
| LTS | | 0051 |
| LTC | | 0050 |
| LTN | | 0052 |
| STS | C7 | 00C7 |
| STC | C6 | 00C6 |
| STN | C8 | 00C8 |
| LSTS | | 0059 |
| LSTC | | 0058 |
| LSTN | | 005A |
| CS | C4 | 00C4 |
| CC | C3 | 00C3 |
| CN | C5 | 00C5 |
| LCS | | 0055 |
| LCC | | 0054 |
| LCN | | 0056 |
| SB | A1 | 00A1 |
| SW | B5 | 00B5 |
| S | 98 | 0098 |
| DX | A2 | 00A2 |
| DY | A3 | 00A3 |
| Z | CC | 00CC |
| LZ | | 0062 |
| R | AF | 00AF |
| ZR | B0 | 00B0 |
コマンド解説(一部のみ)
0401
一括読み出し
連続するデバイスをデバイス点数を指定して一括で読出します
● ワード単位でビットデバイスの読み出し
M100から1ワード読出し
| コマンド | サブコマンド | 先頭デバイス | 点数 |
| 01 | 04 | 00 | 00 | 64 | 00 | 00 | 90 | 01 | 00 |
応答データ
| 応答データ |
| 34 | 12 |
| 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
| M107 | M100 | M115 | M108 |
● ワード単位でワードデバイスの読み出し
D100から3ワード読出し
| コマンド | サブコマンド | 先頭デバイス | 点数 |
| 01 | 04 | 00 | 00 | 64 | 00 | 00 | A8 | 03 | 00 |
応答データ
| 応答データ |
| 34 | 12 | 78 | 56 | BC | 9A |
| D100 | D101 | D102 |
● ビット単位の読み出し
M100から8ビット読出し
| コマンド | サブコマンド | 先頭デバイス | 点数 |
| 01 | 04 | 01 | 00 | 64 | 00 | 00 | 90 | 08 | 00 |
応答データ
| 応答データ |
| 00 | 10 | 11 | 00 |
| M100 | M107 |
1401
一括書き込み
デバイスに値をワード単位で書き込みます
● ワード単位でビットデバイスの書き込み
M100から1ワード書込み
| コマンド | サブコマンド | 先頭デバイス | 点数 | 書込データ |
| 01 | 14 | 00 | 00 | 64 | 00 | 00 | 90 | 01 | 00 | 34 | 12 |
| 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
| M107 | M100 | M115 | M108 |
応答データはありません
● ワード単位でワードデバイスの書き込み
D100から3ワード書込み
| コマンド | サブコマンド | 先頭デバイス | 点数 | 書込データ |
| 01 | 14 | 00 | 00 | 64 | 00 | 00 | A8 | 03 | 00 | 34 | 12 | 78 | 56 | BC | 9A |
| D100 | D101 | D102 |
応答データはありません
● ビット単位の書き込み
M100から8ビット書込み
| コマンド | サブコマンド | 先頭デバイス | 点数 | 書込データ |
| 01 | 14 | 01 | 00 | 64 | 00 | 00 | 90 | 08 | 00 | 00 | 11 | 01 | 00 |
| M100 | M107 |
応答データはありません
0403
ランダム読み出し
不連続なデバイス番号を指定し値を読出します
● ワード単位で読み出し
ワード読み出しD0,M100とダブルワード読み出しD100
| コマンド | サブコマンド | ワード点数 | ダブルワード点数 | ワードデバイス番号1 | ワードデバイス番号2 | ダブルワードデバイス番号1 |
| 03 | 04 | 00 | 00 | 02 | 01 | 00 | 00 | 00 | A8 | 64 | 00 | 00 | 90 | 64 | 00 | 00 | A8 |
応答データ
| 応答データ |
| 34 | 12 | 01 | 00 | 34 | 12 | 78 | 56 |
| D0 | M100 | D100 | D101 |
0801
モニタデータ登録
モニタするデバイスを登録します
● モニタ条件指定なし
ワード読み出しD0,M100とダブルワード読み出しD100
| コマンド | サブコマンド | ワード点数 | ダブルワード点数 | ワードデバイス番号1 | ワードデバイス番号2 | ダブルワードデバイス番号1 |
| 01 | 08 | 00 | 00 | 02 | 01 | 00 | 00 | 00 | A8 | 64 | 00 | 00 | 90 | 64 | 00 | 00 | A8 |
応答データはありません
0802
モニタデータ登録
登録したデバイスの値を読み出します
応答データ
| 応答データ |
| 34 | 12 | 01 | 00 | 34 | 12 | 78 | 56 |
| D0 | M100 | D100 | D101 |
関連ページ