Downloads

Version Changes
3/28/2026

Bug fix

IEC 60870-5-103: IED General Interrogation response now scoped to the requested slave address only — previously all configured addresses were returned regardless of which slave was interrogated

Bug fix

IEC 60870-5-101: IED now discards frames with invalid checksum instead of processing them

Bug fix

IEC 60870-5-101: IED now echoes the correct QOI byte in GI actcon/actterm/deactcon responses

Bug fix

IEC 60870-5-101: IED counter interrogation deactivation (COT=8) now receives a deactcon instead of being rejected

Bug fix

IEC 60870-5-101: maximum variable-frame payload length corrected from 253 to 255 bytes

Bug fix

IEC 60870-5-102: IED counter interrogation data now sent with COT=37 instead of COT=20

Bug fix

IEC 60870-5-102: IED actterm for CI command types 120–123 now correctly applies to all integrated-total families

Bug fix

IEC 60870-5-102: Control Center now recognizes actterm for command ASDU types 104–123

Bug fix

Communication interfaces: TCP server now disposes IEC 104 session context on client disconnect, preventing resource leaks

Bug fix

Address Tracking: deleting a slave now fires correct removal events for each child address

Change

IEC 60870-5-101: IED dirty-address tracking is now per-connection so multiple simultaneous sessions no longer interfere

Change

IEC 60870-5-104: STOPDT handshake is now initiated and awaited before closing connection, preventing loss of in-flight data

Change

IEC 60870-5-104: IED dirty-address tracking is now per-connection; GI/CI status fields show live values

Change

IEC 60870-5-104: IED logs CP56Time2a timestamps from timed command variants to the comment stream

Change

IEC 60870-5-104: settings now warn when w exceeds ⅔ of k, as recommended by the standard

Change

ABB RP570: IED dirty-address tracking is now per-connection

New

Address Tracking: snapshot — take a point-in-time snapshot of all tracked addresses and compare live data against it, with color-coded highlighting for changed rows and phantom entries for removed addresses

New

Address Tracking: timestamp sanity check — timestamp column cells are highlighted when the protocol timestamp differs from the received time by more than a configurable threshold

New

Events: timestamp sanity check with configurable threshold highlighting

New

Alarms: timestamp sanity check with configurable threshold highlighting

v3.2.9581.41217

3/26/2026

Change

If Quality (Flags) changes will also send to Events

New

Events can be set as suppressed from Events window

New

Alarms can be set as suppressed from Alarms window

New

New setting to disable Events when Quality/Timestamp changes

v3.1.9567.35319

3/12/2026

Bug fix

PCAP import/export could leak file handles and produced unnecessary memory spikes for gzip files

Bug fix

Packet-builder queue could accept null or empty commands silently

Bug fix

IEC 60870-5-101: Control Center was not using the configured link address when sending requests

Bug fix

IEC 60870-5-101: Responses were accepted regardless of link address — incoming frames are now filtered by the configured link address

Bug fix

IEC 60870-5-101: IED mode did not properly execute many control commands — single, double, regulating-step, bitstring, and setpoint commands now behave correctly and return the expected confirmations

Bug fix

IEC 60870-5-101: Link handling mixed up two reply codes during polling — communication state and "no data" responses are now interpreted correctly, improving poll stability

Bug fix

IEC 60870-5-101: Protection-event ASDUs M_EP_TD_1, M_EP_TE_1, M_EP_TF_1 showed incorrect timestamps — CP56 time is now formatted correctly

Bug fix

IEC 60870-5-101: CP56 time parsing could throw for invalid date components — invalid dates now return a safe fallback instead of crashing

Bug fix

IEC 60870-5-101: FT1.2 payload limit of 253 bytes was not enforced — oversized frames are now rejected in CC, IED, and the command builder

Bug fix

IEC 60870-5-101: Link address width was handled inconsistently across the code — now normalized everywhere

Bug fix

IEC 60870-5-102: IED mode only sent an ACK instead of actual counter data — IED now builds and returns real IEC102 data ASDUs from tracking objects

Bug fix

IEC 60870-5-102: Sunday was encoded as 0 in CP56 day-of-week — corrected to 7 per protocol specification

Bug fix

IEC 60870-5-102: COT negative and test flags were not retained during packet parsing

Bug fix

IEC 60870-5-102: Parser could go out of range for ASDU types above the table limit

Bug fix

IEC 60870-5-103: Multi-object ASDUs with SQ=0 (sequential) were not parsed correctly — INF now increments for sequential objects and per-object FUN/INF pairs are read for SQ=1 (individually addressed)

Bug fix

IEC 60870-5-103: IEC103 tracking and tracer-creation used inconsistent address representations — now uses a unified packed FUN/INF address throughout

Bug fix

IEC 60870-5-103: IED mode only sent ACK instead of real data — IED now builds and returns actual IEC103 variable-frame ASDUs from tracking objects

