RobFlow 8.2
Highlights
RobFlow 8.2 reworks how RobFlow talks to Modbus/TCP devices and tightens up Flow control. The theme throughout is that failures should be visible: a read that fails now pauses the Flow and says so, and an output that the controller does not confirm stops the Flow rather than being assumed to have been applied.
- One socket per device: Connections sharing a host and port now share a single TCP socket and route by unit ID, so refreshing many Variables at once no longer exhausts a device's connection limit.
- Modbus writes off the event loop: Writes run in a worker thread, so the HTTP API, websockets, and safety server stay responsive even when a device goes offline.
- Read failures are reported: A failed Modbus read raises an error and pauses the Flow instead of passing silently.
- Confirmed outputs: "Set Outputs" waits for the controller to confirm each value, and stops the Flow — naming the Variable — if it does not.
- Reliable Stop and Pause: The Stop Node halts a Flow that is already paused, and a Pause Node reached in a parallel branch no longer needs a second resume.
Features & changes
One Modbus/TCP socket per device
Modbus/TCP connections configured with the same host and port now share one TCP socket, using the unit ID to route each request. Devices that allow only a handful of concurrent connections used to drop out when several Variables refreshed at the same time; that class of failure is gone.
Four behavior changes come with it:
- Connections open lazily, on first use, rather than at configuration time.
- Reachability is probed once per device at Flow start, not once per connection.
- Renaming a connection no longer drops it — the underlying socket stays up.
POST /reconnect-modbusreconnects the shared socket for every connection using it.
Duplicate connection warnings
Robot Config now flags Modbus/TCP connections that share the same host, port, and unit ID. Socket sharing makes duplicates harmless, so this is a tidiness warning rather than an error — but it points out configuration you can collapse.
Set Outputs waits for confirmation
The Set Outputs command now holds the Flow until the Robot controller confirms each value it applied. If a value is not confirmed, RobFlow stops the Flow, shows an error, and names the Variable involved, so you know which point on the I/O bank to look at.
Authentication on two Modbus endpoints
POST /reconnect-modbus and GET /variables/modbus now require authentication. If you call either from an external script or integration, add credentials before upgrading.
Fixes
Modbus/TCP
- Modbus condition Nodes report failed reads to the interface and pause the Flow.
- Writes to an unreachable device run in a worker thread while the Flow waits for confirmation.
- A failure inside a worker thread pauses the Flow and shows an error.
- Good/bad counter events and Variable problem states update reliably from worker threads.
- Saving Robot Config succeeds even when the save overlaps a reconcile cycle.
- Closing a connection waits for in-flight reads and writes on that socket to finish.
Flow control
- The Stop Node halts execution whether the Flow is running or already paused.
- Reaching a Pause Node while the Flow is already paused releases every branch on a single resume.
- The Do-Until Node runs its condition-matched branch while the brakes hold the Robot.
- Internal Subflow management runs independently of the safety state.
Startup and runtime
- Startup memory stays bounded while large or numerous Flows, Subflows, and Dashboards are migrated at once.
- Canceled asynchronous tasks are cleaned up correctly, which had been blocking Stop and Pause commands.