Skip to main content

Binding a Variable to I/O

A Variable of type Input or Output is not a stored value — it is a digital channel on the Control Unit. Reading it gives you the live signal state; writing an Output drives the physical output.

Banks and channels

Digital I/O is organized into banks. A bank is one block of channels — the Control Unit's own I/O, or an attached I/O module — and each bank is either an input bank or an output bank.

To bind a Variable you pick two things:

  1. Bank — which block of channels.
  2. Input / Output — which channel inside that bank.

Both banks and individual channels can be given names in Robot Configuration. Naming them is worth the minute it takes: Infeed conveyor occupied reads very differently from Bank 1 / Input 3 when you meet it in an Expression six months later.

Creating an I/O Variable

  1. Open the Variables menu and create a Variable.
  2. Set the type to Input or Output.
  3. Choose the Bank, then the channel.
  4. Give it a name that says what the signal means, not where it is wired.

The editor shows the channel's current value live while you configure it, so you can toggle the sensor by hand and confirm you picked the right channel before you save.

Using I/O in a Flow

Once bound, an I/O Variable behaves like any other Boolean Variable:

Give the periphery time to react

An assignment in a Variable Node can carry a delay, which makes the Robot wait before it executes the next command. This is the usual way to let hardware catch up — for example waiting after opening a valve while a vacuum gripper builds up suction.

Inputs are read-only in effect

An Input reflects the physical state of a wire. Nothing in a Flow can change it — attempting to write one has no effect on the signal. If you need a value a Flow can set, use a Boolean Variable instead, and keep the Input for what the hardware reports.

Exposing I/O on a Dashboard

  • Input Display and Output Display Widgets show the live state of a bank's channels.
  • Set Outputs lets an operator drive outputs by hand.

See Robot State Widgets and Robot Control Widgets.

warning

Driving outputs by hand from a Dashboard bypasses whatever the Flow believes the machine state to be. Restrict Set Outputs to Dashboards intended for commissioning, and prefer marking the Dashboard as protected — see Dashboard settings.