no message

r1413 | dbx | 2007-01-31 12:03:44 +1100 (Wed, 31 Jan 2007) | 2 lines
This commit is contained in:
Dan Bartlett
2007-01-31 12:03:44 +11:00
committed by Douglas Clowes
parent 720dc7a6d5
commit b40ab54710
8 changed files with 754 additions and 139 deletions

View File

@@ -0,0 +1,146 @@
NO TE: WOMBAT - CONTROLLER 1
NO
NO TE: A-MONOCHROMATOR UPPER TILT - TILT 1
NO TE: B-MONOCHROMATOR LOWER TILT - TILT 2
NO TE: C-MONOCHROMATOR UPPER TRANSLATION - LINEAR 1
NO TE: D-MONOCHROMATOR LOWER TRANSLATION - LINEAR 2
NO TE: E-MONOCHROMATOR ROTATION - ROTATE
NO TE: F-FLIGHT TUBE ROTATE
NO TE: G-SPARE
NO TE: H-SPARE
NO ----------------------------------------
#AUTO
NO TE: 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;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
OP 65280;' SETS OUTPUTS 9-16 ON = RELAYS OFF
IA 137,157,201,67;' CONFIGURES IP ADDRESS
AC 25000,25000,25000,25000,50000,10000,25000,25000;' SET ACELERATION
DC 25000,25000,25000,25000,50000,10000,25000,25000;' SET DECELERATION
SP 25000,25000,25000,25000,25000,100000,25000,25000;' SET SPEED
SIA=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIB=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIC=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SID=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIE=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIF=1,25,25,0<-2>2;'HEIDENHAIN RCN226
SIG=0,25,13,0<-2>2;'NOT USED
SIH=0,25,13,0<-2>2;'NOT USED
APDONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE
JS #THREAD0
EN
NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM 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
NO IF (_SPG>50000) AXES NOT USED, COMMENTED OUT
NO SPG=50000
NO ENDIF
NO IF (_SPH>50000)
NO SPH=50000
NO ENDIF
NO TE: CONTROLS THE AIRPAD SOLENOID VALVES
IF (_MOF=0);'FLIGHT TUBE MOTOR IS ON
SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF
SB 12;'DRIVE WHEEL UP-SOLENOID OFF
CB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID ON
CB 11;'DRIVE WHEEL DOWN-SOLENOID ON
APDONE=0
ENDIF
IF (_MOF=1)&(APDONE=0);'FLIGHT TUBE MOTOR IS OFF
SB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID OFF
SB 11;'DRIVE WHEEL DOWN-SOLENOID OFF
CB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID ON
CB 12;'DRIVE WHEEL UP-SOLENOID ON
WT500;'WAIT 1/2 SEC
SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF
SB 12;'DRIVE WHEEL UP-SOLENOID OFF
APDONE=1
ENDIF
JP #THREAD0
EN
NO ----------------------------------------
#TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE
NO ----------------------------------------
#ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
STA,B,C,D,E,F,G,H
AM
MO
RI
NO ----------------------------------------
#LIMSWI
NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT
OLDDCA=_DCA;' REMEMBERS CURRENT DECEL
OLDDCB=_DCB
OLDDCC=_DCC
OLDDCD=_DCD
OLDDCE=_DCE
OLDDCF=_DCF
NO OLDDCG=_DCG AXIS NOT USED
NO OLDDCH=_DCH AXIS NOT USED
IF (_LFA = 0) | (_LRA = 0)
DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE
STA
ENDIF
IF (_LFB = 0) | (_LRB = 0)
DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE
STB
ENDIF
IF (_LFC = 0) | (_LRC = 0)
DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE
STC
ENDIF
IF (_LFD = 0) | (_LRD = 0)
DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE
STD
ENDIF
IF (_LFE = 0) | (_LRE = 0)
DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE
STE
ENDIF
IF (_LFF = 0) | (_LRF = 0)
DCF=50000;' DECEL FOR LIMIT HIT OCCURENCE
STF
ENDIF
NO IF (_LFG = 0) | (_LRG = 0) AXES NOT USED, COMMENTED OUT
NO DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE
NO STG
NO ENDIF
NO IF (_LFH = 0) | (_LRH = 0)
NO DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE
NO STH
NO ENDIF
AM ABCDEFGH;' AFTER ALL AXES STOPPED
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
DCB=OLDDCB
DCC=OLDDCC
DCD=OLDDCD
DCE=OLDDCE
DCF=OLDDCF
NO DCG=OLDDCG AXIS NOT USED
NO DCH=OLDDCH AXIS NOT USED
RE

View File

