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.
| 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. |
| 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. |
| 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.
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:
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: