Skip to main content

RobFlow 5.1.0

· 8 min read
RobCo Team
Product

Highlights

User-defined Variables

You can now create, edit, delete and observe Variables in RobFlow.

Variables can be used for custom parameters (e.g. to count the production output or build custom conditions) or you can read/write periphery signals (e.g. to control a digital output or change a Modbus register of a PLC to interact with sensors, actors and other devices).

This gives you powerful options to build more professional and dynamic Flows which serve your needs.

Currently, the following Variable types are supported:

  • Boolean
  • Integer
  • Float
  • Input (Digital Input)
  • Output (Digital Output)
  • Modbus Holding Register
  • Modbus Input Register
  • Modbus Coil
  • Modbus Discrete Input

Some types are read-only by design (Digital Input, Modbus Input Register, Modbus Discrete Input). That means their value cannot be changed by the user and they just hold the current value coming from a sensor, a PLC or any other device.

All other types are changeable by the user and contain an initial and a current value.

By default, these changeable types will be reset to their initial value on Flow start. You can further specify Variable settings to your needs though, such as making it a constant (= Variable cannot be changed after creation) or making it persistent (current value will not be reset on Flow start).

Variables can be either created globally (usable in all Flows and Subflows) or locally (for a specific Flow). You can create Variables in the respective Flow Variables and Global Variables Dropdown in the Change Robot State Menu.

User-defined Variables

Variable Node

The Variable Node allows you to change Variables within a running Flow. You simply select the Variable to be changed and define the desired value that should be assigned to it.

The new value is defined by an Expression. That Expression could just be a hard-coded value or include more complex logic (e.g. calculation or comparison with other Variables). It allows you to write any kind of valid Python Expressions.

When writing an Expression, you can press # to open the Variable selector and select a Variable you want to use in your Expression. Press the info-icon to get further information on how to work with Expressions.

For Boolean values, you can also just use a switch to define the desired value.

Condition and Do Until Condition Nodes

The generic Condition Node allows you to build complex, nested conditions based on user-defined Expressions.

Once an Expression evaluates to TRUE, it will continue the Flow in the respective output handle.

In contrast to the I/O Condition Node, you are not bound to one condition and a single input or output. With the Expression field you have full flexibility about how complex your condition should be.

The same applies for the new, generic Do Until Condition Node. It works exactly like the already existing Do until I/O Condition Node. The only difference is that the condition can now be defined by an Expression.

Condition and Do Until Condition NodesCondition and Do Until Condition Nodes

Expression support for other Nodes

Apart from the Variable and Condition Nodes, Expressions can now be used in many other Nodes, see the full list:

This allows for much more flexibility and interaction as values are not hardcoded anymore but dynamically adjustable.

Expression support for other NodesExpression support for other Nodes

Define next item for Stack, Grid and Palletizing Node

Stack, Grid and Palletizing Nodes now allow you to define which item should be approached next. All you need to do is to create a Variable for the item to be picked and to select it in the next item selector. This Variable could also be changed by an external device (e.g. a PC) via http-request or be directly bound to a Modbus/TCP register of a PLC to get the next-item value from there.

This gives you a lot of flexibility for your Flow logic, e.g. to pick items in a random order or to dynamically change the start item from the Dashboard. Note: to finish the Node, just set the Variable to a value outside the defined offset bounds.

Define next item for Stack, Grid and Palletizing Node

Dashboard Widgets to show and edit Variables

Variables can not only be used in the Flow Editor. They are also available on the Dashboard.

There is now one Widget to show the existing Global or Flow Variables and another Widget to let the user select and change a Variable.

Dashboard Widgets to show and edit variables

Customizable Dashboard Widgets

Dashboard Widgets can now be customized much more to tailor Dashboards to your needs.

In general, the color and size of all Widgets are now adjustable.

Furthermore, there are 2 new Button Widgets:

  • Generic Button
  • Custom Jogging Button

Generic Button Widget

The Generic Button Widget allows the user to design a button and assign custom functionality to it, e.g. on-click actions or activation conditions.

On-click actions could be to start/stop/pause/resume a Flow or to set a Variable to a defined value. If desired, the user can define activation conditions when this functionality and layout should be applied (e.g. when a Flow is running and the Robot is moving).

Custom Jogging Button Widget

The Custom Jogging Button allows the user to define its size, color and label and assign certain jogging functionality to it (e.g. to jog fast in z-direction).

Robot Visualizer

RobFlow shows a visual representation of the connected Robot & module configuration. You can upload environment files to visualize the surroundings as well (e.g. conveyor belts, CNC machines etc.) When you move the Robot in real life, this visualization will move as well.

Robot Visualizer

Authentication

RobFlow now has an authentication mechanism. First time you open RobFlow after the update, it will ask you to set a password. Afterwards, you will have to log in with this password in order to be able to do the following:

  • Open the Flow Editor
  • Open the Subflow Editor
  • Open the Dashboard Editor
  • Open Robot Configuration
  • Open protected Dashboards in Dashboard Viewer (see below)

Other parts of RobFlow are unprotected, e.g. the Robot Visualizer page.

Dashboards now have a Dashboard Config button in the top right corner. There you can define if the Dashboard should be protected or not. If it is protected, you will have to authenticate in order to display and use it.

You can change your password via the Robot Configuration panel. If you forget your password, please reach out to us and we can reset it for you.

The username is always “editor” and cannot be changed.

Minor Features

Landing Page

This release introduces a specific landing page. It shows button links to all different parts of RobFlow.

Landing Page

API Changes

Before this release, the backend supported 4 different API versions: v2.0, v2.1, v2.2 and v2.3.

With this new release, all those API versions were removed, there is only one valid API version now: v3.0.

This means, if you are using the API directly, you will have to adjust your URL calls to the new version, e.g. http://<ip>/api/v3.0/<endpoint> . Please consult the API Documentation page which you can access via the top-right misc menu in RobFlow. Otherwise, refer to the API documentation file attached to the release announcement email.

Miscellaneous

  • Allow free motion when Robot is pausing
  • Increase RoundRobin output count from 5 to 15
  • Optionally teachable Point C for Grid and Palletizing Nodes (will improve accuracy)
  • Reload Button for Modbus/TCP connections in Robot config
  • Add kiosk mode button in Dashboard Viewer
  • Modify peripheral IP via Robot Configuration
  • Robot state updates (current joint angles, current pose), is now much faster (every 20ms instead of every 500ms)

Fixes

  • Fixed blurry text on textareas
  • Decimal numbers can be inserted with comma and dot as delimiter
  • Show Move to Home Button in Dashboard Widget
  • Dashboard move to home: on tablet, fixed the keep pressed function
  • Dashboard jogging Widget: on tablet, fixed the keep pressed function
  • Tool Edit Menu should not be usable on Flow run
  • Prevent pasting Nodes when in input fields
  • Optimized reconnection mechanism for Modbus/TCP
  • Pause running Flow on controller disconnection instead of stopping it