← Back to Blog

Building a Faster
Virtual PLC

Building a Faster
Virtual PLC
July 20th 20264 min read

A virtual PLC only earns its place if it runs control programs quickly and predictably on ordinary industrial hardware. We measured ours against OpenPLC, the best-known open-source PLC runtime, across ten kinds of control work.

Control Seat was faster on eight of the ten. The wins spanned Boolean logic, integer math, timers, counters, and the control-loop test that comes closest to how a real process program runs.

A note on scope. These are software benchmarks in a controlled environment, not measurements of a finished controller wired to field I/O. They show where the engine stands today, not how a certified system behaves on a plant floor.

Benchmark results

Control Seat led 8 of 10 tests

8/10

Control Seat was faster across logic, timers, counters, integer work, and realistic control loops.

1.9×Control loops
6.5×Timers
10.5×Counters
Full resultsNanoseconds · lower is faster
WorkloadControl SeatOpenPLCFaster
Counters · 5022231Control Seat 10.5×
Timers · 5025162Control Seat 6.5×
Integer math · 100119420Control Seat 3.5×
Integer math · 1,0001,3394,531Control Seat 3.4×
Control loops · 100118219Control Seat 1.9×
Control loops · 101318Control Seat 1.4×
Boolean logic · 1001926Control Seat 1.4×
Boolean logic · 1,000192254Control Seat 1.3×
Floating point · 10012882OpenPLC 1.6×
Floating point · 1,0002,2501,261OpenPLC 1.8×
Controlled software benchmark in the same test environment. OpenPLC led the two floating-point tests.

The number that actually matters

Counters produced the biggest headline, around ten times faster, but that is not the result I care about most. Counters are simple. The control-loop test is the one worth watching, because it mixes arithmetic, comparisons, limits, and state updates in a single pass. That is what a PLC does thousands of times a second in a running system.

Control Seat finished that workload about 1.9 times faster than OpenPLC. A synthetic loop is still synthetic, but this is the shape of real control code, and the engine handled it well.

Where OpenPLC won, and why we let it

OpenPLC came out ahead on the two floating-point tests, for a specific reason. It lets the compiler fuse a multiply and an add into one hardware step. That is quicker, but the answer can come out slightly different from one processor to the next. We do not allow that. A Control Seat program should compute the exact same numbers on every machine it runs on, so we keep the two operations separate.

When we rebuilt OpenPLC the same strict way, its floating-point lead went away. One of those tests flipped to us and the other came out a tie. We would rather stay predictable than win a row on a shortcut that changes results between processors.

Why a faster PLC is worth it

A PLC runs the same program on a fixed cycle, over and over. Every microsecond it does not spend on control logic is a microsecond left for everything else.

That headroom buys real things. The control program finishes well before its deadline even when the machine is busy, so timing stays predictable. Logging, live values, traces, and safety checks have room to run without crowding the logic. And an efficient engine means more controllers can share one industrial computer, or run on smaller, lower-power hardware.

None of that makes a PLC good on its own. Reliability, clean I/O, recovery after a fault, security, and staying consistent over months of uptime matter at least as much. A fast engine just gives the rest of the system the slack to do those jobs properly.

If you are working on controls infrastructure or evaluating software-defined PLCs, get in touch.

— Jack & Warren