1. Help Center
  2. ABB
  3. Setting up Robot IO

Configuring ABB IO

How to set up and use your robot controller's IO in ForgeOS

This guide covers how to set up robot IO from scratch.

  • If you are looking to restore a previous IO configuration that you had before initial ForgeOS setup, follow this.
  • If you are looking to restore of previous IO configuration during a ForgeOS update, follow this.

Table of Contents

 

Overview

When you add an ABB robot device in ForgeOS, four digital inputs (DI_1-DI_4)* and 18 outputs (DO_1-DO_17 and AO_1)* automatically appear in the Device Configuration IO table. These simulated signals are reserved for internal ForgeOS use. ForgeOS uses these signals to recover from errors, check if robot motion is possible, and start and stop motion programs.

Suppose you select the DC checkbox next to all of these reserved signals so that they all appear in the Device Control app. If you for instance try to change the state of DO_15* with the LOW/HIGH buttons in Device Control (or with a Set block in Task Canvas), you will get a "Setting Digital Output Failed" error. In this case, this error is because ForgeOS is using that signal to read if the robot is in PROGRAM Mode or RUN Mode.

Note: *The number and order of existing reserved IO signals are subject to change.

 abb-io-forge-cannot-set-system-output-error-notification-pop-up-corner
abb-io-forge-cannot-set-system-output-error-notification-pop-up
 

The order that signals appear in ForgeOS depends on the order that RobotStudio provides them. To view this order, open the EIO.cfg file that you downloaded from Device Configuration when you were adding your robot device.

 

Tip: If you are using a Windows computer, open this file with the following steps:

  1. Open File Explorer.
  2. Go to your USB drive's forge-os > ready-abb-driver > Config folders.
  3. Double-click "EIO.cfg".
 

The reserved signal "fos_sig_auto_mode" is the 15th digital output signal listed. This translates to DO_15 in ForgeOS.

abb-io-do15-eio

Even though you could not directly change the state of DO_15, you can indirectly change it from the Device Status Panel.

  • When the robot is in PROGRAM Mode, DO_15 is LOW.
  • When the robot is in RUN Mode, DO_15 is HIGH.

device_status_panel_abb_program_run

Because all the other existing signals are similarly already used by ForgeOS, you must create new signals if you want to wire IO devices to the robot controller and then read and/or control them in ForgeOS. The new signals that this guide will walk you through adding will appear at the bottom of your new EIO.cfg file in the order that you added them in RobotStudio. New bottom entries here will translate to new bottom entries in the ForgeOS Device Configuration IO table. From there, you will be able to rename the new signals and use them for your IO devices!

 

Tip: View an EIO.cfg file that includes the controller's latest data with the following steps:

  1. In RobotStudio, connect your computer to the controller.
  2. In the top menu, click Save Parameters.
  3. Select a folder to save the new configuration files to.
  4. After saving, go to that folder.
  5. Double-click "EIO.cfg".
 
abb-io-new-eio
 

Wiring Your Inputs and Outputs

On the IRC5 Compact controller, terminal blocks XS12, XS13, XS14, and XS15 are accessible from the front.

abb_controller_x12_x13_x14_x15

The pins on each of these terminal blocks are labeled 1-10. Refer to the following table for pin assignments and internal connections.

Block Pins 1-8 Pin 9 Pin 10
XS12 Digital Input 0V (Internally connected to XS13 - Pin 9) NC
XS13 Digital Input 0V NC
XS14 Digital Output 0V (Internally connected to XS15 - Pin 9) 24V (Internally connected to XS15 - Pin 10)
XS15 Digital Output 0V 24V

 

Refer to the following table and schematic for an example of connecting these terminal blocks to 0V and 24V. For more information, refer to ABB documentation.

Pin Destination Function
XS16 - Pin 1 XS15 - Pin 10 24V
XS16 - Pin 2 XS15 - Pin 9 0V
XS14 - Pin 9 XS13 - Pin 9 0V

abb-io-wiring-24v-0v

XS12, XS13, XS14, and XS15 are internally connected with the IO unit (DSQC 652). It’s standard for this IO unit to come with the IRC5 Compact controller. Because DSQC 652 is mounted inside, XS12, XS13, XS14, and XS15 are designed for connecting to it. You do not need to open the controller to wire anything directly to DSQC 652.

 


Adding the DSQC 652 Device in RobotStudio


Now it’s time to create a DSQC 652 device in RobotStudio to later map signals to.

