ModbusLens

Changelog

Major changes in every release. For the full, line-by-line detail - including smaller fixes and polish - see the GitHub repository or ModbusLens's own Help > About > Changelog tab.

v2.3.0 Upcoming

New

  • Modbus Diagnostic Functions dialog - exception status, diagnostics, comm event log, report server ID, file records, mask write, FIFO queue, and device identification
  • Save/Load Session - connection settings, Tags, Address Table range, and write bounds together in one file
  • U64/S64/F64 numeric formats, alongside the existing U32/S32/F32
  • Fast LAN Mode - instant unreachable-device detection instead of retrying every tag
  • Tags table: drag-to-reorder columns, a show/hide column picker, per-tag enable/disable
  • Raw Data gained an Exception column and an integrated Frame Viewer decoding TX/RX frames side by side
  • Diagnostics > Decode Registers - a standalone hex decoder (U16 through F64, HEX, binary, ASCII, BCD, individual bits, all four byte/word orderings), no connection needed
  • A shared read cache and coalesced adjacent reads cut duplicate traffic on the wire
  • Script engine gained ASSERT and an Assertion Results panel - checks log PASS/FAIL/ERROR without stopping the script on a failure
  • In-app documentation gained a "Full search" option across every topic at once
  • Network Discovery gained a "Scan Unit IDs (1-247)" option - sweeps every Unit ID on each confirmed Modbus host to report which ones respond
  • New "Find Devices" dialog - TCP network scan and serial parameter sweep in one shared results table, with a single Apply to Connection Settings for either

Fixed

  • Tag Monitoring's polling (read-mode and write-mode) moved off the GUI thread - a single unreachable device no longer freezes the whole window
  • Write-mode tags with a signed format showed the raw unsigned value instead of the signed one
  • Tags table selection was invisible, with a related write-safety gap around deselected rows
  • Script tab's example/help text is now real, scrollable content instead of clipped placeholder text
  • Run Script's live-system safety warning dialog now follows the app's theme
  • Connection Settings: selecting a Recent Connections entry - including the most recent one - now actually applies it

v2.2.0 Current

New

  • Modbus Diagnostic Functions dialog - the function codes beyond basic read/write (exception status, diagnostics, comm event log, report server ID, file records, mask write, FIFO queue, device identification)
  • Save/Load Session - connection settings, Tags, Address Table range, and write bounds together in one file
  • U64/S64/F64 numeric formats, alongside the existing U32/S32/F32
  • Fast LAN Mode - instant unreachable-device detection instead of retrying every tag
  • Raw Data gained an Exception column and an integrated Frame Viewer decoding TX/RX frames side by side
  • Tags table: drag-to-reorder columns, a show/hide column picker, per-tag enable/disable
  • A shared read cache and coalesced adjacent reads cut duplicate traffic on the wire

Fixed

  • Tag Monitoring's polling moved off the GUI thread - a single unreachable device no longer freezes the whole window
  • Write-mode tags with a signed format showed the raw unsigned value instead of the signed one
  • Tags table selection was invisible, with a related write-safety gap around deselected rows

v2.1.0

New

  • Light/Dark theme, with a "follow system" option
  • Scanner tab - auto-discover which addresses actually respond on a connected device
  • Serial Discovery - sweep baud rate/parity/stop bits/Unit ID to find an undocumented serial device's settings
  • Auto-reconnect with backoff, and monitoring resumes automatically once the connection comes back
  • Modbus ASCII framing support for serial connections, alongside RTU
  • Raw Data became its own dedicated tab - full wire-level diagnostics for every transaction

Fixed

  • Scanner/Serial Discovery could race with auto-reconnect or a manual disconnect, and closing the app mid-scan could crash instead of shutting down cleanly
  • Server tab's Unit ID field did nothing - the simulator answered on any unit ID
  • Monitoring's auto-stop-after-repeated-failures didn't actually stop

v2.0.0

  • Modbus Serial (RTU) support, alongside TCP
  • Scripting tab - a small test-sequence language (WRITE/READ/WAIT/LOG/LET) with a safety warning before running against a live device
  • Multi-window support - connect to more than one device at once, each in its own window
  • Built-in documentation (Help menu)

v1.1.0

  • Server/slave mode - act as a Modbus TCP device so another master can poll ModbusLens
  • Trend tab with live graphing
  • Per-tag alarms (high/low limits) and CSV logging of live values
  • ARP-based network discovery and Modbus device detection

v1.0.0

  • Initial public release
  • Modbus TCP client - connect, read, and write coils/registers from an address table
  • Tag table for monitoring named addresses, with safety interlocks around live writes
  • Standalone Windows executable