Bug fix

IEC 60870-5-103: Frames were not checksum-validated before dispatch in IED mode

Bug fix

IEC 60870-5-103: Sunday was encoded as 0 in time-sync commands — corrected to 7

Bug fix

IEC 60870-5-104: 15-bit sequence number wrap was not handled correctly — sequence numbers now wrap at 0x7FFF as required

Bug fix

IEC 60870-5-104: TESTFR state was lost after a TESTFR exchange — previous state is now saved and restored correctly

Bug fix

IEC 60870-5-104: STARTDT used t1 timeout instead of t0

Bug fix

IEC 60870-5-104: W-window check used simple linear comparison, which failed across 15-bit wrap boundaries — now uses modulo-safe arithmetic

Bug fix

IEC 60870-5-104: U-format frames (TESTFR, STARTDT, STOPDT) were incorrectly modified by FixSeqNo

Bug fix

IEC 60870-5-104: Fragmented TCP frames were re-read from the wrong source buffer during reassembly

Bug fix

IEC 60870-5-104: Execute-without-select was silently ignored for most command types — now returns a proper negative actcon

Bug fix

IEC 60870-5-104: Invalid DCO (double command) and RCO (regulating step) values 0 and 3 were accepted — now rejected with negative confirmation

Bug fix

IEC 60870-5-104: GI and CI requests used hardcoded originator address 0 instead of the configured value

Bug fix

IEC 60870-5-104: Command builder used hardcoded originator address 0

Bug fix

IEC 60870-5-104: S-format APCI was constructed incorrectly in the packet builder

Bug fix

IEC 60870-5-104: Graph 1 help boxes used the Graph 3 color scheme

Bug fix

IEC 60870-5-104: Signed BCR (binary counter reading) values were displayed as unsigned

Bug fix

ABB RP570: IED mode decoded frames with its own offset logic instead of using the shared parser — IED now uses the canonical RP570 decode path

Bug fix

ABB RP570: CC response detection read from the wrong byte index (RTU byte instead of FCODE byte)

Bug fix

ABB RP570: GOM tracking objects were created with the wrong type (SPM instead of GOM)

Bug fix

ABB RP570: SPM/GOM IED emulation sent no reply when the target address was not found — now returns NXR

Bug fix

ABB RP570: Tracking and text analysis could crash on truncated payloads for AVM, DVM, PCM, DVL, PCT, SPM, GOM, ERMD, ERMI, ERMC, CBXC, EXC, IHC — bounds checks added throughout

Bug fix

ABB RP570: Command builder silently truncated object numbers above the 11-bit limit — now throws an explicit error

Bug fix

ABB RP570: IDM split menu visibility was based on fragile name-string parsing — now uses type-based check

Bug fix

ABB SPA-bus: SPA reply sending was broken by the shared framework — IED and CC replies are now correctly transmitted

Bug fix

ABB SPA-bus: Request-state tracking used a fixed 1000-entry array — replaced with a dictionary to handle any slave identifier safely

Bug fix

ABB SPA-bus: Non-numeric or out-of-range slave identifiers could cause an exception during tracking

Bug fix

ABB SPA-bus: Request state was not cleared when re-opening a session — stale entries from a previous session no longer affect the next one

Change

IEC 60870-5-102: Incoming frames were not checksum-validated in IED mode

Change

IEC 60870-5-103: Type 1 and Type 2 event values now include Relative Event Time (RET) and Fault Number (FAN) where present

Change

IEC 60870-5-103: IEC103 custom columns now have correct labels matching the displayed data (Address, Flow, FC, ASDU, COT, FUN, INF)

Change

IEC 60870-5-104: Value text added for clock sync (C_CS_NA_1), delay acquisition (C_CD_NA_1), and parameter ASDUs

Change

ABB RP570: Command-response matching for CBR is now object-aware; EXR/NXR fallback uses oldest pending command by time

Change

ABB RP570: ERMA, ERMD, ERMI text output now includes sequence number and time-quality information

New

IEC 60870-5-101: IED mode now responds to counter interrogation (C_CI_NA_1), read (C_RD_NA_1), clock synchronization (C_CS_NA_1), test (C_TS_NA_1), and delay acquisition (C_CD_NA_1) commands

New

IEC 60870-5-101: CC now logs when the slave reports link service not functioning (FC=14) or not implemented (FC=15)

New

IEC 60870-5-102: Counter interrogation now covers the full IEC102 CI command family (types 104–123) instead of only type 104

New

IEC 60870-5-102: Single-point read workflow added: CC and IED now support C_SP_NA_2 and C_SP_NB_2

New

IEC 60870-5-102: Data Flow Control (DFC) is now respected — CC pauses sending when the slave signals busy

New

IEC 60870-5-102: CP56 timestamps are now extracted and shown for time-tagged IEC102 packets (M_SP_TA_2, M_TI_TA_2)

