Overview

The ABB connector provides tag-based read and write access to an ABB IRC5 robot controller, using ABB's RobotStudio PC SDK (ABB.Robotics.Controllers.*).

This connector requires the "PC Interface" (option 616-1) BaseWare option to be present and licensed on the target controller. Without it, network-based connections of any kind (including Robot Web Services) are rejected by the controller - see the note at the bottom of this page for alternatives if that option isn't available.

At connect time, the connector scans the network for controllers and matches one by its System GUID. Nine tags are always present (position/joint/operating-mode tracking); any additional configured tag reads either a digital/analog I/O signal or a RAPID variable. Reads and writes only occur while the controller reports its operating mode as Auto - while in Manual or any other mode, the connector stays connected but pauses all data activity until Auto mode resumes.

Parameters

Name Values Description
Type ABB The connector type identifier.
SYSTEMGUID GUID string Identifies which discovered controller to connect to, when more than one is present on the network.
TASK string The RAPID task name, used when reading/writing RAPID variables (both via a tag's RAPID: Address and via the WRITERAPIDDATA method).
MODULE string The RAPID module name, used the same way as TASK.
PUBLISHTAGS comma-separated list Which of the 9 built-in tags should have PublishValue/ChangesOnly enabled. Any built-in tag not named here stays internal-only (still readable, but not published).
UpdateRate milliseconds (integer) How often the connector polls all subscribed tags. Defaults to 1000.
ReconnectDelay milliseconds (integer) Delay between reconnect attempts while the controller is unreachable. Defaults to 5000.

Supported Tag Types:

Tag Type Address Behaviour
AROBTARGET AROBTARGET (built-in) The active mechanical unit's current Cartesian position. Read every cycle.
AJOINTTARGET AJOINTTARGET (built-in) The active mechanical unit's current joint position. Read every cycle; also automatically splits its value out into the six AXIS tags below.
OPERATINGMODE OPERATINGMODE (built-in) The controller's current operating mode (Auto/Manual/etc). Updated both on the regular poll and immediately via the controller's own OperatingModeChanged event.
AXIS1 - AXIS6 AXIS1 … AXIS6 (built-in) The six joint axis values, populated automatically whenever AJOINTTARGET updates - not read independently.
Digital/Analog I/O signal The signal name as configured on the controller (e.g. DO_GripperOpen) Read every cycle via the controller's I/O system. Digital signals return their boolean state; analog signals return their scaled value.
RAPID variable RAPID:<variable name> Read every cycle via RapidData, against the configured TASK/MODULE. Currently read-only through the standard tag-polling path - see WRITERAPIDDATA below for writing.

Connector Methods

Name Arguments Description
WriteData Type (DIGITAL/ANALOG), Address, Value Writes a value to a digital or analog I/O signal by name.
WriteRapidData Address, Value Writes a value to a RAPID variable, against the configured TASK/MODULE. Currently only supports RAPID bool variables - requests Mastership of the RAPID domain for the duration of the write, then releases it.

Both methods only run while the controller is connected and reporting Auto operating mode; calls made otherwise are rejected without contacting the controller.

Addressing

For the six built-in AXIS tags and AROBTARGET/AJOINTTARGET/OPERATINGMODE, the Address is fixed to the tag's own name and shouldn't be changed.

For anything else, the Address field determines how the tag is read:

  • A bare name (e.g. DI_PartPresent) is treated as a digital or analog I/O signal name, looked up directly on the controller's I/O system.
  • RAPID:<variable name> (e.g. RAPID:nPartCount) reads a RAPID variable from the configured TASK/MODULE, returned as its string value.

Diagnostic Codes

Code Type Description
1200 Error ABB Controller was not found (either no controllers discovered on the network, or none match the configured SYSTEMGUID)
1205 Error ABB Controller was found but the connection attempt failed
1305 Error Error reading from the ABB controller during a regular poll cycle
1405 Error Error applying an incoming value to a tag
1520 Error RunMethod threw an unhandled exception
1999 Error Connect() threw an unhandled exception not caught anywhere else (last-resort catch in Initiate's retry loop)
2100 Info Connector started
2210 Debug Invoking Connected event
2215 Debug Invoking ConnectionLost event
2220 Debug Attempting to reconnect
2225 Info Client connection re-established
2230 Debug HandleDisconnection event fired
2235 Debug HandleConnection event fired
2240 Debug MechUnitModeChanged event fired
2245 Debug OperatingModeChanged event fired
2250 Debug StateChanged event fired
2255 Debug ConnectionChanged event fired
2400 Debug ITag not present - ChangeData called for an unregistered tag name

A note on the PC Interface licensing requirement

If the "PC Interface" option isn't available or purchasable for a given controller, this connector cannot communicate with it over the network at all - this is a controller-side restriction, not something the connector can work around. Robot Web Services (RWS), despite being a separate ABB product, shares the same restriction - it is not a way to avoid the requirement.