Parker Hannifin
Error Handling
This section on error handling addresses error checking and
recovery, which is to be programmed into each application. Error
handling is then done automatically as the application runs, and is
helpful in diagnosing problems.
Sample Program (ACR90x0)
The following is an example error handling routine for the ACR90x0
with firmware revision 1.18.15 and above. It was written to handle
possible axis, CANopen, and Motion Enable Input error conditions.
Parker does not intend this to be an actual application solution. Use
this program as an example for error handling, and tailor the routines
for your specific needs.
This program is modular to illustrate the use of subroutines which
decrease programming and debugging time.
Program Notes:
► This program checks for errors in program 0 (PROG0) and master
0. It does not attempt to recover from the fault; it only prints
error messages to a terminal (using string variables).
► This code can be used in any unused program from PROG1 to
PROG7.
► When an Axis Kill All Motion Request is set, this program clears
related error conditions, such as Software and Hardware End-of-
Travel (EOT) flags, because they are not self-clearing.
► Each application will have different requirements, and code
should be created specifically for individual applications.
This example program uses four parameters for storing error codes
(arbitrarily assigned to P50, P51, P52 and P53) that can be retrieved
from an operator interface.
This error program can be started from the "main" or startup program
using the RUN command, or by setting the appropriate Program Run
Request flag (for example, Bit 1032 for program 0). It can also be
started by putting PBOOT in the first line of the example program
(remove REM from the line with PBOOT in it).
REM Generic Two-axis Error Checking and Recovery Routine for ACR9000
' ****************************DISCLAIMER***************************
' While precautions have been taken in the preparation of this note,
' Parker and the author assume no responsibility for errors or
' omissions. Neither is any liability assumed for damages resulting
' from the use of the information contained herein.
158 Programmer’s Guide