Persistence, tags and counters
Beyond its type and value, every Variable carries a handful of flags that control how it behaves across restarts, who may change it, and how it is organized.
Initial value and current value
Each Variable has two values:
- The initial value is what you configure. It is the value the Variable starts from.
- The current value is what the Variable holds right now, while a Flow runs.
When the Robot restarts, a Variable is reset to its initial value — unless it is marked persistent.
Persistent
A persistent Variable keeps its current value across a restart of the Robot. Its initial value is only used the very first time.
Use it for anything that must survive a power cycle:
- A shift or total part counter.
- The current position in a Stack or Grid, so a partly emptied stack resumes where it stopped.
- A configuration an operator set from a Dashboard.
A persistent counter never resets on its own. If a Flow expects to start from zero, reset it explicitly with a Variable Node at the start of the Flow.
Read-only
A read-only Variable can be read in Expressions but not written. Nothing in a Flow, and no Dashboard Widget, can change it.
Use it to publish a value that the outside world sets — for example a Variable a PLC writes over Modbus or Profinet — and to protect constants that several Flows depend on.
Sync to Studio
Sync to Studio marks a Variable to be shared with RobCo Studio, so its value is visible outside the Control Unit. Leave it off for Variables that are only meaningful inside a single Flow.
Description
Every Variable can carry a free-text description. It is worth filling in for anything another person will meet later: which machine an I/O belongs to, what unit a Float is in, or what a String is expected to contain.
Tags
Tags are named, colored labels you attach to Variables. A Variable can carry several.
Tags are how you keep a large Variable set navigable:
- Group by cell, station or machine —
Station 1,Infeed,Gripper. - Group by purpose —
Counters,Recipe,Diagnostics. - Filter the Variables menu down to one tag while you work.
Tags are also used by the Set Variable Widget, which can be restricted to Variables carrying particular tags — so an operator only ever sees the Variables that concern them. See Robot Control Widgets.
Counter events
An Integer Variable can additionally be bound to a counter event, which is how RobFlow turns a Flow's own counting into production figures:
| Event | Meaning |
|---|---|
| Good count | Increment the count of good parts produced |
| Bad count | Increment the count of rejected parts |
Once bound, incrementing the Variable in a Flow also raises the corresponding event. The OEE Event Node covers the remaining machine states — idle, blocked, starved, producing, failure and fault.
Only Integer Variables can be bound to a counter event. In the Variables menu these appear under the Bound to Event filter.