Skip to content

stefanmoget/Modscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ModScan

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.

Features

Connection Support

  • Modbus RTU via RS485/RS232 serial communication
  • Modbus TCP via Ethernet/IP network communication

Interface

  • Horizontal two-column layout optimized for desktop monitors
  • Dark and light theme support
  • German and English language support
  • Real-time scan progress tracking

Scanning Capabilities

  • 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)

Multi-Register Decoder

Combine multiple registers into complex data types:

  • INT16 / UINT16 (1 register)
  • INT32 / UINT32 (2 registers)
  • FLOAT32 (2 registers, IEEE 754)
  • INT64 (4 registers)

Byte Order Support

  • Big Endian (ABCD)
  • Little Endian (DCBA)
  • Mid-Big (BADC)
  • Mid-Little (CDAB)
  • Optional word swap

Export

  • CSV export of scan results including combined register values

Installation

# Extract archive
unzip modscan-v2.0.zip -d modscan
cd modscan

# Install dependencies
npm install

# Start application
npm start

Usage

Modbus RTU Configuration

  1. Select Modbus RTU mode
  2. Choose serial port from dropdown
  3. Configure serial parameters (baudrate, parity, data bits, stop bits)
  4. Set Slave ID and register range
  5. Start scan

Modbus TCP Configuration

  1. Select Modbus TCP mode
  2. Enter device IP address and port (default: 502)
  3. Configure timeout if needed (default: 5000ms)
  4. Set Slave ID and register range
  5. Start scan

Register Combination

  1. Select registers from scan results using checkboxes
  2. Click "Combine Selected"
  3. Choose data type and byte order
  4. Preview calculated result
  5. Add to results table

Configuration Reference

RTU Parameters

  • Baudrate: 9600, 19200, 38400, 57600, 115200
  • Parity: None, Even, Odd
  • Data Bits: 7, 8
  • Stop Bits: 1, 2

TCP Parameters

  • IP Address: IPv4 address of Modbus device
  • Port: TCP port number (standard: 502)
  • Timeout: Connection timeout in milliseconds

Register Input Modes

  • Auto: Automatically detects hexadecimal input with 0x prefix
  • Hex: Direct hexadecimal input without prefix
  • Decimal: Standard decimal notation

Technical Stack

  • Electron 28.x
  • modbus-serial library for Modbus protocol implementation
  • serialport for serial communication
  • Node.js runtime

Building

# Development
npm start

# Production builds
npm run build:mac      # macOS
npm run build:win      # Windows
npm run build:linux    # Linux

License

Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

See: https://creativecommons.org/licenses/by-sa/4.0/

Author

Stefan Moget

About

Modbus RTU & TCP Scanner with Multi-Register Decoder

Resources

License

Stars

Watchers

Forks

Packages

No packages published