NO TE: KOWARI - CONTROLLER 3 NO TE: NO TE: $Revision: 1.2 $ NO TE: $Date: 2007-05-03 06:53:56 $ NO TE: Author: Dan Bartlett NO TE: Last revision by: $Author: dbx $ NO TE: NO TE: A-MONOCHROMATOR FOCUS 1 NO TE: B-MONOCHROMATOR FOCUS 2 NO TE: C-SPARE NO TE: D-SPARE NO TE: E-SPARE NO TE: F-SPARE 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 CO 0;' CONFIGURES EXTENDED IO AS INPUTS II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE IA 137,157,201,197;' CONFIGURES IP ADDRESS AC 6000,6000,,,,,,;' SET ACELERATION DC 6000,6000,,,,,,;' SET DECELERATION SP 12500,12500,,,,,,;' SET SPEED 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 CB1;' SET INHIBIT INPUT TO TRIGGER EMPIRE BOX 1 CB2;' SET INHIBIT INPUT TO TRIGGER EMPIRE BOX 2 IF (_SPA>25000) SPA=25000 ENDIF IF (_SPB>25000) SPB=25000 ENDIF NO IF (_SPC>50000) NO SPC=50000 NO ENDIF NO IF (_SPD>50000) NO SPD=50000 NO ENDIF NO IF (_SPE>30000) NO SPE=30000 NO ENDIF NO IF (_SPF>30000) NO SPF=30000 NO ENDIF NO IF (_SPG>30000) NO SPG=30000 NO ENDIF NO IF (_SPH>30000) NO SPH=30000 NO ENDIF NO TE: PROCEDURE TO UPDATE THE RESOLVER FEEDBACK. NO TE: RESOLVER NUMBER 1 NO AI31;' WAIT FOR XBUSY BIT NO IOBYTE1=_TI2;' LOAD FIRST WORD NO IOBYTE2=_TI3;' LOAD SECOND WORD NO IOBYTE2=(IOBYTE2&63);' MASK OUT XBUSY BIT NO IOBYTE2=(IOBYTE2*256);' SHIFT REMAINING BITS 8 POSITIONS TO RIGHT NO DEA=(IOBYTE1+IOBYTE2);' ADD WORDS TOGETHER, LOAD INTO DEA, USE TPA FOR VALUE NO TE: RESOLVER NUMBER 2 AI47;' WAIT FOR XBUSY BIT IOBYTE3=_TI4;' LOAD FIRST WORD IOBYTE4=_TI5;' LOAD SECOND WORD IOBYTE4=(IOBYTE4&63);' MASK OUT XBUSY BIT IOBYTE4=(IOBYTE4*256);' SHIFT REMAINING BITS 8 POSITIONS TO RIGHT DEB=(IOBYTE3+IOBYTE4);' ADD WORDS TOGETHER, LOAD INTO DEB, USE TPB FOR VALUE SB1;' DRIVE INHIBIT HIGH - FINISHED DATA INPUT SB2;' DRIVE INHIBIT HIGH - FINISHED DATA INPUT 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 ---------------------------------------- #LOOPIT BGB AMB WT 500 MG _TPB {F5.0}{EA} JP #LOOPIT EN NO ----------------------------------------