SLMP (Mitsubishi MELSEC)

SLMP (Seamless Message Protocol, also known as MELSEC Communication Protocol / MC protocol) is used by Mitsubishi Electric MELSEC PLCs such as the iQ-R, iQ-F, Q and L series.

The driver communicates using binary 3E frames over TCP.

This initial version is read-only and supports reading word devices (D, W and R).

(Supported by Plc4J Only)

Connection String Options

Name

Type

Default Value

Required

Description

Name

SLMP (MELSEC) 3E

Code

slmp

Maven Dependency

<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-driver-slmp</artifactId>
  <version>pre-release</version>
</dependency>

Default Transport

tcp

Supported Transports

  • tcp

Config options:

monitoring-timer

INT

0

SLMP monitoring timer written into each 3E request frame (0 = wait infinitely).

request-timeout

INT

5000

Client-side timeout in milliseconds awaiting a response.

Transport config options:

tcp

tcp.connect-timeout

INT

5000

tcp.read-timeout

INT

0

tcp.write-timeout

INT

0

tcp.tcp-no-delay

BOOLEAN

true

tcp.keep-alive

BOOLEAN

false

tcp.send-buffer-size

INT

81920

tcp.receive-buffer-size

INT

81920

tcp.local-address

STRING

tcp.local-port

INT

0

Supported Operations

Name Value Description

Supported Operations

read

Individual Resource Address Format

Connection String

SLMP has the following connection string format:

slmp:{transport}://{ip-address}:{port}?{options}

An example connection string would look like:

slmp:tcp://192.168.0.10:5007

Note the transport, port and option fields are optional.

General Format

In general all SLMP addresses have this format:

{device}{address}:{data-type}[{quantity}]

If the data-type part is omitted, it defaults to WORD. If the quantity part is omitted, the default of 1 is assumed.

Examples:

  • D350 (one word from data register 350)

  • D350:DINT (one 32-bit integer, occupying two words)

  • R200:REAL[4] (four floats from file register 200)

  • W0x1A:WORD[10] (ten words from link register 0x1A)

Devices

The following word devices are supported:

  • D (data register, decimal address)

  • R (file register, decimal address)

  • W (link register, hexadecimal address; an optional 0x prefix is accepted)

The 0x prefix is only valid for hexadecimally addressed devices.

A single read request may cover at most 960 words (a conservative single-frame ceiling); larger requests are rejected instead of being split.

Data Types

The following data types are supported:

  • WORD (uint 16, default)

  • INT (int 16)

  • UINT (uint 16)

  • DINT (int 32)

  • UDINT (uint 32)

  • REAL (float 32)

Multi-word types (DINT, UDINT, REAL) are decoded from consecutive words in little-endian (low-word-first) order, as transmitted by the PLC.