Release notes:
New
- Modbus Diagnostic Functions dialog: FC07 Read Exception Status, FC08 Diagnostics, FC11/12 Get Comm Event Counter/Log, FC17 Report Server ID, FC20/21 Read/Write File Record, FC22 Mask Write Register, FC24 Read FIFO Queue, and FC43 Read Device Information
- Save/Load Session: connection settings, Tags (with scaling), Address Table range, and live write bounds together in one file, not just Tags on their own
- U64/S64/F64 numeric formats (plus *_SWAP variants), alongside the existing U32/S32/F32
- Engineering-unit scaling gained a "multiply by constant" mode, alongside the existing linear (Raw/Scaled Min/Max) transform
- Write Value + Enter writes just that tag immediately, without selecting the row first
- Ctrl+scroll wheel zooms text size in the Status Log, System Logs, and Raw Data table
- Optional interface binding in Connection Settings ("Auto" or a specific NIC), plus a custom IP range and netmask-aware default range for Network Discovery
- Fast LAN Mode (Connection Settings, TCP) - short timeout, no retries, and an instant reachability check instead of retrying every tag when a device drops off
- Tags table: drag-to-reorder columns, a show/hide column picker, per-tag enable/disable, Delete key and Ctrl+C copy
- Raw Data: an Exception column distinguishing a device-returned error from a plain timeout, CSV export, and copy-as-text/hex-bytes
- Address Table: a register display format (U16/S16/U32/S32/F32) instead of only plain values
- Trend reworked around a tag picker: pen index, custom label, and a Raw/Scaled/Auto mode per pen, alongside the existing detach and engineering-scaling support
- Trend Record/Replay - capture active pens to a
.mltrendfile and play it back with speed control and a scrub bar, in a separate window that never touches the live Trend view - Show Statistics gained a failure-cause breakdown (connection/timeout/device-exception/rejected)
- A "Show Safety Warning Again" option under Tools, so dismissing it once doesn't mean never seeing it again
- A shared read cache and coalesced adjacent tag reads cut duplicate traffic between Tags/Trend/Address Table on the same poll cycle
- Scapy now ships bundled in the packaged app - no separate
pip install scapyneeded for the optional ARP Mode - A normal Windows installer (
ModbusLens-Setup-2.2.0.exe) alongside the portable exe - recommended if the portable exe won't start on your machine
Fixed
- Write-mode tags with a signed format (S16/S32) showed the raw unsigned register instead of the signed value in Read Value, but only when Count was 1
- Tags table selection was invisible, and a related write-safety gap where a row could stay logically "selected" for Write Selected/Remove after being visually deselected
- Connection Settings' network-interface dropdown overwrote a Target IP you'd already typed
- Start Monitoring button lost its "running" visual state after switching tabs away and back, even though monitoring was still active underneath
- Recent Connections dropdown bugs, and various connection/monitoring/CSV import edge cases
- Tag Monitoring's polling moved off the GUI thread, and Address Table/Trend/Script reads now share one interlock with it, closing several races where a scan, a script, and live polling could touch the connection at the same time
- Portable exe failing to start on machines with a non-ASCII Windows username, or antivirus interfering with its self-extraction - use the installer if you hit this
Upcoming
- Multi-target/multi-connection monitoring - coming in the next update