@@ -0,0 +1,141 @@
NO TE: WOMBAT - CONTROLLER 2
NO TE:
NO TE: A-SAMPLE UPPER TILT
NO TE: B-SAMPLE LOWER TILT
NO TE: C-SAMPLE UPPER LINEAR
NO TE: D-SAMPLE LOWER LINEAR
NO TE: E-SAMPLE ROTATE
NO TE: F-DETECTOR ROTATE
NO TE: G-OSCILLATING COLLIMATOR
NO TE: H-SPARE
NO ----------------------------------------
#AUTO
NO TE: 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;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
OP 65280;' SETS OUTPUTS 9-16 ON = RELAYS OFF
IA 137,157,201,68;' CONFIGURES IP ADDRESS
AC 25000,25000,25000,25000,50000,10000,25000,;' SET ACELERATION
DC 25000,25000,25000,25000,50000,10000,25000,;' SET DECELERATION
SP 25000,25000,25000,25000,25000,100000,25000,;' SET SPEED
SIA=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIB=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIC=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SID=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIE=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIF=1,25,25,0<-2>2;'HEIDENHAIN RCN226
SIG=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIH=0,25,13,0<-2>2;'NOT USED
APDONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE
JS #THREAD0
EN
NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM 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>150000)
SPF=150000
ENDIF
IF (_SPG>50000)
SPG=50000
ENDIF
NO IF (_SPH>50000) AXIS NOT USED, COMMENTED OUT
NO SPH=50000
NO ENDIF
NO TE: CONTROLS THE AIRPAD SOLENOID VALVES
IF (_MOF=0);'DETECTOR MOTOR IS ON
SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF
CB 9;'DETECTOR AIR PAD ON-SOLENOID ON
APDONE=0
ENDIF
IF (_MOF=1)&(APDONE=0);'FLIGHT TUBE MOTOR IS OFF
SB 9;'DETECTOR AIR PAD ON-SOLENOID OFF
CB 10;'DETECTOR AIR PAD OFF-SOLENOID ON
WT500;'WAIT 1/2 SEC
SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF
APDONE=1
ENDIF
JP #THREAD0
EN
NO ----------------------------------------
#TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE
NO ----------------------------------------
#ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
STA,B,C,D,E,F,G,H
AM
MO
RI
NO ----------------------------------------
#LIMSWI
NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT
OLDDCA=_DCA;' REMEMBERS CURRENT DECEL
OLDDCB=_DCB
OLDDCC=_DCC
OLDDCD=_DCD
OLDDCE=_DCE
OLDDCF=_DCF
OLDDCG=_DCG
NO OLDDCH=_DCH AXIS NOT USED
IF (_LFA = 0) | (_LRA = 0)
DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE
STA
ENDIF
IF (_LFB = 0) | (_LRB = 0)
DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE
STB
ENDIF
IF (_LFC = 0) | (_LRC = 0)
DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE
STC
ENDIF
IF (_LFD = 0) | (_LRD = 0)
DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE
STD
ENDIF
IF (_LFE = 0) | (_LRE = 0)
DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE
STE
ENDIF
IF (_LFF = 0) | (_LRF = 0)
DCF=50000;' DECEL FOR LIMIT HIT OCCURENCE
STF
ENDIF
IF (_LFG = 0) | (_LRG = 0) AXES NOT USED, COMMENTED OUT
DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE
STG
ENDIF
NO IF (_LFH = 0) | (_LRH = 0)
NO DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE
NO STH
NO ENDIF
AM ABCDEFGH;' AFTER ALL AXES STOPPED
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
DCB=OLDDCB
DCC=OLDDCC
DCD=OLDDCD
DCE=OLDDCE
DCF=OLDDCF
DCG=OLDDCG
NO DCH=OLDDCH AXIS NOT USED
RE

View File

