00001 # % macro, P, Device prefix 00002 # % macro, Q, Device suffix 00003 # % macro, PORT, Asyn port name 00004 # % macro, name, Name to export to gda as 00005 # % macro, gda_desc, Description for gda 00006 # % gdatag,template,agilent33220A,$(name=),$(gda_desc=) 00007 # % gui, $(name=), edm, agilent33220A.edl, agilent=$(P)$(Q) 00008 # % autosave 2 SCAN 00009 record(seq, "$(P)$(Q):UPDATE") { 00010 field(DESC, "Update Params") 00011 field(FLNK, "$(P)$(Q):UPDATEREC") 00012 field(SCAN, "5 second") 00013 } 00014 00015 record(seq, "$(P)$(Q):UPDATEREC") { 00016 field(DESC, "Update Params") 00017 field(DOL1, "1") 00018 field(DOL2, "1") 00019 field(DOL3, "1") 00020 field(DOL4, "1") 00021 field(DOL5, "1") 00022 field(DOL6, "1") 00023 field(DOL7, "1") 00024 field(DOL8, "1") 00025 field(DOL9, "1") 00026 field(DOLA, "1") 00027 field(LNK1, "$(P)$(Q):FUNC:RBV.PROC") 00028 field(LNK2, "$(P)$(Q):FREQ:RBV.PROC") 00029 field(LNK3, "$(P)$(Q):AMP:RBV.PROC") 00030 field(LNK4, "$(P)$(Q):OFF:RBV.PROC") 00031 field(LNK5, "$(P)$(Q):OUT:RBV.PROC") 00032 field(LNK6, "$(P)$(Q):DCYC:RBV.PROC") 00033 field(LNK7, "$(P)$(Q):SYMM:RBV.PROC") 00034 field(LNK8, "$(P)$(Q):WIDT:RBV.PROC") 00035 field(LNK9, "$(P)$(Q):TRAN:RBV.PROC") 00036 field(LNKA, "$(P)$(Q):UPDATEREC2.PROC") 00037 } 00038 00039 record(seq, "$(P)$(Q):UPDATEREC2") { 00040 field(DESC, "Update Params 2") 00041 field(DOL1, "1") 00042 field(DOL2, "1") 00043 field(DOL3, "1") 00044 field(DOL4, "1") 00045 field(LNK1, "$(P)$(Q):TRIGSRC:RBV.PROC") 00046 field(LNK2, "$(P)$(Q):BURSTMODE:RBV.PROC") 00047 field(LNK3, "$(P)$(Q):BURSTNCYC:RBV.PROC") 00048 field(LNK4, "$(P)$(Q):BURST:RBV.PROC") 00049 } 00050 00051 # % gdatag,binary,rw,$(name=),DISABLE 00052 record(bo, "$(P)$(Q):DISABLE") { 00053 field(DESC, "Disable comms") 00054 field(VAL, "0") 00055 field(OMSL, "supervisory") 00056 field(ZNAM, "Enabled") 00057 field(ONAM, "Disabled") 00058 } 00059 00060 #% gdatag,mbbinary,rw,$(name=),FUNC 00061 record(mbbo, "$(P)$(Q):FUNC") { 00062 field(DESC, "Function") 00063 field(DTYP, "stream") 00064 field(FLNK, "$(P)$(Q):UPDATEREC") 00065 field(OUT, "@agilent33220A.proto write_string(FUNC) $(PORT)") 00066 field(ZRST, "SIN") 00067 field(ONST, "SQU") 00068 field(TWST, "RAMP") 00069 field(THST, "PULS") 00070 field(FRST, "NOIS") 00071 field(FVST, "DC") 00072 field(SXST, "USER") 00073 field(ZRVL, "0") 00074 field(ONVL, "1") 00075 field(TWVL, "2") 00076 field(THVL, "3") 00077 field(FRVL, "4") 00078 field(FVVL, "5") 00079 field(SXVL, "6") 00080 field(SDIS, "$(P)$(Q):DISABLE") 00081 } 00082 00083 # % gdatag,mbbinary,ro,$(name=),FUNCRBV 00084 # % archiver 10 Monitor 00085 record(mbbi, "$(P)$(Q):FUNC:RBV") { 00086 field(DESC, "Function Readback") 00087 field(DTYP, "stream") 00088 field(INP, "@agilent33220A.proto read_string(FUNC) $(PORT)") 00089 field(ZRST, "SIN") 00090 field(ONST, "SQU") 00091 field(TWST, "RAMP") 00092 field(THST, "PULS") 00093 field(FRST, "NOIS") 00094 field(FVST, "DC") 00095 field(SXST, "USER") 00096 field(ZRVL, "0") 00097 field(ONVL, "1") 00098 field(TWVL, "2") 00099 field(THVL, "3") 00100 field(FRVL, "4") 00101 field(FVVL, "5") 00102 field(SXVL, "6") 00103 field(SDIS, "$(P)$(Q):DISABLE") 00104 } 00105 00106 #% gdatag,mbbinary,rw,$(name=),TRIGSRC 00107 record(mbbo, "$(P)$(Q):TRIGSRC") { 00108 field(DESC, "Trigger Source") 00109 field(DTYP, "stream") 00110 field(OUT, "@agilent33220A.proto write_string(TRIG:SOUR) $(PORT)") 00111 field(FLNK, "$(P)$(Q):TRIGSRC:RBV") 00112 field(ZRST, "IMM") 00113 field(ONST, "EXT") 00114 field(TWST, "BUS") 00115 field(ZRVL, "0") 00116 field(ONVL, "1") 00117 field(TWVL, "2") 00118 field(SDIS, "$(P)$(Q):DISABLE") 00119 } 00120 00121 # % gdatag,mbbinary,ro,$(name=),TRIGSRCRBV 00122 # % archiver 10 Monitor 00123 record(mbbi, "$(P)$(Q):TRIGSRC:RBV") { 00124 field(DESC, "Trigger Source Readback") 00125 field(DTYP, "stream") 00126 field(INP, "@agilent33220A.proto read_string(TRIG:SOUR) $(PORT)") 00127 field(ZRST, "IMM") 00128 field(ONST, "EXT") 00129 field(TWST, "BUS") 00130 field(ZRVL, "0") 00131 field(ONVL, "1") 00132 field(TWVL, "2") 00133 field(SDIS, "$(P)$(Q):DISABLE") 00134 } 00135 00136 #% gdatag,mbbinary,rw,$(name=),BURSTMODE 00137 record(mbbo, "$(P)$(Q):BURSTMODE") { 00138 field(DESC, "Burst Mode") 00139 field(DTYP, "stream") 00140 field(OUT, "@agilent33220A.proto write_string(BURS:MODE) $(PORT)") 00141 field(FLNK, "$(P)$(Q):BURSTMODE:RBV") 00142 field(ZRST, "TRIG") 00143 field(ONST, "GAT") 00144 field(ZRVL, "0") 00145 field(ONVL, "1") 00146 field(SDIS, "$(P)$(Q):DISABLE") 00147 } 00148 00149 # % gdatag,mbbinary,ro,$(name=),BURSTMODERBV 00150 # % archiver 10 Monitor 00151 record(mbbi, "$(P)$(Q):BURSTMODE:RBV") { 00152 field(DESC, "Burst Mode Readback") 00153 field(DTYP, "stream") 00154 field(INP, "@agilent33220A.proto read_string(BURS:MODE) $(PORT)") 00155 field(ZRST, "TRIG") 00156 field(ONST, "GAT") 00157 field(ZRVL, "0") 00158 field(ONVL, "1") 00159 field(SDIS, "$(P)$(Q):DISABLE") 00160 } 00161 00162 record(mbbo, "$(P)$(Q):TRIGEDGE") { 00163 field(DESC, "Trigger Edge") 00164 field(DTYP, "stream") 00165 field(OUT, "@agilent33220A.proto write_string(TRIG:SLOP) $(PORT)") 00166 field(FLNK, "$(P)$(Q):TRIGEDGE:RBV") 00167 field(ZRST, "POS") 00168 field(ONST, "NEG") 00169 field(ZRVL, "0") 00170 field(ONVL, "1") 00171 field(SDIS, "$(P)$(Q):DISABLE") 00172 } 00173 00174 # % archiver 10 Monitor 00175 record(mbbi, "$(P)$(Q):TRIGEDGE:RBV") { 00176 field(DESC, "Trigger Edge Readback") 00177 field(DTYP, "stream") 00178 field(INP, "@agilent33220A.proto read_string(TRIG:SLOP) $(PORT)") 00179 field(ZRST, "POS") 00180 field(ONST, "NEG") 00181 field(ZRVL, "0") 00182 field(ONVL, "1") 00183 field(SDIS, "$(P)$(Q):DISABLE") 00184 } 00185 00186 #% gdatag,pv,rw,$(name=),BURSTNCYC 00187 record(longout, "$(P)$(Q):BURSTNCYC") { 00188 field(DESC, "Burst Number of Cycles") 00189 field(DTYP, "stream") 00190 field(OUT, "@agilent33220A.proto write_int(BURS:NCYC) $(PORT)") 00191 field(FLNK, "$(P)$(Q):BURSTNCYC:RBV") 00192 field(SDIS, "$(P)$(Q):DISABLE") 00193 } 00194 00195 #% gdatag,pv,rw,$(name=),BURSTNCYCINF,Set Burst Number of Cycles to Infinite,<pv>.PROC 00196 record(stringout, "$(P)$(Q):BURSTNCYC:INF") { 00197 field(VAL, "INF") 00198 field(DTYP, "stream") 00199 field(OUT, "@agilent33220A.proto write_string(BURS:NCYC) $(PORT)") 00200 field(FLNK, "$(P)$(Q):BURSTNCYC:RBV") 00201 } 00202 00203 # % gdatag,pv,ro,$(name=),BURSTNCYCRBV 00204 # % archiver 10 Monitor 00205 record(ai, "$(P)$(Q):BURSTNCYC:RBV") { 00206 field(DESC, "Burst Number of Cycles Readback") 00207 field(DTYP, "stream") 00208 field(INP, "@agilent33220A.proto read_float(BURS:NCYC) $(PORT)") 00209 field(SDIS, "$(P)$(Q):DISABLE") 00210 } 00211 00212 #% gdatag,binary,rw,$(name=),BURST 00213 record(bo, "$(P)$(Q):BURST") { 00214 field(DESC, "Burst State") 00215 field(DTYP, "stream") 00216 field(FLNK, "$(P)$(Q):BURST:RBV") 00217 field(OUT, "@agilent33220A.proto write_string(BURS:STAT) $(PORT)") 00218 field(ZNAM, "Off") 00219 field(ONAM, "On") 00220 field(SDIS, "$(P)$(Q):DISABLE") 00221 } 00222 00223 # % gdatag,binary,ro,$(name=),BURSTRBV 00224 # % archiver 10 Monitor 00225 record(bi, "$(P)$(Q):BURST:RBV") { 00226 field(DESC, "Burst State Readback") 00227 field(DTYP, "stream") 00228 field(INP, "@agilent33220A.proto read_int(BURS:STAT) $(PORT)") 00229 field(ZNAM, "Off") 00230 field(ONAM, "On") 00231 field(SDIS, "$(P)$(Q):DISABLE") 00232 } 00233 00234 #% gdatag,pv,rw,$(name=),FREQ 00235 record(ao, "$(P)$(Q):FREQ") { 00236 field(DESC, "Frequency") 00237 field(DTYP, "stream") 00238 field(FLNK, "$(P)$(Q):FREQ:RBV") 00239 field(OUT, "@agilent33220A.proto write_float(FREQ) $(PORT)") 00240 field(PREC, "3") 00241 field(EGU, "Hz") 00242 field(SDIS, "$(P)$(Q):DISABLE") 00243 } 00244 00245 # % gdatag,pv,ro,$(name=),FREQRBV 00246 # % archiver 10 Monitor 00247 record(ai, "$(P)$(Q):FREQ:RBV") { 00248 field(DESC, "Frequency Readback") 00249 field(DTYP, "stream") 00250 field(INP, "@agilent33220A.proto read_float(FREQ) $(PORT)") 00251 field(PREC, "3") 00252 field(EGU, "Hz") 00253 field(SDIS, "$(P)$(Q):DISABLE") 00254 } 00255 00256 #% gdatag,pv,rw,$(name=),AMP 00257 record(ao, "$(P)$(Q):AMP") { 00258 field(DESC, "Amplitude") 00259 field(DTYP, "stream") 00260 field(FLNK, "$(P)$(Q):AMP:RBV") 00261 field(OUT, "@agilent33220A.proto write_float(VOLT) $(PORT)") 00262 field(PREC, "3") 00263 field(EGU, "V") 00264 field(SDIS, "$(P)$(Q):DISABLE") 00265 } 00266 00267 # % gdatag,pv,ro,$(name=),AMPRBV 00268 # % archiver 10 Monitor 00269 record(ai, "$(P)$(Q):AMP:RBV") { 00270 field(DESC, "Amplitude Readback") 00271 field(DTYP, "stream") 00272 field(INP, "@agilent33220A.proto read_float(VOLT) $(PORT)") 00273 field(PREC, "3") 00274 field(EGU, "V") 00275 field(SDIS, "$(P)$(Q):DISABLE") 00276 } 00277 00278 #% gdatag,pv,rw,$(name=),OFF 00279 record(ao, "$(P)$(Q):OFF") { 00280 field(DESC, "Offset") 00281 field(DTYP, "stream") 00282 field(FLNK, "$(P)$(Q):OFF:RBV") 00283 field(OUT, "@agilent33220A.proto write_float(VOLT:OFFS) $(PORT)") 00284 field(PREC, "3") 00285 field(EGU, "V") 00286 field(SDIS, "$(P)$(Q):DISABLE") 00287 } 00288 00289 # % gdatag,pv,ro,$(name=),OFFRBV 00290 # % archiver 10 Monitor 00291 record(ai, "$(P)$(Q):OFF:RBV") { 00292 field(DESC, "Offset Readback") 00293 field(DTYP, "stream") 00294 field(INP, "@agilent33220A.proto read_float(VOLT:OFFS) $(PORT)") 00295 field(PREC, "3") 00296 field(EGU, "V") 00297 field(SDIS, "$(P)$(Q):DISABLE") 00298 } 00299 00300 record(ao, "$(P)$(Q):PHASE") { 00301 field(DESC, "Burst Phase Angle") 00302 field(DTYP, "stream") 00303 field(FLNK, "$(P)$(Q):PHASE:RBV") 00304 field(OUT, "@agilent33220A.proto write_float(BURS:PHAS) $(PORT)") 00305 field(PREC, "3") 00306 field(EGU, "Deg") 00307 field(SDIS, "$(P)$(Q):DISABLE") 00308 } 00309 00310 # % archiver 10 Monitor 00311 record(ai, "$(P)$(Q):PHASE:RBV") { 00312 field(DESC, "Burst Phase Angle Readback") 00313 field(DTYP, "stream") 00314 field(INP, "@agilent33220A.proto read_float(BURS:PHAS) $(PORT)") 00315 field(PREC, "3") 00316 field(EGU, "Deg") 00317 field(SDIS, "$(P)$(Q):DISABLE") 00318 } 00319 00320 record(ao, "$(P)$(Q):PULSEW") { 00321 field(DESC, "Pulse Width") 00322 field(DTYP, "stream") 00323 field(FLNK, "$(P)$(Q):PULSEW:RBV") 00324 field(OUT, "@agilent33220A.proto write_float(FUNC:PULS:WIDT) $(PORT)") 00325 field(PREC, "6") 00326 field(EGU, "sec") 00327 field(SDIS, "$(P)$(Q):DISABLE") 00328 } 00329 00330 # % archiver 10 Monitor 00331 record(ai, "$(P)$(Q):PULSEW:RBV") { 00332 field(DESC, "Pulse Width Readback") 00333 field(DTYP, "stream") 00334 field(INP, "@agilent33220A.proto read_float(FUNC:PULS:WIDT) $(PORT)") 00335 field(PREC, "6") 00336 field(EGU, "sec") 00337 field(SDIS, "$(P)$(Q):DISABLE") 00338 } 00339 00340 #% gdatag,binary,rw,$(name=),OUT 00341 record(bo, "$(P)$(Q):OUT") { 00342 field(DESC, "Output") 00343 field(DTYP, "stream") 00344 field(FLNK, "$(P)$(Q):OUT:RBV") 00345 field(OUT, "@agilent33220A.proto write_int(OUTP) $(PORT)") 00346 field(ZNAM, "Off") 00347 field(ONAM, "On") 00348 field(SDIS, "$(P)$(Q):DISABLE") 00349 } 00350 00351 # % gdatag,binary,ro,$(name=),OUTRBV 00352 # % archiver 10 Monitor 00353 record(bi, "$(P)$(Q):OUT:RBV") { 00354 field(DESC, "Output Readback") 00355 field(DTYP, "stream") 00356 field(INP, "@agilent33220A.proto read_int(OUTP) $(PORT)") 00357 field(ZNAM, "Off") 00358 field(ONAM, "On") 00359 field(SDIS, "$(P)$(Q):DISABLE") 00360 } 00361 00362 #% gdatag,pv,rw,$(name=),DCYC 00363 record(ao, "$(P)$(Q):DCYC") { 00364 field(DESC, "Duty Cycle") 00365 field(DTYP, "stream") 00366 field(FLNK, "$(P)$(Q):DCYC:RBV") 00367 field(OUT, "@agilent33220A.proto write_float(FUNC:SQU:DCYC) $(PORT)") 00368 field(PREC, "3") 00369 field(EGU, "%") 00370 field(SDIS, "$(P)$(Q):DISABLE") 00371 } 00372 00373 # % gdatag,pv,ro,$(name=),DCYCRBV 00374 # % archiver 10 Monitor 00375 record(ai, "$(P)$(Q):DCYC:RBV") { 00376 field(DESC, "Duty Cycle Readback") 00377 field(DTYP, "stream") 00378 field(INP, "@agilent33220A.proto read_float(FUNC:SQU:DCYC) $(PORT)") 00379 field(PREC, "3") 00380 field(EGU, "%") 00381 field(SDIS, "$(P)$(Q):DISABLE") 00382 } 00383 00384 #% gdatag,pv,rw,$(name=),SYMM 00385 record(ao, "$(P)$(Q):SYMM") { 00386 field(DESC, "Ramp Symmetry") 00387 field(DTYP, "stream") 00388 field(FLNK, "$(P)$(Q):DCYC:RBV") 00389 field(OUT, "@agilent33220A.proto write_float(FUNC:RAMP:SYMM) $(PORT)") 00390 field(PREC, "3") 00391 field(EGU, "%") 00392 field(SDIS, "$(P)$(Q):DISABLE") 00393 } 00394 00395 # % gdatag,pv,ro,$(name=),SYMMRBV 00396 # % archiver 10 Monitor 00397 record(ai, "$(P)$(Q):SYMM:RBV") { 00398 field(DESC, "Ramp Symmetry Readback") 00399 field(DTYP, "stream") 00400 field(INP, "@agilent33220A.proto read_float(FUNC:RAMP:SYMM) $(PORT)") 00401 field(PREC, "3") 00402 field(EGU, "%") 00403 field(SDIS, "$(P)$(Q):DISABLE") 00404 } 00405 00406 #% gdatag,pv,rw,$(name=),WIDT 00407 record(ao, "$(P)$(Q):WIDT") { 00408 field(DESC, "Pulse Width") 00409 field(DTYP, "stream") 00410 field(FLNK, "$(P)$(Q):WIDT:RBV") 00411 field(OUT, "@agilent33220A.proto write_float(FUNC:PULS:WIDT) $(PORT)") 00412 field(PREC, "6") 00413 field(EGU, "s") 00414 field(SDIS, "$(P)$(Q):DISABLE") 00415 } 00416 00417 # % gdatag,pv,ro,$(name=),WIDTRBV 00418 # % archiver 10 Monitor 00419 record(ai, "$(P)$(Q):WIDT:RBV") { 00420 field(DESC, "Pulse Width Readback") 00421 field(DTYP, "stream") 00422 field(INP, "@agilent33220A.proto read_float(FUNC:PULS:WIDT) $(PORT)") 00423 field(PREC, "6") 00424 field(EGU, "s") 00425 field(SDIS, "$(P)$(Q):DISABLE") 00426 } 00427 00428 #% gdatag,pv,rw,$(name=),TRAN 00429 record(ao, "$(P)$(Q):TRAN") { 00430 field(DESC, "Pulse Edge Transition") 00431 field(DTYP, "stream") 00432 field(FLNK, "$(P)$(Q):TRAN:RBV") 00433 field(OUT, "@agilent33220A.proto write_float(FUNC:PULS:TRAN) $(PORT)") 00434 field(PREC, "3") 00435 field(EGU, "s") 00436 field(SDIS, "$(P)$(Q):DISABLE") 00437 } 00438 00439 # % gdatag,pv,ro,$(name=),TRANRBV 00440 # % archiver 10 Monitor 00441 record(ai, "$(P)$(Q):TRAN:RBV") { 00442 field(DESC, "Pulse Edge Transition Readback") 00443 field(DTYP, "stream") 00444 field(INP, "@agilent33220A.proto read_float(FUNC:PULS:TRAN) $(PORT)") 00445 field(PREC, "3") 00446 field(EGU, "s") 00447 field(SDIS, "$(P)$(Q):DISABLE") 00448 } 00449 00450 ########################################################################### 00451 # Records to deal with ramping the frequency up and down 00452 00453 # % autosave 1 VAL 00454 record(ao, "$(P)$(Q):FREQSTEP") { 00455 field(DESC, "Freq step size") 00456 field(DTYP, "Soft Channel") 00457 field(VAL, "10") 00458 field(PREC, "3") 00459 field(EGU, "Hz") 00460 field(SDIS, "$(P)$(Q):DISABLE") 00461 } 00462 00463 # % autosave 1 VAL 00464 record(ao, "$(P)$(Q):STARTFREQ") { 00465 field(DESC, "Ramp start freq") 00466 field(DTYP, "Soft Channel") 00467 field(VAL, "1") 00468 field(PREC, "3") 00469 field(EGU, "Hz") 00470 field(SDIS, "$(P)$(Q):DISABLE") 00471 } 00472 00473 # % autosave 1 VAL 00474 record(ao, "$(P)$(Q):STOPFREQ") { 00475 field(DESC, "Ramp stop freq") 00476 field(DTYP, "Soft Channel") 00477 field(VAL, "100") 00478 field(PREC, "3") 00479 field(EGU, "Hz") 00480 field(SDIS, "$(P)$(Q):DISABLE") 00481 } 00482 00483 #Start a ramp from the start to the stop freq, using the set step size 00484 #and using the set ramp rate. Set a busy record to support caput callback. 00485 #Set the frequency equal to the start freq first. 00486 record(seq, "$(P)$(Q):STARTRAMP") { 00487 field(DESC, "Start the ramp") 00488 field(DOL1, "$(P)$(Q):STARTFREQ NPP") 00489 field(LNK1, "$(P)$(Q):FREQ.VAL PP") 00490 field(DO2, "0") 00491 field(LNK2, "$(P)$(Q):PERFORMRAMP.DISA") 00492 field(DO3, "1") 00493 field(LNK3, "$(P)$(Q):BUSYRAMP PP") 00494 field(SDIS, "$(P)$(Q):DISABLE") 00495 } 00496 00497 #Stop a ramp. Poll the desired and actual freq, and when equal do the stop sequence 00498 record(calcout, "$(P)$(Q):STOPRAMP") { 00499 field(DESC, "Stop the ramp") 00500 field(INPA, "$(P)$(Q):STOPFREQ NPP") 00501 field(INPB, "$(P)$(Q):FREQ:RBV NPP") 00502 field(CALC, "A=B") 00503 field(OUT, "$(P)$(Q):STOPRAMPSEQ PP") 00504 field(SCAN, "1 second") 00505 field(DOPT, "Use CALC") 00506 field(OOPT, "Transition To Non-zero") 00507 field(SDIS, "$(P)$(Q):DISABLE") 00508 } 00509 00510 #Disable the ramp record and clear the busy record. 00511 record(seq, "$(P)$(Q):STOPRAMPSEQ") { 00512 field(DESC, "Stop the ramp") 00513 field(DO1, "1") 00514 field(LNK1, "$(P)$(Q):PERFORMRAMP.DISA") 00515 field(DO2, "0") 00516 field(LNK2, "$(P)$(Q):BUSYRAMP PP") 00517 } 00518 00519 # Busy record to implement callback 00520 record(busy, "$(P)$(Q):BUSYRAMP") { 00521 } 00522 00523 #This is disabled normally, and only enabled when ramping. 00524 #It is disabled again when the target freq is reached. 00525 # % autosave 1 SCAN 00526 record(calcout, "$(P)$(Q):PERFORMRAMP") { 00527 field(DESC, "Ramp the freq") 00528 field(INPA, "$(P)$(Q):STARTFREQ NPP") 00529 field(INPB, "$(P)$(Q):STOPFREQ NPP") 00530 field(INPC, "$(P)$(Q):FREQSTEP NPP") 00531 field(INPD, "$(P)$(Q):FREQ:RBV NPP") 00532 field(CALC, "(B>A)?((D<B)?(D+C):B):((D>B)?(D-C):B)") 00533 field(OUT, "$(P)$(Q):FREQ.VAL PP") 00534 field(SCAN, "Passive") 00535 field(DOPT, "Use CALC") 00536 field(OOPT, "On Change") 00537 field(DISA, "1") 00538 } 00539 00540 #Perform a ramp down to zero and disable the output 00541 record(seq, "$(P)$(Q):RAMPTOZERO") { 00542 field(DESC, "Ramp to zero") 00543 field(DOL1, "$(P)$(Q):FREQ:RBV NPP") 00544 field(LNK1, "$(P)$(Q):STARTFREQ PP") 00545 field(DO2, "0.1") 00546 field(LNK2, "$(P)$(Q):STOPFREQ PP") 00547 field(DO3, "1") 00548 field(LNK3, "$(P)$(Q):STARTRAMP.PROC PP") 00549 field(SDIS, "$(P)$(Q):DISABLE") 00550 } 00551 00552 00553 ################################################################################### 00554 00555 00556 record(asyn, "$(P)$(Q):ASYN") { 00557 field(PORT, "$(PORT)") 00558 field(OEOS, "\n") 00559 field(IEOS, "\n") 00560 }