From c4e7710bd5fc503e6f8458f4f7b5ce33f4fb5c21 Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Wed, 7 Dec 2011 15:46:18 +1100 Subject: [PATCH] Updated archive with code for handheld controller and eulerian omega oscillate by Paul Barron and Warren Brown. r3316 | ffr | 2011-12-07 15:46:18 +1100 (Wed, 07 Dec 2011) | 3 lines --- .../instrument/rsd/DMC2280/controller4.txt | 138 +++++++++++++++--- 1 file changed, 119 insertions(+), 19 deletions(-) diff --git a/site_ansto/instrument/rsd/DMC2280/controller4.txt b/site_ansto/instrument/rsd/DMC2280/controller4.txt index 4dd515d6..db4d4753 100644 --- a/site_ansto/instrument/rsd/DMC2280/controller4.txt +++ b/site_ansto/instrument/rsd/DMC2280/controller4.txt @@ -1,10 +1,9 @@ NO TE: KOWARI - CONTROLLER 4 NO TE: -NO TE: $Revision: 1.3 $ -NO TE: $Name: not supported by cvs2svn $ -NO TE: $Date: 2008-05-30 00:26:56 $ +NO TE: $Revision: 1.2 $ +NO TE: $Date: 2007/09/24 01:25:23 $ NO TE: Author: Dan Bartlett -NO TE: Last revision by: $Author: ffr $ +NO TE: Last revision by: $Author: dbx $ NO TE: NO TE: A-PRE SAMPLE COLLIMATOR X (ACROSS BEAM) NO TE: B-PRE SAMPLE COLLIMATOR Y (ALONG BEAM) @@ -12,7 +11,7 @@ NO TE: C-PRE SAMPLE COLLIMATOR WIDTH NO TE: D-POST SAMPLE COLLIMATOR X (ACROSS BEAM) NO TE: E-POST SAMPLE COLLIMATOR Y (ALONG BEAM) NO TE: F-POST SAMPLE COLLIMATOR WIDTH -NO TE: G-SPARE +NO TE: G-SPARE AXIS CABLED FOR CRADLE NO TE: H-SPARE NO ---------------------------------------- #AUTO @@ -23,17 +22,20 @@ 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,198;' CONFIGURES IP ADDRESS -AC 25000,25000,25000,25000,25000,25000,,;' SET ACELERATION -DC 25000,25000,25000,25000,25000,25000,,;' SET DECELERATION -SP 25000,25000,25000,25000,25000,25000,,;' SET SPEED +AC 25000,25000,25000,25000,25000,25000,25000,;' SET ACELERATION +DC 25000,25000,25000,25000,25000,25000,25000,;' SET DECELERATION +SP 25000,25000,25000,25000,25000,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,13,0<-2>2;'HEIDENHAIN ROQ425 -SIG=0,25,13,0<-2>2;'NOT USED +SIG=1,25,13,0<-2>2;'HEIDENHAIN ROQ425 SIH=0,25,13,0<-2>2;'NOT USED +hndIP=-1986147895;'STATIC IP ADDRESS OF THE WIRELESS HANDHELD TERMINAL +CONNECT=0'VARIABLE TO TELL IF HANDHELD IS CONNECTED +EOMDEG=-1;' PART OF THE SAMPLE OSCILLATION CONTROL #OSCEOM JS #THREAD0 EN NO ---------------------------------------- @@ -58,17 +60,28 @@ ENDIF IF (_SPF>50000) SPF=50000 ENDIF -NO IF (_SPG>50000) AXES NOT USED, COMMENTED OUT -NO SPG=50000 -NO ENDIF +IF (_SPG>50000) +SPG=50000 +ENDIF NO IF (_SPH>50000) NO SPH=50000 NO ENDIF +IF (_XQ1=-1);'THREAD2 NOT RUNNING +XQ #CHKHAND,1 +ENDIF +IF (_XQ3=-1)&(EOMDEG<>-1);'THREAD3 NOT RUNNING & EOM OSC +XQ #OSCEOM,3 +ENDIF JP #THREAD0 EN NO ---------------------------------------- #TCPERR -NO TE: EMPTY ROUTINE FOR A TCP ERROR +'CLOSE TCP CONNECTION, STOP AND TURN OFF MOTORS +CONNECT=0 +IHH=>-2 +ST ABBCDEFG +MC ABBCDEFG +MO ABBCDEFG RE NO ---------------------------------------- #ININT @@ -87,7 +100,7 @@ OLDDCC=_DCC OLDDCD=_DCD OLDDCE=_DCE OLDDCF=_DCF -NO OLDDCG=_DCG AXIS NOT USED +OLDDCG=_DCG NO OLDDCH=_DCH AXIS NOT USED IF (_LFA = 0) | (_LRA = 0) DCA=100000;' DECEL FOR LIMIT HIT OCCURENCE @@ -113,10 +126,10 @@ 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 +IF (_LFG = 0) | (_LRG = 0) +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 @@ -128,6 +141,93 @@ DCC=OLDDCC DCD=OLDDCD DCE=OLDDCE DCF=OLDDCF -NO DCG=OLDDCG AXIS NOT USED +DCG=OLDDCG NO DCH=OLDDCH AXIS NOT USED RE +'----------------------------------------------------------------------------- +#CHKHAND +'IF THERE IS A TCP CONNECTION BETWEEN THE HANDHELD AND GALIL +'ON HANDLE 'A' MOVE IT TO HANDLE H +'_IHn0=IP ADDRESS +'_IHn2=0 (NO CONNECTION) +'_IHn2=1 (UDP SLAVE) +'_IHn2=2 (TCP SLAVE) +IF((_IHA0=hndIP) & (_IHA2<>0)) +HSA=H +ENDIF +' +IF((_IHB0=hndIP) & (_IHB2<>0)) +HSB=H +ENDIF +' +IF((_IHC0=hndIP) & (_IHC2<>0)) +HSC=H +ENDIF +' +IF((_IHD0=hndIP) & (_IHD2<>0)) +HSD=H +ENDIF +' +IF((_IHE0=hndIP) & (_IHE2<>0)) +HSE=H +ENDIF +' +IF((_IHF0=hndIP) & (_IHF2<>0)) +HSF=H +ENDIF +' +IF((_IHG0=hndIP) & (_IHG2<>0)) +HSG=H +ENDIF +' +'IF THERE IS A TCP CONNECTION BETWEEN THE HANDHELD AND GALIL +'ON HANDLE 'H', SEND THE HEARTBEAT MESSAGE +IF((_IHH0=hndIP) & (_IHH2<>0)) +MG "CONNECTED" {EH} +CONNECT=1 +WT500 +ENDIF +' +JP #CHKHAND +EN +' +' +'----------------------------------------------------------------------- +#OSCEOM +'THIS ROUTINE OSCILLATES THE SAMPLE +'ABOUT THE STARTING POINT +- 1/2 THE VALUE IN OSCDEG IN DEGREES +' +IF (EOMDEG<0.1)|(EOMDEG>200) +'OUTSIDE ALLOWABLE RANGE +EOMDEG=-1 +JP #ENDOSC +ENDIF +' +DPG=0;' REMEMBER STARTING POSITION OF SAMPLE +SHG +PRG=25000*EOMDEG*0.5 +'FIRST MOVE IS HALF THE TOTAL AND REMEMBER DISTANCE +BGG +MCG +WT500 +#LPOSC +PRG=-25000*EOMDEG +BGG +MCG +WT500 +PRG=25000*EOMDEG +BGG +MCG +WT500 +JP #LPOSC,EOMDEG<>-1 +'CONTINUE TO LOOP UNTIL OSCDEG IS SET TO -1 +' +PAG=0;' RETURN SAMPLE TO STARTING POSITION +BGG +MCG +#ENDOSC +MOE +EN +'----------------------------------------------------------------------- + +