@@ -0,0 +1,138 @@
NO TE: WOMBAT - CONTROLLER 3
NO TE:
NO TE: A-MONOCHROMATOR FOCUS
NO TE: B-MONOCHROMATOR FOCUS
NO TE: C-SPARE
NO TE: D-SPARE
NO TE: E-SLIT 1 LEFT BLADE
NO TE: F-SLIT 1 RIGHT BLADE
NO TE: G-SLIT 1 TOP BLADE
NO TE: H-SLIT 1 BOTTOM BLADE
NO ----------------------------------------
#AUTO
NO TE: 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;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
IA 137,157,201,69;' CONFIGURES IP ADDRESS
AC 12500,12500,,,60000,60000,60000,60000;' SET ACELERATION
DC 12500,12500,,,60000,60000,60000,60000;' SET DECELERATION
SP 25000,25000,,,30000,30000,30000,30000;' SET SPEED
HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN
JS #THREAD0
EN
NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM ALLOWED
IF (_SPA>50000)
SPA=50000
ENDIF
IF (_SPB>50000)
SPB=50000
ENDIF
NO IF (_SPC>50000) AXES NOT USED, COMMENTED OUT
NO SPC=50000
NO ENDIF
NO IF (_SPD>50000)
NO SPD=50000
NO ENDIF
IF (_SPE>30000)
SPE=30000
ENDIF
IF (_SPF>30000)
SPF=30000
ENDIF
IF (_SPG>30000)
SPG=30000
ENDIF
IF (_SPH>30000)
SPH=30000
ENDIF
JP#THREAD0
EN
NO ----------------------------------------
#RES
SB1
CB1
AI31
IOBYTE1=_TI2
IOBYTE2=_TI3
IOBYTE2=(IOBYTE2&63)
IOBYTE2=(IOBYTE2*256)
FOCUS1=(IOBYTE1+IOBYTE2)
SB1
SB2
CB2
AI31
IOBYTE3=_TI4
IOBYTE4=_TI5
IOBYTE4=(IOBYTE2&63)
IOBYTE4=(IOBYTE2*256)
FOCUS2=(IOBYTE3+IOBYTE4)
SB2
EN
NO ----------------------------------------
#TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE
NO ----------------------------------------
#ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
STA,B,C,D,E,F,G,H
AM
MO
RI
NO ----------------------------------------
#HOME
IF (HOMERUN = 1)
JP #ENDHOME
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSE & 4) = 0)
SHE
PRE=200000
BGE
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSF & 4) = 0)
SHF
PRF=200000
BGF
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSG & 4) = 0)
SHG
PRG=200000
BGG
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSH & 4) = 0)
SHH
PRH=200000
BGH
ENDIF
AMEFGH
NO TE: DRIVE ALL SLITS INTO REVERSE LIMIT SWITCH
SHEFGH
JG ,,,,-25000,-25000,-25000,-25000
BGEFGH
AMEFGH
NO TE: MOVE AWAY FROM SWITCHES BY 2MM AND DRIVE BACK SLOWLY
PR ,,,,80000,80000,80000,80000
BGEFGH
AMEFGH
JG,,,,-5000,-5000,-5000,-5000
BGEFGH
AMEFGH
NO TE: MOVE FORWARD FROM SWITCH BY 2MM AND SET ZERO
PR ,,,,40000,40000,40000,40000
BGEFGH
AMEFGH
DP ,,,,0,0,0,0
SP ,,,,30000,30000,30000,30000
HOMERUN=1;'HOMING PROCEDURE HAS BEEN RUN
#ENDHOME
EN

View File

@@ -0,0 +1,117 @@
NO TE: WOMBAT - CONTROLLER 4
NO TE:
NO TE: A-SPARE
NO TE: B-SPARE
NO TE: C-SPARE
NO TE: D-SPARE
NO TE: E-SLIT 1 LEFT BLADE
NO TE: F-SLIT 1 RIGHT BLADE
NO TE: G-SLIT 1 TOP BLADE
NO TE: H-SLIT 1 BOTTOM BLADE
NO ----------------------------------------
#AUTO
NO TE: 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;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
IA 137,157,201,70;' CONFIGURES IP ADDRESS
AC ,,,,60000,60000,60000,60000;' SET ACELERATION
DC ,,,,60000,60000,60000,60000;' SET DECELERATION
SP ,,,,30000,30000,30000,30000;' SET SPEED
HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN
JS #THREAD0
EN
NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM ALLOWED
NO IF (_SPA>50000) AXES NOT USED, COMMENTED OUT
NO SPA=50000
NO ENDIF
NO IF (_SPB>50000)
NO SPB=50000
NO ENDIF
NO IF (_SPC>50000)
NO SPC=50000
NO ENDIF
NO IF (_SPD>50000)
NO SPD=50000
NO ENDIF
IF (_SPE>30000)
SPE=30000
ENDIF
IF (_SPF>30000)
SPF=30000
ENDIF
IF (_SPG>30000)
SPG=30000
ENDIF
IF (_SPH>30000)
SPH=30000
ENDIF
JP#THREAD0
EN
NO ----------------------------------------
#TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE
NO ----------------------------------------
#ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
STA,B,C,D,E,F,G,H
AM
MO
RI
NO ----------------------------------------
#HOME
IF (HOMERUN = 1)
JP #ENDHOME
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSE & 4) = 0)
SHE
PRE=200000
BGE
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSF & 4) = 0)
SHF
PRF=200000
BGF
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSG & 4) = 0)
SHG
PRG=200000
BGG
ENDIF
NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH
IF ((_TSH & 4) = 0)
SHH
PRH=200000
BGH
ENDIF
AMEFGH
NO TE: DRIVE ALL SLITS INTO REVERSE LIMIT SWITCH
SHEFGH
JG ,,,,-25000,-25000,-25000,-25000
BGEFGH
AMEFGH
NO TE: MOVE AWAY FROM SWITCHES BY 2MM AND DRIVE BACK SLOWLY
PR ,,,,80000,80000,80000,80000
BGEFGH
AMEFGH
JG,,,,-5000,-5000,-5000,-5000
BGEFGH
AMEFGH
NO TE: MOVE FORWARD FROM SWITCH BY 2MM AND SET ZERO
PR ,,,,40000,40000,40000,40000
BGEFGH
AMEFGH
DP ,,,,0,0,0,0
SP ,,,,30000,30000,30000,30000
HOMERUN=1;'HOMING PROCEDURE HAS BEEN RUN
#ENDHOME
EN

