Skip to content

PLC profiles

Use one canonical profile in plc_profile for each connection. The profile selects the SLMP frame type, access mode, and device-range catalog. Use plc_profile_descriptors() when a UI or configuration schema needs the canonical name, display name, connection availability, and base-profile relationship in one list. The abstract melsec:qcpu entry is included with connectable=False. Store the descriptor's canonical_name, not its display name. Use device_range_model_label(plc_profile) only for the short model value in a device-range catalog.

For cross-profile capability and device-range details, see the SLMP Profile Reference.

Verified hardware available for focused validation is maintained once in the shared MELSEC SLMP profile catalog.

Profiles

Canonical profile Display name Frame Mode Notes
melsec:iq-f MELSEC iQ-F (built-in) 3E Legacy ql X/Y text is octal.
melsec:iq-r MELSEC iQ-R (built-in) 4E iQR iqr X/Y text is hexadecimal.
melsec:iq-r:rj71en71 MELSEC iQ-R (RJ71EN71) 4E iQR iqr Ethernet-unit profile using iQ-R address rules.
melsec:iq-l MELSEC iQ-L (built-in) 4E iQR iqr Use for MELSEC iQ-L targets.
melsec:mx-f MELSEC MX-F (built-in) 4E iQR iqr Use for MELSEC MX-F targets.
melsec:mx-r MELSEC MX-R (built-in) 4E iQR iqr Use for MELSEC MX-R targets.
melsec:mx-r:rj71en71 MELSEC MX-R (RJ71EN71) 4E iQR iqr Ethernet-unit profile using MX-R address rules.
melsec:lcpu MELSEC-L (built-in) 3E Legacy ql Legacy L CPU profile.
melsec:lcpu:lj71e71-100 MELSEC-L (LJ71E71-100) 4E Legacy ql Ethernet-unit profile.
melsec:qnu MELSEC QnU (built-in) 3E Legacy ql QnU profile. Use direct or random device commands for normal access.
melsec:qnu:qj71e71-100 MELSEC QnU (QJ71E71-100) 4E Legacy ql Ethernet-unit profile.
melsec:qnudv MELSEC QnUDV (built-in) 3E Legacy ql QnUDV profile. Use direct or random device commands for normal access.
melsec:qnudv:qj71e71-100 MELSEC QnUDV (QJ71E71-100) 4E Legacy ql Ethernet-unit profile.
melsec:qcpu:qj71e71-100 MELSEC-Q (QJ71E71-100) 4E Legacy ql Ethernet-unit profile.

melsec:qcpu is base-only and remains as an internal profile for QCPU address and device-range behavior, but it is not a selectable connection profile. Use melsec:qcpu:qj71e71-100 for QCPU Ethernet-unit communication.

How to select

import asyncio

from slmp import SlmpConnectionOptions, open_and_connect, read_typed, SlmpTarget


async def main() -> None:
    options = SlmpConnectionOptions(
        host="192.168.250.100",
        port=1025,
        transport="tcp",
        plc_profile="melsec:iq-r",
        default_target=SlmpTarget(network=0, station=0xFF, module_io=0x03FF, multidrop=0),
    )
    async with await open_and_connect(options) as client:
        value = await read_typed(client, "D100", "U")
        print(f"D100={value}")


asyncio.run(main())