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.

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.

The realistic alternatives, in order of how well they map to what this connector does:

  • Fieldbus I/O (EtherNet/IP, Profinet, etc.) - a genuinely independent path that doesn't require PC Interface, if the controller has the matching fieldbus card. Limited to digital/analog I/O signals only - no RAPID variables, position tracking, or operating-mode monitoring. The existing EtherNet/IP connector in this codebase can be used directly for this.
  • ABB IoT Gateway - a separate ABB product offering OPC UA (and MQTT via plugins) directly from the controller. Architecturally distinct from PC Interface, which makes it plausible it isn't subject to the same licensing gate, but this hasn't been confirmed - worth checking directly with ABB or a reseller before relying on it.
  • The controller's service port - a genuine way to connect without the PC Interface option, but it's a direct, local Ethernet connection intended for temporary maintenance access, not ongoing production monitoring over a LAN.