View File

@@ -1,18 +1,16 @@
#AUTO NO TE: ECHIDNA - CONTROLLER 1
NO TE: $Revision: 1.4 $
NO TE: $Date: 2006-11-02 21:23:39 $
NO TE: Author: Dan Bartlett
NO TE: Limit switch HOME routine added by Ferdi Franceschini
NO TE: Last revision by: $Author: ffr $
NO TE: NO TE:
NO TE: A-MONOCHROMATOR UPPER TILT (mphi) - TILT 1 NO TE: A-MONOCHROMATOR UPPER TILT (mphi) - TILT 1
NO TE: B-MONOCHROMATOR LOWER TILT (mchi) - TILT 2 NO TE: B-MONOCHROMATOR LOWER TILT (mchi) - TILT 2
NO TE: C-MONOCHROMATOR UPPER TRANSLATION (mz:nexus, mx:KDL) - LINEAR 1 NO TE: C-MONOCHROMATOR UPPER TRANSLATION (mz:nexus, mx:KDL) - LINEAR 1
NO TE: D-MONOCHROMATOR LOWER TRANSLATION (mx:nexus, my:KDL) - LINEAR 2 NO TE: D-MONOCHROMATOR LOWER TRANSLATION (mx:nexus, my:KDL) - LINEAR 2
NO TE: E-MONOCHROMATOR ROTATION (mom) - ROTATE NO TE: E-MONOCHROMATOR ROTATION (mom)
NO TE: F-FLIGHT TUBE ROTATE NO TE: F-FLIGHT TUBE ROTATION
NO TE: G-PRIMARY COLLIMATOR 1 NO TE: G-PRIMARY COLLIMATOR 1
NO TE: H-PRIMARY COLLIMATOR 2 NO TE: H-PRIMARY COLLIMATOR 2
NO ----------------------------------------
#AUTO
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
MO;' FIRST TIME MOTOR OFF MO;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
@@ -22,27 +20,54 @@ IA 137,157,201,3;' CONFIGURES IP ADDRESS
AC 25000,25000,25000,25000,25000,10000,25000,25000;' SET ACELERATION AC 25000,25000,25000,25000,25000,10000,25000,25000;' SET ACELERATION
DC 25000,25000,25000,25000,25000,10000,25000,25000;' SET DECELERATION DC 25000,25000,25000,25000,25000,10000,25000,25000;' SET DECELERATION
SP 25000,25000,25000,25000,50000,100000,25000,25000;' SET SPEED SP 25000,25000,25000,25000,50000,100000,25000,25000;' SET SPEED
SIA=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIA=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIB=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIB=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIC=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIC=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SID=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SID=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIE=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIE=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIF=1,25,25,0<-1>2;'HEIDENHAIN RCN226 SIF=1,25,25,0<-2>2;'HEIDENHAIN RCN226
SIG=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIG=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIH=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIH=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
DONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE APDONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE
JS #SOLCTRL JS #THREAD0
EN EN
#SOLCTRL NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM 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>50000)
SPG=50000
ENDIF
IF (_SPH>50000)
SPH=50000
ENDIF
NO TE: CONTROLS THE AIRPAD SOLENOID VALVES NO TE: CONTROLS THE AIRPAD SOLENOID VALVES
IF (_MOF=0);'FLIGHT TUBE MOTOR IS ON IF (_MOF=0);'FLIGHT TUBE MOTOR IS ON
SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF
SB 12;'DRIVE WHEEL UP-SOLENOID OFF SB 12;'DRIVE WHEEL UP-SOLENOID OFF
CB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID ON CB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID ON
CB 11;'DRIVE WHEEL DOWN-SOLENOID ON CB 11;'DRIVE WHEEL DOWN-SOLENOID ON
DONE=0 APDONE=0
ENDIF ENDIF
IF (_MOF=1)&(DONE=0);'FLIGHT TUBE MOTOR IS OFF IF (_MOF=1)&(APDONE=0);'FLIGHT TUBE MOTOR IS OFF
SB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID OFF SB 9;'SAMPLE STAGE AIR PAD ON-SOLENOID OFF
SB 11;'DRIVE WHEEL DOWN-SOLENOID OFF SB 11;'DRIVE WHEEL DOWN-SOLENOID OFF
CB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID ON CB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID ON
@@ -50,13 +75,15 @@ CB 12;'DRIVE WHEEL UP-SOLENOID ON
WT500;'WAIT 1/2 SEC WT500;'WAIT 1/2 SEC
SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF SB 10;'SAMPLE STAGE AIR PAD OFF-SOLENOID OFF
SB 12;'DRIVE WHEEL UP-SOLENOID OFF SB 12;'DRIVE WHEEL UP-SOLENOID OFF
DONE=1 APDONE=1
ENDIF ENDIF
JP #SOLCTRL JP #THREAD0
EN EN
NO ----------------------------------------
#TCPERR #TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE RE
NO ----------------------------------------
#ININT #ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
@@ -64,6 +91,7 @@ STA,B,C,D,E,F,G,H
AM AM
MO MO
RI RI
NO ----------------------------------------
#LIMSWI #LIMSWI
NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT
OLDDCA=_DCA;' REMEMBERS CURRENT DECEL OLDDCA=_DCA;' REMEMBERS CURRENT DECEL
@@ -77,59 +105,42 @@ OLDDCH=_DCH
IF (_LFA = 0) | (_LRA = 0) IF (_LFA = 0) | (_LRA = 0)
DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE
STA STA
AMA
MOA
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFB = 0) | (_LRB = 0) IF (_LFB = 0) | (_LRB = 0)
DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE
STB STB
AMB
MOB
DCB=OLDDCB;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFC = 0) | (_LRC = 0) IF (_LFC = 0) | (_LRC = 0)
DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE
STC STC
AMC
MOC
DCC=OLDDCC;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFD = 0) | (_LRD = 0) IF (_LFD = 0) | (_LRD = 0)
DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE
STD STD
AMD
MOD
DCD=OLDDCD;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFE = 0) | (_LRE = 0) IF (_LFE = 0) | (_LRE = 0)
DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE
STE STE
AME
MOE
DCE=OLDDCE;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFF = 0) | (_LRF = 0) IF (_LFF = 0) | (_LRF = 0)
DCF=50000;' DECEL FOR LIMIT HIT OCCURENCE DCF=50000;' DECEL FOR LIMIT HIT OCCURENCE
STF STF
AMF
MOF
DCF=OLDDCF;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFG = 0) | (_LRG = 0) IF (_LFG = 0) | (_LRG = 0)
DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE
STG STG
AMG
MOG
DCG=OLDDCG;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFH = 0) | (_LRH = 0) IF (_LFH = 0) | (_LRH = 0)
DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE
STH STH
AMH
MOH
DCH=OLDDCH;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
AM ABCDEFGH;' AFTER ALL AXES STOPPED
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
DCB=OLDDCB
DCC=OLDDCC
DCD=OLDDCD
DCE=OLDDCE
DCF=OLDDCF
DCG=OLDDCG
DCH=OLDDCH
RE RE

