Specifications
Examples and tips
PROGRAMMING MANUAL 273
Revision 5.0
'if no alarm, notify RUN=$99 or BaseBlock=$BB
ELSEIF(DRIVE_STATUS AND 8) THEN
VR(servo_alarm+i*2)=$99
ELSE
VR(servo_alarm+i*2)=$bb
ENDIF
ENDIF
NEXT i
sys_error=SYSTEM_ERROR
RETURN
'--------------------------------------------------------
stop_all:
'In this example, if the application program is stopped
'suddenly all the movements are cancelled and all the axes
'are set to BaseBlock. Modify this section if you require
'a different STOP procedure
STOP "APPLICATION"
WDOG=0
FOR i= 0 TO max_axis
BASE(i)
IF MARK=0 THEN REGIST(-1)
AXIS_ENABLE=0
SERVO=0
CANCEL(1) 'Cancel NTYPE
WA(1)
CANCEL(1) 'Cancel possible program buffer
NEXT i
RAPIDSTOP 'Cancel MTYPE
RETURN
'--------------------------------------------------------
start_app:
'Add all the application programs that should be started
'with the START signal
RUN "APPLICATION"
RETURN
'--------------------------------------------------------
reset_all:
'Uncorrect system setting
IF READ_BIT(15,diag01)=0 THEN GOSUB system_detection
'MECHATROLINK axes reset sequence
FOR i=0 TO max_axis
BASE(i)
IF ATYPE>=40 AND ATYPE<=42 THEN
'Reset sequence for MECHATROLINK communication error
IF (AXISSTATUS AND 4)<>0 THEN
PRINT "Resetting ML alarm"
GOSUB system_detection
ENDIF
'Reset sequence for DRIVE errors
IF (AXISSTATUS AND 8)<>0 THEN
IF VR(servo_alarm+i*2)=$81 OR
VR(servo_alarm+i*2)=$CC THEN
GOSUB absencoder
ELSE
'Pending to handle diferently those alarms that cannot
'be resetted with DRIVE_CLEAR
DRIVE_CLEAR
ENDIF