Record and analyse your PLC data – free and open source

Siemens S7 and TIA (also optimized blocks), Allen-Bradley, Beckhoff, OPC UA, Modbus, Mitsubishi, Omron and more – mixed in one recording. Live trends on the desktop, in the browser or headless on a Raspberry Pi; CSV, SQL and time-series databases, Grafana.

Windows · Linux (AppImage, .deb, Raspberry Pi) · macOS · English and German · LGPL-3.0

Demo mode: live trends with trigger marks, then offline with rulers
Siemens S7-300/400/1200/1500, TIA symbolic, LOGO!, S5 Allen-Bradley Logix, Micro800, MicroLogix, SLC Beckhoff TwinCAT ADS OPC UA Modbus TCP / RTU Mitsubishi MELSEC Omron FINS KEYENCE KV JTEKT TOYOPUC

What it does

Live trends

Several charts and pages, zoom, rulers, value table, bar graphs, Bool signals, offline view of recordings.

Databases & Grafana

CSV plus SQLite, MariaDB/MySQL, PostgreSQL/TimescaleDB, QuestDB, InfluxDB 3, VictoriaMetrics, Prometheus – with a generated Grafana dashboard.

Triggers & alarms

Event log with acknowledgement and notes, marks on the time axis, notifications via e-mail, Teams, Slack, webhook, ntfy or Telegram.

Recording by trigger

Pre- and post-trigger like an oscilloscope – only the interesting part is stored.

Analysis

XY chart, FFT, PID controller tuning from recorded step responses, computed variables with formulas, PDF reports per shift/day/week/month.

In the browser

Built-in web server with HTTPS and users: charts, rulers, export, events and process view on PC, tablet and phone.

Headless & Raspberry Pi

Runs as a service; touchscreen panel for network, Wi-Fi, time from the PLC and display dimming. Desktop clients connect over the network.

IO check

Commissioning aid: signal list, matrix, swapped wires, analog test points and protocol – also on the phone.

OPC UA server

Provides the recorded values to SCADA and HMI systems.

Screenshots

Supported controllers

DriverControllers / protocolTested
s7Siemens S7-300/400/1200/1500, PUT/GET✅ real PLC
tiaSiemens S7-1200/1500 symbolic, also optimized blocks, without PUT/GET🧪 S7-PLCSIM Advanced, emulator
logoSiemens LOGO! 0BA7/0BA8⬜
s5as511Siemens S5 via the PG interface (AS511)⬜
clxAllen-Bradley ControlLogix, CompactLogix, Micro800✅ real PLC
pcccAllen-Bradley MicroLogix 1100/1400, SLC 500⬜
adsBeckhoff TwinCAT 2/3 via ADS, with symbol browser⬜
opcuaOPC UA – Beckhoff, B&R, Codesys, Siemens, Omron, Kepware …, cyclic or subscription🧪 own OPC UA server over the network, asyncua server
modbus / modbus_rtuModbus TCP, Modbus RTU serial (several devices per port)🧪 pymodbus server (TCP) · ⬜ RTU
slmpMitsubishi MELSEC iQ-R, iQ-F, Q, L⬜
finsOmron CJ, CS, CP, NJ/NX (FINS/TCP, FINS/UDP)⬜
kvhostlinkKEYENCE KV (Host Link)⬜
toyopucJTEKT TOYOPUC (Computer Link)⬜

✅ tested with a real controller · 🧪 tested against a simulator/emulator on every push · ⬜ implemented from the protocol documentation, not yet tested with hardware – feedback very welcome. All seven databases and Grafana are tested against real servers.

Missing a controller? A driver is a single Python file – see Developing drivers.

Try it in two minutes

Download the package for your system from the latest release, start PLC Datenlogger and click Demo – simulated values, no PLC needed. Or from source:

pip install -r requirements.txt
python src/plc_logger.py --demo

Questions, ideas or want to show your setup? Discussions · Bugs: Issues