Content downloaded from GALIL controllers before conversion to SICS
r3292 | dcl | 2011-11-28 14:23:41 +1100 (Mon, 28 Nov 2011) | 1 line
This commit is contained in:
@@ -1,349 +1,351 @@
|
||||
'TAIPAN - CONTROLLER 2
|
||||
'
|
||||
'$Revision:$
|
||||
'$Date:$
|
||||
'Author: Daniel Bartlett
|
||||
'Last revision by: $author:$
|
||||
'
|
||||
'A-SAMPLE TRANSLATION - TILT 1
|
||||
'B-SAMPLE TRANSLATION - TILT 2
|
||||
'C-SAMPLE TRANSLATION - LINEAR 1
|
||||
'D-SAMPLE TRANSLATION - LINEAR 2
|
||||
'E-SAMPLE TRANSLATION - ROTATE
|
||||
'F-DETECTOR + ANALYSER ROTATE _TPF=2771351 ON BEAM CL
|
||||
'G-ANALYSER FOCUS 1
|
||||
'H-ANALYSER FOCUS 2
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#AUTO
|
||||
'THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
|
||||
'
|
||||
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
|
||||
MO;'ALL MOTORS OFF
|
||||
CN 1;'CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
|
||||
II 6,8,,0;' CONFIGURES THE 6TH, 7TH & 8TH INPUT TO ACTIVATE #ININT ROUTINE
|
||||
OP 65281;' SETS OUTPUTS 9-16 ON = RELAYS OFF
|
||||
IA 137,157,203,132;' CONFIGURES IP ADDRESS
|
||||
AC 25000,25000,25000,25000,25000,25000,12500,12500;' SET ACELERATION
|
||||
DC 25000,25000,25000,25000,25000,25000,12500,12500;' SET DECELERATION
|
||||
SP 25000,25000,25000,25000,25000,100000,12500,12500;' SET SPEED
|
||||
SIA=0;'TURN OFF CLOCK PULSES TO ALLOW ENCODER TO INITIALISE
|
||||
SIB=0
|
||||
SIC=0
|
||||
SID=0
|
||||
SIE=0
|
||||
SIF=0
|
||||
SIG=0
|
||||
SIH=0
|
||||
WT1000;'WAIT FOR ENCODER TO INITIALISE
|
||||
SIA=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TILT 1
|
||||
SIB=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TILT 2
|
||||
SIC=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TRANS 1
|
||||
SID=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TRANS 2
|
||||
SIE=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE ROTATE
|
||||
SIF=1,25,25,0<-13>2;'HEIDENHAIN RCN226 - DETECTOR + ANALYSER ROTATE
|
||||
SIG=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - ANALYSER FOCUS 1
|
||||
SIH=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - ANALYSER FOCUS 2
|
||||
LSAHIT=0;' INITIALISE THE BIT SET AFTER A LIMIT IS HIT
|
||||
LSBHIT=0
|
||||
LSCHIT=0
|
||||
LSDHIT=0
|
||||
LSEHIT=0
|
||||
LSFHIT=0
|
||||
LSGHIT=0
|
||||
LSHHIT=0
|
||||
APFDONE=0;' INITIALISE THE BIT FOR AXIS F AIRPAD CONTROL
|
||||
JS #THREAD0
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#THREAD0
|
||||
'THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
|
||||
'
|
||||
JS #CHKDCEL
|
||||
JS #AIRPAD
|
||||
JS #CHKSPD
|
||||
JS #BEAMSTP
|
||||
JP #THREAD0
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CHKDCEL
|
||||
'ROUTINE TO RESET DECELERATIONS AFTER A LIMIT HIT
|
||||
'
|
||||
IF (LSAHIT=1)&(_BGA=0);'WHEN MOTION STOPS AFTER A LIMIT HIT
|
||||
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
|
||||
LSAHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSBHIT=1)&(_BGB=0)
|
||||
DCB=OLDDCB
|
||||
LSBHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSCHIT=1)&(_BGC=0)
|
||||
DCC=OLDDCC
|
||||
LSCHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSDHIT=1)&(_BGD=0)
|
||||
DCD=OLDDCD
|
||||
LSDHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSEHIT=1)&(_BGE=0)
|
||||
DCE=OLDDCE
|
||||
LSEHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSFHIT=1)&(_BGF=0)
|
||||
DCF=OLDDCF
|
||||
LSFHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSGHIT=1)&(_BGG=0)
|
||||
DCG=OLDDCG
|
||||
LSGHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSHHIT=1)&(_BGH=0)
|
||||
DCH=OLDDCH
|
||||
LSHHIT=0
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#AIRPAD
|
||||
'ROUTINE TO CONTROL AIRPADS
|
||||
'
|
||||
'CONTROLS THE AIRPAD SOLENOID VALVES FOR ANALYSER STAGE
|
||||
IF (_MOF=0);'ANALYSER MOTOR IS ON
|
||||
SB 10;'ANALYSER AIR PAD OFF-SOLENOID OFF
|
||||
CB 9;'ANALYSER AIR PAD ON-SOLENOID ON
|
||||
APFDONE=0
|
||||
ENDIF
|
||||
IF (_MOF=1)&(APFDONE=0);'ANALYSER MOTOR IS OFF
|
||||
SB 9;'ANALYSER AIR PAD ON-SOLENOID OFF
|
||||
CB 10;'ANALYSER AIR PAD OFF-SOLENOID ON
|
||||
WT500;'WAIT 1/2 SEC
|
||||
SB 10;'ANALYSER AIR PAD OFF-SOLENOID OFF
|
||||
APFDONE=1
|
||||
ENDIF
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CHKSPD
|
||||
'ROUTINE TO CHECK THE SPEED OF THE AXES IS NOT GREATER THAN MAX ALLOWED
|
||||
'
|
||||
IF (_SPA>50000)
|
||||
SPA=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPB>50000)
|
||||
SPB=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPC>50000)
|
||||
SPC=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPD>50000)
|
||||
SPD=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPE>50000)
|
||||
SPE=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPF>100000)
|
||||
SPF=100000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPG>25000)
|
||||
SPG=25000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPH>25000)
|
||||
SPH=25000
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#BEAMSTP
|
||||
'
|
||||
'THIS ROUTINE CONTROLS THE POSITION OF THE BEAMSTOP
|
||||
'IF THE ANALYSER IS WITHIN THE RANGE SPECIFIED THEN THE BEAMSTOP IS DOWN
|
||||
'TO AVOID COLLISIONS WITH SLITS AND OTHER EQUIPMENT
|
||||
'
|
||||
IF (_XQ1=-1)
|
||||
'#BSCHECK NOT RUNNING
|
||||
XQ #BSCHECK,1
|
||||
ENDIF
|
||||
IF (_TPF>9665152)&(_TPF<14370000)
|
||||
'IF (_TPF>9665152)&(_TPF<13168731)
|
||||
'IF (_TPF>12554353)&(_TPF<15923500)
|
||||
'IF (_TPF>12554353)&(_TPF<15809209)
|
||||
'ANALYSER WITHIN RANGE, BEAMSTOP NEEDS TO BE DOWN
|
||||
SB11;'TURN OFF SOLENOID VALVE
|
||||
ELSE
|
||||
CB11;'TURN ON SOLENOID VALVE
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#BSCHECK
|
||||
'THIS ROUTINE CHECKS THE POSITION OF THE BEAMSTOP AND REPORTS ERRORS
|
||||
'TO THE SAFETY AND INTERLOCK SYSTEM
|
||||
'
|
||||
'IN[13]=1 TOP LIMIT ACTUATED
|
||||
'IN[14]=1 BOTTOM LIMIT ACTUATED
|
||||
IF ((_OP0&1024)=0)
|
||||
'RELAY 11 HAS BEEN ENABLED THEREFORE THE BEAMSTOP SHOULD BE UP
|
||||
WT1500;'DELAY TO ALLOW BEAMSTOP TO MOVE
|
||||
IF ((@IN[13]=1)&(@IN[14]=0))
|
||||
'BEAMSTOP UP AND NOT DOWN
|
||||
CB16;'SEND ALL-OK TO SIS
|
||||
ELSE
|
||||
SB16;'SEND ERROR BIT TO SIS
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF ((_OP0&1024)<>0)
|
||||
'RELAY 11 HAS BEEN DISABLED THEREFORE THE BEAMSTOP SHOULD BE DOWN
|
||||
WT1500;'DELAY TO ALLOW BEAMSTOP TO MOVE
|
||||
IF ((@IN[13]=0)&(@IN[14]=1))
|
||||
'BEAMSTOP DOWN AND NOT UP
|
||||
CB16;'SEND ALL-OK TO SIS
|
||||
ELSE
|
||||
SB16;'SEND ERROR BIT TO SIS
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
JP #BSCHECK
|
||||
EN
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#TCPERR
|
||||
'EMPTY TCP ERROR ROUTINE
|
||||
'
|
||||
RE
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#ININT
|
||||
'INTERUPT ROUTINE
|
||||
'TO STOP ALL AXES WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
|
||||
'TO STOP AXIS F WHEN LIGHT CURTAINS BROKEN BUT TO ALLOW MOVEMENT AWAY
|
||||
'
|
||||
IF @IN[8]=0
|
||||
'SAFETY INTERLOCK SYSTEM ALL AXES SLOWDOWN
|
||||
CN-1;'RECONFIGURES LIMITS. RESULT:ALL LIMITS SEEN AS HIT. WILL RUN #LIMSWI
|
||||
WT250
|
||||
CN1;'SETS LIMITS BACK TO NORMAL
|
||||
JP #ENININT
|
||||
ENDIF
|
||||
'
|
||||
IF @IN[6]=0
|
||||
'LOW ANGLE LIGHT CURTAIN BROKEN
|
||||
IF _TVF>0
|
||||
'AXIS HEADING TOWARDS LIGHT CURTAIN
|
||||
STF
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF @IN[7]=0
|
||||
'HIGH ANGLE LIGHT CURTAIN BROKEN
|
||||
IF _TVF<0
|
||||
'AXIS HEADING TOWARDS LIGHT CURTAIN
|
||||
STF
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
#ENININT
|
||||
RI
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CMDERR
|
||||
'ROUTINE TO HANDLE COMMAND ERRORS
|
||||
'
|
||||
ZS0
|
||||
EN1
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#LIMSWI
|
||||
'ROUTINE TO HASTEN THE DECELERATION OF AN AXIS WHEN A LIMIT SWITCH IS HIT
|
||||
'
|
||||
IF (_LFA=0)|(_LRA=0);'LIMIT HIT
|
||||
IF (LSAHIT=0)&(_BGA=1);'STILL MOVING, FIRST TIME
|
||||
OLDDCA=_DCA;'REMEMBER OLD DECEL VALUE
|
||||
DCA=100000;'INCREASE DECEL VALUE FOR RAPID STOP
|
||||
LSAHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFB=0)|(_LRB=0)
|
||||
IF (LSBHIT=0)&(_BGB=1)
|
||||
OLDDCB=_DCB
|
||||
DCB=100000
|
||||
LSBHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFC=0)|(_LRC=0)
|
||||
IF (LSCHIT=0)&(_BGC=1)
|
||||
OLDDCC=_DCC
|
||||
DCC=100000
|
||||
LSCHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFD=0)|(_LRD=0)
|
||||
IF (LSDHIT=0)&(_BGD=1)
|
||||
OLDDCD=_DCD
|
||||
DCD=100000
|
||||
LSDHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFE=0)|(_LRE=0)
|
||||
IF (LSEHIT=0)&(_BGE=1)
|
||||
OLDDCE=_DCE
|
||||
DCE=200000
|
||||
LSEHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFF=0)|(_LRF=0)
|
||||
IF (LSFHIT=0)&(_BGF=1)
|
||||
OLDDCF=_DCF
|
||||
DCF=100000
|
||||
LSFHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFG=0)|(_LRG=0)
|
||||
IF (LSGHIT=0)&(_BGG=1)
|
||||
OLDDCG=_DCG
|
||||
DCG=200000
|
||||
LSGHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFH=0)|(_LRH=0)
|
||||
IF (LSHHIT=0)&(_BGH=1)
|
||||
OLDDCH=_DCH
|
||||
DCH=200000
|
||||
LSHHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
RE
|
||||
'
|
||||
'
|
||||
'TAIPAN - CONTROLLER 2
|
||||
'
|
||||
'$Revision:$
|
||||
'$Date:$
|
||||
'Author: Daniel Bartlett
|
||||
'Last revision by: $author:$
|
||||
'
|
||||
'A-SAMPLE TRANSLATION - TILT 1
|
||||
'B-SAMPLE TRANSLATION - TILT 2
|
||||
'C-SAMPLE TRANSLATION - LINEAR 1
|
||||
'D-SAMPLE TRANSLATION - LINEAR 2
|
||||
'E-SAMPLE TRANSLATION - ROTATE
|
||||
'F-DETECTOR + ANALYSER ROTATE _TPF=2771351 ON BEAM CL
|
||||
'G-ANALYSER FOCUS 1
|
||||
'H-ANALYSER FOCUS 2
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#AUTO
|
||||
'THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
|
||||
'
|
||||
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
|
||||
MO;'ALL MOTORS OFF
|
||||
CN 1;'CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
|
||||
II 6,8,,0;' CONFIGURES THE 6TH, 7TH & 8TH INPUT TO ACTIVATE #ININT ROUTINE
|
||||
OP 65281;' SETS OUTPUTS 9-16 ON = RELAYS OFF
|
||||
IA 137,157,203,132;' CONFIGURES IP ADDRESS
|
||||
AC 25000,25000,25000,25000,25000,25000,12500,12500;' SET ACELERATION
|
||||
DC 25000,25000,25000,25000,25000,25000,12500,12500;' SET DECELERATION
|
||||
SP 25000,25000,25000,25000,25000,100000,12500,12500;' SET SPEED
|
||||
SIA=0;'TURN OFF CLOCK PULSES TO ALLOW ENCODER TO INITIALISE
|
||||
SIB=0
|
||||
SIC=0
|
||||
SID=0
|
||||
SIE=0
|
||||
SIF=0
|
||||
SIG=0
|
||||
SIH=0
|
||||
WT1000;'WAIT FOR ENCODER TO INITIALISE
|
||||
SIA=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TILT 1
|
||||
SIB=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TILT 2
|
||||
SIC=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TRANS 1
|
||||
SID=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE TRANS 2
|
||||
SIE=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - SAMPLE ROTATE
|
||||
SIF=1,25,25,0<-13>2;'HEIDENHAIN RCN226 - DETECTOR + ANALYSER ROTATE
|
||||
SIG=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - ANALYSER FOCUS 1
|
||||
SIH=1,25,13,0<-13>2;'HEIDENHAIN ROQ425 - ANALYSER FOCUS 2
|
||||
LSAHIT=0;' INITIALISE THE BIT SET AFTER A LIMIT IS HIT
|
||||
LSBHIT=0
|
||||
LSCHIT=0
|
||||
LSDHIT=0
|
||||
LSEHIT=0
|
||||
LSFHIT=0
|
||||
LSGHIT=0
|
||||
LSHHIT=0
|
||||
APFDONE=0;' INITIALISE THE BIT FOR AXIS F AIRPAD CONTROL
|
||||
JS #THREAD0
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#THREAD0
|
||||
'THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
|
||||
'
|
||||
JS #CHKDCEL
|
||||
JS #AIRPAD
|
||||
JS #CHKSPD
|
||||
JS #BEAMSTP
|
||||
JP #THREAD0
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CHKDCEL
|
||||
'ROUTINE TO RESET DECELERATIONS AFTER A LIMIT HIT
|
||||
'
|
||||
IF (LSAHIT=1)&(_BGA=0);'WHEN MOTION STOPS AFTER A LIMIT HIT
|
||||
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
|
||||
LSAHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSBHIT=1)&(_BGB=0)
|
||||
DCB=OLDDCB
|
||||
LSBHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSCHIT=1)&(_BGC=0)
|
||||
DCC=OLDDCC
|
||||
LSCHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSDHIT=1)&(_BGD=0)
|
||||
DCD=OLDDCD
|
||||
LSDHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSEHIT=1)&(_BGE=0)
|
||||
DCE=OLDDCE
|
||||
LSEHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSFHIT=1)&(_BGF=0)
|
||||
DCF=OLDDCF
|
||||
LSFHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSGHIT=1)&(_BGG=0)
|
||||
DCG=OLDDCG
|
||||
LSGHIT=0
|
||||
ENDIF
|
||||
'
|
||||
IF (LSHHIT=1)&(_BGH=0)
|
||||
DCH=OLDDCH
|
||||
LSHHIT=0
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#AIRPAD
|
||||
'ROUTINE TO CONTROL AIRPADS
|
||||
'
|
||||
'CONTROLS THE AIRPAD SOLENOID VALVES FOR ANALYSER STAGE
|
||||
IF (_MOF=0);'ANALYSER MOTOR IS ON
|
||||
SB 10;'ANALYSER AIR PAD OFF-SOLENOID OFF
|
||||
CB 9;'ANALYSER AIR PAD ON-SOLENOID ON
|
||||
APFDONE=0
|
||||
ENDIF
|
||||
IF (_MOF=1)&(APFDONE=0);'ANALYSER MOTOR IS OFF
|
||||
SB 9;'ANALYSER AIR PAD ON-SOLENOID OFF
|
||||
CB 10;'ANALYSER AIR PAD OFF-SOLENOID ON
|
||||
WT500;'WAIT 1/2 SEC
|
||||
SB 10;'ANALYSER AIR PAD OFF-SOLENOID OFF
|
||||
APFDONE=1
|
||||
ENDIF
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CHKSPD
|
||||
'ROUTINE TO CHECK THE SPEED OF THE AXES IS NOT GREATER THAN MAX ALLOWED
|
||||
'
|
||||
IF (_SPA>50000)
|
||||
SPA=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPB>50000)
|
||||
SPB=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPC>50000)
|
||||
SPC=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPD>50000)
|
||||
SPD=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPE>50000)
|
||||
SPE=50000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPF>100000)
|
||||
SPF=100000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPG>25000)
|
||||
SPG=25000
|
||||
ENDIF
|
||||
'
|
||||
IF (_SPH>25000)
|
||||
SPH=25000
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#BEAMSTP
|
||||
'
|
||||
'THIS ROUTINE CONTROLS THE POSITION OF THE BEAMSTOP
|
||||
'IF THE ANALYSER IS WITHIN THE RANGE SPECIFIED THEN THE BEAMSTOP IS DOWN
|
||||
'TO AVOID COLLISIONS WITH SLITS AND OTHER EQUIPMENT
|
||||
'
|
||||
IF (_XQ1=-1)
|
||||
'#BSCHECK NOT RUNNING
|
||||
XQ #BSCHECK,1
|
||||
ENDIF
|
||||
IF (_TPF>9800000)&(_TPF<13300000)
|
||||
'IF (_TPF>9800000)&(_TPF<14123000)
|
||||
'IF (_TPF>9665152)&(_TPF<14123000)
|
||||
'IF (_TPF>9665152)&(_TPF<13168731)
|
||||
'IF (_TPF>12554353)&(_TPF<15923500)
|
||||
'IF (_TPF>12554353)&(_TPF<15809209)
|
||||
'ANALYSER WITHIN RANGE, BEAMSTOP NEEDS TO BE DOWN
|
||||
SB11;'TURN OFF SOLENOID VALVE
|
||||
ELSE
|
||||
CB11;'TURN ON SOLENOID VALVE
|
||||
ENDIF
|
||||
EN
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#BSCHECK
|
||||
'THIS ROUTINE CHECKS THE POSITION OF THE BEAMSTOP AND REPORTS ERRORS
|
||||
'TO THE SAFETY AND INTERLOCK SYSTEM
|
||||
'
|
||||
'IN[13]=1 TOP LIMIT ACTUATED
|
||||
'IN[14]=1 BOTTOM LIMIT ACTUATED
|
||||
IF ((_OP0&1024)=0)
|
||||
'RELAY 11 HAS BEEN ENABLED THEREFORE THE BEAMSTOP SHOULD BE UP
|
||||
WT1500;'DELAY TO ALLOW BEAMSTOP TO MOVE
|
||||
IF ((@IN[13]=1)&(@IN[14]=0))
|
||||
'BEAMSTOP UP AND NOT DOWN
|
||||
CB16;'SEND ALL-OK TO SIS
|
||||
ELSE
|
||||
SB16;'SEND ERROR BIT TO SIS
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF ((_OP0&1024)<>0)
|
||||
'RELAY 11 HAS BEEN DISABLED THEREFORE THE BEAMSTOP SHOULD BE DOWN
|
||||
WT1500;'DELAY TO ALLOW BEAMSTOP TO MOVE
|
||||
IF ((@IN[13]=0)&(@IN[14]=1))
|
||||
'BEAMSTOP DOWN AND NOT UP
|
||||
CB16;'SEND ALL-OK TO SIS
|
||||
ELSE
|
||||
SB16;'SEND ERROR BIT TO SIS
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
JP #BSCHECK
|
||||
EN
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#TCPERR
|
||||
'EMPTY TCP ERROR ROUTINE
|
||||
'
|
||||
RE
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#ININT
|
||||
'INTERUPT ROUTINE
|
||||
'TO STOP ALL AXES WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
|
||||
'TO STOP AXIS F WHEN LIGHT CURTAINS BROKEN BUT TO ALLOW MOVEMENT AWAY
|
||||
'
|
||||
IF @IN[8]=0
|
||||
'SAFETY INTERLOCK SYSTEM ALL AXES SLOWDOWN
|
||||
CN-1;'RECONFIGURES LIMITS. RESULT:ALL LIMITS SEEN AS HIT. WILL RUN #LIMSWI
|
||||
WT250
|
||||
CN1;'SETS LIMITS BACK TO NORMAL
|
||||
JP #ENININT
|
||||
ENDIF
|
||||
'
|
||||
IF @IN[6]=0
|
||||
'LOW ANGLE LIGHT CURTAIN BROKEN
|
||||
IF _TVF>0
|
||||
'AXIS HEADING TOWARDS LIGHT CURTAIN
|
||||
STF
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF @IN[7]=0
|
||||
'HIGH ANGLE LIGHT CURTAIN BROKEN
|
||||
IF _TVF<0
|
||||
'AXIS HEADING TOWARDS LIGHT CURTAIN
|
||||
STF
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
#ENININT
|
||||
RI
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#CMDERR
|
||||
'ROUTINE TO HANDLE COMMAND ERRORS
|
||||
'
|
||||
ZS0
|
||||
EN1
|
||||
'
|
||||
'
|
||||
'--------------------------------------------------------------------------
|
||||
#LIMSWI
|
||||
'ROUTINE TO HASTEN THE DECELERATION OF AN AXIS WHEN A LIMIT SWITCH IS HIT
|
||||
'
|
||||
IF (_LFA=0)|(_LRA=0);'LIMIT HIT
|
||||
IF (LSAHIT=0)&(_BGA=1);'STILL MOVING, FIRST TIME
|
||||
OLDDCA=_DCA;'REMEMBER OLD DECEL VALUE
|
||||
DCA=100000;'INCREASE DECEL VALUE FOR RAPID STOP
|
||||
LSAHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFB=0)|(_LRB=0)
|
||||
IF (LSBHIT=0)&(_BGB=1)
|
||||
OLDDCB=_DCB
|
||||
DCB=100000
|
||||
LSBHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFC=0)|(_LRC=0)
|
||||
IF (LSCHIT=0)&(_BGC=1)
|
||||
OLDDCC=_DCC
|
||||
DCC=100000
|
||||
LSCHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFD=0)|(_LRD=0)
|
||||
IF (LSDHIT=0)&(_BGD=1)
|
||||
OLDDCD=_DCD
|
||||
DCD=100000
|
||||
LSDHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFE=0)|(_LRE=0)
|
||||
IF (LSEHIT=0)&(_BGE=1)
|
||||
OLDDCE=_DCE
|
||||
DCE=200000
|
||||
LSEHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFF=0)|(_LRF=0)
|
||||
IF (LSFHIT=0)&(_BGF=1)
|
||||
OLDDCF=_DCF
|
||||
DCF=100000
|
||||
LSFHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFG=0)|(_LRG=0)
|
||||
IF (LSGHIT=0)&(_BGG=1)
|
||||
OLDDCG=_DCG
|
||||
DCG=200000
|
||||
LSGHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
'
|
||||
IF (_LFH=0)|(_LRH=0)
|
||||
IF (LSHHIT=0)&(_BGH=1)
|
||||
OLDDCH=_DCH
|
||||
DCH=200000
|
||||
LSHHIT=1
|
||||
ENDIF
|
||||
ENDIF
|
||||
RE
|
||||
'
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user