What is the MC protocol? How it relates to SLMP, and what it can do
The MC protocol lets PCs and other external devices read and write the devices of Mitsubishi Electric PLCs. This article covers its relationship to SLMP, the frame types, and TCP versus UDP, based on the Mitsubishi Electric manuals.
Updated
The MC protocol (MELSEC Communication protocol) is the protocol external devices such as PCs and HMIs use to access Mitsubishi Electric PLCs. You connect over Ethernet or serial, send a message in a fixed format, and the PLC returns or rewrites device values.
No ladder program is needed on the PLC side for this. Once the communication port is opened in the parameters, the PLC answers requests from the external device on its own.
What the MC protocol can do
The manual lists five uses:
- Reading and writing CPU device memory and the buffer memory of intelligent function modules
- Reading and writing files such as programs and parameters
- Remote control of the CPU module: remote RUN / STOP / PAUSE, latch clear and reset
- Monitoring the CPU module
- Sending data from the CPU module to the external device (on-demand)
In practice, the first one — reading and writing devices — is what most systems use. Reading a production count from a D register to show line status on a dashboard, or writing an M relay to switch a changeover, are typical examples.
The PLC processes external requests during its END processing, so each request makes the scan time longer. For that reason the manual recommends splitting large transfers into several smaller accesses.
SLMP uses the same messages as the MC protocol’s 3E / 4E frames
Recent manuals and products often use the name SLMP (Seamless Message Protocol). SLMP is a protocol for Ethernet, and the SLMP Reference Manual states that SLMP’s 3E and 4E frames have the same message format as the MC protocol’s QnA-compatible 3E and 4E frames, so external devices built for the MC protocol can connect to SLMP-compatible devices as they are.
| Operation | Command | SLMP name |
|---|---|---|
| Batch read | 0401 | Device Read |
| Batch write | 1401 | Device Write |
| Random read | 0403 | Read Random |
| Random write | 1402 | Write Random |
| Monitor registration / monitor | 0801 / 0802 | Entry Monitor Device / Execute Monitor |
| Multiple block batch read / write | 0406 / 1406 | Read Block / Write Block |
Three frames: 4E, 3E and 1E. For new work, use 3E or 4E
Three frame types are available over Ethernet.
| Frame | Characteristics |
|---|---|
| 4E | A 3E frame plus a serial number, so responses can be matched to requests when several are in flight |
| 3E | The same format as the MELSEC-QnA series Ethernet modules, and as SLMP’s 3E frame |
| 1E | The same format as the MELSEC-A series Ethernet modules |
1E exists for compatibility with the old A series, so choose 3E or 4E for anything new. Every frame can be sent in binary code or ASCII code. According to the manual, binary carries roughly half the data of ASCII and shortens communication time accordingly.
Serial communication (C24) has its own 1C–4C frames. This guide covers the Ethernet 3E / 4E frames.
TCP is reliable, UDP is light
Over Ethernet you can use either TCP/IP or UDP/IP. The difference is reliability versus line load.
- TCP/IP: establishes a connection first, so data reliability is ensured. The line load is higher than UDP.
- UDP/IP: no connection, so the line load is lower. Data reliability is lower than TCP.
A common split is TCP for anything where a lost message matters, such as writes, and UDP for frequent reads.
Which PLCs you can connect to
Any Ethernet-equipped module can talk the MC protocol (SLMP). The two usual cases are:
- The built-in Ethernet port of a CPU module (such as a MELSEC iQ-R CPU module)
- An Ethernet interface module (RJ71EN71, QJ71E71-100, LJ71E71-100 and others)
Through a CPU’s built-in Ethernet port you can access only that PLC itself. To reach other stations across a network, go through an Ethernet interface module.
One request at a time
MC protocol communication is half-duplex: send a request, wait for its response, then send the next one. Firing requests without waiting can overwhelm the PLC and cause errors (with 4E frames you may send ahead up to a defined limit).
The next article reads an actual 3E frame message byte by byte.
Sources
- MELSEC Communication Protocol Reference Manual (Japanese edition, SH-080003) pp.17–24, 28, 39–40
- SLMP Reference Manual (Japanese edition, SH-080931) pp.7–17, Appendix 2