What AyMON is
Automation as configuration, not as a new program for every plant
AyMON is an industrial monitoring and automation engine. It sits between the machines and the people and systems that need them: it reads PLCs, meters, sensors and cameras over their own protocols, keeps every value in one live tree, raises alarms, keeps history in SQL, and serves it all to web pages, other systems and AI assistants — in both directions.
Our claim is that automation should be described, not programmed again for every plant. In AyMON a connection, a device and a point are elements of one XML configuration; scaling, limits, alarm levels, history and access rights are attributes on them; the logic that is truly yours is a few lines of script beside the point it belongs to. What usually takes a gateway, a SCADA server, a historian and the code that glues them together becomes one engine and one configuration.
And it is the same engine everywhere. A project that runs on a Raspberry Pi beside a machine runs unchanged on a Windows PC by the line, on a Linux server in the plant, and on two or three servers that take over from each other when one fails. The configuration grows; the rules do not change.
And more
Not only a SCADA engine
AI assistants, inside your rules
Over MCP, an assistant such as Claude reads live values, history, alarms, events and the engine’s own logs, and looks into what is going on. If you allow it, it can also act: acknowledge an alarm, change a set point — only the points its role may write, and only as many as you allow at once.
Not only for factories
Data centres, buildings, labs and classrooms run on it too. It works with SQL Server, PostgreSQL and TimescaleDB, any ODBC database and its own built-in SQLite, and writes alarms, events and value history there by itself.
Cameras in the engine
USB and IP cameras (RTSP, MJPEG, ONVIF) are connections like any other. The engine takes the frames and analyses them itself: regions, counts, edges, motion, a pattern found in the picture — about 600 frames a second on a laptop.
Redundancy built in
Engines replicate to each other, and two or three servers form a cluster: when the master stops, a spare carries on from the same values within a second or two. Records on their way to the database survive a server going down.
In production
Proven on real systems
The same engine runs data-centre infrastructure monitoring (DCIM) systems in production. One of them, for a single building, follows more than 1 800 devices and 270 000 points — UPSs, PDUs, cooling units, generators, sensors and meters over SNMP and Modbus — on three entry-level servers that back each other up.
That is a starting point, not a ceiling: on larger servers the same engine serves more devices and more points, and a larger site spreads its work over more servers. Nothing in it needs a different engine or a different build.
How it works
On one side, the things that make data. On the other, the people and systems that need it. AyMON sits between them and speaks to both — in both directions, so a page or an assistant can also change a value, if it is allowed to.
Machines and devices
- PLCsModbus
- MachinesOPC UA
- Sensors, IoTMQTT
- Network gearSNMP
- CamerasRTSP, USB
- Anything elseTCP, serial
AyMON engine
- one live tree of values
- alarms and limits
- history in SQL
- logic in script
Windows · Linux · Raspberry Pi
People and systems
- Web pagesHTTP, WS
- DashboardsMQTT, REST
- ReportsSQL
- Mail, filesSMTP, FTP
- Another AyMONcluster
- AI assistantsMCP
Three ideas
Everything else follows from these.
Everything is an element
A connection, a device, one request to it, a single measured point — each is an element in one XML tree, with an address anything can read or write: con → dev → bi → io.
Configuration before code
Scaling, rounding, limits, alarms and history are attributes, not programs. Script — a language close to JavaScript — is for the logic that is really yours.
A change is an event
When a value arrives, the functions written beside it run in order: convert, round, check the limits, raise the alarm, publish. Nothing polls the tree.
What it looks like
A tank station on Modbus TCP: one connection, one device, one request for four registers, and the tank level with its scaling and four alarm limits. Not one line of script. Shortened from the example PRJEDU_modbus.
<con id="CN_MB" xdb_fnc="[CON.tcp,PRO.modbus]" con_mod="CLIENT" pro_role="MASTER"/> <dev id="TANK" pro_con="CN_MB" pro_adr="1" con_host="127.0.0.1" con_port="1502"> <!-- one request: read 4 holding registers, every second --> <bi id="TANK_BLK" pro_fni="3" pro_adr="0" pro_len="4" evt_fnc="[PRO.pol]" evt_per="1" pro_fnc="[PRO.inp]"> <!-- register 0, tenths of a percent --> <io id="TANK_LEVEL" pro_adr="0" pro_fnc="[VAL.put]" val_fnc="[VAL.cnv,ATR.rou,ATR.lmt,ALM.onlvl]" val_cnv_dlt="0.1" val_rou="0.1" val_unt="%" val_alm_onlhi_alm="95" val_alm_onlhi_wrn="85" val_alm_onllo_wrn="15" val_alm_onllo_alm="5"/> </bi> </dev>
Where it runs
- Windows x64, and Linux x86-64 (Ubuntu 22.04+, Debian 12+, RHEL 9 and alike).
- One executable and its libraries — no runtime to install, no database required.
- A FREE edition that never expires: enough for every example, for learning and for personal projects.
- Two engines can share one job — replication, and a cluster that fails over.
Repositories
Start with the examples: each one runs with a single command and needs no hardware, no licence and no database unless it says so.
AyMON
Runnable projects and short guides: Modbus, MQTT, OPC UA, SNMP, SQL, live web pages, a camera inspecting bottles, a PLC program, a PID lab, a robot cell, an AI assistant on a plant — and the engine for Windows, Linux and Raspberry Pi.
AyPLG
The plug-in SDK: add a protocol, a connection type, a script library or an SQL driver to the engine, in plain C, with one header.
AyDATA
The core library underneath: the type system, and the live XML tree with XPath and JSON that every value lives in.
AyMON is developed by Şenol Erçetin and licensed exclusively to AKYA Canada Inc.
Questions: Discussions · Support: support@aymon.ca · Licensing: licensing@aymon.ca
See it running
Examples from the repository
PRJEDU_vision — a camera inspects bottles on a filling line inside the engine: 100 frames a second, every bottle judged, no script for the watching.
PRJEDU_plc — a PLC program for a filling line: remote I/O over Modbus, a step sequence, interlocks and an HMI.
Editions
Free to start, licensed to grow
FREE
Never expires. Every protocol, production use included, within 8 connections and 8 devices.
Education
For classrooms and trying out: the same engine, 32 logged-in users.
Commercial
More connections, devices and users, and engines on separate machines.
News & Updates
Engine releases, guides and news from the plants that run AyMON.
AyMON now runs on Raspberry Pi
Until now AyMON has run on Windows and on Linux servers. The same engine now runs on 64-bit ARM as well: a Raspberry Pi 5 with 64-bit Raspberry Pi OS (Bookworm or Trixie), or another arm64 Linux board. The current release carries it, and the repository has it beside...
AyMON has a home of its own: aymon.ca
AyMON, the industrial monitoring and automation engine, now has a site of its own. Here you will find what the engine does, how to run it in five minutes, the guides, release notes and application news — and, in the coming months, online licensing.AyMON is...
Patent Pending for AyMON
We’re excited to announce that AKYA Canada has filed a patent application with the Canadian Intellectual Property Office (CIPO) for the core technology behind AyMON — our industrial automation execution engine. AyMON is designed to solve a fundamental...
Where to go next
See what the engine speaks, how the editions differ, or run your first example in five minutes.









