Your PLC data should not cost more thanYourPLCdatashouldnotcostmorethanthe PLC.thePLC.
One connection to each controller. Out the other side: OPC-UA, Modbus, Sparkplug B, SQL and REST — all at once, from one in-memory tag store, without disturbing polling. Unlimited tags, perpetual licence, from ₹22,000 one-time.
The incumbents meter you by tag or by driver suite, then bill 16–20% of the licence again every year. This does the connectivity job they do, priced by how many controllers you actually read.
Windows and Ubuntu are the supported deployment targets, on x86-64. Docker Desktop is never required: the Windows installer provisions free Docker Engine inside WSL2, and the Debian package takes it from Docker's own apt repository. An arm64 build exists and runs, but has not been validated on a plant device.
siemens_6 · 192.168.1.6
18 tags good
tag
type
value
Clock_Byte
uint8
151
Clock_1Hz
bool
true
Clock_2Hz
bool
false
AlwaysTRUE
bool
true
System_Byte
uint8
4
Tag_1
int32
25,941
Clock_Byte · %MB1000–255
Replay of readings captured from a live S7-1500 during testing — CPU clock memory, so the bits genuinely toggle. Not a connection to a plant.
Adding an interface on the right never touches polling on the left — every share reads the same cache, so a new SCADA connection cannot slow a PLC down.
replayReplay of captured Sparkplug B DDATA frames from the S7-1500 test, sequence 10 to 15.spBv1.0/…/DDATA seq=10 Clock_Byte=151 Tag_1=25941 · 7 metrics, by alias
Verified on real hardware
S7-1500
18 tags, GOOD
Siemens over ISO-TCP, rack 0 / slot 1, read live
OPC-UA
18 variables
Browsed and read back by a third-party client
Sparkplug B
seq 10→15, no gaps
NBIRTH/DBIRTH/DDATA decoded by an external host
Report by exception
5–7 of 18
Only changed metrics per cycle, sent by alias
Measured against a live Siemens S7-1500, not a simulator harness. The Siemens driver, the OPC-UA server and the Sparkplug B bridge have been exercised end to end on real equipment. The Mitsubishi, Rockwell and Modbus drivers are implemented and unit-tested but have not yet been run against that vendor's hardware — we will say so until they have been.
What people build with it
The same gateway, six different jobs. Every one of them is somebody replacing a licence, a middleware box, or a week of integration work.
OEM / machine builder
Ship a machine your customer can already integrate
Every customer wants the data in a different place: this one runs Ignition, that one wants it in SQL Server, a third has an MQTT broker and a data team.
One gateway in the panel. It reads the PLC once and serves OPC-UA, Modbus, Sparkplug B, SQL and REST at the same time. You stop writing a bespoke integration per customer, and the licence ships with the machine.
SCADA developer
Get every controller into one address space
A brownfield line is a Siemens cell next to a Mitsubishi cell next to a decade-old Modbus meter, and your SCADA speaks one of them well.
Point the gateway at all of them, then point your SCADA at the gateway's OPC-UA server. Tags arrive with ISA-95 paths, engineering units and quality already attached.
MES / IT integrator
Land tag data in the database you already run
Getting PLC values into SQL usually means a historian licence, a connector licence, and a middleware box that someone has to own.
The SQL share writes straight into PostgreSQL, MySQL, SQL Server or SQLite — insert for history, upsert for a live mirror. The table is yours; the gateway never issues DDL against it.
IIoT developer
Sparkplug B without a middleware licence
Sparkplug is what makes an MQTT host discover your tags instead of an integrator mapping them by hand — and it is usually a paid module.
Birth and death certificates, self-describing metrics, aliases and sequence numbers. Included, not an add-on. Ignition, HiveMQ and Cirrus Link consume it directly.
Plant / maintenance
Know a gateway died, without driving to the plant
An edge box that stops publishing looks exactly like a line that stopped running, and you find out from the person who needed the report.
Every gateway heartbeats to the control plane with device health, tag quality, disk and buffer state. Pull logs, restart, or free space remotely from a closed list of commands.
Replacing Kepware
Keep the SCADA. Drop the connectivity bill
Kepware sits between your PLCs and your SCADA doing protocol translation, and renews every year whether or not anything changed.
This does that job — same OPC-UA interface out, same drivers in — for a one-time per-device fee. Your SCADA does not know the difference; it just connects to a different endpoint.
Against Kepware, Ignition, AVEVA and WinCC
An honest table, including the rows where we lose. Every price links to its source.
What a plant assembles today
Four products, four renewals, four vendors when data stops.
Kepware / KEPServerEX≈ ₹2.75L + 20%/yr
Protocol translation
MQTT / Sparkplug module≈ ₹1.3L
Cirrus Link or equivalent
SQL Bridge / DataLogger≈ ₹1.95L
Getting tags into a database
Fleet / IIoT platformseparate subscription
Knowing an edge box died
becomes
One service in the panel
Same interfaces out. One licence, no renewal.
PandaLogix Edge Gatewayfrom ₹22,000 one-time
All four jobs, one service
✓OPC-UA server
✓Sparkplug B
✓SQL logging
✓Modbus slave
✓REST readout
✓Cloud fleet view
Not a SCADA. If you need operator screens, keep the one you have and point it at this over OPC-UA.
PandaLogix Edge Gateway compared with PTC Kepware, Ignition, AVEVA InTouch and Siemens WinCC
PandaLogix
PTC Kepware
Ignition
AVEVA InTouch
Siemens WinCC
Licensed by
Device count. Unlimited tags
Driver suite, per server
Server + modules
Tag count
PowerTag count
Entry price
₹22,000 one-time
≈ ₹2.75L + 20%/yr
≈ ₹80k/node + 16%/yr
≈ ₹1.5L (1k tags)
≈ ₹3.9L (2.5k tags)
Perpetual licence
Yes
Perpetual or subscription
Yes
Moving to Flex subscription
Yes
Runs headless on a plant PC
Yes — Docker or native
Yes
Yes
Windows only
Windows only
Linux support
Yes
Windows only
Yes
No
No
OPC-UA server out
Included
Included
Module
Add-on
Included
Sparkplug B
Included
Add-on
Cirrus Link module, ≈ ₹1.3L
Add-on
Limited
SQL historian logging
Included — Postgres, MySQL, MSSQL
DataLogger add-on
SQL Bridge, ≈ ₹1.95L
Historian, separate
Separate
Cloud fleet management
Included
ThingWorx, separate
Separate
AVEVA Connect, separate
Insights Hub, separate
Full SCADA / HMI screens
No — that is not what this is
No
Yes, excellent
Yes, excellent
Yes
Installed base and ecosystem
New
Very large
Large
Very large
Very large
Where the others are genuinely better
Ignition and AVEVA build SCADA screens; this does not, and will not. Kepware has driver coverage two decades deep, including protocols we have never touched. All four have an installed base, a partner network and a support organisation that a new product does not. If you need operator graphics, buy one of them — and point it at this over OPC-UA, which is the combination most plants actually want.
Sources for every price on this page
PTC Kepware — OPC Connectivity Suite: ≈ €2,510–2,990 + 20%/yr maintenance. Connectivity only. No SCADA, no historian, no MQTT bridge.kepware-opc.cz
PTC Kepware — Typical first-year project: $7,000–12,000 + 20%/yr maintenance. A real multi-driver deployment, as budgeted by integrators.mdcplus.fi
PTC Kepware — 50-machine project: $30,000–60,000 + 20%/yr maintenance. First-year licensing for the connectivity layer alone, at plant scale.mdcplus.fi
Inductive Automation — Ignition Edge IIoT: $945 + 16%/yr maintenance. Edge node. Add the platform and modules for a full system.inductiveautomation.com
AVEVA (Wonderware) — InTouch HMI: $1,795. Perpetual, capped at 1,000 tags.machinecdn.com
AVEVA (Wonderware) — InTouch Unlimited Professional: $20,000. Perpetual, unlimited tags and clients.machinecdn.com
Siemens — WinCC Unified V19, 2.5k PowerTags: ≈ €4,230. Runtime licensed by tag count. More tags, more licence.rs-online.com
Reviewed August 2026. None of these vendors publishes complete list pricing, and all of them discount. Where only a range is public, the range is shown. Get a quote before you budget against any of it — including ours.
What it costs you over five years
Move the slider to your plant. The competitor figures are published list prices and sourced public estimates, with each vendor’s own maintenance rate applied — every source is linked in the assumptions, so check them.
Five-year total cost of ownership, licence plus published maintenance.
8
controllers
1 machinea line50 — a plant
Adjusting the controller count updates a five-year cost comparison against PTC Kepware and Ignition below.
PandaLogix₹1,76,000
₹1,76,000 once + nothing a year · 8 × ₹22,000 perpetual, and nothing after it
PTC Kepware₹10,47,813
₹5,23,907 once + ₹1,04,781 a year × 5 · licence at 8 machines, then PSP 20%/yr
Ignition₹11,56,680
₹6,42,600 once + ₹1,02,816 a year × 5 · 8 × Edge node, then 16%/yr
paid oncepaid again every year
Over five years you keep ₹8,71,813 against the cheaper of the two — and you still own the licence at the end of it. Their renewal is ₹1,02,816 a year at minimum, every year, for as long as you run it. Ours is nothing.
What is in these numbers
Ours is ₹22,000 per controller, once. No volume break is applied here and no maintenance is charged, so the five-year figure and the day-one figure are the same number.
Competitor figures are published list prices and sourced public estimates, converted at ₹85/$ and ₹92/€. Rates move and vendors discount; treat them as a starting point, not a quote.
PTC does not publish Kepware list pricing. This curve interpolates three public figures — a reseller’s price for the connectivity suite, and two third-party project estimates, “$7,000–12,000 for any meaningful scope” and “$30,000–60,000 for a 50-machine project” — taking the low end of every range. Sources are linked in the table above.
Kepware sells connectivity only. Add SCADA, historian and an MQTT bridge and the comparison moves further, not closer.
Neither competitor figure includes the engineering time to license, install and maintain per-tag counts, which is where integrators say the real cost sits.
Pricing
One-time, perpetual, priced by how many controllers a gateway polls. No tag metering, no renewal, no module unbundling.
Pricing, from a person
The shape of it is settled: a one-time perpetual licence, priced by how many controllers a gateway polls, with no per-tag metering and no annual maintenance attached to a machine you have already shipped. The estimator above puts a number on that at your machine count.
What it cannot price is your deployment — which controllers, what you are replacing, and whether you are embedding this in a machine you ship by the hundred. That comes from us, in writing, and usually the same working day.
✓One-time, perpetual — no renewal on a shipped machine
✓Priced by controllers, never by tag count
✓Every protocol and every northbound share in every tier
✓OEM-embed and volume terms if you ship this inside a product
What it does
Everything downstream of the drivers reads from one in-memory TagStore, never from a driver. A tag has exactly one name — its ISA-95 FQID — across the MQTT topic, the OPC-UA BrowseName, the Modbus register map and the REST path. Adding a northbound protocol therefore cannot destabilise PLC polling.
Reads
Southbound drivers connect, poll, decode and scale. One connection per device, shared by everything that consumes it.
Siemens S7
S7-300 / 400 / 1200 / 1500, LOGO
ISO-TCP · 102
Mitsubishi MELSEC
Q / L / iQ-R / iQ-F
SLMP · 1025
Modbus/TCP
PLCs, drives, meters, RTU gateways
Modbus · 502
Rockwell Logix
ControlLogix, CompactLogix
EtherNet/IP · 44818
OPC-UA client
Any third-party OPC-UA server
OPC-UA · 4840
Serves
Northbound shares publish the same poll to the plant's own systems. Writes are default-deny, permitted per tag and per share.
OPC-UA server
SCADA, MES, historians
opc.tcp · 4840
Modbus/TCP slave
Legacy HMIs, panel meters, older SCADA
5020
SQL / ODBC logger
Writes readings into a plant database
ODBC
MQTT bridge
A customer's own MQTT or UNS broker
outbound
REST
Custom applications, dashboards, scripts
on port 8000
It replaces a separate tag server
A gateway that only ships data to a cloud still leaves the site needing an OPC server for its local systems. This one serves both from the same poll, so for the common SCADA/MES integration cases it takes the place of a separate Kepware (or equivalent) installation: one connection to the PLC, one tag namespace, one thing to license and patch.
Cloud telemetry survives the link going down
Telemetry to PandaCloud runs over MQTT at QoS 1 with a disk-backed store-and-forward buffer that replays oldest-first when the link returns. It is separate from the northbound shares, which keep serving the plant either way.
Download and verify
Every build is published with its SHA-256. This gateway goes onto plant equipment, so check the digest before you run the file — the command for each platform is under its downloads.
Pick the machine you are installing on.
v3.0.0
Machine
Windows PC
Plant PC or server, 64-bit Windows 10 build 19041 or newer.
Build
Online installer
PandaLogixEdgeGateway-3.0.0-Setup.exe
x64
The normal Windows install. Runs the gateway as a container and pulls its image during setup.
Provisions Docker Engine inside WSL2 when the machine has no container runtime. Docker Desktop is never installed, and is used only if it is already there.
Needs internet during setup: the WSL2 core, the Ubuntu image and Docker Engine are downloaded from Microsoft and Docker.
Requires administrator rights, 64-bit Windows 10 build 19041 or newer, and virtualisation enabled in firmware.
The .exe is unsigned, so SmartScreen warns before it runs.
Before you install on Windows PC
Needs administrator rights and hardware virtualisation enabled in firmware.
With no container runtime present, setup provisions Docker Engine inside WSL2. Docker Desktop is used if already installed, but is never installed for you.
Verify what you downloaded
Run this in Command Prompt from the folder you downloaded into, then compare the digest it prints with the one on the card above. Comparison is case-insensitive. If they differ, delete the file — do not install it.
The gateway runs and serves the plant on its own. Activation is what connects it to this console.
1Run the installer
It provisions a container runtime if the machine has none, writes the configuration, starts the gateway and verifies that it answers before reporting success. Nothing mutable is written beside the code.
2Open the gateway's own UI
The gateway generates a local API token on first boot and serves its UI on port 8000. Browse to http://<gateway-host>:8000/ and sign in with that token.
3Issue an activation token here
Sign in to this console, open your organisation's Activation tokens tab and issue one. The plaintext is shown exactly once — only its digest is stored.
4Paste it into the gateway
Settings → Activate. The gateway exchanges the token for a session token and broker credentials, adopts the ISA-95 hierarchy for the site, and starts heartbeating. It appears in the console within a minute.
Choosing a deployment path
The container is the right answer on most machines and the wrong one on some. A container cannot be placed on a physical Windows NIC — network_mode: host inside WSL2 means the host of the virtual machine, not the Windows box.
Which install path suits which machine
The machine
Install path
Windows PC that polls PLCs over a routed network
Windows installer
Windows PC serving OPC-UA or Modbus to clients that route to its LAN address
Windows installer, with the advertised host set
Windows PC dual-homed onto an isolated OT VLAN, or a PLC that must reach the gateway at a fixed address on that VLAN
Native Windows serviceNot the container
Ubuntu or Debian server on the plant network
Debian package, on a machine that already has a container runtime
A laptop for development, a demo, or a proof of concept
macOS package — not a plant deployment target
The native Windows service is not one of the installers on this page. It is the PyInstaller build plus NSSM, installed with deploy\windows\install-service.ps1 from the release archive. Ask us for it if that is the machine you have.
Stated plainly
Windows and Ubuntu on x86-64, and the Raspberry Pi and NVIDIA Jetson on arm64, are the supported deployment targets. The boards take one package between them — the same arm64 build, because that is what they both run.
macOS is a development and demonstration host. It is not a plant deployment target: the .pkg is unsigned, the container cannot sit on a physical OT NIC, and because Colima is a per-user VM the gateway cannot start there before somebody logs in.
Docker Desktop is never required and never installed. The Windows installer provisions free Docker Engine inside WSL2, and uses an existing Docker Desktop only when one is already on the machine.
The Debian package needs a container runtime already present — dpkg holds the apt lock while it configures itself, so it cannot install one. The install script it ships, /opt/pandalogix-gateway/install.sh, provisions free Docker Engine from Docker's own apt repository. On macOS the installer provisions Colima — Apache 2.0, no GUI, no subscription.
A site dual-homed onto an isolated OT VLAN needs the native-service path, not the container.
Ready to activate?
Activation tokens are issued from the operator console: create the organisation, lay out its ISA-95 hierarchy, then issue a token for the gateway. The plaintext is shown once and never stored.