ABB robot

Connecting to an IRC5 or OmniCore controller over Robot Web Services.

An ABB robot (Robot Web Services) connection reads an IRC5 or OmniCore controller. Its standard state is a catalog of signals, which the robot panel, the pose figure and the DataBorder's robot records read without tags.

Connection

Open Connections, choose Add connection and set the source to ABB robot (Robot Web Services). The fields that every source shares are on the Connections page.

The connection form for an ABB robot: host, username, password, port, TLS verification and the shared fields.The connection form for an ABB robot: host, username, password, port, TLS verification and the shared fields.
An ABB robot connection.
FieldDescription
Robot host / IPThis is the address of the robot controller.
Username, PasswordThe factory default is Default User with the password robotics. The password is stored on the camera and is never returned by the interface or included in exports.
Port (blank = auto)Leave it blank. The camera tries HTTP and then HTTPS on the standard ports.
Verify TLS certOmniCore controllers ship with a self-signed certificate, so verification is off by default. Turning it on against a stock OmniCore fails the connection.

IRC5 with RobotWare 6 over HTTP and OmniCore with RobotWare 7 over HTTPS are detected automatically.

Signals

Open Tag library and choose Catalog next to the connection. The standard catalog is listed even while the robot is offline. When the robot answers, its I/O signals and RAPID symbols are listed after it.

The Available signals dialog for an ABB connection: panel, execution, motion, event and system addresses, each with its type.The Available signals dialog for an ABB connection: panel, execution, motion, event and system addresses, each with its type.
The ABB signal catalog.
GroupAddressReports
Panelpanel.ctrlstate, panel.opmode, panel.rollup, each also as #code; panel.speedratioThe controller state, the operating mode, the roll-up status, and the speed in percent.
Executionexec.state and exec.state#code, exec.cycle, exec.routine, exec.line, exec.stmtWhether RAPID is running, the cycle mode, and the program pointer as routine, line and statement.
Motionmotion.joint.1 to motion.joint.6, motion.tcp.x, .y, .z, motion.tool, motion.wobjJoint angles in degrees, the TCP position in millimeters, the active tool and work object.
Eventselog.last.code, elog.last.severity, elog.last.title, elog.last.seqThe latest event log entry. Severity is 1 for information, 2 for warning and 3 for error.
Systemsystem.name, system.rwversion, system.robottype, system.energy.powerThe system name, the RobotWare version, the robot type and the average power in watts.

The #code addresses are state tags and take a state map from these codes. See Tags.

AddressCodes
panel.ctrlstate#code0 init, 1 motoroff, 2 motoron, 3 guardstop, 4 emergencystop, 5 emergencystopreset, 6 sysfail
panel.opmode#code0 INIT, 1 AUTO, 2 MANR, 3 MANF, 4 AUTO_CH, 5 MANF_CH, 6 UNDEF
exec.state#code0 stopped, 1 running
panel.rollup#code0 RUNNING, 1 STOPPED, 2 ALARM, 3 GUARD STOP, 4 E-STOP, 5 SYS FAIL

The roll-up is a worst-of summary. It starts from the execution state, rises to ALARM for ten minutes after an error, and a guard stop, an emergency stop or a system failure overrides it.

Addresses by hand

Choose Add tag to read a signal that is not in the catalog. Each one costs one request per poll.

  • io:Network/Device/Signal reads an I/O signal. Two parts assume the Local network, and a bare name is searched for on the controller.
  • rapid:Task/Module/Symbol reads a RAPID persistent, variable or constant. A record or an array takes a component after #, such as #x or #2.

Robot panel and pose figure

The Robots group on the overlay has two elements. Both are bound to the connection under Robot connection and need no tags.

ElementDescription
Robot panelDetail level is Chip for the name and roll-up status, Compact for the state, mode, execution and speed chips, or Full, which adds the routine and line, the statement, the tool and work object, and an alarm row.
Pose figureA schematic six-axis arm posed from joints 1, 2, 3 and 5, as an Isometric or a Side view. It is the same drawing for every robot model.

The panel's height follows its detail level and base font size, so you set only its width. The alarm row shows the latest warning or error for ten minutes.

DataBorder records

Robot state records on the DataBorder page adds standard records for a robot connection, named r1.state, r1.speed and so on. Roll-up status, controller state, operating mode, execution, speed and routine are selected to start with. Program line, statement text, joints and TCP position change on every poll while the robot moves, so add them only when the stream needs the pose.

Alarm burst adds a group with the alarm's code, severity and text, and the routine, line and statement the program pointer was at when the alarm landed. A new alarm also forces a full snapshot, so a clip that starts at the fault is self-contained. Strings in the stream are cut at 64 bytes.

Polling

One poll makes one request per group of signals, and only the groups that something uses are read. A panel reads the panel and execution groups, a figure adds the joints, and records and tags add theirs. One second is a sensible interval.

Limitations

  • The connection reads one mechanical unit and one RAPID task, the first of each. A MultiMove controller shows its first robot.
  • Only the latest event of each poll is kept. When a fault raises several entries in one second, the panel and the records show the last one.

Troubleshooting

The reason for the last failure is shown in the Connections row.

ReasonCheck
authentication failed (check username/password)The username and password. The factory default is Default User and robotics.
robot unreachableThe host, and that the camera can reach the robot's network.
answered … but: HTTP 500Robot Web Services on the controller, which answered but did not serve the request.
RWS status …The user's grants on the controller. A RobotWare 6 user needs read access to the resources it is asked for.
robot returned 503 (session limit) after retryOther clients holding Robot Web Services sessions. Close them, or wait for their sessions to expire.
robot stopped answering (3 polls)The robot went offline while connected. Values keep their last reading with a ! until it is back.