OpexFlow: The Kepware Alternative for Industrial Data Connectivity
Looking for a Kepware alternative? OpexFlow covers the same industrial connectivity (Modbus, OPC-UA, FOCAS, MTConnect) and adds flow-based transforms, a canvas UI, and native OpenTelemetry in one binary.
Kepware (now PTC ThingWorx Kepware) has been the default answer for “how do I get data out of my PLCs and CNCs?” for two decades. It works. But teams evaluating it today keep running into the same walls: per-tag pricing that punishes high-density floors, a driver-by-driver licensing model, and a stack that stops at connectivity. If you’ve googled “Kepware alternative,” this post breaks down what OpexFlow does differently — and where the two products overlap.
What Kepware is good at
Credit where it’s due. Kepware’s strengths are real:
- Breadth of drivers. Modbus, OPC-UA, EtherNet/IP, Siemens, Mitsubishi, Omron — hundreds of device profiles.
- Maturity. It’s battle-tested in plants that have run it for 15+ years.
- OPC server role. It’s a reliable bridge from proprietary protocols onto standard OPC-UA.
If your only need is “translate protocol A into OPC-UA and hand it to a SCADA or historian,” Kepware is a safe pick.
Where teams start looking for a Kepware alternative
The friction shows up once you go beyond pure connectivity:
- Per-tag pricing. A dense CNC shop or a plant with thousands of registers gets expensive fast. Budget gets eaten by the data layer, not the application.
- Connectivity is only step one. Raw register values aren’t useful until they’re normalized, filtered, enriched, and routed. Kepware hands you a firehose; your transform layer lives somewhere else — usually a brittle chain of Node-RED flows, custom scripts, or a message broker.
- No first-class transformation. Want to drop noisy machines, convert units, or map vendor fields to a canonical schema before they hit your warehouse? You’re bolting on another tool.
- Operational weight. Driver installs, version mismatches, Windows host dependencies.
What OpexFlow does instead
OpexFlow is an industrial data middleware — connectivity and in-flight transformation in one licensed engine. Think of it as the Kepware connectivity layer and the “make this data useful” layer collapsed into a single static binary with an embedded UI.
Same connectivity ground
OpexFlow ships native adapters for the protocols that matter on a modern floor:
- Modbus TCP — registers mapped to axes, spindle, and metadata.
- OPC-UA — subscriptions with typed node mappings and security.
- MQTT and NATS — streaming ingest under
opexmx.ingest.*. - FOCAS — Fanuc CNC data via Fanuc’s
fwlib30.dll(Windows-only; the adapter self-disables with a clear status on Linux/ARM). - MTConnect — cross-platform CNC on any OS.
Every event is normalized at the source boundary to a single CanonicalMachineData struct, so downstream transforms and sinks always see the same shape regardless of protocol. (See the docs for the full adapter reference.)
Transforms built in, not bolted on
This is the big one. Two transform engines run per source route:
- A native DSL evaluated directly against the in-memory event — no JSON marshalling, no interpreter VM. It runs 15–50× faster than an equivalent script for filters and field math.
- A sandboxed JavaScript runtime for anything the DSL can’t express (loops, regex, vendor-field reshaping).
And you rarely write either by hand: the AI transform generator emits DSL or JS from a plain-English description, server-validated before it lands. Try that in Kepware.
One binary, edge to server
OpexFlow cross-compiles to a single musl static binary — including ARM64. The same artifact runs on a Raspberry Pi, an industrial gateway, or a rack server, with the React canvas UI embedded. No runtime, no host dependencies, no driver installers.
Observability that’s actually native
Prometheus metrics at /metrics, per-record OpenTelemetry traces, a SQLite history series, and sink-stall alerting — all viewable in the built-in Observability tab. Point Grafana or Datadog at /metrics and you’re done. No sidecar collector.
Pricing: per node, never per tag
Kepware’s per-tag model penalizes dense floors. OpexFlow licenses per node (one running instance on one host) — unlimited flows, tags, and device connections on that host. A Starter node is $499/year; production HA is $1,490/node; Enterprise is a flat annual license for unlimited sites and nodes under one legal entity. See pricing.
When to pick which
| Need | Pick |
|---|---|
| Pure protocol → OPC-UA bridging, huge legacy driver list | Kepware |
| Connectivity + transform + routing + edge, one binary, per-node pricing | OpexFlow |
| Cross-platform CNC (Linux/ARM) | OpexFlow (MTConnect) or Kepware (Windows FOCAS) |
The bottom line
If Kepware’s bill is scaling with your tag count, or you’re tired of stitching connectivity, Node-RED, and a broker into a fragile pipeline, OpexFlow replaces that whole chain. Connect anything, transform in flight, deliver anywhere — from one licensed engine.
Ready to see it on your floor? Request a license or read the quick start.
Related: Why OpexFlow is the Node-RED alternative and Modbus to ClickHouse the right way.
Poll, normalize, transform, and deliver machine data — Modbus, OPC-UA, MQTT, FOCAS, MTConnect — from edge to warehouse.