modbus tools
1.0.0
Rust/Tokio가 제공하는 Modbus 프로토콜 작업을 위한 도구입니다. 앱은 온라인으로 제공됩니다. 자세한 내용은 여기를 참조하세요.
읽기 요청에 대한 무작위 응답을 생성하고 쓰기 명령을 긍정적으로 확인하는 슬레이브 에뮬레이터입니다. SCADA 시스템, 맞춤형 클라이언트 구현 등과 같은 Modbus 마스터를 빠르게 확인하는 데 유용합니다.
가장 쉬운 방법은 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 전송이 활성화됩니다.