เครื่องมือสำหรับการทำงานกับโปรโตคอล Modbus ที่ขับเคลื่อนโดย Rust/Tokio แอพพร้อมใช้งานออนไลน์ ดูรายละเอียดที่นี่
โปรแกรมจำลองทาสที่สร้างคำตอบแบบสุ่มเพื่ออ่านคำขอและยอมรับคำสั่งเขียนในเชิงบวก มีประโยชน์สำหรับการตรวจสอบ Modbus ต้นแบบอย่างรวดเร็ว เช่น ระบบ SCADA การใช้งานไคลเอนต์แบบกำหนดเอง ฯลฯ
วิธีที่ง่ายที่สุดคือการสร้างและดำเนินการผ่าน Cargo ตามค่าเริ่มต้น Modbus TCP จะใช้พอร์ต 502 ซึ่งโดยส่วนใหญ่แล้วจะต้องมีสิทธิ์การใช้งานรูท ดังนั้นตัวอย่างทั้งหมดจะถูกนำเสนอบนพอร์ต 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
รันด้วยเอาต์พุตแบบละเอียด
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]
..
ทำงานในโหมดอนุกรม
cargo run --bin slave-rnd serial:/dev/ttyUSB0:38400-8-N-1
โปรแกรมจำลองทาสช่วยให้สามารถเชื่อมต่อ N ต้นแบบได้ อาจารย์บางคนสามารถเขียนลงในทะเบียนได้ และบางคนก็สามารถอ่านได้ การใช้งานทั่วไปคือการจัดเก็บข้อมูลชั่วคราวสำหรับการเชื่อมต่อส่วนประกอบต่างๆ ของระบบ
วิ่ง:
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
โหมดที่รองรับ:
การขนส่งที่รองรับ:
ฟังก์ชั่นที่รองรับ:
ไบนารี ARMv7 สามารถรันได้ เช่น บน Raspperry PI (32 บิต) หรือ iMX6UL
cargo build --target=armv7-unknown-linux-gnueabihf
cargo build --release --target=x86_64-pc-windows-gnu
ทาส-rnd - 194.60.201.127:502. เปิดใช้งานการขนส่ง TCP และ UDP
การแลกเปลี่ยนทาส - 194.60.201.127:1502. เปิดใช้งานการขนส่ง TCP และ UDP