Alat untuk bekerja dengan protokol Modbus yang didukung oleh Rust/Tokio. Aplikasi tersedia online. Lihat di sini untuk detailnya.
Emulator budak yang menghasilkan jawaban acak untuk permintaan baca dan menerima perintah tulis secara positif. Berguna untuk pemeriksaan cepat master Modbus seperti sistem SCADA, implementasi klien khusus, dll.
Cara termudah adalah membangun dan menjalankan melalui Cargo. Secara default, Modbus TCP menggunakan port 502 yang, dalam banyak kasus, memerlukan hak akses root. Oleh karena itu semua contoh disajikan pada port 1502.
cargo run --bin slave-rnd tcp:0.0.0.0:1502
..
[2022-07-08T14:49:25Z INFO slave_rnd] start server 0.0.0.0:1502
[2022-07-08T14:49:25Z INFO slave_rnd] start message processor
[2022-07-08T14:49:25Z INFO slave_rnd] press Ctrl+C to exit
[2022-07-08T14:49:27Z INFO transport::tcp::server] 127.0.0.1:44544 connected
[2022-07-08T14:49:30Z INFO transport::tcp::server] 127.0.0.1:44548 connected
Jalankan dengan keluaran verbose.
RUST_LOG=trace cargo run --bin slave-rnd tcp:0.0.0.0:1502
...
[2022-07-08T14:50:16Z INFO slave_rnd] start server 0.0.0.0:1502
[2022-07-08T14:50:16Z INFO slave_rnd] start message processor
[2022-07-08T14:50:16Z INFO slave_rnd] press Ctrl+C to exit
[2022-07-08T14:50:16Z INFO transport::tcp::server] 127.0.0.1:56896 connected
[2022-07-08T14:50:17Z DEBUG codec::net::default] 127.0.0.1:56896 unpack [0, 197, 0, 0, 0, 6, 1, 3, 0, 0, 0, 10]
[2022-07-08T14:50:17Z DEBUG transport::tcp::server] 127.0.0.1:56896 RequestFrame { id: Some(197), slave: 1, pdu: ReadHoldingRegisters { address: 0, nobjs: 10 } }
[2022-07-08T14:50:17Z DEBUG transport::tcp::server] 127.0.0.1:56896 ResponseFrame { id: Some(197), slave: 1, pdu: ReadHoldingRegisters { nobjs: 10, data: Data { buffer: [145, 4, 173, 2, 122, 70, 61, 128, 56, 198, 89, 37, 62, 72, 5, 186, 233, 123, 79, 21] } } }
[2022-07-08T14:50:17Z DEBUG codec::net::default] 127.0.0.1:56896 pack [0, 197, 0, 0, 0, 23, 1, 3, 20, 4, 145, 2, 173, 70, 122, 128, 61, 198, 56, 37, 89, 72, 62, 186, 5, 123, 233, 21, 79]
[2022-07-08T14:50:17Z DEBUG codec::net::default] 127.0.0.1:56896 unpack [0, 198, 0, 0, 0, 6, 1, 3, 0, 0, 0, 10]
..
Jalankan dalam mode serial.
cargo run --bin slave-rnd serial:/dev/ttyUSB0:38400-8-N-1
Emulator budak memungkinkan menghubungkan N master. Beberapa master dapat menulis ke dalam register, dan yang lainnya dapat membaca. Penggunaan umum adalah penyimpanan sementara untuk menghubungkan berbagai komponen sistem.
Berlari:
cargo run --bin slave-exchange tcp:0.0.0.0:1502 udp:0.0.0.0:1502 serial:/dev/ttyUSB0:9600-8-N-1
..
[2022-12-07T19:43:18Z INFO transport::builder] start tcp server 0.0.0.0:1502
[2022-12-07T19:43:18Z INFO transport::builder] start udp server 0.0.0.0:1502
[2022-12-07T19:43:18Z INFO transport::builder] start rtu slave /dev/ttyUSB0:9600-8-N-1
[2022-12-07T19:43:18Z INFO slave_exchange] press Ctrl+C to exit
Mode yang didukung:
Transportasi yang didukung:
Fungsi yang didukung:
Biner ARMv7 dapat dijalankan, misalnya, pada Raspperry PI (32 bit) atau iMX6UL.
cargo build --target=armv7-unknown-linux-gnueabihf
cargo build --release --target=x86_64-pc-windows-gnu
budak-rnd - 194.60.201.127:502. Transportasi TCP dan UDP diaktifkan.
pertukaran budak - 194.60.201.127:1502. Transportasi TCP dan UDP diaktifkan.