SLMP Rust API Reference
This page is a user-facing index of the public Rust SLMP client surface. Use the usage guide for examples, and this page when you need to find the operation name for a specific SLMP command family.
The main async client type is SlmpClient.
Direct And Random Device Operations
| Operation | Public API |
|---|---|
| Direct word read/write | read_words_raw, write_words |
| Direct bit read/write | read_bits, write_bits |
| 32-bit values | read_dwords_raw, write_dwords |
| Float32 values | read_float32s, write_float32s |
| Extended direct word read/write | read_words_extended, write_words_extended |
| Extended direct bit read/write | read_bits_extended, write_bits_extended |
| Random read | read_random |
| Extended random read | read_random_ext |
| Random word/dword write | write_random_words |
| Extended random word/dword write | write_random_words_ext |
| Random bit write | write_random_bits |
| Extended random bit write | write_random_bits_ext |
| Block read/write | read_block, write_block |
| Type name | read_type_name |
Extended random APIs use the 008x subcommands. Use parse_qualified_device
or SlmpQualifiedDeviceAddress with SlmpExtensionSpec for routed devices
such as U1\G0, U3E0\HG0, or J2\SW10.
Specialized Operations
| Operation | Public API |
|---|---|
| Memory command words | memory_read_words, memory_write_words |
| Extend-unit command words | extend_unit_read_words, extend_unit_write_words |
| Label array access | read_array_labels, write_array_labels |
| Label random access | read_random_labels, write_random_labels |
| Remote CPU control | remote_run, remote_stop, remote_pause, remote_latch_clear, remote_reset |
| Remote password | remote_password_unlock, remote_password_lock |
| CPU operation state | read_cpu_operation_state |
| Self-diagnosis error code | read_latest_self_diagnosis_error_code |
| Device range catalog | read_device_range_catalog, read_device_range_catalog_for_plc_profile |
| Self-test loopback | self_test_loopback |
Monitor registration/cycle APIs are not part of the current Rust user-facing
client surface. CPU-buffer convenience helpers are also not separate methods;
use the extended-device U3E0\HG... route where the selected profile supports
CPU-buffer access.
High-Level Helpers
| Operation | Public API |
|---|---|
| Connection options | SlmpConnectionOptions, SlmpTransportMode, SlmpFrameType, SlmpCompatibilityMode |
| Address parsing | SlmpAddress::parse, SlmpAddress::parse_for_plc_profile, SlmpAddress::format, parse_device_for_plc_profile, parse_qualified_device |
| Typed values | read_typed, write_typed |
| Named mixed snapshots | read_named, write_named, poll_named |
| Chunked word/dword reads | read_words_single_request, read_words_chunked, read_dwords_single_request, read_dwords_chunked |
| Bit-in-word write | write_bit_in_word |
| Trace and diagnostics | last_request_frame, last_response_frame, traffic_stats |
Target Module I/O Constants
SlmpModuleIo provides named request-header module I/O numbers for multi-CPU
and routed CPU targets. Use these values in SlmpTargetAddress.module_io;
SlmpTargetAddress::default() remains the own-station route 0x03FF.
| Constant | Value |
|---|---|
SlmpModuleIo::CONTROL_SYSTEM_CPU |
0x03D0 |
SlmpModuleIo::STANDBY_SYSTEM_CPU |
0x03D1 |
SlmpModuleIo::SYSTEM_A_CPU |
0x03D2 |
SlmpModuleIo::SYSTEM_B_CPU |
0x03D3 |
SlmpModuleIo::MULTIPLE_CPU_1 .. SlmpModuleIo::MULTIPLE_CPU_4 |
0x03E0 .. 0x03E3 |
SlmpModuleIo::REMOTE_HEAD_1 / SlmpModuleIo::REMOTE_HEAD_2 |
0x03E0 / 0x03E1 |
SlmpModuleIo::CONTROL_SYSTEM_REMOTE_HEAD / SlmpModuleIo::STANDBY_SYSTEM_REMOTE_HEAD |
0x03D0 / 0x03D1 |
SlmpModuleIo::OWN_STATION |
0x03FF |