Control Interfaces

From Wiki
Revision as of 11:47, 15 May 2023 by Mab (talk | contribs) (Modbus: added note on the license)

Oftentimes robots need to controlled by a master controller, usually a PLC or PC. This article compares the available interfaces of our robots:

General control functions:

Modbus

Modbus is a common and relatively easy to use protocol. Data and command access is done via numbered registers. Data is transmitted as 1 bit or 16 bit values, some parameters combine registers for more precision. Modbus is supported by most or all PLCs, libraries for PC applications are available.

The following features are available:

  • Reading basic configuration info
  • Reading status info (errors, temperatures, program etc).
  • Enabling, disabling, referencing the robot
  • Transmitting program variables
  • Starting, stopping, loading a different robot program
  • Moving to positions

The following features are not available:

  • Changing configuration
  • Defining robot programs
  • Jog motion

Unlike the CRI interface a license is required to use the Modbus interface. For testing purposes it is available without license for 30 minutes after each startup.

See also remote variable access for a short explanation on how to access program variables.

CRI

The CRI Ethernet Interface is a proprietary, text-based (i.e. mostly human-readable) protocol that iRC/CPRog uses to communicate with the embedded robot control. It is more powerful than the Modbus interface but a little more complex to implement since no libraries are available (a developer with some TCP/IP programming knowledge should be able to create an implementation, examples are available for C# and Python).

The following features are available:

  • Accessing all info available in iRC/CPRog
  • Using all control functions available in iRC/CPRog
  • Configuring the robot (as in iRC/CPRog)
  • Transmitting programs, creatiing programs on the fly (not all commands available)
  • Moving the robot to positions or by jog

Camera Interface

The camera interface can be used to provide simple position data to a robot program (X, Y, Z, rotation and a number). While it is intended for cameras it can be used as a simple alternative to the more complex protocols mentioned above. To use it a simple TCP server needs to be set up that repeatedly sends the position data. The robot connects to this server once the connection is set up in the camera configuration.

The following features are available:

  • Sending a position (X, Y, Z, 1 rotation axis) and a number variable