Faults and Error Reporting
(Original Document)
Introduction
The motion controller accommodates several methods for debugging. The simplest method reports faults and warnings via the data structure MMFBlock.
Error Registers
The table shows how the data structure MMFBlock could be used to report faults and warnings.
MMFBlock Element
Address
Value
Format
FaultAxis
%MW1105
1
Dec
FaultCode
%MW1106
4002
Dec
WarnAxis
%MW1107
1
Dec
WarnCode
%MW1108
42
Dec
In the case above, the axis reporting the fault is axis number 1 (FaultAxis = 1) and the actual fault is a motor overtemperature condition (FaultCode=4002). (See Table Faults and Warnings for a complete list.)
The axis reporting the warning is axis number 1 (WarnAxis=1) and the actual warning is that the driver is not enabled (WarnCode=42). These codes are also reported in the ERROR output of the MMF_* and CFG_* function blocks. (See Table Motion Error Codes for a complete list.)
If several errors or warnings occur, the error code associated with the first error is reported.
To clear the error register, issue a faultClear( ) function to the SERCOS ring.
Faults and Warnings
Table of faults and warnings reported by FaultCode:
Name
FaultCode
Description
FAULT_OVERLOAD
4000
RMS current fault
FAULT_AMP_OVERTEMP
4001
Drive overtemperature condition
FAULT_MOTOR_OVERTEMP
4002
Drive overtemperature condition
FAULT_FEEDBACK
4005
Resolver or encoder feedback fault
FAULT_COMMUTATION
4006
General drive fault (phase error)
FAULT_OVERCURRENT
4007
Drive short circuit fault
FAULT_UNDERVOLTAGE
4009
Drive voltage fault
FAULT_POS_DEVIATION
4011
Following error fault
FAULT_DRIVE_COMM
4012
Drive has detected communications fault
FAULT_TRAVEL_LIMIT
4013
Hardware end-of-travel fault
FAULT_GENERAL
4015
Homing, digital output or control conflict fault (enable from 2 sources)
FAULT_MASTER_COMM
4016
SERCOS master has detected communication fault
FAULT_WATCHDOG
5001
The watchdog expired and all axes disabled
WARN_BAD_SUBROUTINE
7001
MMFStart does not recognize this subroutine number
WARN_BAD_AXIS_ID
7002
The Axis ID is not valid for this subroutine
WARN_BAD_DATA
7003
Parameter data is out of range
WARN_SUBROUTINE_ABORT
7004
SubNum/SubNumEcho handshake error
WARN_SUBROUTINE_TIMEOUT
7005
Subroutine does not complete in time
WARN_BAD_USER_SUBROUTINE
7010
MMFStart does not recognize this subroutine number
WARN_SAMPLE_USER_SUBROUTINE
7777
A call was made to the SAMPLE_USER_SUBROUTINE
WARN_BAD_DATA
7003
Parameter data is out of range
MMF_ABORT_USUB
9004
User Subroutine abort error code
MMF_USUB_TIMEOUT
9005
User Subroutine Timeout error code
Motion Error Codes
Table of faults and warnings reported by WarnCode and ERROR output:
Error Code
Name
Description
1
RANGE_ERROR
Attempt to assign value out of range
2
UNITS_MISMATCH
Attempt to assign incompatible units
3
UNSUPPORTED_UNIT
Unit not supported or unknown
4
DOWNLOAD_ERROR
Bug or drive fault during download
5
UPLOAD_ERROR
Bug or drive fault during upload
6
NULL_OBJECT
Unexpected null pointer to object
7
SET_UNITS_ERROR
Failed to set units in drive
8
UNITS_NOT_SET
Units not set in SASSDriveInterface
9
STRING_TOO_BIG
String too big to fit into MotionString
10
INVALID_INDEX
Invalid index into a collection
11
INVALID_VALUE
Invalid value in command
12
INVALID_ENUM_VALUE
Invalid value for an enum
13
INVALID_TOKEN
Invalid token in input
14
INVALID_FEEDBACK_CHANNEL
Invalid feedback channel for command
15
INVALID_FEEDBACK_DEVICE
Invalid feedback device for command
16
INVALID_FEEDBACK_CLOCKING_RATE
Invalid feedback clocking rate
17
INVALID_FEEDBACK_POWER_SRC
Invalid feedback power source
18
INVALID_FEEDBACK_RES
Invalid feedback resolution
19
INVALID_HOLDING_REG_ADDR
Invalid holding register address
20
HOLDING_REGISTERS_NOT_CONFIGURED
Holding register database not configured
21
NO_HOLDING_REGS
Holding register database empty
22
REG_BLOCK_TOO_BIG
Holding register block too big
23
REG_BLOCK_NOT_FIT
Holding register block doesn't fit into database
24
CANNOT_GRANT_ACCESS
Cannot grant access to holding register block
25
CANNOT_RELEASE_ACCESS
Cannot release access to holding register block
26
FILE_OPEN_ERROR
File open failed
27
FILE_WRITE_ERROR
File write failed
28
FILE_READ_ERROR
File read failed
29
FILE_CLOSE_ERROR
File close failed
30
FILE_SEEK_ERROR
File seek failed
31
SYNTAX_ERROR
Malformed input
32
CLEAR_FAULT_ERROR
Clear fault function failed to clear faults
33
MISSING_TAG
Missing tag in tags.cfg
34
NO_AXIS_AVAILABLE
No axis object available
35
TOO_MANY_AXES
Too many axes in rc-/rv-axis
36
DUPLICATE_AXES
Duplicate axes in rc-/rv-axis
37
INVALID_AXIS
Missing or invalid axis
38
NO_SUCH_AXIS
Axis object or config file not found
39
WRONG_NUMBER_OF_COORDS
Value has different number of coordinates from axis
40
DEVICE_NOT_IN_CONTROL
Motion axis not active
41
MOVE_FAULT_ERROR
A move fault has occurred front end)
42
AXIS_NOT_ENABLED
Drive is not enabled.
43
COMMAND_TIMED_OUT
Command timed out
44
INVALID_SERCOS_RING
SERCOS ring not A or B
45
RENAME_ERROR
Axis renamed failed
46
CANNOT_PERFORM_WITH_THIS_CONFIG
Cannot perform command as currently configured
47
TYPE_MISMATCH
Object is wrong type
48
DRIVE_MUST_BE_DISABLED
Drive must be disabled to perform command
49
DRIVE_MUST_BE_ENABLED
Drive must be enabled to perform command
50
CMD_NOT_ALLOWED
Command not allowed at this time
51
DRIVE_FAULT_ERROR
Command cannot be completed due to drive fault
1000
TARGET_NOT_RESP
Target not responding
1001
COMM_GARBLED
Garbled communications
1002
SERCOS_EXCEPTION
SERCOS error
1003
SASS_NO_OPCODE_ECHO
No opcode echo from drive
1004
SERCOS_NOT_READY
SERCOS loop not ready
1005
SERCOS_DRIVER_ERROR
SERCOS error
1006
SERCOS_CYCLIC_READ_ERROR
SERCOS read failed (cyclic channel)
2000
UNKNOWN_ERROR
Unclassified error
2001
BOOCH148_ERROR
Error in Booch Components v1.4.8
2002
BOOCH23_ERROR
Error in Booch Components v2.3
2003
SYSTEM_DEBUG_ERROR
System fault used in debugging
2004
SASS_CMD_NOT_ALLOWED_ERROR
Drive got command not allowed fault
2005
SASS_ILLEGAL_CMD_ERROR
Drive got illegal command fault
2006
SASS_PROGRAMMING_ERROR
Drive got programming error fault
2007
UNSUPPORTED_COMMAND
Invalid command ID
2008
SET_LINK_ERROR
Failed to link object to drive interface
2009
SEMAPHORE_CREATE_ERROR
Semaphore create failed
2010
SEMAPHORE_DELETE_ERROR
Semaphore delete failed
2011
SEMAPHORE_LOCK_ERROR
Semaphore lock failed
2012
SEMAPHORE_UNLOCK_ERROR
Semaphore unlock failed
2013
SEMAPHORE_INQ_ERROR
Semaphore inquiry failed
2014
PROXY_NOT_CONNECTED
Proxy not connected
2015
NOT_IMPLEMENTED
Command not implemented yet
2016
SCX_UNIQUE_ERROR
scx_unique failed
2017
QUEUE_CREATE_ERROR
Queue create failed
2018
QUEUE_FULL
Queue is full
2019
INVALID_QUEUE_ID
Invalid queue id
2020
UNKNOWN_QUEUE_STATUS
Unknown queue status
2021
QUEUE_INQ_ERROR
Queue inquiry failed
2022
EVENT_GRP_CREATE_ERROR
Event group create failed
2023
EVENT_GRP_PEND_ERROR
Event group pend error
2024
EVENT_GRP_CLEAR_ERROR
Event group clear error
2025
EVENT_FLAGS_CREATE_ERROR
Event flags create failed
2026
OBJECT_NOT_FOUND
Object lookup failed
2027
OBJECT_MANAGER_MISSING
Object manager not found
2028
INVALID_PLANNER_STATE
Invalid motion planner state
2029
OUT_OF_MEMORY
Memory allocation field
2030
GET_TASK_ID_FAILED
Error occurred upon attempting to get task Id from the operating system
2031
TOO_MANY_ERROR_HANDLERS
Attempt to install too many error handlers
2032
THREAD_CREATE_ERROR
Thread create failed
2033
THREAD_DELETE_ERROR
Thread destructor failed
2034
THREAD_CONFIG_ERROR
Problem with configuring a thread has occurred
2035
TASK_SUSPEND_ERROR
Error occurred while attempting to suspend a thread
2036
TASK_RESUME_ERROR
Error occurred while attempting to resume a thread
2037
OBJECT_CREATE_ERROR
Error occurred while creating object