Skip to content

Supported registers

This page lists the device families exposed by the public helper-layer address parser and typed helper APIs.

Bit device families

Family Examples Notes
Special relays SM0 System bit devices.
Inputs and outputs X10, Y10 Hex-addressed except iQ-F string addresses, which use octal.
Internal relays M100, L100, F100, V100 Plain form maps to SlmpValue::Bool.
Link relays B10, SB10 Hex-addressed bit families.
Timer states TS10, TC10, STS10, STC10 Contact and coil state bits.
Counter states CS10, CC10 Contact and coil state bits.
Long timer states LTS10, LTC10, LSTS10, LSTC10 Read through helper routes; writes use random bit write.
Long counter states LCS10, LCC10 Reads use direct bit read; writes use random bit write.
Direct access I/O DX10, DY10 Not valid for SlmpPlcProfile::IqF.

Word device families

Family Examples Notes
Special registers SD0 System word devices.
Data registers D100 Common first read target.
Link registers W10, SW10 Hex-addressed word families.
Timer current values TN10, STN10 16-bit current values.
Counter current values CN10 16-bit current value.
Long current values LTN10:D, LSTN10:D, LCN10:D 32-bit families; use :D or :L.
Index registers Z0, LZ0:D LZ is a 32-bit family; use :D or :L.
File and refresh registers R0, ZR0, RD0 Profile support depends on your PLC catalog.

Type suffixes

Suffix Value Use
no suffix on a word device SlmpValue::U16 Default word read.
no suffix on a bit device SlmpValue::Bool Default bit read.
:U SlmpValue::U16 Unsigned 16-bit word.
:S SlmpValue::I16 Signed 16-bit word.
:D SlmpValue::U32 Unsigned 32-bit value.
:L SlmpValue::I32 Signed 32-bit value.
:F SlmpValue::F32 32-bit floating-point value.
.n SlmpValue::Bool Bit n inside a word, where n is 0 through F.

Addressing notes

Note Detail
Long 32-bit families LTN, LSTN, LCN, and LZ require :D or :L; plain low-level word access is rejected.
iQ-F direct I/O DX and DY are not valid for SlmpPlcProfile::IqF; use X and Y.
Extended devices G and HG are not in the public high-level surface. Use low-level extended-device APIs with qualified addresses such as U3\G100 or U3E0\HG0.
PLC range limits Use SlmpClient::read_device_range_catalog() to read live bounds for your selected profile.

Long timer and long counter behavior

LTN, LSTN, LCN, and LZ are 32-bit logical families. Use helper APIs, random dword high-level access, or 4-word block reads where supported. They are not exposed as plain direct dword reads in the Rust client API.

LCS and LCC use direct bit read through read_typed / read_named. LTS, LTC, LSTS, and LSTC are not exposed through direct bit read/write or Read Random in the Rust client API; use helper APIs for reads and random bit write where applicable.

Extended device forms

Extended addresses are supported for both J and U forms through parse_qualified_device and the raw extended read/write APIs.

Form Meaning
J1\W10 Network direct memory.
J1\X10 Network direct bit device.
U3\G100 Extension unit direct memory.
U3E0\HG0 iQ-R multi-CPU high-speed CPU-buffer memory.

HG is valid only for U3E0\HG through U3E3\HG. Lower-unit forms such as U1\HG are rejected before transport.

For profile selection, see PROFILES.md.