go-modbus
Modbus client and server for the functions of the specification: TCP, RTU, ASCII, TLS and UDP, typed register codecs, pooling, retries and a PDU tap for recording.
go get github.com/otfabric/go-modbusMBCAP, the capture format for what Modbus devices answered and when, so a virtual device can serve it again. Go library and mbcapctl to inspect, verify, convert, filter, merge and repair captures.
go get github.com/otfabric/go-modbus-captureThe README on GitHub has the full feature list, examples and changelog.
Modbus client and server for the functions of the specification: TCP, RTU, ASCII, TLS and UDP, typed register codecs, pooling, retries and a PDU tap for recording.
go get github.com/otfabric/go-modbusRead pcap and pcapng traces of Modbus/TCP offline: transactions, devices, poll patterns and address coverage. Library and mbtracectl, with timeline, sub-trace and MBCAP export.
go get github.com/otfabric/go-modbus-traceSunSpec over Modbus, both sides: discovers and decodes 112 built-in models into typed, scaled values, and serves simulated or real SunSpec devices.
go get github.com/otfabric/go-sunspecDeterministic, stateful Modbus TCP and TLS device simulator driven by JSON fixtures, with fault injection, request traces and CI assertions.
Identify, fingerprint, scan, poll, decode and write Modbus devices over TCP, serial and TLS. Record them to MBCAP capture files and replay those as a simulated device.
Detect, list, read and poll SunSpec inverters, meters and batteries, and serve a simulated device from a JSON file or a capture of a real one.
Cross-platform serial ports for RS-232 and RS-485, with a Modbus RTU preset.
go get github.com/otfabric/go-serialModbus TCP reference stacks: libmodbus, PyModbus, digitalpetri, NModbus and tokio-modbus.
Open a packet trace of Modbus/TCP traffic and see it in Modbus terms: every request with its response, per device, per poll and per register. Then export the real traffic to replay as a simulated device.
Connect to a SunSpec inverter, meter or battery and see every model it exposes fully decoded. Read once or poll, record and export, without ever writing to the device.