View File

@@ -1,57 +1,84 @@
#AUTO NO TE: ECHIDNA - CONTROLLER 2
NO TE: $Revision: 1.2 $
NO TE: $Date: 2006-11-01 06:04:09 $
NO TE: Author: Dan Bartlett
NO TE: Limit switch HOME routine added by Ferdi Franceschini
NO TE: Last revision by: $Author: ffr $
NO TE: NO TE:
NO TE: A-SAMPLE UPPER TILT (sphi) - TILT 1 NO TE: A-SAMPLE UPPER TILT (sphi) - TILT 1
NO TE: B-SAMPLE LOWER TILT (schi) - TILT 2 NO TE: B-SAMPLE LOWER TILT (schi) - TILT 2
NO TE: C-SAMPLE UPPER TRANSLATION (sz:nexus, sx:KDL) - LINEAR 1 NO TE: C-SAMPLE UPPER TRANSLATION (sz:nexus, sx:KDL) - LINEAR 1
NO TE: D-SAMPLE LOWER TRANSLATION (sx:nexus, sy:KDL) - LINEAR 2 NO TE: D-SAMPLE LOWER TRANSLATION (sx:nexus, sy:KDL) - LINEAR 2
NO TE: E-SAMPLE ROTATION (som) - ROTATE NO TE: E-SAMPLE ROTATION (som)
NO TE: F-DETECTOR ROTATE NO TE: F-DETECTOR ROTATION
NO TE: G-SPARE NO TE: G-SPARE
NO TE: H-SPARE NO TE: H-SPARE
NO ----------------------------------------
#AUTO
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
MO;' FIRST TIME MOTOR OFF MO;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
OP 65280;' SETS OUTPUTS 9-16 ON = RELAYS OFF OP 65280;' SETS OUTPUTS 9-16 ON = RELAYS OFF
IA 137,157,201,4;' CONFIGURES IP ADDRESS IA 137,157,201,4;' CONFIGURES IP ADDRESS
AC 25000,25000,25000,25000,25000,15000,25000,25000;' SET ACELERATION AC 25000,25000,25000,25000,25000,15000,,;' SET ACELERATION
DC 25000,25000,25000,25000,25000,15000,25000,25000;' SET DECELERATION DC 25000,25000,25000,25000,25000,15000,,;' SET DECELERATION
SP 25000,25000,25000,25000,50000,150000,25000,25000;' SET SPEED SP 25000,25000,25000,25000,50000,150000,,;' SET SPEED
SIA=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIA=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIB=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIB=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIC=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIC=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SID=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SID=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIE=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIE=1,25,13,0<-2>2;'HEIDENHAIN ROQ425
SIF=1,25,25,0<-1>2;'HEIDENHAIN RCN226 SIF=1,25,25,0<-2>2;'HEIDENHAIN RCN226
SIG=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIG=0,25,13,0<-2>2;'NOT USED
SIH=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 SIH=0,25,13,0<-2>2;'NOT USED
DONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE APDONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE
JS #SOLCTRL JS #THREAD0
EN EN
#SOLCTRL NO ----------------------------------------
#THREAD0
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM 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>150000)
SPF=150000
ENDIF
NO IF (_SPG>50000) AXES NOT IN USE, COMMENTED OUT
NO SPG=50000
NO ENDIF
NO IF (_SPH>50000)
NO SPH=50000
NO ENDIF
NO TE: CONTROLS THE AIRPAD SOLENOID VALVES NO TE: CONTROLS THE AIRPAD SOLENOID VALVES
IF (_MOF=0);'DETECTOR MOTOR IS ON IF (_MOF=0);'DETECTOR MOTOR IS ON
SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF
CB 9;'DETECTOR AIR PAD ON-SOLENOID ON CB 9;'DETECTOR AIR PAD ON-SOLENOID ON
DONE=0 APDONE=0
ENDIF ENDIF
IF (_MOF=1)&(DONE=0);'DETECTOR MOTOR IS OFF IF (_MOF=1)&(APDONE=0);'DETECTOR MOTOR IS OFF
SB 9;'DETECTOR AIR PAD ON-SOLENOID OFF SB 9;'DETECTOR AIR PAD ON-SOLENOID OFF
CB 10;'DETECTOR AIR PAD OFF-SOLENOID ON CB 10;'DETECTOR AIR PAD OFF-SOLENOID ON
WT500;'WAIT 1/2 SEC WT500;'WAIT 1/2 SEC
SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF
DONE=1 APDONE=1
ENDIF ENDIF
JP #SOLCTRL JP #THREAD0
EN EN
NO ----------------------------------------
#TCPERR #TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE RE
NO ----------------------------------------
#ININT #ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
@@ -59,6 +86,7 @@ STA,B,C,D,E,F,G,H
AM AM
MO MO
RI RI
NO ----------------------------------------
#LIMSWI #LIMSWI
NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT NO TE: LIMIT SWITCH ROUTINE WHICH SHORTENS DECEL TIME WHEN A LIMIT IS HIT
OLDDCA=_DCA;' REMEMBERS CURRENT DECEL OLDDCA=_DCA;' REMEMBERS CURRENT DECEL
@@ -72,59 +100,42 @@ OLDDCH=_DCH
IF (_LFA = 0) | (_LRA = 0) IF (_LFA = 0) | (_LRA = 0)
DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE
STA STA
AMA
MOA
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFB = 0) | (_LRB = 0) IF (_LFB = 0) | (_LRB = 0)
DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE
STB STB
AMB
MOB
DCB=OLDDCB;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFC = 0) | (_LRC = 0) IF (_LFC = 0) | (_LRC = 0)
DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE
STC STC
AMC
MOC
DCC=OLDDCC;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFD = 0) | (_LRD = 0) IF (_LFD = 0) | (_LRD = 0)
DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE
STD STD
AMD
MOD
DCD=OLDDCD;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFE = 0) | (_LRE = 0) IF (_LFE = 0) | (_LRE = 0)
DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE
STE STE
AME
MOE
DCE=OLDDCE;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
IF (_LFF = 0) | (_LRF = 0) IF (_LFF = 0) | (_LRF = 0)
DCF=75000;' DECEL FOR LIMIT HIT OCCURENCE DCF=50000;' DECEL FOR LIMIT HIT OCCURENCE
STF STF
AMF
MOF
DCF=OLDDCF;' RESET DECEL TO OLD VALUE
ENDIF
IF (_LFG = 0) | (_LRG = 0)
DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE
STG
AMG
MOG
DCG=OLDDCG;' RESET DECEL TO OLD VALUE
ENDIF
IF (_LFH = 0) | (_LRH = 0)
DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE
STH
AMH
MOH
DCH=OLDDCH;' RESET DECEL TO OLD VALUE
ENDIF ENDIF
NO IF (_LFG = 0) | (_LRG = 0) AXES NOT IN USE, COMMENTED OUT
NO DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE
NO STG
NO ENDIF
NO IF (_LFH = 0) | (_LRH = 0)
NO DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE
NO STH
NO ENDIF
AM ABCDEFGH;' AFTER ALL AXES STOPPED
DCA=OLDDCA;' RESET DECEL TO OLD VALUE
DCB=OLDDCB
DCC=OLDDCC
DCD=OLDDCD
DCE=OLDDCE
DCF=OLDDCF
NO DCG=OLDDCG AXIS NOT IN USE, COMMENTED OUT
NO DCH=OLDDCH AXIS NOT IN USE, COMMENTED OUT
RE RE

