Mitsubishi MC

Connect Mitsubishi MELSEC PLCs over the MC protocol (3E frame) - device codes, decimal and hexadecimal numbering, and read lengths.

View as Markdown

The Mitsubishi MC driver talks to Mitsubishi MELSEC PLCs over the MC protocol, using the binary 3E frame over TCP — the frame the Q, L and iQ series speak. You address values with the familiar MELSEC device notation: a device code plus a number, like D100 or M50. Add a device under the Mitsubishi MC driver in the Connector; the panel shows only the fields this protocol uses.

Connection

Field Meaning Default
Host IP address or host name of the PLC's Ethernet interface. empty
Port TCP port of the MC-protocol connection. 0 uses 5007. 0

The device header shows the assembled endpoint, for example mcp://192.168.0.20:5007. There are no poll-interval fields for this driver: its tags are read once per second. The PLC side must have an MC-protocol (SLMP) TCP connection configured for binary communication on the chosen port.

Addressing

A Mitsubishi tag is addressed by two fields in the tag's Source card:

Field Meaning Accepted values Default
Device address MELSEC device code plus number, e.g. D100. Required. free text empty
Read length (bytes, blank = auto) How many bytes to transfer per read. Blank sizes the read from the data type. 1 and up, blank blank

The address is case-insensitive and the longest matching code wins, so SD100 is special register 100, not step relay S. The number is hexadecimal for the devices Mitsubishi numbers in hex — X, Y, B, W, SB, SW, DX, DY — and decimal for everything else (X1F is input 0x1F). Accepted device codes:

Code Device Numbering
M internal relay decimal
SM special relay decimal
L latch relay decimal
F annunciator decimal
V edge relay decimal
S step relay decimal
X input hexadecimal
Y output hexadecimal
B link relay hexadecimal
SB special link relay hexadecimal
DX direct input hexadecimal
DY direct output hexadecimal
D data register decimal
SD special register decimal
R file register decimal
ZR extended file register decimal
W link register hexadecimal
SW special link register hexadecimal
Z index register decimal
TC / TS / TN timer coil / contact / current value decimal
SC / SS / SN retentive timer coil / contact / current value decimal
CC / CS / CN counter coil / contact / current value decimal

The underlying MC library also accepts the codes TT, TM, CT, CM and A. The Source card's read-only Source address (wire) line shows the assembled address as you edit.

Data types

The Data type picker offers the four types the driver marshals:

Data type Auto read length Notes
Boolean 1 byte on a bit device the single relay named; on a word device any non-zero word
Int32 4 bytes two consecutive 16-bit words, e.g. D100+D101
Float 4 bytes two consecutive words holding an IEEE single
String 16 bytes text up to the first NUL of the read buffer

Word data arrives in the MELSEC-native little-endian order and is decoded automatically; there is no byte-order option. A 32-bit value spans two consecutive word devices. For a String longer than 16 characters, raise Read length to cover the stored text. Read length is a byte count and the protocol transfers whole 16-bit words, so an odd length is rounded up to the word that carries its last byte.

The bit devices, the ones the driver reads one relay at a time, are X, Y, M, L, F, V, B, S, TS, TC, SS, SC, CS, CC, SB, DX and DY. A Boolean tag there answers for the address you typed and for nothing else. Every other code is a word device, the current value of a timer or a counter (TN, SN, CN) and the link registers (W, SW) included, and there the whole word decides: D100 holding 0x0100 reads as true.

Writes

Tags whose Access is Read and write or Write only can be written, to the same device address the read uses. A Boolean write on a bit device sets or clears the single relay named and touches none of its neighbours. Everything else is written as whole 16-bit words: two words for Int32 and Float, one word for a Boolean on a word device, and for String the tag's whole Read length, the UTF-8 bytes of the text at the front and zeros behind them, rounded up to the last word. A shorter text written over a longer one therefore replaces the whole value and nothing of the old one survives. A text that does not fit the declared length is refused with the length named in the journal, never cut down to size. A new tag starts as Read only.

Discovery

The MC protocol has no broadcast discovery in this driver, so the Connector shows no Discover button. Add the device and its addresses by hand.

Good to know

  • Polling is fixed at one second for every tag on this driver; the usual poll interval fields are not shown.
  • The 3E frame must be enabled on the PLC as a binary (not ASCII) MC/SLMP connection; an ASCII-configured port does not answer this driver.
  • An unreachable PLC costs nothing at startup: the device keeps retrying in the background and its tags read as bad quality until the connection lands.