ISIS Logo
FINS
FINS IOC
zoom-vacuum.db
Go to the documentation of this file.
1 record(bo, "$(P)$(Q)SIM")
2 {
3  field(SCAN, "Passive")
4  field(DTYP, "Soft Channel")
5  field(ZNAM, "NO")
6  field(ONAM, "YES")
7  field(VAL, "$(RECSIM)")
8 }
9 
10 record(bo, "$(P)$(Q)DISABLE")
11 {
12  field(DESC, "Disable comms")
13  field(PINI, "YES")
14  field(VAL, "$(DISABLE)")
15  field(OMSL, "supervisory")
16  field(ZNAM, "COMMS ENABLED")
17  field(ONAM, "COMMS DISABLED")
18 }
19 
20 record(longin, "$(P)$(Q)HEARTBEAT")
21 {
22  field(DESC, "Heartbeat of the FINS PLC")
23  field(DTYP, "asynInt32")
24  field(INP, "@asyn(PLC, 500, 5.0) FINS_WR_READ")
25  field(SCAN, "1 second")
26  field(EGU, "")
27  info(INTEREST, "HIGH")
28  field(SIML, "$(P)$(Q)SIM")
29  field(SIOL, "$(P)$(Q)SIM:HEARTBEAT")
30  field(SDIS, "$(P)$(Q)DISABLE")
31 }
32 
33 # Reset DAE
34 
35 record(bo, "$(P)$(Q)DAE:RESET:SP")
36 {
37  field(ZNAM, "RESET")
38  field(ONAM, "RESET")
39  field(DESC, "Reset the DAE")
40  field(FLNK, "$(P)$(Q)DAE:RESET:RAW:VAL")
41 }
42 
43 record(longout, "$(P)$(Q)DAE:RESET:RAW:VAL")
44 {
45  field(VAL, "1")
46  field(OUT, "$(P)$(Q)DAE:RESET:RAW:SP PP")
47 }
48 
49 record(longout, "$(P)$(Q)DAE:RESET:RAW:SP")
50 {
51  field(VAL, "1")
52  field(DTYP, "asynInt32")
53  field(DESC, "Reset the DAE")
54  field(OUT, "@asyn(PLC, 550, 5.0) FINS_DM_WRITE")
55  field(SIML, "$(P)$(Q)SIM")
56  field(SIOL, "$(P)$(Q)SIM:DAE:RESET:RAW:SP")
57 }
58 
59 ### SIMULATION RECORDS ###
60 
61 record(longin, "$(P)$(Q)SIM:HEARTBEAT")
62 {
63  field(SCAN, "Passive")
64  field(DTYP, "Soft Channel")
65 }
66 
67 ## read exponent, mantissa, exponent and check exponent still same
68 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
69 
70 record(longin, "$(P)$(Q)GAUGE:1:MEAS1EXP")
71 {
72  field(DTYP, "asynInt32")
73  field(SCAN, "10 second")
74  field(INP, "@asyn(PLC, 502, 5.0) FINS_DM_READ")
75  field(FLNK, "$(P)$(Q)GAUGE:1:MEAS1")
76  field(SIML, "$(P)$(Q)SIM")
77  field(SIOL, "$(P)$(Q)GAUGE:1:MEAS1EXP:SIM")
78 }
79 
80 ## number in range 10 to 99 corresponding to 1.0 to 9.9
81 record(longin, "$(P)$(Q)GAUGE:1:MEAS1")
82 {
83  field(DTYP, "asynInt32")
84  field(INP, "@asyn(PLC, 501, 5.0) FINS_DM_READ")
85  field(FLNK, "$(P)$(Q)GAUGE:1:MEAS2EXP")
86  field(SIML, "$(P)$(Q)SIM")
87  field(SIOL, "$(P)$(Q)GAUGE:1:MEAS1:SIM")
88 }
89 
90 record(longin, "$(P)$(Q)GAUGE:1:MEAS2EXP")
91 {
92  field(DTYP, "asynInt32")
93  field(INP, "@asyn(PLC, 502, 5.0) FINS_DM_READ")
94  field(FLNK, "$(P)$(Q)GAUGE:1CHECK")
95  field(SIML, "$(P)$(Q)SIM")
96  field(SIOL, "$(P)$(Q)GAUGE:1:MEAS2EXP:SIM")
97 }
98 
99 ## if exponents haven't changed, counter did not rollover
100 ## during reads so value should be OK
101 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
102 record(calcout, "$(P)$(Q)GAUGE:1CHECK")
103 {
104  field(DESC, "Check Field")
105  field(INPA, "$(P)$(Q)GAUGE:1:MEAS1EXP")
106  field(INPB, "$(P)$(Q)GAUGE:1:MEAS1")
107  field(INPC, "$(P)$(Q)GAUGE:1:MEAS2EXP")
108  field(EGU, "mbar")
109  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
110  field(DOPT, "Use CALC")
111  field(OOPT, "When Non-zero")
112  field(OUT,"$(P)$(Q)GAUGE:1 PP")
113 }
114 
115 record(ai, "$(P)$(Q)GAUGE:1")
116 {
117  field(DESC, "Pressure")
118  field(EGU, "mbar")
119  field(PREC, 3)
120  info(INTEREST, "HIGH")
121  info(archive, "VAL")
122  alias("$(P)$(Q)GAUGE1")
123 }
124 
125 ### SIMULATION RECORDS ###
126 
127 
128 record(longin, "$(P)$(Q)GAUGE:1:MEAS1:SIM")
129 {
130  field(SCAN, "Passive")
131  field(DTYP, "Soft Channel")
132  field(VAL, "12")
133 }
134 record(longin, "$(P)$(Q)GAUGE:1:MEAS1EXP:SIM")
135 {
136  field(SCAN, "Passive")
137  field(DTYP, "Soft Channel")
138  field(VAL, "65532")
139 }
140 record(longin, "$(P)$(Q)GAUGE:1:MEAS2:SIM")
141 {
142  field(SCAN, "Passive")
143  field(DTYP, "Soft Channel")
144  field(VAL, "12")
145 }
146 record(longin, "$(P)$(Q)GAUGE:1:MEAS2EXP:SIM")
147 {
148  field(SCAN, "Passive")
149  field(DTYP, "Soft Channel")
150  field(VAL, "65532")
151 }
152 
153 ## read exponent, mantissa, exponent and check exponent still same
154 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
155 
156 record(longin, "$(P)$(Q)GAUGE:2:MEAS1EXP")
157 {
158  field(DTYP, "asynInt32")
159  field(SCAN, "10 second")
160  field(INP, "@asyn(PLC, 504, 5.0) FINS_DM_READ")
161  field(FLNK, "$(P)$(Q)GAUGE:2:MEAS1")
162  field(SIML, "$(P)$(Q)SIM")
163  field(SIOL, "$(P)$(Q)GAUGE:2:MEAS1EXP:SIM")
164 }
165 
166 ## number in range 10 to 99 corresponding to 1.0 to 9.9
167 record(longin, "$(P)$(Q)GAUGE:2:MEAS1")
168 {
169  field(DTYP, "asynInt32")
170  field(INP, "@asyn(PLC, 503, 5.0) FINS_DM_READ")
171  field(FLNK, "$(P)$(Q)GAUGE:2:MEAS2EXP")
172  field(SIML, "$(P)$(Q)SIM")
173  field(SIOL, "$(P)$(Q)GAUGE:2:MEAS1:SIM")
174 }
175 
176 record(longin, "$(P)$(Q)GAUGE:2:MEAS2EXP")
177 {
178  field(DTYP, "asynInt32")
179  field(INP, "@asyn(PLC, 504, 5.0) FINS_DM_READ")
180  field(FLNK, "$(P)$(Q)GAUGE:2CHECK")
181  field(SIML, "$(P)$(Q)SIM")
182  field(SIOL, "$(P)$(Q)GAUGE:2:MEAS2EXP:SIM")
183 }
184 
185 ## if exponents haven't changed, counter did not rollover
186 ## during reads so value should be OK
187 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
188 record(calcout, "$(P)$(Q)GAUGE:2CHECK")
189 {
190  field(DESC, "Check Field")
191  field(INPA, "$(P)$(Q)GAUGE:2:MEAS1EXP")
192  field(INPB, "$(P)$(Q)GAUGE:2:MEAS1")
193  field(INPC, "$(P)$(Q)GAUGE:2:MEAS2EXP")
194  field(EGU, "mbar")
195  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
196  field(DOPT, "Use CALC")
197  field(OOPT, "When Non-zero")
198  field(OUT,"$(P)$(Q)GAUGE:2 PP")
199 }
200 
201 record(ai, "$(P)$(Q)GAUGE:2")
202 {
203  field(DESC, "Pressure")
204  field(EGU, "mbar")
205  field(PREC, 3)
206  info(INTEREST, "HIGH")
207  info(archive, "VAL")
208  alias("$(P)$(Q)GAUGE2")
209 }
210 
211 ### SIMULATION RECORDS ###
212 
213 
214 record(longin, "$(P)$(Q)GAUGE:2:MEAS1:SIM")
215 {
216  field(SCAN, "Passive")
217  field(DTYP, "Soft Channel")
218  field(VAL, "12")
219 }
220 record(longin, "$(P)$(Q)GAUGE:2:MEAS1EXP:SIM")
221 {
222  field(SCAN, "Passive")
223  field(DTYP, "Soft Channel")
224  field(VAL, "65532")
225 }
226 record(longin, "$(P)$(Q)GAUGE:2:MEAS2:SIM")
227 {
228  field(SCAN, "Passive")
229  field(DTYP, "Soft Channel")
230  field(VAL, "12")
231 }
232 record(longin, "$(P)$(Q)GAUGE:2:MEAS2EXP:SIM")
233 {
234  field(SCAN, "Passive")
235  field(DTYP, "Soft Channel")
236  field(VAL, "65532")
237 }
238 
239 ## read exponent, mantissa, exponent and check exponent still same
240 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
241 
242 record(longin, "$(P)$(Q)GAUGE:3:MEAS1EXP")
243 {
244  field(DTYP, "asynInt32")
245  field(SCAN, "10 second")
246  field(INP, "@asyn(PLC, 506, 5.0) FINS_DM_READ")
247  field(FLNK, "$(P)$(Q)GAUGE:3:MEAS1")
248  field(SIML, "$(P)$(Q)SIM")
249  field(SIOL, "$(P)$(Q)GAUGE:3:MEAS1EXP:SIM")
250 }
251 
252 ## number in range 10 to 99 corresponding to 1.0 to 9.9
253 record(longin, "$(P)$(Q)GAUGE:3:MEAS1")
254 {
255  field(DTYP, "asynInt32")
256  field(INP, "@asyn(PLC, 505, 5.0) FINS_DM_READ")
257  field(FLNK, "$(P)$(Q)GAUGE:3:MEAS2EXP")
258  field(SIML, "$(P)$(Q)SIM")
259  field(SIOL, "$(P)$(Q)GAUGE:3:MEAS1:SIM")
260 }
261 
262 record(longin, "$(P)$(Q)GAUGE:3:MEAS2EXP")
263 {
264  field(DTYP, "asynInt32")
265  field(INP, "@asyn(PLC, 506, 5.0) FINS_DM_READ")
266  field(FLNK, "$(P)$(Q)GAUGE:3CHECK")
267  field(SIML, "$(P)$(Q)SIM")
268  field(SIOL, "$(P)$(Q)GAUGE:3:MEAS2EXP:SIM")
269 }
270 
271 ## if exponents haven't changed, counter did not rollover
272 ## during reads so value should be OK
273 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
274 record(calcout, "$(P)$(Q)GAUGE:3CHECK")
275 {
276  field(DESC, "Check Field")
277  field(INPA, "$(P)$(Q)GAUGE:3:MEAS1EXP")
278  field(INPB, "$(P)$(Q)GAUGE:3:MEAS1")
279  field(INPC, "$(P)$(Q)GAUGE:3:MEAS2EXP")
280  field(EGU, "mbar")
281  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
282  field(DOPT, "Use CALC")
283  field(OOPT, "When Non-zero")
284  field(OUT,"$(P)$(Q)GAUGE:3 PP")
285 }
286 
287 record(ai, "$(P)$(Q)GAUGE:3")
288 {
289  field(DESC, "Pressure")
290  field(EGU, "mbar")
291  field(PREC, 3)
292  info(INTEREST, "HIGH")
293  info(archive, "VAL")
294  alias("$(P)$(Q)GAUGE3")
295 }
296 
297 ### SIMULATION RECORDS ###
298 
299 
300 record(longin, "$(P)$(Q)GAUGE:3:MEAS1:SIM")
301 {
302  field(SCAN, "Passive")
303  field(DTYP, "Soft Channel")
304  field(VAL, "12")
305 }
306 record(longin, "$(P)$(Q)GAUGE:3:MEAS1EXP:SIM")
307 {
308  field(SCAN, "Passive")
309  field(DTYP, "Soft Channel")
310  field(VAL, "65532")
311 }
312 record(longin, "$(P)$(Q)GAUGE:3:MEAS2:SIM")
313 {
314  field(SCAN, "Passive")
315  field(DTYP, "Soft Channel")
316  field(VAL, "12")
317 }
318 record(longin, "$(P)$(Q)GAUGE:3:MEAS2EXP:SIM")
319 {
320  field(SCAN, "Passive")
321  field(DTYP, "Soft Channel")
322  field(VAL, "65532")
323 }
324 
325 ## read exponent, mantissa, exponent and check exponent still same
326 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
327 
328 record(longin, "$(P)$(Q)GAUGE:4:MEAS1EXP")
329 {
330  field(DTYP, "asynInt32")
331  field(SCAN, "10 second")
332  field(INP, "@asyn(PLC, 508, 5.0) FINS_DM_READ")
333  field(FLNK, "$(P)$(Q)GAUGE:4:MEAS1")
334  field(SIML, "$(P)$(Q)SIM")
335  field(SIOL, "$(P)$(Q)GAUGE:4:MEAS1EXP:SIM")
336 }
337 
338 ## number in range 10 to 99 corresponding to 1.0 to 9.9
339 record(longin, "$(P)$(Q)GAUGE:4:MEAS1")
340 {
341  field(DTYP, "asynInt32")
342  field(INP, "@asyn(PLC, 507, 5.0) FINS_DM_READ")
343  field(FLNK, "$(P)$(Q)GAUGE:4:MEAS2EXP")
344  field(SIML, "$(P)$(Q)SIM")
345  field(SIOL, "$(P)$(Q)GAUGE:4:MEAS1:SIM")
346 }
347 
348 record(longin, "$(P)$(Q)GAUGE:4:MEAS2EXP")
349 {
350  field(DTYP, "asynInt32")
351  field(INP, "@asyn(PLC, 508, 5.0) FINS_DM_READ")
352  field(FLNK, "$(P)$(Q)GAUGE:4CHECK")
353  field(SIML, "$(P)$(Q)SIM")
354  field(SIOL, "$(P)$(Q)GAUGE:4:MEAS2EXP:SIM")
355 }
356 
357 ## if exponents haven't changed, counter did not rollover
358 ## during reads so value should be OK
359 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
360 record(calcout, "$(P)$(Q)GAUGE:4CHECK")
361 {
362  field(DESC, "Check Field")
363  field(INPA, "$(P)$(Q)GAUGE:4:MEAS1EXP")
364  field(INPB, "$(P)$(Q)GAUGE:4:MEAS1")
365  field(INPC, "$(P)$(Q)GAUGE:4:MEAS2EXP")
366  field(EGU, "mbar")
367  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
368  field(DOPT, "Use CALC")
369  field(OOPT, "When Non-zero")
370  field(OUT,"$(P)$(Q)GAUGE:4 PP")
371 }
372 
373 record(ai, "$(P)$(Q)GAUGE:4")
374 {
375  field(DESC, "Pressure")
376  field(EGU, "mbar")
377  field(PREC, 3)
378  info(INTEREST, "HIGH")
379  info(archive, "VAL")
380  alias("$(P)$(Q)GAUGE4")
381 }
382 
383 ### SIMULATION RECORDS ###
384 
385 
386 record(longin, "$(P)$(Q)GAUGE:4:MEAS1:SIM")
387 {
388  field(SCAN, "Passive")
389  field(DTYP, "Soft Channel")
390  field(VAL, "12")
391 }
392 record(longin, "$(P)$(Q)GAUGE:4:MEAS1EXP:SIM")
393 {
394  field(SCAN, "Passive")
395  field(DTYP, "Soft Channel")
396  field(VAL, "65532")
397 }
398 record(longin, "$(P)$(Q)GAUGE:4:MEAS2:SIM")
399 {
400  field(SCAN, "Passive")
401  field(DTYP, "Soft Channel")
402  field(VAL, "12")
403 }
404 record(longin, "$(P)$(Q)GAUGE:4:MEAS2EXP:SIM")
405 {
406  field(SCAN, "Passive")
407  field(DTYP, "Soft Channel")
408  field(VAL, "65532")
409 }
410 
411 ## read exponent, mantissa, exponent and check exponent still same
412 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
413 
414 record(longin, "$(P)$(Q)GAUGE:5:MEAS1EXP")
415 {
416  field(DTYP, "asynInt32")
417  field(SCAN, "10 second")
418  field(INP, "@asyn(PLC, 510, 5.0) FINS_DM_READ")
419  field(FLNK, "$(P)$(Q)GAUGE:5:MEAS1")
420  field(SIML, "$(P)$(Q)SIM")
421  field(SIOL, "$(P)$(Q)GAUGE:5:MEAS1EXP:SIM")
422 }
423 
424 ## number in range 10 to 99 corresponding to 1.0 to 9.9
425 record(longin, "$(P)$(Q)GAUGE:5:MEAS1")
426 {
427  field(DTYP, "asynInt32")
428  field(INP, "@asyn(PLC, 509, 5.0) FINS_DM_READ")
429  field(FLNK, "$(P)$(Q)GAUGE:5:MEAS2EXP")
430  field(SIML, "$(P)$(Q)SIM")
431  field(SIOL, "$(P)$(Q)GAUGE:5:MEAS1:SIM")
432 }
433 
434 record(longin, "$(P)$(Q)GAUGE:5:MEAS2EXP")
435 {
436  field(DTYP, "asynInt32")
437  field(INP, "@asyn(PLC, 510, 5.0) FINS_DM_READ")
438  field(FLNK, "$(P)$(Q)GAUGE:5CHECK")
439  field(SIML, "$(P)$(Q)SIM")
440  field(SIOL, "$(P)$(Q)GAUGE:5:MEAS2EXP:SIM")
441 }
442 
443 ## if exponents haven't changed, counter did not rollover
444 ## during reads so value should be OK
445 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
446 record(calcout, "$(P)$(Q)GAUGE:5CHECK")
447 {
448  field(DESC, "Check Field")
449  field(INPA, "$(P)$(Q)GAUGE:5:MEAS1EXP")
450  field(INPB, "$(P)$(Q)GAUGE:5:MEAS1")
451  field(INPC, "$(P)$(Q)GAUGE:5:MEAS2EXP")
452  field(EGU, "mbar")
453  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
454  field(DOPT, "Use CALC")
455  field(OOPT, "When Non-zero")
456  field(OUT,"$(P)$(Q)GAUGE:5 PP")
457 }
458 
459 record(ai, "$(P)$(Q)GAUGE:5")
460 {
461  field(DESC, "Pressure")
462  field(EGU, "mbar")
463  field(PREC, 3)
464  info(INTEREST, "HIGH")
465  info(archive, "VAL")
466  alias("$(P)$(Q)GAUGE5")
467 }
468 
469 ### SIMULATION RECORDS ###
470 
471 
472 record(longin, "$(P)$(Q)GAUGE:5:MEAS1:SIM")
473 {
474  field(SCAN, "Passive")
475  field(DTYP, "Soft Channel")
476  field(VAL, "12")
477 }
478 record(longin, "$(P)$(Q)GAUGE:5:MEAS1EXP:SIM")
479 {
480  field(SCAN, "Passive")
481  field(DTYP, "Soft Channel")
482  field(VAL, "65532")
483 }
484 record(longin, "$(P)$(Q)GAUGE:5:MEAS2:SIM")
485 {
486  field(SCAN, "Passive")
487  field(DTYP, "Soft Channel")
488  field(VAL, "12")
489 }
490 record(longin, "$(P)$(Q)GAUGE:5:MEAS2EXP:SIM")
491 {
492  field(SCAN, "Passive")
493  field(DTYP, "Soft Channel")
494  field(VAL, "65532")
495 }
496 
497 ## read exponent, mantissa, exponent and check exponent still same
498 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
499 
500 record(longin, "$(P)$(Q)GAUGE:6:MEAS1EXP")
501 {
502  field(DTYP, "asynInt32")
503  field(SCAN, "10 second")
504  field(INP, "@asyn(PLC, 512, 5.0) FINS_DM_READ")
505  field(FLNK, "$(P)$(Q)GAUGE:6:MEAS1")
506  field(SIML, "$(P)$(Q)SIM")
507  field(SIOL, "$(P)$(Q)GAUGE:6:MEAS1EXP:SIM")
508 }
509 
510 ## number in range 10 to 99 corresponding to 1.0 to 9.9
511 record(longin, "$(P)$(Q)GAUGE:6:MEAS1")
512 {
513  field(DTYP, "asynInt32")
514  field(INP, "@asyn(PLC, 511, 5.0) FINS_DM_READ")
515  field(FLNK, "$(P)$(Q)GAUGE:6:MEAS2EXP")
516  field(SIML, "$(P)$(Q)SIM")
517  field(SIOL, "$(P)$(Q)GAUGE:6:MEAS1:SIM")
518 }
519 
520 record(longin, "$(P)$(Q)GAUGE:6:MEAS2EXP")
521 {
522  field(DTYP, "asynInt32")
523  field(INP, "@asyn(PLC, 512, 5.0) FINS_DM_READ")
524  field(FLNK, "$(P)$(Q)GAUGE:6CHECK")
525  field(SIML, "$(P)$(Q)SIM")
526  field(SIOL, "$(P)$(Q)GAUGE:6:MEAS2EXP:SIM")
527 }
528 
529 ## if exponents haven't changed, counter did not rollover
530 ## during reads so value should be OK
531 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
532 record(calcout, "$(P)$(Q)GAUGE:6CHECK")
533 {
534  field(DESC, "Check Field")
535  field(INPA, "$(P)$(Q)GAUGE:6:MEAS1EXP")
536  field(INPB, "$(P)$(Q)GAUGE:6:MEAS1")
537  field(INPC, "$(P)$(Q)GAUGE:6:MEAS2EXP")
538  field(EGU, "mbar")
539  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
540  field(DOPT, "Use CALC")
541  field(OOPT, "When Non-zero")
542  field(OUT,"$(P)$(Q)GAUGE:6 PP")
543 }
544 
545 record(ai, "$(P)$(Q)GAUGE:6")
546 {
547  field(DESC, "Pressure")
548  field(EGU, "mbar")
549  field(PREC, 3)
550  info(INTEREST, "HIGH")
551  info(archive, "VAL")
552  alias("$(P)$(Q)GAUGE6")
553 }
554 
555 ### SIMULATION RECORDS ###
556 
557 
558 record(longin, "$(P)$(Q)GAUGE:6:MEAS1:SIM")
559 {
560  field(SCAN, "Passive")
561  field(DTYP, "Soft Channel")
562  field(VAL, "12")
563 }
564 record(longin, "$(P)$(Q)GAUGE:6:MEAS1EXP:SIM")
565 {
566  field(SCAN, "Passive")
567  field(DTYP, "Soft Channel")
568  field(VAL, "65532")
569 }
570 record(longin, "$(P)$(Q)GAUGE:6:MEAS2:SIM")
571 {
572  field(SCAN, "Passive")
573  field(DTYP, "Soft Channel")
574  field(VAL, "12")
575 }
576 record(longin, "$(P)$(Q)GAUGE:6:MEAS2EXP:SIM")
577 {
578  field(SCAN, "Passive")
579  field(DTYP, "Soft Channel")
580  field(VAL, "65532")
581 }
582 
583 ## read exponent, mantissa, exponent and check exponent still same
584 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
585 
586 record(longin, "$(P)$(Q)GAUGE:7:MEAS1EXP")
587 {
588  field(DTYP, "asynInt32")
589  field(SCAN, "10 second")
590  field(INP, "@asyn(PLC, 514, 5.0) FINS_DM_READ")
591  field(FLNK, "$(P)$(Q)GAUGE:7:MEAS1")
592  field(SIML, "$(P)$(Q)SIM")
593  field(SIOL, "$(P)$(Q)GAUGE:7:MEAS1EXP:SIM")
594 }
595 
596 ## number in range 10 to 99 corresponding to 1.0 to 9.9
597 record(longin, "$(P)$(Q)GAUGE:7:MEAS1")
598 {
599  field(DTYP, "asynInt32")
600  field(INP, "@asyn(PLC, 513, 5.0) FINS_DM_READ")
601  field(FLNK, "$(P)$(Q)GAUGE:7:MEAS2EXP")
602  field(SIML, "$(P)$(Q)SIM")
603  field(SIOL, "$(P)$(Q)GAUGE:7:MEAS1:SIM")
604 }
605 
606 record(longin, "$(P)$(Q)GAUGE:7:MEAS2EXP")
607 {
608  field(DTYP, "asynInt32")
609  field(INP, "@asyn(PLC, 514, 5.0) FINS_DM_READ")
610  field(FLNK, "$(P)$(Q)GAUGE:7CHECK")
611  field(SIML, "$(P)$(Q)SIM")
612  field(SIOL, "$(P)$(Q)GAUGE:7:MEAS2EXP:SIM")
613 }
614 
615 ## if exponents haven't changed, counter did not rollover
616 ## during reads so value should be OK
617 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
618 record(calcout, "$(P)$(Q)GAUGE:7CHECK")
619 {
620  field(DESC, "Check Field")
621  field(INPA, "$(P)$(Q)GAUGE:7:MEAS1EXP")
622  field(INPB, "$(P)$(Q)GAUGE:7:MEAS1")
623  field(INPC, "$(P)$(Q)GAUGE:7:MEAS2EXP")
624  field(EGU, "mbar")
625  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
626  field(DOPT, "Use CALC")
627  field(OOPT, "When Non-zero")
628  field(OUT,"$(P)$(Q)GAUGE:7 PP")
629 }
630 
631 record(ai, "$(P)$(Q)GAUGE:7")
632 {
633  field(DESC, "Pressure")
634  field(EGU, "mbar")
635  field(PREC, 3)
636  info(INTEREST, "HIGH")
637  info(archive, "VAL")
638  alias("$(P)$(Q)GAUGE7")
639 }
640 
641 ### SIMULATION RECORDS ###
642 
643 
644 record(longin, "$(P)$(Q)GAUGE:7:MEAS1:SIM")
645 {
646  field(SCAN, "Passive")
647  field(DTYP, "Soft Channel")
648  field(VAL, "12")
649 }
650 record(longin, "$(P)$(Q)GAUGE:7:MEAS1EXP:SIM")
651 {
652  field(SCAN, "Passive")
653  field(DTYP, "Soft Channel")
654  field(VAL, "65532")
655 }
656 record(longin, "$(P)$(Q)GAUGE:7:MEAS2:SIM")
657 {
658  field(SCAN, "Passive")
659  field(DTYP, "Soft Channel")
660  field(VAL, "12")
661 }
662 record(longin, "$(P)$(Q)GAUGE:7:MEAS2EXP:SIM")
663 {
664  field(SCAN, "Passive")
665  field(DTYP, "Soft Channel")
666  field(VAL, "65532")
667 }
668 
669 ## read exponent, mantissa, exponent and check exponent still same
670 ## if not, we had a rollover from e.g. 9e4 to 1e5 during read and may be inconsistent
671 
672 record(longin, "$(P)$(Q)GAUGE:8:MEAS1EXP")
673 {
674  field(DTYP, "asynInt32")
675  field(SCAN, "10 second")
676  field(INP, "@asyn(PLC, 516, 5.0) FINS_DM_READ")
677  field(FLNK, "$(P)$(Q)GAUGE:8:MEAS1")
678  field(SIML, "$(P)$(Q)SIM")
679  field(SIOL, "$(P)$(Q)GAUGE:8:MEAS1EXP:SIM")
680 }
681 
682 ## number in range 10 to 99 corresponding to 1.0 to 9.9
683 record(longin, "$(P)$(Q)GAUGE:8:MEAS1")
684 {
685  field(DTYP, "asynInt32")
686  field(INP, "@asyn(PLC, 515, 5.0) FINS_DM_READ")
687  field(FLNK, "$(P)$(Q)GAUGE:8:MEAS2EXP")
688  field(SIML, "$(P)$(Q)SIM")
689  field(SIOL, "$(P)$(Q)GAUGE:8:MEAS1:SIM")
690 }
691 
692 record(longin, "$(P)$(Q)GAUGE:8:MEAS2EXP")
693 {
694  field(DTYP, "asynInt32")
695  field(INP, "@asyn(PLC, 516, 5.0) FINS_DM_READ")
696  field(FLNK, "$(P)$(Q)GAUGE:8CHECK")
697  field(SIML, "$(P)$(Q)SIM")
698  field(SIOL, "$(P)$(Q)GAUGE:8:MEAS2EXP:SIM")
699 }
700 
701 ## if exponents haven't changed, counter did not rollover
702 ## during reads so value should be OK
703 ## (A-(A>32767?65536:0)) is to convert between signed and two's complement
704 record(calcout, "$(P)$(Q)GAUGE:8CHECK")
705 {
706  field(DESC, "Check Field")
707  field(INPA, "$(P)$(Q)GAUGE:8:MEAS1EXP")
708  field(INPB, "$(P)$(Q)GAUGE:8:MEAS1")
709  field(INPC, "$(P)$(Q)GAUGE:8:MEAS2EXP")
710  field(EGU, "mbar")
711  field(CALC, "(A=C)?(B/10*10^(A-(A>32767?65536:0))):0")
712  field(DOPT, "Use CALC")
713  field(OOPT, "When Non-zero")
714  field(OUT,"$(P)$(Q)GAUGE:8 PP")
715 }
716 
717 record(ai, "$(P)$(Q)GAUGE:8")
718 {
719  field(DESC, "Pressure")
720  field(EGU, "mbar")
721  field(PREC, 3)
722  info(INTEREST, "HIGH")
723  info(archive, "VAL")
724  alias("$(P)$(Q)GAUGE8")
725 }
726 
727 ### SIMULATION RECORDS ###
728 
729 
730 record(longin, "$(P)$(Q)GAUGE:8:MEAS1:SIM")
731 {
732  field(SCAN, "Passive")
733  field(DTYP, "Soft Channel")
734  field(VAL, "12")
735 }
736 record(longin, "$(P)$(Q)GAUGE:8:MEAS1EXP:SIM")
737 {
738  field(SCAN, "Passive")
739  field(DTYP, "Soft Channel")
740  field(VAL, "65532")
741 }
742 record(longin, "$(P)$(Q)GAUGE:8:MEAS2:SIM")
743 {
744  field(SCAN, "Passive")
745  field(DTYP, "Soft Channel")
746  field(VAL, "12")
747 }
748 record(longin, "$(P)$(Q)GAUGE:8:MEAS2EXP:SIM")
749 {
750  field(SCAN, "Passive")
751  field(DTYP, "Soft Channel")
752  field(VAL, "65532")
753 }
754 
755 
756 record(longin, "$(P)$(Q)ADDR:517:RAW") {
757  field(DTYP, "asynInt32")
758  field(INP, "@asyn(PLC, 517, 5.0) FINS_DM_READ")
759  field(SCAN, "2 second")
760  field(FLNK, "$(P)$(Q)ADDR:517")
761 }
762 
763 record(mbbiDirect, "$(P)$(Q)ADDR:517")
764 {
765  field(DESC, "Read PLC address 517")
766  field(DTYP, "Soft Channel")
767  field(INP, "$(P)$(Q)ADDR:517:RAW CPP")
768  field(SCAN, ".1 second")
769  field(SIML, "$(P)$(Q)SIM")
770  field(SIOL, "$(P)$(Q)SIM:ADDR:517")
771 }
772 
773 
774 ### Simulation Records ###
775 
776 record(mbbiDirect, "$(P)$(Q)SIM:ADDR:517")
777 {
778  field(SCAN, "Passive")
779  field(DTYP, "Soft Channel")
780  field(VAL, "1")
781 }
782 
783 record(longin, "$(P)$(Q)ADDR:518:RAW") {
784  field(DTYP, "asynInt32")
785  field(INP, "@asyn(PLC, 518, 5.0) FINS_DM_READ")
786  field(SCAN, "2 second")
787  field(FLNK, "$(P)$(Q)ADDR:518")
788 }
789 
790 record(mbbiDirect, "$(P)$(Q)ADDR:518")
791 {
792  field(DESC, "Read PLC address 518")
793  field(DTYP, "Soft Channel")
794  field(INP, "$(P)$(Q)ADDR:518:RAW CPP")
795  field(SCAN, ".1 second")
796  field(SIML, "$(P)$(Q)SIM")
797  field(SIOL, "$(P)$(Q)SIM:ADDR:518")
798 }
799 
800 
801 ### Simulation Records ###
802 
803 record(mbbiDirect, "$(P)$(Q)SIM:ADDR:518")
804 {
805  field(SCAN, "Passive")
806  field(DTYP, "Soft Channel")
807  field(VAL, "1")
808 }
809 
810 record(longin, "$(P)$(Q)ADDR:519:RAW") {
811  field(DTYP, "asynInt32")
812  field(INP, "@asyn(PLC, 519, 5.0) FINS_DM_READ")
813  field(SCAN, "2 second")
814  field(FLNK, "$(P)$(Q)ADDR:519")
815 }
816 
817 record(mbbiDirect, "$(P)$(Q)ADDR:519")
818 {
819  field(DESC, "Read PLC address 519")
820  field(DTYP, "Soft Channel")
821  field(INP, "$(P)$(Q)ADDR:519:RAW CPP")
822  field(SCAN, ".1 second")
823  field(SIML, "$(P)$(Q)SIM")
824  field(SIOL, "$(P)$(Q)SIM:ADDR:519")
825 }
826 
827 
828 ### Simulation Records ###
829 
830 record(mbbiDirect, "$(P)$(Q)SIM:ADDR:519")
831 {
832  field(SCAN, "Passive")
833  field(DTYP, "Soft Channel")
834  field(VAL, "1")
835 }
836 
837 record(longin, "$(P)$(Q)ADDR:520:RAW") {
838  field(DTYP, "asynInt32")
839  field(INP, "@asyn(PLC, 520, 5.0) FINS_DM_READ")
840  field(SCAN, "2 second")
841  field(FLNK, "$(P)$(Q)ADDR:520")
842 }
843 
844 record(mbbiDirect, "$(P)$(Q)ADDR:520")
845 {
846  field(DESC, "Read PLC address 520")
847  field(DTYP, "Soft Channel")
848  field(INP, "$(P)$(Q)ADDR:520:RAW CPP")
849  field(SCAN, ".1 second")
850  field(SIML, "$(P)$(Q)SIM")
851  field(SIOL, "$(P)$(Q)SIM:ADDR:520")
852 }
853 
854 
855 ### Simulation Records ###
856 
857 record(mbbiDirect, "$(P)$(Q)SIM:ADDR:520")
858 {
859  field(SCAN, "Passive")
860  field(DTYP, "Soft Channel")
861  field(VAL, "1")
862 }
863 
864 record(bi, "$(P)$(Q)DOS:ERROR")
865 {
866  field(SCAN, ".1 second")
867  field(DESC, "Detector overcount shutter error")
868  field(ZNAM, "OK")
869  field(ONAM, "ERROR")
870  field(INP, "$(P)$(Q)ADDR:517.B0 PP")
871  info(INTEREST, "HIGH")
872 }
873 
874 record(bi, "$(P)$(Q)DOS")
875 {
876  field(SCAN, ".1 second")
877  field(DESC, "Detector overcount shutter")
878  field(ZNAM, "CLOSED")
879  field(ONAM, "OPEN")
880  field(INP, "$(P)$(Q)ADDR:517.B1 PP")
881  info(INTEREST, "HIGH")
882 }
883 
884 record(bi, "$(P)$(Q)DAE")
885 {
886  field(SCAN, ".1 second")
887  field(DESC, "Data acquisition electronics")
888  field(ZNAM, "NO OVERCOUNT")
889  field(ONAM, "OVERCOUNT")
890  field(INP, "$(P)$(Q)ADDR:517.B2 PP")
891  info(INTEREST, "HIGH")
892 }
893 
894 record(bi, "$(P)$(Q)MONITOR:2:ERROR")
895 {
896  field(SCAN, ".1 second")
897  field(DESC, "Monitor 2 error")
898  field(ZNAM, "OK")
899  field(ONAM, "ERROR")
900  field(INP, "$(P)$(Q)ADDR:517.B3 PP")
901  info(INTEREST, "HIGH")
902 }
903 
904 record(bi, "$(P)$(Q)MONITOR:2")
905 {
906  field(SCAN, ".1 second")
907  field(DESC, "Monitor 2 status")
908  field(ZNAM, "EXTRACTED")
909  field(ONAM, "INSERTED")
910  field(INP, "$(P)$(Q)ADDR:517.B4 PP")
911  info(INTEREST, "HIGH")
912 }
913 
914 record(bi, "$(P)$(Q)MONITOR:4:ERROR")
915 {
916  field(SCAN, ".1 second")
917  field(DESC, "Monitor 4 error")
918  field(ZNAM, "OK")
919  field(ONAM, "ERROR")
920  field(INP, "$(P)$(Q)ADDR:517.B5 PP")
921  info(INTEREST, "HIGH")
922 }
923 
924 record(bi, "$(P)$(Q)MONITOR:4")
925 {
926  field(SCAN, ".1 second")
927  field(DESC, "Monitor 4 status")
928  field(ZNAM, "EXTRACTED")
929  field(ONAM, "INSERTED")
930  field(INP, "$(P)$(Q)ADDR:517.B6 PP")
931  info(INTEREST, "HIGH")
932 }
933 
934 record(bi, "$(P)$(Q)GUIDE_VAC_OK")
935 {
936  field(SCAN, ".1 second")
937  field(DESC, "Guide vacuum is OK")
938  field(ZNAM, "NO")
939  field(ONAM, "OK")
940  field(INP, "$(P)$(Q)ADDR:517.B7 PP")
941  info(INTEREST, "HIGH")
942 }
943 
944 record(bi, "$(P)$(Q)GRP:ERROR")
945 {
946  field(SCAN, ".1 second")
947  field(DESC, "Guide roughing pump isolation valve")
948  field(ZNAM, "NONE")
949  field(ONAM, "ERROR")
950  field(INP, "$(P)$(Q)ADDR:517.B8 PP")
951  info(INTEREST, "HIGH")
952 }
953 
954 record(bi, "$(P)$(Q)GRP")
955 {
956  field(SCAN, ".1 second")
957  field(DESC, "Guide roughing pump isolation valve")
958  field(ZNAM, "CLOSED")
959  field(ONAM, "OPEN")
960  field(INP, "$(P)$(Q)ADDR:517.B9 PP")
961  info(INTEREST, "HIGH")
962 }
963 
964 record(bi, "$(P)$(Q)SNOUT:BYPASS:ERROR")
965 {
966  field(SCAN, ".1 second")
967  field(DESC, "Snout bypass valve")
968  field(ZNAM, "NONE")
969  field(ONAM, "ERROR")
970  field(INP, "$(P)$(Q)ADDR:517.BA PP")
971  info(INTEREST, "HIGH")
972 }
973 
974 record(bi, "$(P)$(Q)SNOUT:BYPASS")
975 {
976  field(SCAN, ".1 second")
977  field(DESC, "Snout bypass valve")
978  field(ZNAM, "CLOSED")
979  field(ONAM, "OPEN")
980  field(INP, "$(P)$(Q)ADDR:517.BB PP")
981  info(INTEREST, "HIGH")
982 }
983 
984 record(bi, "$(P)$(Q)SNOUT:LINE:ERROR")
985 {
986  field(SCAN, ".1 second")
987  field(DESC, "Snout line valve")
988  field(ZNAM, "NONE")
989  field(ONAM, "ERROR")
990  field(INP, "$(P)$(Q)ADDR:517.BC PP")
991  info(INTEREST, "HIGH")
992 }
993 
994 record(bi, "$(P)$(Q)SNOUT:LINE")
995 {
996  field(SCAN, ".1 second")
997  field(DESC, "Snout line valve")
998  field(ZNAM, "CLOSED")
999  field(ONAM, "OPEN")
1000  field(INP, "$(P)$(Q)ADDR:517.BD PP")
1001  info(INTEREST, "HIGH")
1002 }
1003 
1004 record(bi, "$(P)$(Q)SNOUT:VENT:ERROR")
1005 {
1006  field(SCAN, ".1 second")
1007  field(DESC, "Snout vent valve")
1008  field(ZNAM, "NONE")
1009  field(ONAM, "ERROR")
1010  field(INP, "$(P)$(Q)ADDR:517.BE PP")
1011  info(INTEREST, "HIGH")
1012 }
1013 
1014 record(bi, "$(P)$(Q)SNOUT:VENT")
1015 {
1016  field(SCAN, ".1 second")
1017  field(DESC, "Snout vent valve")
1018  field(ZNAM, "CLOSED")
1019  field(ONAM, "OPEN")
1020  field(INP, "$(P)$(Q)ADDR:517.BF PP")
1021  info(INTEREST, "HIGH")
1022 }
1023 
1024 record(bi, "$(P)$(Q)DRYAIR:1:ERROR")
1025 {
1026  field(SCAN, ".1 second")
1027  field(DESC, "Tank dry air admittance valve 1 error")
1028  field(ZNAM, "NONE")
1029  field(ONAM, "ERROR")
1030  field(INP, "$(P)$(Q)ADDR:518.B2 PP")
1031  info(INTEREST, "HIGH")
1032 }
1033 
1034 record(bi, "$(P)$(Q)DRYAIR:1")
1035 {
1036  field(SCAN, ".1 second")
1037  field(DESC, "Tank dry air admittance valve 1")
1038  field(ZNAM, "CLOSED")
1039  field(ONAM, "OPEN")
1040  field(INP, "$(P)$(Q)ADDR:518.B3 PP")
1041  info(INTEREST, "HIGH")
1042 }
1043 
1044 record(bi, "$(P)$(Q)DRYAIR:2:ERROR")
1045 {
1046  field(SCAN, ".1 second")
1047  field(DESC, "Tank dry air admittance valve 2")
1048  field(ZNAM, "NONE")
1049  field(ONAM, "ERROR")
1050  field(INP, "$(P)$(Q)ADDR:518.B4 PP")
1051  info(INTEREST, "HIGH")
1052 }
1053 
1054 record(bi, "$(P)$(Q)DRYAIR:2")
1055 {
1056  field(SCAN, ".1 second")
1057  field(DESC, "Tank dry air admittance valve 2")
1058  field(ZNAM, "CLOSED")
1059  field(ONAM, "OPEN")
1060  field(INP, "$(P)$(Q)ADDR:518.B5 PP")
1061  info(INTEREST, "HIGH")
1062 }
1063 
1064 record(bi, "$(P)$(Q)VENT:ERROR")
1065 {
1066  field(SCAN, ".1 second")
1067  field(DESC, "Tank vent valve error")
1068  field(ZNAM, "NONE")
1069  field(ONAM, "ERROR")
1070  field(INP, "$(P)$(Q)ADDR:518.B6 PP")
1071  info(INTEREST, "HIGH")
1072 }
1073 
1074 record(bi, "$(P)$(Q)VENT")
1075 {
1076  field(SCAN, ".1 second")
1077  field(DESC, "Tank vent valve")
1078  field(ZNAM, "CLOSED")
1079  field(ONAM, "OPEN")
1080  field(INP, "$(P)$(Q)ADDR:518.B7 PP")
1081  info(INTEREST, "HIGH")
1082 }
1083 
1084 record(bi, "$(P)$(Q)PUMP:1A:ERROR")
1085 {
1086  field(SCAN, ".1 second")
1087  field(DESC, "Tank pump 1 isolation valve")
1088  field(ZNAM, "NONE")
1089  field(ONAM, "ERROR")
1090  field(INP, "$(P)$(Q)ADDR:518.B8 PP")
1091  info(INTEREST, "HIGH")
1092 }
1093 
1094 record(bi, "$(P)$(Q)PUMP:1A")
1095 {
1096  field(SCAN, ".1 second")
1097  field(DESC, "Tank pump 1 isolation valve")
1098  field(ZNAM, "CLOSED")
1099  field(ONAM, "OPEN")
1100  field(INP, "$(P)$(Q)ADDR:518.B9 PP")
1101  info(INTEREST, "HIGH")
1102 }
1103 
1104 record(bi, "$(P)$(Q)PUMP:1A:RUNNING")
1105 {
1106  field(SCAN, ".1 second")
1107  field(DESC, "Pump 1a running")
1108  field(ZNAM, "OFF")
1109  field(ONAM, "RUNNING")
1110  field(INP, "$(P)$(Q)ADDR:518.BA PP")
1111  info(INTEREST, "HIGH")
1112 }
1113 
1114 record(bi, "$(P)$(Q)PUMP:1A:WARNING")
1115 {
1116  field(SCAN, ".1 second")
1117  field(DESC, "Pump 1a warning")
1118  field(ZNAM, "NONE")
1119  field(ONAM, "WARNING")
1120  field(INP, "$(P)$(Q)ADDR:518.BB PP")
1121  info(INTEREST, "HIGH")
1122 }
1123 
1124 record(bi, "$(P)$(Q)PUMP:1A:FAULT")
1125 {
1126  field(SCAN, ".1 second")
1127  field(DESC, "Pump 1a fault")
1128  field(ZNAM, "NONE")
1129  field(ONAM, "FAULT")
1130  field(INP, "$(P)$(Q)ADDR:518.BC PP")
1131  info(INTEREST, "HIGH")
1132 }
1133 
1134 record(bi, "$(P)$(Q)PUMP:1A:OVERLOAD")
1135 {
1136  field(SCAN, ".1 second")
1137  field(DESC, "Pump 1a tripped/overloaded")
1138  field(ZNAM, "NONE")
1139  field(ONAM, "OVERLOAD")
1140  field(INP, "$(P)$(Q)ADDR:518.BD PP")
1141  info(INTEREST, "HIGH")
1142 }
1143 
1144 record(bi, "$(P)$(Q)PUMP:1B:RUNNING")
1145 {
1146  field(SCAN, ".1 second")
1147  field(DESC, "Pump 1b running")
1148  field(ZNAM, "OFF")
1149  field(ONAM, "RUNNING")
1150  field(INP, "$(P)$(Q)ADDR:518.BE PP")
1151  info(INTEREST, "HIGH")
1152 }
1153 
1154 record(bi, "$(P)$(Q)PUMP:1B:OVERLOAD")
1155 {
1156  field(SCAN, ".1 second")
1157  field(DESC, "Pump 1b tripped/overloaded")
1158  field(ZNAM, "NONE")
1159  field(ONAM, "OVERLOAD")
1160  field(INP, "$(P)$(Q)ADDR:518.BF PP")
1161  info(INTEREST, "HIGH")
1162 }
1163 
1164 record(bi, "$(P)$(Q)PUMP:2:ERROR")
1165 {
1166  field(SCAN, ".1 second")
1167  field(DESC, "Tank pump 2 isolation valve error")
1168  field(ZNAM, "NONE")
1169  field(ONAM, "ERROR")
1170  field(INP, "$(P)$(Q)ADDR:519.B0 PP")
1171  info(INTEREST, "HIGH")
1172 }
1173 
1174 record(bi, "$(P)$(Q)PUMP:2")
1175 {
1176  field(SCAN, ".1 second")
1177  field(DESC, "Tank pump 2 isolation valve")
1178  field(ZNAM, "OFF")
1179  field(ONAM, "ON")
1180  field(INP, "$(P)$(Q)ADDR:519.B1 PP")
1181  info(INTEREST, "HIGH")
1182 }
1183 
1184 record(bi, "$(P)$(Q)PUMP:2:RUNNING")
1185 {
1186  field(SCAN, ".1 second")
1187  field(DESC, "Pump 2 running")
1188  field(ZNAM, "OFF")
1189  field(ONAM, "RUNNING")
1190  field(INP, "$(P)$(Q)ADDR:519.B2 PP")
1191  info(INTEREST, "HIGH")
1192 }
1193 
1194 record(bi, "$(P)$(Q)PUMP:2:WARNING")
1195 {
1196  field(SCAN, ".1 second")
1197  field(DESC, "Pump 2 warning")
1198  field(ZNAM, "NONE")
1199  field(ONAM, "WARNING")
1200  field(INP, "$(P)$(Q)ADDR:519.B3 PP")
1201  info(INTEREST, "HIGH")
1202 }
1203 
1204 record(bi, "$(P)$(Q)PUMP:2:FAULT")
1205 {
1206  field(SCAN, ".1 second")
1207  field(DESC, "Pump 2 fault")
1208  field(ZNAM, "NONE")
1209  field(ONAM, "FAULT")
1210  field(INP, "$(P)$(Q)ADDR:519.B4 PP")
1211  info(INTEREST, "HIGH")
1212 }
1213 
1214 record(bi, "$(P)$(Q)PUMP:2:OVERLOAD")
1215 {
1216  field(SCAN, ".1 second")
1217  field(DESC, "Pump 2 tripped/overloaded")
1218  field(ZNAM, "NONE")
1219  field(ONAM, "OVERLOAD")
1220  field(INP, "$(P)$(Q)ADDR:519.B5 PP")
1221  info(INTEREST, "HIGH")
1222 }
1223 
1224 record(bi, "$(P)$(Q)EMSTOP")
1225 {
1226  field(SCAN, ".1 second")
1227  field(DESC, "Emergency stop pressed")
1228  field(ZNAM, "FALSE")
1229  field(ONAM, "TRUE")
1230  field(INP, "$(P)$(Q)ADDR:519.B6 PP")
1231  info(INTEREST, "HIGH")
1232 }
1233 
1234 record(bi, "$(P)$(Q)PUMP_MCB")
1235 {
1236  field(SCAN, ".1 second")
1237  field(DESC, "Any MCB tripped")
1238  field(ZNAM, "FALSE")
1239  field(ONAM, "TRUE")
1240  field(INP, "$(P)$(Q)ADDR:519.B7 PP")
1241  info(INTEREST, "HIGH")
1242 }
1243 
1244 record(bi, "$(P)$(Q)COMP_AIR")
1245 {
1246  field(SCAN, ".1 second")
1247  field(DESC, "Compressed air")
1248  field(ZNAM, "LOW")
1249  field(ONAM, "OK")
1250  field(INP, "$(P)$(Q)ADDR:519.B8 PP")
1251  info(INTEREST, "HIGH")
1252 }
1253 
1254 record(bi, "$(P)$(Q)DRY_AIR")
1255 {
1256  field(SCAN, ".1 second")
1257  field(DESC, "Dry air for tank vent")
1258  field(ZNAM, "LOW")
1259  field(ONAM, "OK")
1260  field(INP, "$(P)$(Q)ADDR:519.B9 PP")
1261  info(INTEREST, "HIGH")
1262 }
1263 
1264 record(bi, "$(P)$(Q)VGAUGE:1")
1265 {
1266  field(SCAN, ".1 second")
1267  field(DESC, "Tank setpoint reached")
1268  field(ZNAM, "FALSE")
1269  field(ONAM, "TRUE")
1270  field(INP, "$(P)$(Q)ADDR:519.BA PP")
1271  info(INTEREST, "HIGH")
1272 }
1273 
1274 record(bi, "$(P)$(Q)VGAUGE:2")
1275 {
1276  field(SCAN, ".1 second")
1277  field(DESC, "Tank pipework setpoint reached")
1278  field(ZNAM, "FALSE")
1279  field(ONAM, "TRUE")
1280  field(INP, "$(P)$(Q)ADDR:519.BB PP")
1281  info(INTEREST, "HIGH")
1282 }
1283 
1284 record(bi, "$(P)$(Q)VGAUGE:3")
1285 {
1286  field(SCAN, ".1 second")
1287  field(DESC, "Pump set 1 setpoint reached")
1288  field(ZNAM, "FALSE")
1289  field(ONAM, "TRUE")
1290  field(INP, "$(P)$(Q)ADDR:519.BC PP")
1291  info(INTEREST, "HIGH")
1292 }
1293 
1294 record(bi, "$(P)$(Q)VGAUGE:4")
1295 {
1296  field(SCAN, ".1 second")
1297  field(DESC, "Pump set 2 setpoint reached")
1298  field(ZNAM, "FALSE")
1299  field(ONAM, "TRUE")
1300  field(INP, "$(P)$(Q)ADDR:519.BD PP")
1301  info(INTEREST, "HIGH")
1302 }
1303 
1304 record(bi, "$(P)$(Q)VGAUGE:5")
1305 {
1306  field(SCAN, ".1 second")
1307  field(DESC, "Snout setpoint reached")
1308  field(ZNAM, "FALSE")
1309  field(ONAM, "TRUE")
1310  field(INP, "$(P)$(Q)ADDR:519.BE PP")
1311  info(INTEREST, "HIGH")
1312 }
1313 
1314 record(bi, "$(P)$(Q)VGAUGE:6")
1315 {
1316  field(SCAN, ".1 second")
1317  field(DESC, "Guide setpoint reached")
1318  field(ZNAM, "FALSE")
1319  field(ONAM, "TRUE")
1320  field(INP, "$(P)$(Q)ADDR:519.BF PP")
1321  info(INTEREST, "HIGH")
1322 }
1323 
1324 record(bi, "$(P)$(Q)VAC_SWITCH")
1325 {
1326  field(SCAN, ".1 second")
1327  field(DESC, "Vacuum switch")
1328  field(ZNAM, "VACUUM")
1329  field(ONAM, "NO VACCUM")
1330  field(INP, "$(P)$(Q)ADDR:520.B0 PP")
1331  info(INTEREST, "HIGH")
1332 }
1333 
1334 record(bi, "$(P)$(Q)GENERAL_ALARM")
1335 {
1336  field(SCAN, ".1 second")
1337  field(DESC, "Overload/tripped/EMSTOP/air")
1338  field(ZNAM, "OK")
1339  field(ONAM, "ALARM")
1340  field(INP, "$(P)$(Q)ADDR:520.B1 PP")
1341  info(INTEREST, "HIGH")
1342 }
1343 # Zoom Vacuum Commands
1344 #
1345 # This is a template for generating a set of PVs which have commands which
1346 # can be toggled by buttons. E.g. Monitor 2 can be inserted and extracted.
1347 #
1348 # Each command has a SP and a command that can be directly used by the button
1349 # on the OPI
1350 #
1351 # Macros:
1352 # - P = Instrument name prefix
1353 # - Q = Name for this piece of equipment
1354 # - NAME = Name of the thing we're controlling (e.g. MONITOR:2)
1355 # - ZPV = Name to call the action when DOS:SP is ZERO (e.g. EXTARCT)
1356 # - OPV = Name to call the action when DOS:SP is ONE (e.g. INSERT)
1357 # - RADDR = The address to read status from
1358 # - EADDR = The address to read error state from
1359 # - RBIT = The bit to read state from
1360 # - EBIT = The bit to read error state from
1361 # - EBIT = The bit to read error state from
1362 # - ZADDR = The address to write to when DOS:SP is ZERO
1363 # - OADDR = The address to write to when DOS:SP is ONE
1364 # - ZDESC = Description for the ZERO action
1365 # - ODESC = Description for the ONE action
1366 # - ZSP = Description for when the SP is ZERO
1367 # - OSP = Description for when the SP is ONE
1368 
1369 # Inverse of the value read from the PV
1370 # Useful for LEDs on the OPI
1371 record(calc, "$(P)$(Q)DOS:INV")
1372 {
1373  field(INPA, "$(P)$(Q)DOS CP")
1374  field(CALC, "A!=0?0:1")
1375  field(ASG, "READONLY")
1376 }
1377 
1378 record(mbbo, "$(P)$(Q)DOS:SP") {
1379  field(DTYP, "Raw Soft Channel")
1380  field(FLNK, "$(P)$(Q)DOS:CALC")
1381  field(ZRVL, "0x1")
1382  field(ZRST, "CLOSED")
1383  field(ONVL, "0x2")
1384  field(ONST, "OPEN")
1385 }
1386 
1387 record(seq,"$(P)$(Q)DOS:CALC") {
1388  field(SELM, "Mask")
1389  field(SELL, "$(P)$(Q)DOS:SP.RVAL NPP NMS")
1390  field(DLY1, "0")
1391  field(DOL1, "0")
1392  field(LNK1, "$(P)$(Q):DOS:CLOSE.VAL PP NMS")
1393  field(DLY2, "0")
1394  field(DOL2, "1")
1395  field(LNK2, "$(P)$(Q):DOS:OPEN.VAL PP NMS")
1396 }
1397 
1398 record(bo, "$(P)$(Q)DOS:CLOSE")
1399 {
1400  field(ZNAM, "CLOSE")
1401  field(ONAM, "CLOSE")
1402  field(DTYP, "Soft Channel")
1403  field(DESC, "Close the detector overcount shutter")
1404  field(FLNK, "$(P)$(Q)DOS:CLOSE:RAW:VAL")
1405 }
1406 
1407 record(bo, "$(P)$(Q)DOS:OPEN")
1408 {
1409  field(ZNAM, "OPEN")
1410  field(ONAM, "OPEN")
1411  field(DTYP, "Soft Channel")
1412  field(DESC, "Open the detector overcount shutter")
1413  field(FLNK, "$(P)$(Q)DOS:OPEN:RAW:VAL")
1414 }
1415 
1416 record(longout, "$(P)$(Q)DOS:CLOSE:RAW:VAL")
1417 {
1418  field(VAL, "1")
1419  field(OUT, "$(P)$(Q)DOS:CLOSE:RAW:SP PP")
1420 }
1421 
1422 record(longout, "$(P)$(Q)DOS:OPEN:RAW:VAL")
1423 {
1424  field(VAL, "1")
1425  field(OUT, "$(P)$(Q)DOS:OPEN:RAW:SP PP")
1426 }
1427 
1428 record(longout, "$(P)$(Q)DOS:CLOSE:RAW:SP")
1429 {
1430  field(VAL, "1")
1431  field(DTYP, "asynInt32")
1432  field(DESC, "Close the detector overcount shutter")
1433  field(OUT, "@asyn(PLC, 552, 5.0) FINS_DM_WRITE")
1434  field(SIML, "$(P)$(Q)SIM")
1435  field(SIOL, "$(P)$(Q)SIM:DOS:CLOSE:RAW:SP")
1436 }
1437 
1438 record(longout, "$(P)$(Q)DOS:OPEN:RAW:SP")
1439 {
1440  field(VAL, "1")
1441  field(DTYP, "asynInt32")
1442  field(DESC, "Open the detector overcount shutter")
1443  field(OUT, "@asyn(PLC, 551, 5.0) FINS_DM_WRITE")
1444  field(SIML, "$(P)$(Q)SIM")
1445  field(SIOL, "$(P)$(Q)SIM:DOS:OPEN:RAW:SP")
1446 }
1447 
1448 ### Simulation Records ###
1449 
1450 record(longout, "$(P)$(Q)SIM:DOS:CLOSE:RAW:SP")
1451 {
1452  field(SCAN, "Passive")
1453  field(DTYP, "Soft Channel")
1454 }
1455 
1456 record(longout, "$(P)$(Q)SIM:DOS:OPEN:RAW:SP")
1457 {
1458  field(SCAN, "Passive")
1459  field(DTYP, "Soft Channel")
1460 }
1461 
1462 
1463 # Zoom Vacuum Commands
1464 #
1465 # This is a template for generating a set of PVs which have commands which
1466 # can be toggled by buttons. E.g. Monitor 2 can be inserted and extracted.
1467 #
1468 # Each command has a SP and a command that can be directly used by the button
1469 # on the OPI
1470 #
1471 # Macros:
1472 # - P = Instrument name prefix
1473 # - Q = Name for this piece of equipment
1474 # - NAME = Name of the thing we're controlling (e.g. MONITOR:2)
1475 # - ZPV = Name to call the action when MONITOR:2:SP is ZERO (e.g. EXTARCT)
1476 # - OPV = Name to call the action when MONITOR:2:SP is ONE (e.g. INSERT)
1477 # - RADDR = The address to read status from
1478 # - EADDR = The address to read error state from
1479 # - RBIT = The bit to read state from
1480 # - EBIT = The bit to read error state from
1481 # - EBIT = The bit to read error state from
1482 # - ZADDR = The address to write to when MONITOR:2:SP is ZERO
1483 # - OADDR = The address to write to when MONITOR:2:SP is ONE
1484 # - ZDESC = Description for the ZERO action
1485 # - ODESC = Description for the ONE action
1486 # - ZSP = Description for when the SP is ZERO
1487 # - OSP = Description for when the SP is ONE
1488 
1489 # Inverse of the value read from the PV
1490 # Useful for LEDs on the OPI
1491 record(calc, "$(P)$(Q)MONITOR:2:INV")
1492 {
1493  field(INPA, "$(P)$(Q)MONITOR:2 CP")
1494  field(CALC, "A!=0?0:1")
1495  field(ASG, "READONLY")
1496 }
1497 
1498 record(mbbo, "$(P)$(Q)MONITOR:2:SP") {
1499  field(DTYP, "Raw Soft Channel")
1500  field(FLNK, "$(P)$(Q)MONITOR:2:CALC")
1501  field(ZRVL, "0x1")
1502  field(ZRST, "EXTRACTED")
1503  field(ONVL, "0x2")
1504  field(ONST, "INSERTED")
1505 }
1506 
1507 record(seq,"$(P)$(Q)MONITOR:2:CALC") {
1508  field(SELM, "Mask")
1509  field(SELL, "$(P)$(Q)MONITOR:2:SP.RVAL NPP NMS")
1510  field(DLY1, "0")
1511  field(DOL1, "0")
1512  field(LNK1, "$(P)$(Q):MONITOR:2:EXTRACT.VAL PP NMS")
1513  field(DLY2, "0")
1514  field(DOL2, "1")
1515  field(LNK2, "$(P)$(Q):MONITOR:2:INSERT.VAL PP NMS")
1516 }
1517 
1518 record(bo, "$(P)$(Q)MONITOR:2:EXTRACT")
1519 {
1520  field(ZNAM, "EXTRACT")
1521  field(ONAM, "EXTRACT")
1522  field(DTYP, "Soft Channel")
1523  field(DESC, "Extract monitor 2")
1524  field(FLNK, "$(P)$(Q)MONITOR:2:EXTRACT:RAW:VAL")
1525 }
1526 
1527 record(bo, "$(P)$(Q)MONITOR:2:INSERT")
1528 {
1529  field(ZNAM, "INSERT")
1530  field(ONAM, "INSERT")
1531  field(DTYP, "Soft Channel")
1532  field(DESC, "Insert monitor 2")
1533  field(FLNK, "$(P)$(Q)MONITOR:2:INSERT:RAW:VAL")
1534 }
1535 
1536 record(longout, "$(P)$(Q)MONITOR:2:EXTRACT:RAW:VAL")
1537 {
1538  field(VAL, "1")
1539  field(OUT, "$(P)$(Q)MONITOR:2:EXTRACT:RAW:SP PP")
1540 }
1541 
1542 record(longout, "$(P)$(Q)MONITOR:2:INSERT:RAW:VAL")
1543 {
1544  field(VAL, "1")
1545  field(OUT, "$(P)$(Q)MONITOR:2:INSERT:RAW:SP PP")
1546 }
1547 
1548 record(longout, "$(P)$(Q)MONITOR:2:EXTRACT:RAW:SP")
1549 {
1550  field(VAL, "1")
1551  field(DTYP, "asynInt32")
1552  field(DESC, "Extract monitor 2")
1553  field(OUT, "@asyn(PLC, 554, 5.0) FINS_DM_WRITE")
1554  field(SIML, "$(P)$(Q)SIM")
1555  field(SIOL, "$(P)$(Q)SIM:MONITOR:2:EXTRACT:RAW:SP")
1556 }
1557 
1558 record(longout, "$(P)$(Q)MONITOR:2:INSERT:RAW:SP")
1559 {
1560  field(VAL, "1")
1561  field(DTYP, "asynInt32")
1562  field(DESC, "Insert monitor 2")
1563  field(OUT, "@asyn(PLC, 553, 5.0) FINS_DM_WRITE")
1564  field(SIML, "$(P)$(Q)SIM")
1565  field(SIOL, "$(P)$(Q)SIM:MONITOR:2:INSERT:RAW:SP")
1566 }
1567 
1568 ### Simulation Records ###
1569 
1570 record(longout, "$(P)$(Q)SIM:MONITOR:2:EXTRACT:RAW:SP")
1571 {
1572  field(SCAN, "Passive")
1573  field(DTYP, "Soft Channel")
1574 }
1575 
1576 record(longout, "$(P)$(Q)SIM:MONITOR:2:INSERT:RAW:SP")
1577 {
1578  field(SCAN, "Passive")
1579  field(DTYP, "Soft Channel")
1580 }
1581 
1582 
1583 # Zoom Vacuum Commands
1584 #
1585 # This is a template for generating a set of PVs which have commands which
1586 # can be toggled by buttons. E.g. Monitor 2 can be inserted and extracted.
1587 #
1588 # Each command has a SP and a command that can be directly used by the button
1589 # on the OPI
1590 #
1591 # Macros:
1592 # - P = Instrument name prefix
1593 # - Q = Name for this piece of equipment
1594 # - NAME = Name of the thing we're controlling (e.g. MONITOR:2)
1595 # - ZPV = Name to call the action when MONITOR:4:SP is ZERO (e.g. EXTARCT)
1596 # - OPV = Name to call the action when MONITOR:4:SP is ONE (e.g. INSERT)
1597 # - RADDR = The address to read status from
1598 # - EADDR = The address to read error state from
1599 # - RBIT = The bit to read state from
1600 # - EBIT = The bit to read error state from
1601 # - EBIT = The bit to read error state from
1602 # - ZADDR = The address to write to when MONITOR:4:SP is ZERO
1603 # - OADDR = The address to write to when MONITOR:4:SP is ONE
1604 # - ZDESC = Description for the ZERO action
1605 # - ODESC = Description for the ONE action
1606 # - ZSP = Description for when the SP is ZERO
1607 # - OSP = Description for when the SP is ONE
1608 
1609 # Inverse of the value read from the PV
1610 # Useful for LEDs on the OPI
1611 record(calc, "$(P)$(Q)MONITOR:4:INV")
1612 {
1613  field(INPA, "$(P)$(Q)MONITOR:4 CP")
1614  field(CALC, "A!=0?0:1")
1615  field(ASG, "READONLY")
1616 }
1617 
1618 record(mbbo, "$(P)$(Q)MONITOR:4:SP") {
1619  field(DTYP, "Raw Soft Channel")
1620  field(FLNK, "$(P)$(Q)MONITOR:4:CALC")
1621  field(ZRVL, "0x1")
1622  field(ZRST, "EXTRACTED")
1623  field(ONVL, "0x2")
1624  field(ONST, "INSERTED")
1625 }
1626 
1627 record(seq,"$(P)$(Q)MONITOR:4:CALC") {
1628  field(SELM, "Mask")
1629  field(SELL, "$(P)$(Q)MONITOR:4:SP.RVAL NPP NMS")
1630  field(DLY1, "0")
1631  field(DOL1, "0")
1632  field(LNK1, "$(P)$(Q):MONITOR:4:EXTRACT.VAL PP NMS")
1633  field(DLY2, "0")
1634  field(DOL2, "1")
1635  field(LNK2, "$(P)$(Q):MONITOR:4:INSERT.VAL PP NMS")
1636 }
1637 
1638 record(bo, "$(P)$(Q)MONITOR:4:EXTRACT")
1639 {
1640  field(ZNAM, "EXTRACT")
1641  field(ONAM, "EXTRACT")
1642  field(DTYP, "Soft Channel")
1643  field(DESC, "Extract monitor 4")
1644  field(FLNK, "$(P)$(Q)MONITOR:4:EXTRACT:RAW:VAL")
1645 }
1646 
1647 record(bo, "$(P)$(Q)MONITOR:4:INSERT")
1648 {
1649  field(ZNAM, "INSERT")
1650  field(ONAM, "INSERT")
1651  field(DTYP, "Soft Channel")
1652  field(DESC, "Insert monitor 4")
1653  field(FLNK, "$(P)$(Q)MONITOR:4:INSERT:RAW:VAL")
1654 }
1655 
1656 record(longout, "$(P)$(Q)MONITOR:4:EXTRACT:RAW:VAL")
1657 {
1658  field(VAL, "1")
1659  field(OUT, "$(P)$(Q)MONITOR:4:EXTRACT:RAW:SP PP")
1660 }
1661 
1662 record(longout, "$(P)$(Q)MONITOR:4:INSERT:RAW:VAL")
1663 {
1664  field(VAL, "1")
1665  field(OUT, "$(P)$(Q)MONITOR:4:INSERT:RAW:SP PP")
1666 }
1667 
1668 record(longout, "$(P)$(Q)MONITOR:4:EXTRACT:RAW:SP")
1669 {
1670  field(VAL, "1")
1671  field(DTYP, "asynInt32")
1672  field(DESC, "Extract monitor 4")
1673  field(OUT, "@asyn(PLC, 556, 5.0) FINS_DM_WRITE")
1674  field(SIML, "$(P)$(Q)SIM")
1675  field(SIOL, "$(P)$(Q)SIM:MONITOR:4:EXTRACT:RAW:SP")
1676 }
1677 
1678 record(longout, "$(P)$(Q)MONITOR:4:INSERT:RAW:SP")
1679 {
1680  field(VAL, "1")
1681  field(DTYP, "asynInt32")
1682  field(DESC, "Insert monitor 4")
1683  field(OUT, "@asyn(PLC, 555, 5.0) FINS_DM_WRITE")
1684  field(SIML, "$(P)$(Q)SIM")
1685  field(SIOL, "$(P)$(Q)SIM:MONITOR:4:INSERT:RAW:SP")
1686 }
1687 
1688 ### Simulation Records ###
1689 
1690 record(longout, "$(P)$(Q)SIM:MONITOR:4:EXTRACT:RAW:SP")
1691 {
1692  field(SCAN, "Passive")
1693  field(DTYP, "Soft Channel")
1694 }
1695 
1696 record(longout, "$(P)$(Q)SIM:MONITOR:4:INSERT:RAW:SP")
1697 {
1698  field(SCAN, "Passive")
1699  field(DTYP, "Soft Channel")
1700 }
1701 
1702 
alias("$(P)$(Q)MOVE:SP:RBV","$(P)$(Q)MOVE")
record(longin,"$(P)$(Q)$(NAME):RAW")
Copyright © 2013 Science and Technology Facilities Council | Generated by   doxygen 1.8.5