00001 #! Generated by VisualDCT v2.6 00002 #! DBDSTART 00003 #! DBD("../../dbd/pmacCoord_vdct.dbd") 00004 #! DBDEND 00005 00006 00007 # % macro, __doc__, Use this template with CS_qcm.pmc to implement 00008 # a mode for changing energy that only moves Bragg1. 00009 # % macro, P, Pv Prefix 00010 # % macro, PORT, Motor controller serial port 00011 # % macro, COORD, Co-ordinate system number 00012 # % macro, RADMRES1, Scale factor to turn B1 units into Rads 00013 # % macro, RADMRES2, Scale factor to turn B2 units into Rads 00014 # % macro, gda_name, GDA name 00015 # % macro, name, Object name and gui association name 00016 # This associates an edm screen with the template 00017 # % gui, $(name=), edm, qcm.edl, P=$(P) 00018 # % autosave 2 VAL 00019 # % gdatag,template,simpleBinary,$(gda_name=).ENERGY.MODE,$(gda_name=) energy mode 00020 # % gdatag,binary,rw,$(gda_name=).ENERGY.MODE,RECORD,Energy Control Mode 00021 record(bo, "$(P):ENERGYMODE") { 00022 field(DTYP, "stream") 00023 field(OUT, "@pmacCoord.proto setIntVar(&$(COORD)Q20) $(PORT)") 00024 field(VAL, "0") 00025 field(ZNAM, "Bragg and Offset") 00026 field(ONAM, "Bragg1 and Bragg2") 00027 field(DESC, "Energy mode") 00028 field(PINI, "YES") 00029 } 00030 00031 record(stringout, "$(P):B1:PHASE:START") { 00032 field(DESC, "phase bragg 1 mtr") 00033 field(DTYP, "stream") 00034 field(VAL, "enable plc 21") 00035 field(OUT, "@pmacCoord.proto sendString $(PORT)") 00036 field(FLNK, "$(P):B1:PHASING") 00037 } 00038 00039 record(stringout, "$(P):B2:PHASE:START") { 00040 field(DESC, "phase bragg 2 mtr") 00041 field(DTYP, "stream") 00042 field(VAL, "enable plc 22") 00043 field(OUT, "@pmacCoord.proto sendString $(PORT)") 00044 field(FLNK, "$(P):B1:PHASING") 00045 } 00046 00047 record(ai, "$(P):B1:PHASING") { 00048 field(SCAN, "Passive") 00049 field(PINI, "NO") 00050 field(DTYP, "stream") 00051 field(FLNK, "$(P):B2:PHASING") 00052 field(INP, "@pmacCoord.proto getVar(M5021) $(PORT)") 00053 field(PREC, "0") 00054 } 00055 00056 record(ai, "$(P):B2:PHASING") { 00057 field(SCAN, "Passive") 00058 field(PINI, "NO") 00059 field(DTYP, "stream") 00060 field(INP, "@pmacCoord.proto getVar(M5022) $(PORT)") 00061 field(PREC, "0") 00062 } 00063 00064 record(bo, "$(P):B1:CLK") { 00065 field(SCAN, "5 second") 00066 field(DTYP, "Soft Channel") 00067 field(FLNK, "$(P):B1:PHASING") 00068 } 00069 00070 record(bi, "$(P):XTAL") { 00071 field(DTYP, "Raw Soft Channel") 00072 field(ZNAM, "Si(111)") 00073 field(ONAM, "Si(311)") 00074 } 00075 00076 record(ai, "$(P):GET:XTALSPACE") { 00077 field(DESC, "Get pmac variable") 00078 field(SCAN, "10 second") 00079 field(DTYP, "stream") 00080 field(FLNK, "$(P):XTALSPACE") 00081 field(INP, "@pmacCoord.proto getVar(&$(COORD)Q21) $(PORT)") 00082 } 00083 00084 record(calcout, "$(P):XTALSPACE") { 00085 field(SCAN, "Passive") 00086 field(PINI, "NO") 00087 field(DTYP, "Soft Channel") 00088 field(CALC, "A>3?0:1") 00089 field(INPA, "$(P):GET:XTALSPACE") 00090 field(OUT, "$(P):XTAL.RVAL PP") 00091 field(OOPT, "Every Time") 00092 field(DOPT, "Use CALC") 00093 field(PREC, "9") 00094 } 00095 00096 record(stringout, "$(P):MSCLRF0") { 00097 field(DESC, "Send MSCLRF0 cmd") 00098 field(SCAN, "Passive") 00099 field(DTYP, "stream") 00100 field(VAL, "MSCLRF0") 00101 field(OUT, "@pmacCoord.proto sendString $(PORT)") 00102 } 00103 00104 record(bo, "$(P):SETXTAL") { 00105 field(VAL, "0") 00106 field(ZNAM, "Si(111)") 00107 field(ONAM, "Si(311)") 00108 field(DESC, "set xtal type") 00109 field(FLNK, "$(P):XTAL:SPACING") 00110 field(PINI, "YES") 00111 } 00112 00113 record(calcout, "$(P):XTAL:SPACING") { 00114 field(DTYP, "stream") 00115 field(CALC, "A=0?B:C") 00116 field(INPA, "$(P):SETXTAL") 00117 field(INPB, "3.13475") 00118 field(INPC, "1.637069796") 00119 field(OUT, "@pmacCoord.proto setVar(&$(COORD)Q21) $(PORT)") 00120 field(OOPT, "Every Time") 00121 field(DOPT, "Use CALC") 00122 } 00123 00124 record(ao, "$(P):BRAGG1:ACTUAL") { 00125 field(DESC, "bragg energy actual") 00126 field(OMSL, "supervisory") 00127 field(DRVH, "40000") 00128 field(DRVL, "-40000") 00129 field(EGU, "eV") 00130 } 00131 00132 record(ao, "$(P):BRAGG2:ACTUAL") { 00133 field(DESC, "bragg energy actual") 00134 field(OMSL, "supervisory") 00135 field(DRVH, "40000") 00136 field(DRVL, "-40000") 00137 field(EGU, "eV") 00138 } 00139 00140 record(transform, "$(P):CALC:B2OFF") { 00141 field(CLCE, "(D*1000)/(2*C)") 00142 field(CLCF, "ASIN(E/A)") 00143 field(CLCG, "ASIN(E/B)") 00144 field(CLCK, "((G-F)/H)*I*32") 00145 field(CLCL, "J+K") 00146 field(INPA, "$(P):BRAGG2.RBV") 00147 field(INPB, "$(P):BRAGG2:ACTUAL") 00148 field(INPC, "$(P):XTAL:SPACING") 00149 field(INPD, "12.3985") 00150 field(INPH, "$(RADMRES2)") 00151 field(INPI, "$(P):B2:ENC1234.MRES") 00152 field(INPJ, "$(P):B2:ENC1234.OFF") 00153 field(CMTA, "bragg energy readback") 00154 field(CMTB, "bragg energy actual") 00155 field(CMTC, "xtal spacing d") 00156 field(CMTD, "Evlambda") 00157 field(CMTE, "(Evlambda*1000)/2d") 00158 field(CMTF, "bragg rad readback") 00159 field(CMTG, "bragg rad actual") 00160 field(CMTH, "RADMRES2") 00161 field(CMTI, "B2MRES") 00162 field(CMTJ, "B2OFF") 00163 field(CMTK, "B2 offset correction") 00164 field(CMTL, "new B2OFF") 00165 field(DESC, "calc new B2 motor offset") 00166 field(OUTL, "$(P):B2:ENC1234.OFF") 00167 } 00168 00169 record(transform, "$(P):CALC:B1OFF") { 00170 field(CLCE, "(D*1000)/(2*C)") 00171 field(CLCF, "ASIN(E/A)") 00172 field(CLCG, "ASIN(E/B)") 00173 field(CLCK, "((G-F)/H)*I*32") 00174 field(CLCL, "J+K") 00175 field(INPA, "$(P):BRAGG1.RBV") 00176 field(INPB, "$(P):BRAGG1:ACTUAL") 00177 field(INPC, "$(P):XTAL:SPACING") 00178 field(INPD, "12.3985") 00179 field(INPH, "$(RADMRES1)") 00180 field(INPI, "$(P):B1:ENC1234.MRES") 00181 field(INPJ, "$(P):B1:ENC1234.OFF") 00182 field(CMTA, "bragg energy readback") 00183 field(CMTB, "bragg energy actual") 00184 field(CMTC, "xtal spacing d") 00185 field(CMTD, "Evlambda") 00186 field(CMTE, "(Evlambda*1000)/2d") 00187 field(CMTF, "bragg rad readback") 00188 field(CMTG, "bragg rad actual") 00189 field(CMTH, "RADMRES1") 00190 field(CMTI, "B1MRES") 00191 field(CMTJ, "B1OFF") 00192 field(CMTK, "B1 offset correction") 00193 field(CMTL, "new B1OFF") 00194 field(DESC, "calc new B1 motor offset") 00195 field(OUTL, "$(P):B1:ENC1234.OFF") 00196 } 00197 00198 #! Further lines contain data used by VisualDCT 00199 #! View(1084,590,1.0) 00200 #! Record("$(P):ENERGYMODE",1420,646,0,0,"$(P):ENERGYMODE") 00201 #! Record("$(P):B1:PHASE:START",1420,814,0,1,"$(P):B1:PHASE:START") 00202 #! Field("$(P):B1:PHASE:START.FLNK",16777215,1,"$(P):B1:PHASE:START.FLNK") 00203 #! Link("$(P):B1:PHASE:START.FLNK","$(P):B1:PHASING") 00204 #! Record("$(P):B2:PHASE:START",1420,1014,0,1,"$(P):B2:PHASE:START") 00205 #! Field("$(P):B2:PHASE:START.FLNK",16777215,1,"$(P):B2:PHASE:START.FLNK") 00206 #! Link("$(P):B2:PHASE:START.FLNK","$(P):B1:PHASING") 00207 #! Record("$(P):B1:PHASING",1680,900,0,0,"$(P):B1:PHASING") 00208 #! Field("$(P):B1:PHASING.FLNK",16777215,1,"$(P):B1:PHASING.FLNK") 00209 #! Link("$(P):B1:PHASING.FLNK","$(P):B2:PHASING") 00210 #! Record("$(P):B2:PHASING",1700,1094,0,1,"$(P):B2:PHASING") 00211 #! Record("$(P):B1:CLK",1420,1182,0,1,"$(P):B1:CLK") 00212 #! Field("$(P):B1:CLK.FLNK",16777215,1,"$(P):B1:CLK.FLNK") 00213 #! Link("$(P):B1:CLK.FLNK","$(P):B1:PHASING") 00214 #! Record("$(P):XTAL",420,862,0,1,"$(P):XTAL") 00215 #! Field("$(P):XTAL.RVAL",16777215,1,"$(P):XTAL.RVAL") 00216 #! Record("$(P):GET:XTALSPACE",400,1014,0,0,"$(P):GET:XTALSPACE") 00217 #! Field("$(P):GET:XTALSPACE.FLNK",16777215,0,"$(P):GET:XTALSPACE.FLNK") 00218 #! Link("$(P):GET:XTALSPACE.FLNK","$(P):XTALSPACE") 00219 #! Field("$(P):GET:XTALSPACE.VAL",16777215,1,"$(P):GET:XTALSPACE.VAL") 00220 #! Record("$(P):XTALSPACE",380,519,0,0,"$(P):XTALSPACE") 00221 #! Field("$(P):XTALSPACE.INPA",16777215,1,"$(P):XTALSPACE.INPA") 00222 #! Link("$(P):XTALSPACE.INPA","$(P):GET:XTALSPACE.VAL") 00223 #! Field("$(P):XTALSPACE.OUT",16777215,1,"$(P):XTALSPACE.OUT") 00224 #! Link("$(P):XTALSPACE.OUT","$(P):XTAL.RVAL") 00225 #! Record("$(P):MSCLRF0",1680,654,0,1,"$(P):MSCLRF0") 00226 #! Record("$(P):SETXTAL",700,700,0,1,"$(P):SETXTAL") 00227 #! Field("$(P):SETXTAL.FLNK",16777215,1,"$(P):SETXTAL.FLNK") 00228 #! Link("$(P):SETXTAL.FLNK","$(P):XTAL:SPACING") 00229 #! Field("$(P):SETXTAL.VAL",16777215,1,"$(P):SETXTAL.VAL") 00230 #! Record("$(P):XTAL:SPACING",980,692,0,0,"$(P):XTAL:SPACING") 00231 #! Field("$(P):XTAL:SPACING.INPA",16777215,0,"$(P):XTAL:SPACING.INPA") 00232 #! Link("$(P):XTAL:SPACING.INPA","$(P):SETXTAL.VAL") 00233 #! Field("$(P):XTAL:SPACING.VAL",16777215,1,"$(P):XTAL:SPACING.VAL") 00234 #! Record("$(P):BRAGG1:ACTUAL",480,1234,0,1,"$(P):BRAGG1:ACTUAL") 00235 #! Field("$(P):BRAGG1:ACTUAL.VAL",16777215,0,"$(P):BRAGG1:ACTUAL.VAL") 00236 #! Record("$(P):BRAGG2:ACTUAL",980,1234,0,1,"$(P):BRAGG2:ACTUAL") 00237 #! Field("$(P):BRAGG2:ACTUAL.VAL",16777215,0,"$(P):BRAGG2:ACTUAL.VAL") 00238 #! Record("$(P):CALC:B2OFF",1220,1143,0,0,"$(P):CALC:B2OFF") 00239 #! Field("$(P):CALC:B2OFF.INPA",16777215,1,"$(P):CALC:B2OFF.INPA") 00240 #! Field("$(P):CALC:B2OFF.INPB",16777215,0,"$(P):CALC:B2OFF.INPB") 00241 #! Link("$(P):CALC:B2OFF.INPB","$(P):BRAGG2:ACTUAL.VAL") 00242 #! Field("$(P):CALC:B2OFF.INPC",16777215,0,"$(P):CALC:B2OFF.INPC") 00243 #! Link("$(P):CALC:B2OFF.INPC","$(P):XTAL:SPACING.VAL") 00244 #! Field("$(P):CALC:B2OFF.INPH",16777215,1,"$(P):CALC:B2OFF.INPH") 00245 #! Field("$(P):CALC:B2OFF.INPI",16777215,1,"$(P):CALC:B2OFF.INPI") 00246 #! Field("$(P):CALC:B2OFF.INPJ",16777215,1,"$(P):CALC:B2OFF.INPJ") 00247 #! Field("$(P):CALC:B2OFF.OUTL",16777215,1,"$(P):CALC:B2OFF.OUTL") 00248 #! Record("$(P):CALC:B1OFF",740,1143,0,0,"$(P):CALC:B1OFF") 00249 #! Field("$(P):CALC:B1OFF.INPA",16777215,1,"$(P):CALC:B1OFF.INPA") 00250 #! Field("$(P):CALC:B1OFF.INPB",16777215,0,"$(P):CALC:B1OFF.INPB") 00251 #! Link("$(P):CALC:B1OFF.INPB","$(P):BRAGG1:ACTUAL.VAL") 00252 #! Field("$(P):CALC:B1OFF.INPC",16777215,1,"$(P):CALC:B1OFF.INPC") 00253 #! Link("$(P):CALC:B1OFF.INPC","$(P):XTAL:SPACING.VAL") 00254 #! Field("$(P):CALC:B1OFF.INPH",16777215,1,"$(P):CALC:B1OFF.INPH") 00255 #! Field("$(P):CALC:B1OFF.INPI",16777215,1,"$(P):CALC:B1OFF.INPI") 00256 #! Field("$(P):CALC:B1OFF.INPJ",16777215,1,"$(P):CALC:B1OFF.INPJ") 00257 #! Field("$(P):CALC:B1OFF.OUTL",16777215,1,"$(P):CALC:B1OFF.OUTL")