Skip to main content

RobFlow 8.2

· 4 min read
RobCo Team
Product

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-modbus reconnects 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.