Control Seat V0.2.3
V0.2.3 is the largest release we've shipped. Control Seat has, until now, been a system that watched your plant — it read tags, drew charts, and raised alarms. This release makes it a system that also runs your plant, and one you can ask questions of in plain language.
Three things are new: a soft PLC, an edge runtime you can put on real industrial hardware, and an intelligence layer.
Control Seat runs logic now
The soft PLC
You can write Structured Text and run it inside Control Seat. There is no separate controller to download to and no build-and-deploy dance: a program's I/O is ordinary tag bindings, so anything Control Seat can read or write, your logic can read or write.
Alongside programs you can build reusable Function Blocks, Functions, and shared Data Types, so common logic is written once and called everywhere.
Structured Text is the only authoring language at launch. Ladder and Function Block Diagram are not available to write in yet.
Publishing is the deploy. Programs swap at a scan boundary, so a running process never sees a half-applied change.
Forces are governed, not ad hoc
Forcing a value in most systems is a sticky note on a running machine — someone does it at 2am and nobody remembers. In Control Seat a force requires a reason, carries an expiry, and is recorded in an immutable audit trail with who applied it and from where. Forces are explicit only: they never happen as a side effect of something else.
Active forces are cleared and audited when the runtime restarts, so a force can't quietly survive a reboot and surprise the next shift.
Deployments are signed
Every program is signed before it runs, and a runtime checks that signature before it executes anything. What's running on the machine is provably what you published — not an older copy, and not something altered on the way there.
Writes behave predictably
An operator write to a tag the PLC owns is never blocked or silently swallowed. It goes through to the device, and if the program is scanning it will write its own value on the next pass — the same behaviour operators already expect from Ignition. If one point can't be delivered, only that point is affected; the rest of the program keeps running.
Edge runtimes
One command to enroll
Enrolling a Raspberry Pi or an industrial PC is a single setup command. It pulls a signed runtime package, registers the device, and brings it online against your workspace.
Reinstalling is the same command. If a device was half-installed, is already enrolled, or needs pointing at a different workspace, the same setup command reinstalls it cleanly rather than leaving you to unpick the previous attempt by hand. Step-by-step setup is in FR202 Setup.
Updates are one click, and yours to trigger
Enrolled runtimes are offered updates through a signed release catalog. Nothing moves on its own — an operator chooses when a device takes an update, which matters when the device is holding outputs on a live process.
Real I/O on real hardware
Local I/O works on OnLogic FR202 (16 digital in, 16 writable digital out) and on supported Raspberry Pi GPIO profiles. Points appear as ordinary tags — no special I/O type, no separate lifecycle, and nothing stopping you deleting one.
Worth saying plainly: FR202 electrical, restart, and power-loss qualification is still pending, and analog and RTD channels aren't available as tags yet. Treat it as ready to build and pilot with, not as qualified for an unattended production line.
Plant traffic stays on the plant
Cloud workspaces configure and monitor connections, but Modbus, serial, and other field traffic runs on the enrolled runtime. Field devices never need to be exposed to the internet.
Talking to the rest of the plant
Control Seat reads from field devices over Modbus, OPC UA, EtherNet/IP, DNP3, MQTT and Sparkplug B, and plain HTTP. It can also serve data back out — Modbus TCP server and S7 server let existing SCADA and Siemens clients poll Control Seat as if it were a controller.
Every connection has real limits, and picking the wrong one wastes a site visit. What each protocol can and can't do — which roles exist, and which don't — is listed in Virtual PLC I/O Support. Read it before you specify hardware.
The intelligence layer
Ask your plant a question
There's a chat that answers questions about your process using your actual history, asset model, and uploaded plant documents. Conversations are saved and organised in folders, so an investigation you did last month is still there when the same problem comes back.
Compare periods
Pick two time windows — this batch against last batch, this week against the same week last year — and get a structured comparison rather than two charts you eyeball side by side. Comparisons can be saved and revisited.
Watchdog
Define what "normal" looks like for a signal and get told when it stops being normal, without writing an alarm expression for every failure mode you can imagine in advance.
An asset model
Tags can be organised into an asset tree with relationships between equipment, so the system can reason about the plant's structure rather than a flat list of tag names.
Fixes worth calling out
- Buttons that write more than one tag now work. A script binding that did several things in sequence — set a value, then write two tags — would fail and do nothing at all. Single-line scripts were unaffected, which made it look random. Scripts now behave the same in the editor preview as they do on the published screen.
- Dragging a tag onto a screen is reliable. Dropping a tag from the Tags panel onto the canvas sometimes did nothing at all. It now lands every time and opens the component menu.
- The built-in AI assistant works. Every request on the included plan was failing with an error that pointed you somewhere unhelpful. It works now, and if you ever do hit a limit the message tells you which one and what to do about it.
- Charts of rarely-changing values keep the fix from V0.2.2, now applied consistently everywhere history is read.
Upgrading
Cloud workspaces are updated for you. Enrolled edge runtimes will show an update as available and apply it when you choose — if a runtime is holding outputs on a live process, take the update during a window where you can watch it.
That's V0.2.3. If you only look at one thing, make it the PLC: write a few lines of Structured Text, bind them to a couple of tags, and publish. It runs immediately, and it's the same tag system you're already using.