Once you connect a computer with RobotStudio to the controller, follow these steps:

  1. Select Request Write Access
  2. In the Configuration - I/O System menu, right-click DeviceNet Device. Select New DeviceNet Device.

    abb-io-new-devicenet-device

  3. Select the DSQC 652 VDC I/O Device template.

    abb-io-new-devicenet-device-template

  4. Change the Address from 63 to 10. The rest of the fields should match the following image.

    abb-io-new-devicenet-device-parameters

  5. Click OK to save. Your new device will appear in the table.

    abb-io-new-devicenet-device-table

  6. A pop-up appears to warn you that you need to reboot the controller to apply the change. Click OK to clear the message, but to save time, wait to reboot until you add signals in the next section.

    abb-io-reboot


Adding Signals in RobotStudio


Now it’s time to create signals that map to the DSQC 652 device that you created.

Follow these steps:

  1. Select Request Write Access.
  2. In the Configuration - I/O System menu, right-click Signal. Select New Signal.

    abb-io-new-signal

  3. In the Instance Editor, follow these substeps for adjusting signal parameters:

    abb-io-new-input-signal-parameters

    1. Type in a Name for your signal. This name will help you identify this signal in RobotStudio. The name will not directly carry over to ForgeOS, but you can later type this name again in ForgeOS as the signal’s “Display Name” for a similar result.
    2. Select a Type of Signal (such as “Digital Input” or “Digital Output”).
    3. In the Assigned to Device dropdown, select the DSQC 652 device that you created in the previous section.
    4. In the Device Mapping field, enter a value that corresponds to the pin that you wired the input or output to. The count for these mapping values begin at 0 (whereas the count for the values that are printed on the terminal blocks begin at 1). For example, suppose you want to wire two lights, two buttons, and a switch. You can wire and map these devices as follows:
      Name Terminal Block Pin No. Device Mapping Value
      Test_DI_1 XS12 2 1
      Test_DI_8 XS13 1 8
      Test_DI_9 XS13 2 9
      Test_DO_0 XS14 1 0
      Test_DO_1 XS14 2 1
    5. Set the Access Level to All. This will allow you to read and/or control the signal in ForgeOS.
    6. Click OK to save. Your new signal will appear in the Configuration - I/O System signal table.
  4. Reboot the controller to apply the change. This will allow the signals to appear in ForgeOS in the next section.

    abb-io-reboot

Note: If the “Restart” menu is unavailable, press the READY Pendant E-Stop or the ABB controller E-Stop. This will stop all programs. Now you will be able to Warm-Restart. (You can also just use the power switch on the controller.)

Tip: After rebooting, go to the left side panel in the RobotStudio Controller menu. If you double-click I/O System (i.e., the option that is its own menu dropdown, not the option under "Configuration"), you can view signal statuses. Signals with a gray “0” to the left of its name are LOW. Signals with a yellow “1” to the left of its name are HIGH. You can use this screen later to help with signal identification and troubleshooting.

abb-io-signal-table-mapped-to-d65

If the ABB pendant alerts you to naming or device mapping conflicts, follow its instructions to resolve those conflicts.

 


 

Using the Signals in ForgeOS


The ABB pendant now displays a message that says, "An update has been ordered. An update of program configuration is done." Acknowledge that message to clear it.

The READY pendant displays an “I/O Configuration Mismatch” warning. This section covers how to clear this warning and use the new IO signals that you created.

abb-io-forge-mismatch

  1. In Device Configuration, complete these substeps:
    1. Select your robot device and tap Edit.

      abb-io-forge-configured-devices-select-to-edit

    2. Tap ROBOT IO CONFIGURATION to edit the robot’s IO configuration.

      abb-io-forge-device-configuration-robot-io-configuration-highlight

    3. Tap ACCEPT NEW to accept the new IO configuration.

      abb-io-forge-accept-new-io-configuration

    4. Verify that your new signals appear at the bottom of the table.
    5. Type in a Display Name. This will make it easier for you to identify your signals.
    6. Select the DC checkbox for the signals to appear in the Device Control app.

      abb-io-forge-device-configuration-add-display-name-inputs

    7. SAVE your changes.
  2. In Device Controls, complete these substeps:
    1. Go to the robot’s Signals tab.
    2. Verify that the read-only input state fields change as you control your device.

      abb-io-forge-device-control-signals-inputs

    3. Verify that the writeable output state buttons control your device.
      abb-io-forge-all-outputs-high
  3. In Task Canvas, open the robot’s block glossary. Use the new signals in Set and Check blocks.

    abb-io-forge-variable-selector

Note: Use a similar variable selector in Rule Engine to set and/or check your new IO signals in the background of Task Canvas tasks.