Build Your First Robot Cell — Part 6

Robot Communications

Connecting the robot to the rest of the cell. Fieldbus or hardwired, mapping the I/O, and setting up Automatic External so the PLC can actually run the robot.

In this series
1. Cell Layout 2. ISO 12100 Risk Assessment 3. Safety Design & PLd 4. SISTEMA 5. Controls Architecture 6. Robot Communications 7. Robot Programming 8. Testing & FAT 9. Commissioning 10. CE Marking
View the full series →

Two separate jobs, often confused

Getting a robot talking to the rest of the cell is two distinct pieces of work, and keeping them separate in your head makes both simpler. The first is the data link — the physical and logical connection that carries your handshake signals between the robot controller and the PLC. The second is external automatic operation — configuring the robot so the PLC can start it, select programs, reset it and monitor it without anyone touching the teach pendant.

The signals themselves were already defined in Part 5. Every "robot ready", "start cycle" and "pallet complete" on your I/O schedule now needs a physical route and an address at both ends. That is all this part is: giving the signals you already designed somewhere to live.

Choosing the link: hardwired or fieldbus

For a handful of signals, hardwired I/O between the robot controller and the PLC is completely legitimate. Modern controllers have onboard I/O or accept cheap I/O modules, and a dozen cores of multicore cable is testable with a multimeter and understood by every electrician on the planet. If your handshake is run, ready, done and fault, do not let anyone talk you into a fieldbus you do not need.

Above roughly a dozen signals — or where you need program number selection, diagnostics, or room to grow — a fieldbus earns its place. One network cable replaces a loom, and adding a signal becomes a configuration change rather than a wiring job. On one of our cells the robot exchanges over forty signals with the cell controller through a single bus coupler; hardwiring that would have been a full day of panel work and a fault-finding liability for the next decade.

The honest selection rule: use whatever fieldbus your PLC platform speaks natively. The robot will support it. Choosing an exotic combination because a forum post benchmarked it faster is how you end up alone with a gateway device nobody can configure.

Critical point

Safety signals do not travel over your standard fieldbus. The e-stop and safeguard circuits from Part 3 connect to the robot through its dedicated safety interface — on a KUKA KRC4 that is the X11 connector, hardwired from your safety relay or safety PLC. Safety over a network is only permissible using a certified safety protocol (PROFIsafe, FSoE, CIP Safety) on safety-rated hardware, designed and validated to the Performance Level from Part 4. If you are not certain you have that, hardwire it to the safety interface.

Mapping the I/O — where the confusion lives

Here is the thing that catches almost everyone the first time: the PLC and the robot describe the same signal with different addresses. A Beckhoff or Siemens PLC thinks in bytes and bits — output byte 0, bit 3. The robot thinks in numbered I/O — a KUKA sees $IN[1] to $IN[4096]. The fieldbus simply carries a block of bytes between the two, and the mapping defines which byte and bit lands on which robot input.

The pattern is mechanical once you see it: each PLC byte carries eight robot signals in sequence. Byte 0 bit 0 is robot input 1, byte 0 bit 7 is robot input 8, byte 1 bit 0 is robot input 9, and so on up the range. Program number bits sitting at robot inputs 33 to 38 therefore live in PLC byte 4, bits 0 to 5. Work it out once, then never trust mental arithmetic again — build the conversion table.

PLC address (byte.bit) Robot I/O number Signal
Out [0].0$IN[1]Auto start
Out [0].1$IN[2]Robot okay to pick
Out [0].6$IN[7]Go home
In [0].0$OUT[1]Robot placed layer
In [0].3$OUT[4]Robot clear of conveyor
Out [4].0–[4].5$IN[33]–$IN[38]Program number bits 1–6

That table — every signal, both addresses, one row — is the single most valuable document of this whole stage. It is what you will hold during point-to-point testing in Part 8, and it is what the next engineer will beg you for in five years. Produce it as a spreadsheet, keep it with the I/O schedule from Part 5, and update it every single time the mapping changes.

On the KUKA side the mapping is done in WorkVisual: add the fieldbus device to the bus structure from its device description file, then wire the fieldbus bytes to $IN/$OUT ranges in the I/O mapping editor, and deploy the project to the controller. On the ABB side the equivalent lives in RobotStudio's configuration editor — define the industrial network, the device, and then each signal with its device mapping, either directly on the controller or offline and deployed. Different menus, same concept: bytes on a wire, mapped to numbered signals.

From experience

Map your handshake signals starting at the bottom of the range ($IN[1] upwards) and leave the region above input 33 alone on a KUKA — the Automatic External interface signals traditionally live from there upwards, and keeping application signals and system signals in separate regions makes the configuration self-documenting.

Automatic External — letting the PLC drive

Out of the box, a robot runs programs when a person selects one on the pendant and presses start. That is no use in production. Automatic External (KUKA's name; ABB achieves the same with system inputs and outputs) is the interface that hands those pendant actions to the PLC as signals.

On a KUKA, the interface is a defined set of signals you assign to your mapped I/O in the Automatic External configuration screen. The ones that matter:

The start-up sequence then becomes a small PLC routine: safety healthy → drives on → wait for peripheral ready → present program number → valid strobe → external start. Get this sequence working once on the bench and save it; it is identical on every KUKA cell you will ever build. On the ABB side you assign the equivalent system inputs — Motors On, Start at Main, Reset Emergency Stop — to your mapped signals in the controller configuration, and the same PLC sequence applies with different names.

Prove the signals before you program anything

Before a single line of robot code exists, prove every mapped signal end to end. Force each PLC output on and watch the corresponding input change on the robot's I/O display; set each robot output from the pendant and watch it arrive in the PLC. Both KUKA and ABB give you live I/O monitors on the pendant for exactly this. An hour of methodical point-to-point checking here saves days of chasing "the program doesn't work" faults that are actually one transposed bit in the mapping — and in our experience, the first fault on a new cell is a mapping fault far more often than a code fault.

Common mistakes

Fieldbus mapping template — done for you

A pre-built PLC-to-robot address conversion spreadsheet — byte.bit to robot I/O number for the full range, with the KUKA Automatic External signal set laid out — is coming soon as a free download.

View all resources
Next in the series
Robot Programming — coming soon