Modbus RTU & TCP Scanner with Multi-Register Decoder
Desktop application for scanning and analyzing Modbus devices with support for serial (RTU) and network (TCP) connections.
- Modbus RTU via RS485/RS232 serial communication
- Modbus TCP via Ethernet/IP network communication
- Horizontal two-column layout optimized for desktop monitors
- Dark and light theme support
- German and English language support
- Real-time scan progress tracking
- Holding Registers (Function Code 3)
- Input Registers (Function Code 4)
- Coils (Function Code 1)
- Discrete Inputs (Function Code 2)
- Configurable register input format (Auto/Hex/Decimal)
Combine multiple registers into complex data types:
- INT16 / UINT16 (1 register)
- INT32 / UINT32 (2 registers)
- FLOAT32 (2 registers, IEEE 754)
- INT64 (4 registers)
- Big Endian (ABCD)
- Little Endian (DCBA)
- Mid-Big (BADC)
- Mid-Little (CDAB)
- Optional word swap
- CSV export of scan results including combined register values
# Extract archive
unzip modscan-v2.0.zip -d modscan
cd modscan
# Install dependencies
npm install
# Start application
npm start- Select Modbus RTU mode
- Choose serial port from dropdown
- Configure serial parameters (baudrate, parity, data bits, stop bits)
- Set Slave ID and register range
- Start scan
- Select Modbus TCP mode
- Enter device IP address and port (default: 502)
- Configure timeout if needed (default: 5000ms)
- Set Slave ID and register range
- Start scan
- Select registers from scan results using checkboxes
- Click "Combine Selected"
- Choose data type and byte order
- Preview calculated result
- Add to results table
- Baudrate: 9600, 19200, 38400, 57600, 115200
- Parity: None, Even, Odd
- Data Bits: 7, 8
- Stop Bits: 1, 2
- IP Address: IPv4 address of Modbus device
- Port: TCP port number (standard: 502)
- Timeout: Connection timeout in milliseconds
- Auto: Automatically detects hexadecimal input with 0x prefix
- Hex: Direct hexadecimal input without prefix
- Decimal: Standard decimal notation
- Electron 28.x
- modbus-serial library for Modbus protocol implementation
- serialport for serial communication
- Node.js runtime
# Development
npm start
# Production builds
npm run build:mac # macOS
npm run build:win # Windows
npm run build:linux # LinuxCreative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
See: https://creativecommons.org/licenses/by-sa/4.0/
Stefan Moget