View File

@@ -1,9 +1,4 @@
#AUTO NO TE: ECHIDNA - CONTROLLER 3
NO TE: $Revision: 1.5 $
NO TE: $Date: 2006-11-02 02:49:04 $
NO TE: Author: Dan Bartlett
NO TE: Limit switch HOME routine added by Ferdi Franceschini
NO TE: Last revision by: $Author: dbx $
NO TE: NO TE:
NO TE: A-MONOCHROMATOR FOCUS NO TE: A-MONOCHROMATOR FOCUS
NO TE: B-SPARE NO TE: B-SPARE
@@ -13,6 +8,9 @@ NO TE: E-SLIT 1 LEFT BLADE (ss1l)
NO TE: F-SLIT 1 RIGHT BLADE (ss1r) NO TE: F-SLIT 1 RIGHT BLADE (ss1r)
NO TE: G-SLIT 1 TOP BLADE (ss1u) NO TE: G-SLIT 1 TOP BLADE (ss1u)
NO TE: H-SLIT 1 BOTTOM BLADE (ss1d) NO TE: H-SLIT 1 BOTTOM BLADE (ss1d)
NO ----------------------------------------
#AUTO
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
MO;' FIRST TIME MOTOR OFF MO;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
@@ -22,12 +20,39 @@ AC 12500,,,,60000,60000,60000,60000;' SET ACELERATION
DC 12500,,,,60000,60000,60000,60000;' SET DECELERATION DC 12500,,,,60000,60000,60000,60000;' SET DECELERATION
SP 25000,,,,30000,30000,30000,30000;' SET SPEED SP 25000,,,,30000,30000,30000,30000;' SET SPEED
HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN
JS #LOOPER;' RUNS THE LOOPING PROCEDURE JS #THREAD0
EN EN
#LOOPER NO ----------------------------------------
NO TE: ININT, LIMSWI ETC NEEDS A PROGRAM RUNNING TO WORK: JUST A LOOP #THREAD0
JP#LOOPER NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM ALLOWED
IF (_SPA>25000)
SPA=25000
ENDIF
NO IF (_SPB>50000) AXES NOT IN USE, COMMENTED OUT
NO SPB=50000
NO ENDIF
NO IF (_SPC>50000)
NO SPC=50000
NO ENDIF
NO IF (_SPD>50000)
NO SPD=50000
NO ENDIF
IF (_SPE>30000)
SPE=30000
ENDIF
IF (_SPF>30000)
SPF=30000
ENDIF
IF (_SPG>30000)
SPG=30000
ENDIF
IF (_SPH>30000)
SPH=30000
ENDIF
JP#THREAD0
EN EN
NO ----------------------------------------
#RES #RES
NO TE: PROCEDURE TO UPDATE THE RESOLVER FEEDBACK. NO TE: PROCEDURE TO UPDATE THE RESOLVER FEEDBACK.
NO TE: MUST BE EXCUTED EACH TIME FOR AN UPDATE NO TE: MUST BE EXCUTED EACH TIME FOR AN UPDATE
@@ -41,9 +66,11 @@ IOBYTE2=(IOBYTE2*256);' SHIFT REMAINING BITS 8 POSITIONS TO RIGHT
FOCUS=(IOBYTE1+IOBYTE2);' ADD WORDS TOGETHER, READ FOCUS VARIABLE FOR DATA FOCUS=(IOBYTE1+IOBYTE2);' ADD WORDS TOGETHER, READ FOCUS VARIABLE FOR DATA
SB1 SB1
EN EN
NO ----------------------------------------
#TCPERR #TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE RE
NO ----------------------------------------
#ININT #ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
@@ -51,6 +78,7 @@ STA,B,C,D,E,F,G,H
AM AM
MO MO
RI RI
NO ----------------------------------------
#HOME #HOME
IF (HOMERUN = 1) IF (HOMERUN = 1)
JP #ENDHOME JP #ENDHOME
@@ -101,5 +129,3 @@ SP ,,,,30000,30000,30000,30000
HOMERUN=1;'HOMING PROCEDURE HAS BEEN RUN HOMERUN=1;'HOMING PROCEDURE HAS BEEN RUN
#ENDHOME #ENDHOME
EN EN

