Modalo

Modbus Data Logger:A robust Windows-based Modbus data acquisition and logging system designed for industrial applications, with support for multiple devices, flexible configuration, JSON-based register mapping, and detailed logging capabilities with advanced error handling.

c libmodbus json configuration
View on GitHub

Modalo - Modbus Data Logger

A robust Windows-based Modbus data acquisition and logging system designed for industrial applications, with support for multiple devices, flexible configuration, and comprehensive error handling.

Overview

Modalo is a professional-grade Modbus polling application that enables real-time data collection from multiple Modbus devices (RTU). It provides flexible configuration management, JSON-based register mapping, and detailed logging capabilities with advanced error handling.

Features

Core Functionality

Data Management

Reliability & Security

Platform Support

System Requirements

Installation

  1. Download the main branch
  2. Extract files to your desired installation directory
  3. Configure the application using the config file (see Configuration section)
  4. Compile and run the executable. Or download the release from bin.

Configuration

Config File Structure

The application uses an editable configuration file to specify:
- Device connection parameters (IP, port, or serial port)
- Polling intervals
- Plant code identifier
- Register map file path
- Output log file path
- Verbosity settings

Register Map (map.json)

Define your register mappings in JSON format:

{
  "registers": [
    {
      "name": "voltage",
      "address": 100,
      "type": "IEEE-float32",
      "endian": "big"
    },
    {
      "name": "current",
      "address": 102,
      "type": "U16",
      "endian": "little"
    }
  ]
}

Supported Register Types:
- U16: 16-bit unsigned integer
- U32: 32-bit unsigned integer
- IEEE-float32: 32-bit floating point

Usage

Basic Operation

.\bin\modalo.exe 

Output Files

Verbose Mode

Enable debug logging by setting verbose mode in configuration:
- Detailed function call tracing
- Register read/write debugging
- Connection status information

Version History

V1.0

V1.2

V1.3

V1.4

V2.0

V2.1

VX.X (pending)

Supported Devices

Modalo has been tested and verified with:
- Solis Inverters (V1.1+)
- ABB Inverters
-
- Generic Modbus RTU devices
- Generic Modbus TCP devices

Architecture

Components

  1. Main Application: Handles polling logic and file I/O
  2. libmodbus.dll: Core Modbus protocol implementation with hidden non-API exports
  3. Configuration Parser: Reads and validates config files
  4. JSON Parser: Processes register map definitions
  5. Error Handler: Centralized error logging and reporting

DLL Design

Troubleshooting

Common Issues

Connection Timeout
- Verify device IP/port or serial port settings
- Check firewall settings for TCP connections
- Ensure Slave ID matches device configuration

Register Read Errors
- Verify register address matches device documentation
- Check endianness setting matches device format
- Confirm register type (U16/U32/IEEE-float32) is correct

Incomplete Config File
- Validate JSON syntax in configuration files
- Ensure all required fields are present
- Check file encoding (UTF-8 recommended)

Parity Errors
- For RTU connections, verify parity setting matches device
- Common settings: None, Even, or Odd
- Recompile from source if using non-standard parity modes

Building from Source

The project includes source for:
- Main application (C/C++)
- libmodbus.dll wrapper (C)
- Configuration and JSON parsers

Build with Visual Studio 2019+ or compatible compiler with UCRT support.

License

MIT License

Contributing

Contributions are welcome! Please ensure compatibility with:
- Windows 9+
- Standard UCRT runtime
- Existing configuration file format (for backward compatibility)

Support

For issues, questions, or feature requests, please:
1. Check the Troubleshooting section
2. Enable verbose mode for detailed debugging information
3. Review log files in the configured output directory
4. Contact the development team with:
- Windows version
- Device model and Modbus version
- Configuration and map files (sanitized)
- Relevant log excerpts

Roadmap


Current Version: 2.1
Last Updated: May 5, 2026
Platform: Windows 9+