New

IEC 60870-5-102: Command builder now selects the correct CI variant and single-point command type based on the tracking object

New

IEC 60870-5-103: CC now prioritizes Class 1 polling when the slave signals ACD (has Class 1 data available)

New

IEC 60870-5-103: CC and IED now filter frames by the configured IEC103 link address (broadcast 0xFF is always accepted)

New

IEC 60870-5-103: Reserved control bit (bit 7) violations in received frames are now rejected

New

IEC 60870-5-103: Negative confirmation (COT=21) is now logged when the slave rejects a command

New

IEC 60870-5-104: New configurable settings: Originator Address, Allow Clock Sync, Require Select-Before-Operate (SBO)

New

IEC 60870-5-104: Preference panel now warns when t2 ≥ t1 or w > k

New

IEC 60870-5-104: APDU length is now validated (minimum 4, maximum 253 bytes)

New

IEC 60870-5-104: Clock synchronization (C_CS_NA_1) is now gated by the Allow Clock Sync setting — disabled by default

New

IEC 60870-5-104: Delay acquisition correction (C_CD_NA_1) is now applied when processing subsequent clock sync commands

New

IEC 60870-5-104: Select-before-operate redesigned with 30-second SBO timeout and per-address tracking

New

IEC 60870-5-104: Parameter ASDUs (110–112) and file-transfer types (120–127) now return explicit "unsupported type" negative confirmations

New

IEC 60870-5-104: Originator address validation: non-zero configured OA rejects mismatching incoming ASDUs

New

IEC 60870-5-104: GI retry logic: CC retries general interrogation up to 3 times on timeout before proceeding to counter interrogation

New

IEC 60870-5-104: Row coloring: slave-to-master frames are shown in white, master-to-slave in light gray

New

IEC 60870-5-104: Control format decoding: I/S/U format is now clearly shown in packet details (e.g., NS=x NR=y, STARTDT.act, TESTFR.con)

New

IEC 60870-5-104: Protection-event ASDU types (17–19, 38–40) and control types C_TS_NA_1 / C_CD_NA_1 added to the packet table

New

ABB RP570: IED now rejects frames with invalid checksums before processing

New

ABB RP570: CC now validates checksums for both fixed and variable frames before updating state

New

ABB RP570: IED now has explicit response behavior for FTAB and TDC commands

New

ABB RP570: IED now validates TSI payload length: short payloads receive NXR, valid payloads receive EXR

New

ABB RP570: SCI rearm now triggers after a configurable inactivity timeout (5 minutes)

New

ABB RP570: PMRV tracking now decodes individual block/value pairs instead of only a summary event

New

ABB RP570: Truncated packets now show explicit [TRUNCATED] markers in text analysis instead of risking index overruns

New

ABB SPA-bus: Incoming SPA frame checksums are now validated; frames with incorrect checksums are flagged; XX checksum bypass is supported

v3.0.9512.32882

1/16/2026

Bug fix

Auto-reconnect now works again

Change

Proper IEC 60870-5-104 implementation for master and slave

Change

Full support for ABB RP570 protocol, including ERMI

Change

Performance improvements

New

IEC 60870-5-101 support for both master and slave, in addition to monitoring

New

IEC 60870-5-102 support for both master and slave, in addition to monitoring

New

Full IEC 60870-5-103 support for monitoring, master and slave

New

New automatic visual indication of events with time gap, to simplify finding new events

New

New event popup to indicate new events with clear message

New

Proper warnings if IEC 60870-5-10x messages are wrong or invalid

New

Mark tested signals as Accepted for easy FAT/SAT testing

New

Quick sending of Single/Double commands to client from tracking window (context menu)

New

Change visible columns (right mousebutton on header)

v2.13.9458.18220

11/23/2025

Bug fix

Playback function was broken, now working again

Change

Improved performance for loading SerialMon MON-files

Change

Updated components

New

New window for import of RTU560 Excel file, where columns can be selected manually (with preview)

v2.12.9447.36836

11/12/2025

Change

Updated components

Change

Cleanup of deprecated components

Change

IPv4-scanner: Updated manufacturer MAC-database

v2.11.9434.28373

10/30/2025

New

Changes highlighted in grids

New

Better performance and smaller filesize

v2.10.9432.38056

10/28/2025

Bug fix

RP570 PacketBuilder was broken

Bug fix

Popup menu at grids in main window was not working

Bug fix

Solved freeze that could happend with a lot of packets

Bug fix

SerialMon v2.10.9426.35941 did not start. Please re-install.

Change

Updated components

Change

Serious improvement in loading files

New

Show number of addresses in main window status bar

New

New function to delete addresses in Address Tracker

New

Filter function for Events/Alarms to show only addresses with a user name/comment

v2.10.9408.35428

10/4/2025

Change

Updated components