The first step is to create a new project by opening RobotStudio and then choose Solution with Station and Virtual Controller inside the New tab of the side bar. In this example, the IRB 6620 robot model has been selected.

Next, let’s create the different I/O variables. To do so, a virtual device must be previously created, so the different bit signals can be mapped to bytes. In the Controller tab, double-click in the Configuration node located on the left navigation bar and then click on I/O System. Finally, right-click the EtherNet/IP Device option shown in the new screen to create a new one.

In the next screen, let’s pick at the top the template called ABB Local I/O Device, which will include some defaults. The values that must be changed are the Simulated option, set to True, and finally the Output Size and Input Size in bytes, which are the maximum number of bytes used. Then, click OK to create the device.

At this point, the proper I/O signals can now be created by right-clicking on the Signal option, below EtherNet/IP Device. In this screen, the individual bits and the group bytes will be created, including the mapping between them.

In order to create a signal, choose “Digital Input” (input bit) or “Digital Output” (output bit) as Type of the Signal and pick the previously created device in Assigned to Device. Finally, pick the desired bit number for the signal in the Device Mapping option. Also check that Access level is set to “All”.

Finally, let’s declare the bytes signals by choosing “Group Input” (input byte) or “Group Output” (output byte) as the Type of the Signal, and picking the previously created device in Assigned to Device. Finally, in Device Mapping, add the individual bits range to cover and check that Access level is set to “All”.

In order to refresh the I/O variables, it’s important to restart the controller by right-clicking on Robot -> Restart -> Restart (Warmstart), found in the left-side panel.

