PLC Interface

From Wiki
Revision as of 07:29, 19 June 2018 by Peter (talk | contribs)

It is often necessary to integrate the robot into a production system. One component is normally the master that orchestrates the other devices. With this interface the CPR robot can be controlled by a master, e.g. a PLC. The PLC sets digital inputs to reference, reset and enable the robot, and it can start/stop the loaded program. The robot provides information on its current status using digital outputs.

Availability: This feature is available since CPRog V902-09-011 (August 2017). Please see CPRog Updates.


1. Available Channels

Inputs from the Master to the Robot:

  • "Enable": The first rising edge will reset all errors, the second rising edge (min. 1 s later) will enable the robot. When the robot is enable, that means it is in "No Error" state, it will set the "NoFault" output high.
  • "RequestReference": A rising edge will start the reference procedure for all joints. The joint sequence (which joint at first, ...) is defined below. After referencing the robot is in an error state, reset and enable have to be done.
  • "Play": The first rising edge will start the currently loaded robot program, the second will stop (not pause) it. The program that is loaded at startup is also defined in the project file in line 5, or it is set automatically when saving the project.

Outputs from the Robot to the Master:

  • "NoFault": This output is high when the robot is in "No Error" state
  • "ProgramRunning": This output is high when the robot program is running.

2. Configuration

The configuration of the PLC Interface is done in the project .xml file, found in c:\CPRog\Data\Projects\

For the robolink arms please use DIO numbers 21 to 27 reduced by one, these are the seven inputs and seven outputs of the first DIO module. Digital Output 26 means the last output of DIO module 1.

The first line activates the PLC interface and tells the software to automatically connect to the CAN bus. The second line defines the which input channels to use, the third line defines the output input channels. The last line defines the sequence of referencing the joints.

<PLCInterface Active="True" AutoConnect="True"/>
<PLCInterfaceIn EnableNumber="24" RequestReferenceNumber="25" PlayNumber="26" />
<PLCInterfaceOut NoFaultNumber="25"  ProgramRunningNumber="26"  RobotIsReferenced="24"/>
<PLCInterfaceRefSequence JointToRef0="2" JointToRef1="1" JointToRef2="3" JointToRef3="4" JointToRef4="0" JointToRef5="-1" JointToRef6="-1" JointToRef7="-1" JointToRef8="-1"/>