From a78a97796c646eebb1836b79a687e1465bffa49a Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Wed, 1 Nov 2006 17:04:09 +1100 Subject: [PATCH] Uploaded Dan's new controller prog. r1222 | ffr | 2006-11-01 17:04:09 +1100 (Wed, 01 Nov 2006) | 2 lines --- .../instrument/hrpd/DMC2280/controller2.txt | 87 +++++++++++-------- .../instrument/hrpd/DMC2280/controller3.txt | 71 ++++++++------- .../instrument/hrpd/DMC2280/controller4.txt | 84 ++++++------------ 3 files changed, 122 insertions(+), 120 deletions(-) diff --git a/site_ansto/instrument/hrpd/DMC2280/controller2.txt b/site_ansto/instrument/hrpd/DMC2280/controller2.txt index 7e7a9578..90bfceff 100644 --- a/site_ansto/instrument/hrpd/DMC2280/controller2.txt +++ b/site_ansto/instrument/hrpd/DMC2280/controller2.txt @@ -1,4 +1,10 @@ #AUTO +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: A-SAMPLE UPPER TILT (sphi) - TILT 1 NO TE: B-SAMPLE LOWER TILT (schi) - TILT 2 NO TE: C-SAMPLE UPPER TRANSLATION (sz:nexus, sx:KDL) - LINEAR 1 @@ -7,26 +13,28 @@ NO TE: E-SAMPLE ROTATION (som) - ROTATE NO TE: F-DETECTOR ROTATE NO TE: G-SPARE NO TE: H-SPARE -MT-2,-2,-2,-2,-2,-2,-2,-2 -MO -OP 65280 -IA 137,157,201,67 -CN 1 -AC 25000,25000,25000,25000,25000,10000,25000,25000 -DC 25000,25000,25000,25000,25000,10000,25000,25000 -SP 25000,25000,25000,25000,25000,100000,25000,25000 -SIA=1,25,13,0<-1>2 -SIB=1,25,13,0<-1>2 -SIC=1,25,13,0<-1>2 -SID=1,25,13,0<-1>2 -SIE=1,25,13,0<-1>2 -SIF=1,25,25,0<-1>2 -SIG=1,25,13,0<-1>2 -SIH=1,25,13,0<-1>2 -DONE=0 +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,4;' CONFIGURES IP ADDRESS +AC 25000,25000,25000,25000,25000,15000,25000,25000;' SET ACELERATION +DC 25000,25000,25000,25000,25000,15000,25000,25000;' SET DECELERATION +SP 25000,25000,25000,25000,50000,150000,25000,25000;' SET SPEED +SIA=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SIB=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SIC=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SID=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SIE=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SIF=1,25,25,0<-1>2;'HEIDENHAIN RCN226 +SIG=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +SIH=1,25,13,0<-1>2;'HEIDENHAIN ROQ425 +DONE=0;' FIRST TIME THROUGH AIRPAD CONTROL NOT DONE JS #SOLCTRL EN #SOLCTRL +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 @@ -35,16 +43,25 @@ ENDIF IF (_MOF=1)&(DONE=0);'DETECTOR MOTOR IS OFF SB 9;'DETECTOR AIR PAD ON-SOLENOID OFF CB 10;'DETECTOR AIR PAD OFF-SOLENOID ON -WT500;'WAIT 0.5SEC +WT500;'WAIT 1/2 SEC SB 10;'DETECTOR AIR PAD OFF-SOLENOID OFF DONE=1 ENDIF JP #SOLCTRL EN #TCPERR +NO TE: EMPTY ROUTINE FOR A TCP ERROR RE +#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 #LIMSWI -OLDDCA=_DCA +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 @@ -53,60 +70,60 @@ OLDDCF=_DCF OLDDCG=_DCG OLDDCH=_DCH IF (_LFA = 0) | (_LRA = 0) -DCA=100000 +DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE STA AMA MOA -DCA=OLDDCA +DCA=OLDDCA;' RESET DECEL TO OLD VALUE ENDIF IF (_LFB = 0) | (_LRB = 0) -DCB=100000 +DCB=100000;' DECEL FOR LIMIT HIT OCCURENCE STB AMB MOB -DCB=OLDDCB +DCB=OLDDCB;' RESET DECEL TO OLD VALUE ENDIF IF (_LFC = 0) | (_LRC = 0) -DCC=100000 +DCC=100000;' DECEL FOR LIMIT HIT OCCURENCE STC AMC MOC -DCC=OLDDCC +DCC=OLDDCC;' RESET DECEL TO OLD VALUE ENDIF IF (_LFD = 0) | (_LRD = 0) -DCD=100000 +DCD=100000;' DECEL FOR LIMIT HIT OCCURENCE STD AMD MOD -DCD=OLDDCD +DCD=OLDDCD;' RESET DECEL TO OLD VALUE ENDIF IF (_LFE = 0) | (_LRE = 0) -DCE=100000 +DCE=100000;' DECEL FOR LIMIT HIT OCCURENCE STE AME MOE -DCE=OLDDCE +DCE=OLDDCE;' RESET DECEL TO OLD VALUE ENDIF IF (_LFF = 0) | (_LRF = 0) -DCF=30000 +DCF=75000;' DECEL FOR LIMIT HIT OCCURENCE STF AMF MOF -DCF=OLDDCF +DCF=OLDDCF;' RESET DECEL TO OLD VALUE ENDIF IF (_LFG = 0) | (_LRG = 0) -DCG=100000 +DCG=100000;' DECEL FOR LIMIT HIT OCCURENCE STG AMG MOG -DCG=OLDDCG +DCG=OLDDCG;' RESET DECEL TO OLD VALUE ENDIF IF (_LFH = 0) | (_LRH = 0) -DCH=100000 +DCH=100000;' DECEL FOR LIMIT HIT OCCURENCE STH AMH MOH -DCH=OLDDCH +DCH=OLDDCH;' RESET DECEL TO OLD VALUE ENDIF RE diff --git a/site_ansto/instrument/hrpd/DMC2280/controller3.txt b/site_ansto/instrument/hrpd/DMC2280/controller3.txt index 4e5ac406..2439d4b4 100644 --- a/site_ansto/instrument/hrpd/DMC2280/controller3.txt +++ b/site_ansto/instrument/hrpd/DMC2280/controller3.txt @@ -1,4 +1,10 @@ #AUTO +NO TE: $Revision: 1.4 $ +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: A-MONOCHROMATOR FOCUS NO TE: B-SPARE NO TE: C-SPARE @@ -7,81 +13,88 @@ NO TE: E-SLIT 1 LEFT BLADE (ss1l) NO TE: F-SLIT 1 RIGHT BLADE (ss1r) NO TE: G-SLIT 1 TOP BLADE (ss1u) NO TE: H-SLIT 1 BOTTOM BLADE (ss1d) -MT-2,-2,-2,-2,-2,-2,-2,-2 -MO -CO 0 -OP 65280 -IA 137,157,201,68 -CN 1 -AC 25000,25000,25000,25000,10000,10000,10000,10000 -DC 25000,25000,25000,25000,60000,60000,60000,60000 -SP 25000,25000,25000,25000,30000,30000,30000,30000 -HOMERUN=0 +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,5;' CONFIGURES IP ADDRESS +AC 12500,,,,60000,60000,60000,60000;' SET ACELERATION +DC 12500,,,,60000,60000,60000,60000;' SET DECELERATION +SP 25000,,,,30000,30000,30000,30000;' SET SPEED +JS #HOME;' RUNS SLIT HOMING PROCEDURE AFTER CONTROLLER RESTART +JS #LOOPER;' RUNS THE LOOPING PROCEDURE +EN #LOOPER +NO TE: ININT, LIMSWI ETC NEEDS A PROGRAM RUNNING TO WORK: JUST A LOOP JP#LOOPER EN #RES +NO TE: PROCEDURE TO UPDATE THE RESOLVER FEEDBACK. +NO TE: MUST BE EXCUTED EACH TIME FOR AN UPDATE SB1 -CB1 -AI31 -IOBYTE1=_TI2 -IOBYTE2=_TI3 -IOBYTE2=(IOBYTE2&63) -IOBYTE2=(IOBYTE2*256) -FOCUS=(IOBYTE1+IOBYTE2) +CB1;' OUTPUT WITH FALLING EDGE TO TRIGGER EMPIRE RESOLVER BOX +AI31;' LOCK DATA +IOBYTE1=_TI2;' LOAD FIRST WORD +IOBYTE2=_TI3;' LOAD SECOND WORD +IOBYTE2=(IOBYTE2&63);' MASK OUT XBUSY BIT +IOBYTE2=(IOBYTE2*256);' SHIFT REMAINING BITS 8 POSITIONS TO RIGHT +FOCUS=(IOBYTE1+IOBYTE2);' ADD WORDS TOGETHER, READ FOCUS VARIABLE FOR DATA SB1 EN #TCPERR +NO TE: EMPTY ROUTINE FOR A TCP ERROR RE +#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 #HOME -IF (HOMERUN = 1) -JP #ENDHOME -ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSE & 4) = 0) SHE PRE=200000 BGE ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSF & 4) = 0) SHF PRF=200000 BGF ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSG & 4) = 0) SHG PRG=200000 BGG ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSH & 4) = 0) SHH PRH=200000 BGH ENDIF AMEFGH -NOTE Drive all slits into reverse limit switch +NO TE: DRIVE ALL SLITS INTO REVERSE LIMIT SWITCH SHEFGH JG ,,,,-25000,-25000,-25000,-25000 BGEFGH AMEFGH -NOTE Move away from switches by 2mm and drive back slowly +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 -NOTE Move forward from switch by 2mm and set zero +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 -#ENDHOME EN diff --git a/site_ansto/instrument/hrpd/DMC2280/controller4.txt b/site_ansto/instrument/hrpd/DMC2280/controller4.txt index c4a8fa23..50535d28 100644 --- a/site_ansto/instrument/hrpd/DMC2280/controller4.txt +++ b/site_ansto/instrument/hrpd/DMC2280/controller4.txt @@ -1,6 +1,6 @@ #AUTO -NO TE: $Revision: 1.4 $ -NO TE: $Date: 2006-11-01 01:43:46 $ +NO TE: $Revision: 1.5 $ +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 $ @@ -9,107 +9,79 @@ NO TE: A-SPARE NO TE: B-SPARE NO TE: C-SPARE NO TE: D-SPARE -NO TE: E-SLIT 2 LEFT BLADE (ss2l) -NO TE: F-SLIT 2 RIGHT BLADE (ss2r) -NO TE: G-SLIT 2 TOP BLADE (ss2u) -NO TE: H-SLIT 2 BOTTOM BLADE (ss2d) +NO TE: E-SLIT 1 LEFT BLADE (ss1l) +NO TE: F-SLIT 1 RIGHT BLADE (ss1r) +NO TE: G-SLIT 1 TOP BLADE (ss1u) +NO TE: H-SLIT 1 BOTTOM BLADE (ss1d) MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER -MO +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,6;' CONFIGURES IP ADDRESS -CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS -AC 25000,25000,25000,25000,10000,10000,10000,10000 -DC 25000,25000,25000,25000,40000,40000,40000,40000 -SP 25000,25000,25000,25000,30000,30000,30000,30000 -HOMERUN=0 +AC ,,,,60000,60000,60000,60000;' SET ACELERATION +DC ,,,,60000,60000,60000,60000;' SET DECELERATION +SP ,,,,30000,30000,30000,30000;' SET SPEED +JS #HOME;' RUNS SLIT HOMING PROCEDURE AFTER CONTROLLER RESTART +JS #LOOPER;'RUNS THE LOOPING PROCEDURE +EN #LOOPER +NO TE: ININT NEEDS A PROGRAM RUNNING TO WORK: JUST A LOOP JP#LOOPER EN #TCPERR +NO TE: EMPTY ROUTINE FOR A TCP ERROR RE #ININT -STA,B,C,D,F,G,H +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 -#LIMSWI -OLDDCA=_DCA -OLDDCB=_DCB -OLDDCC=_DCC -OLDDCD=_DCD -IF (_LFA = 0) | (_LRA = 0) -DCA=100000 -STA -AMA -DCA=OLDDCA -ENDIF -IF (_LFB = 0) | (_LRB = 0) -DCB=100000 -STB -AMB -DCB=OLDDCB -ENDIF -IF (_LFC = 0) | (_LRC = 0) -DCC=100000 -STC -AMC -DCC=OLDDCC -ENDIF -IF (_LFD = 0) | (_LRD = 0) -DCD=100000 -STD -AMD -DCD=OLDDCD -ENDIF -RE #HOME -IF (HOMERUN = 1) -JP #ENDHOME -ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSE & 4) = 0) SHE PRE=200000 BGE ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSF & 4) = 0) SHF PRF=200000 BGF ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSG & 4) = 0) SHG PRG=200000 BGG ENDIF -NOTE Move slit forward 10mm if it is against the reverse limit switch +NO TE: MOVE SLIT FORWARD 10MM IF IT IS AGAINST THE REVERSE LIMIT SWITCH IF ((_TSH & 4) = 0) SHH PRH=200000 BGH ENDIF AMEFGH -NOTE Drive all slits into reverse limit switch +NO TE: DRIVE ALL SLITS INTO REVERSE LIMIT SWITCH SHEFGH JG ,,,,-25000,-25000,-25000,-25000 BGEFGH AMEFGH -NOTE Move away from switches by 2mm and drive back slowly +NO TE: MOVE AWAY FROM SWITCHES BY 2MM AND DRIVE BACK SLOWLY PR ,,,,80000,80000,80000,80000 BGEFGH AMEFGH -JG ,,,,-5000,-5000,-5000,-5000 +JG,,,,-5000,-5000,-5000,-5000 BGEFGH AMEFGH -NOTE Move forward from switch by 2mm and set zero +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 -#ENDHOME EN +