أدوات للعمل مع بروتوكول 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 masters. يمكن لبعض الأساتذة الكتابة في السجلات، ويمكن للآخرين القراءة. الاستخدام النموذجي هو التخزين المؤقت لتوصيل المكونات المختلفة للنظام.
جري:
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
العبد - 194.60.201.127:502. تم تمكين نقل TCP وUDP.
تبادل العبيد - 194.60.201.127:1502. تم تمكين نقل TCP وUDP.