Error Codes
Error codes are used to describe different error conditions. This article explains the error codes that can occur.
Most error codes are either hardware errors or kinematic errors. Most other errors, e.g. robot program errors, are signaled as a message without a code, as described in CRI Ethernet Interface.
Hardware Error Codes
This kind of error originates from the hardware modules and therefore depends on the hardware protocol.
CPRog/iRC displays a summary of all module error codes at the left side next to the 3D view. Check the information tab at the bottom for the error code of each axis.
CPRCANv2
The error code can be a combination of the following. Some codes have alternative names that may be mentioned in older software versions.
The bit code is relevant for CRI and Modbus users: The error codes are transmitted as bitfields.
Bit | Code | Description | Hints |
---|---|---|---|
0x00 | NoError | No error | Axis is enabled and ready for operation |
0x01 | ESTOP / TEMP | Emergency stop pressed / temperature limit exceeded | Check the fan at the axis modules, lower the motor current |
0x02 | ESTOP / LOWV | Emergency stop pressed / low voltage | Low or no motor voltage at the axis modules. Check the e-stop, the fuse, plugs and wires |
0x04 | MNE | Motor not enabled | No error, the motor is ready to be enabled |
0x08 | COM | Communication watchdog | Module missed some messages; expected state after startup |
0x10 | LAG | Position lag | Axis could not follow target: too fast, load too heavy, current too low |
0x20 | ENC | Encoder error | Defective encoder or cable, emergency stop, motor blocked, too fast, load too heavy, current too low |
0x40 | OC | Over current | Current limit exceeded |
0x80 | DRV / GEN | Driver / general error | Contact support |
0x100 | BUS | Bus dead | CAN bus issue, no responses received; check CAN bus wiring and module power |
0x200 | DEAD | Module dead | A module did not respond; check CAN ID at the module and configuration, too many modules configured (I/O, external axes)? |
0x1000 | NOTREADY | Joint not ready | This error should disappear shortly after enabling once the joints are aligned. Alignment may be prevented when the motor current is missing, e.g. when the estop is pushed. |
ERR | unknown error | This error appears if the error code is not known to the robot control software. Please update. |
CANopen
CANopen uses a different error code scheme, however the robot control translates most codes to the CPRCANv2 format. Additionally the following CANopen status codes are displayed.
If your robot control gets stuck in an unexpected state check the firmware and configuration of your axis controllers. If an axis e.g. exceeded the software limit or if a limit switch is triggered the axis may constantly return to that error state.
Code | Description | Hints |
---|---|---|
not inited | hardware is not initialized yet | this should not occur |
startup | axis is starting up | this should not occur |
not_ready_to_switch_on | see CANopen state machine | initializing or error if stuck |
switch_on_disabled | see CANopen state machine | initialized, motors not powered yet |
ready_to_switch_on | see CANopen state machine | initialized, motors not powered yet |
switched_on | see CANopen state machine | motors are powered but motion is not yet enabled |
operation_enabled | see CANopen state machine | motors are enabled and ready for operation |
quick_stop_active | see CANopen state machine | an error occured |
fault_reaction_active | see CANopen state machine | an error occured |
fault | see CANopen state machine | an error occured |
homing | axis is in homing / referencing mode | wait until referencing is done or do a reset to return to operation mode |
Kinematic Error Codes
These errors are caused by the kinematic calculation, e.g. when the target position can not be reached or when a mathematical error ocured
Code | Description | Hints |
---|---|---|
0 | No error | |
13 | Joint limit min reached | an axis reached it's lower limit |
14 | Joint limit max reached | an axis reached it's upper limit |
21 | Center singularity | robot arm is too close to vertical center axis, change to joint motion |
22 | Out of reach | cartesian position can not be reached, try joint motion |
23 | Wrist singularity | wrist joint of 6 axis arm can not be extended completely in cartesian mode, change to joint motion |
30 | Virtual box violated in X+ | reached virtual box max X position |
31 | Virtual box violated in X- | reached virtual box min X position |
32 | Virtual box violated in Y+ | reached virtual box max Y position |
33 | Virtual box violated in Y- | reached virtual box min Y position |
34 | Virtual box violated in Z+ | reached virtual box max Z position |
35 | Virtual box violated in Z- | reached virtual box min Z position |
50 | NAN value in joint position | a mathematical error occured, contact support |
99 | Motion not allowed | a hardware error occured |