Part 4 of 7 in our Edge to Enterprise in practice series. In Sense, Decide, Act we introduced Tributary, where an engineer draws a data flow in the browser and the controller loads it with no rebuild; this post is about the other half of that promise, changing a flow on a running line without anything happening that nobody decided.
Why "no rebuild" is not enough
A browser editor that changes a running controller is a real step forward. For a production manager it can also be alarming. A half-finished edit saved by mistake, a change sent while a machine is offline and then forgotten, a setpoint typed with an extra zero: each is the kind of surprise that turns a quick improvement into a stopped line.
Tributary is built so that a change reaches the machine only when someone means it to, and so that every change says what it did.
Save is not apply
On a unit as it ships, saving a flow from Tributary Studio only loads it. The controller reads the new job, checks it and holds it. Nothing that acts on the machine changes: the device it polls, the outputs it drives and the values it publishes all keep running from the job that was applied last.
The change reaches the machine on an Apply, a separate and deliberate step. Tributary Studio's Apply button sends it to the controller as a command, checked against the sender's role and logged. Until someone presses it, the loaded job is a draft the machine never sees.
Neither step breaks the systems that read the controller. Applying a new flow, renaming a signal or rewiring a node changes what the published values say about themselves, never the controller's published address space, so every SCADA, MES, historian and dashboard connected to it keeps working through every change.
An apply is never lost
What if the machine is offline when someone presses Apply? The request is held, not dropped. The operator panel says so - Apply held - and when the device answers again, the controller takes the request, however long it waited. Releasing a button or pressing it again cannot cancel a request that is waiting.
A reconnect is guarded too. Each time the flow starts running again, the controller checks that it has a poll plan made from the job it is running, and makes one if it has not. A flow never runs on reads that never happen.
A refused job is named, and the running one carries on
A job is checked before it runs. If the controller refuses one - a register count that does not fit its data type, for example - it says which row and why, in words a technician can act on. The plan already running stays in place.
And if the controller ever cannot be sure that a flow's logic and its poll plan come from the same job, the flow reads every value as invalid and refuses every write to the plant until they match. When in doubt, it does nothing to the machine.
Setpoints with limits, and a record of every change
Operators often need to adjust a value while the line runs: a target, a threshold, a speed. Tributary's operator values do that without a job change. Each has a range set by the engineer, and a maximum rate of change.
- Inside the range, it is accepted, and the controller moves towards it no faster than the rate the engineer set.
- Outside the range, it is refused, never clipped. Clipping hides a mistake; a refusal makes the operator look again.
- Off until they are switched on for the site. On a unit as it ships, live setpoints are refused.
- Every change is logged: the value, the old and the new, and the reason for any refusal.
Tributary Studio checks the settings as well: a flow whose range makes no sense, or whose starting value lies outside it, is not saved.
What it means for you
- For executives: improvement and stability stop being a trade-off. Changes are deliberate, checked and logged.
- For project managers: changes can be prepared during the day and applied at a planned moment, and an apply sent to an offline machine is never lost.
- For engineers: you see what was applied, what was refused and why. Out-of-range values are refused, not clipped, and a flow never runs on a plan from another job.
Change with confidence
If change on your line today means a maintenance window and crossed fingers, we would like to show you the alternative on one of your machines. Get in touch.
About CATIM. CATIM - Creating Automation Technology In Motion - empowers people to engineer automation solutions that solve hard technical problems. CATIM Nimbus, the CODESYS edge controller with advisory AI, is the next generation of the Nimbus platform it has built since 2019.