View File

@@ -1,9 +1,4 @@
#AUTO NO TE: ECHIDNA - CONTROLLER 4
NO TE: $Revision: 1.6 $
NO TE: $Date: 2006-11-02 02:49:04 $
NO TE: Author: Dan Bartlett
NO TE: Limit switch HOME routine added by Ferdi Franceschini
NO TE: Last revision by: $Author: dbx $
NO TE: NO TE:
NO TE: A-SPARE NO TE: A-SPARE
NO TE: B-SPARE NO TE: B-SPARE
@@ -13,6 +8,9 @@ NO TE: E-SLIT 1 LEFT BLADE (ss1l)
NO TE: F-SLIT 1 RIGHT BLADE (ss1r) NO TE: F-SLIT 1 RIGHT BLADE (ss1r)
NO TE: G-SLIT 1 TOP BLADE (ss1u) NO TE: G-SLIT 1 TOP BLADE (ss1u)
NO TE: H-SLIT 1 BOTTOM BLADE (ss1d) NO TE: H-SLIT 1 BOTTOM BLADE (ss1d)
NO ----------------------------------------
#AUTO
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
MO;' FIRST TIME MOTOR OFF MO;' FIRST TIME MOTOR OFF
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
@@ -22,15 +20,43 @@ AC ,,,,60000,60000,60000,60000;' SET ACELERATION
DC ,,,,60000,60000,60000,60000;' SET DECELERATION DC ,,,,60000,60000,60000,60000;' SET DECELERATION
SP ,,,,30000,30000,30000,30000;' SET SPEED SP ,,,,30000,30000,30000,30000;' SET SPEED
HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN HOMERUN=0;' HOMING PROCEDURE HAS NOT BEEN RUN
JS #LOOPER;'RUNS THE LOOPING PROCEDURE JS #THREAD0
EN EN
#LOOPER NO ----------------------------------------
NO TE: ININT NEEDS A PROGRAM RUNNING TO WORK: JUST A LOOP #THREAD0
JP#LOOPER NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM ALLOWED
NO IF (_SPA>25000) AXES NOT IN USE, COMMENTED OUT
NO SPA=25000
NO ENDIF
NO IF (_SPB>50000)
NO SPB=50000
NO ENDIF
NO IF (_SPC>50000)
NO SPC=50000
NO ENDIF
NO IF (_SPD>50000)
NO SPD=50000
NO ENDIF
IF (_SPE>30000)
SPE=30000
ENDIF
IF (_SPF>30000)
SPF=30000
ENDIF
IF (_SPG>30000)
SPG=30000
ENDIF
IF (_SPH>30000)
SPH=30000
ENDIF
JP#THREAD0
EN EN
NO ----------------------------------------
#TCPERR #TCPERR
NO TE: EMPTY ROUTINE FOR A TCP ERROR NO TE: EMPTY ROUTINE FOR A TCP ERROR
RE RE
NO ----------------------------------------
#ININT #ININT
NO TE: INTERUPT ROUTINE TO STOP ALL AXES NO TE: INTERUPT ROUTINE TO STOP ALL AXES
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
@@ -38,6 +64,7 @@ STA,B,C,D,E,F,G,H
AM AM
MO MO
RI RI
NO ----------------------------------------
#HOME #HOME
IF (HOMERUN = 1) IF (HOMERUN = 1)
JP #ENDHOME JP #ENDHOME
@@ -88,5 +115,3 @@ SP ,,,,30000,30000,30000,30000
HOMERUN=1 HOMERUN=1
#ENDHOME #ENDHOME
EN EN