4 field(DTYP,
"Soft Channel")
7 field(VAL,
"$(RECSIM)")
12 field(DESC,
"Disable comms")
14 field(VAL,
"$(DISABLE)")
15 field(OMSL,
"supervisory")
16 field(ZNAM,
"COMMS ENABLED")
17 field(ONAM,
"COMMS DISABLED")
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")
27 info(INTEREST,
"HIGH")
28 field(SIML,
"$(P)$(Q)SIM")
29 field(SIOL,
"$(P)$(Q)SIM:HEARTBEAT")
30 field(SDIS,
"$(P)$(Q)DISABLE")
39 field(DESC,
"Reset the DAE")
40 field(FLNK,
"$(P)$(Q)DAE:RESET:RAW:VAL")
43 record(longout,
"$(P)$(Q)DAE:RESET:RAW:VAL")
46 field(OUT,
"$(P)$(Q)DAE:RESET:RAW:SP PP")
49 record(longout,
"$(P)$(Q)DAE:RESET:RAW:SP")
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")
59 ### SIMULATION RECORDS ###
61 record(longin,
"$(P)$(Q)SIM:HEARTBEAT")
63 field(SCAN,
"Passive")
64 field(DTYP,
"Soft Channel")
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
70 record(longin,
"$(P)$(Q)GAUGE:1:MEAS1EXP")
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")
80 ## number in range 10 to 99 corresponding to 1.0 to 9.9
81 record(longin,
"$(P)$(Q)GAUGE:1:MEAS1")
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")
90 record(longin,
"$(P)$(Q)GAUGE:1:MEAS2EXP")
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")
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
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")
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")
117 field(DESC,
"Pressure")
120 info(INTEREST,
"HIGH")
122 alias(
"$(P)$(Q)GAUGE1")
125 ### SIMULATION RECORDS ###
128 record(longin,
"$(P)$(Q)GAUGE:1:MEAS1:SIM")
130 field(SCAN,
"Passive")
131 field(DTYP,
"Soft Channel")
134 record(longin,
"$(P)$(Q)GAUGE:1:MEAS1EXP:SIM")
136 field(SCAN,
"Passive")
137 field(DTYP,
"Soft Channel")
140 record(longin,
"$(P)$(Q)GAUGE:1:MEAS2:SIM")
142 field(SCAN,
"Passive")
143 field(DTYP,
"Soft Channel")
146 record(longin,
"$(P)$(Q)GAUGE:1:MEAS2EXP:SIM")
148 field(SCAN,
"Passive")
149 field(DTYP,
"Soft Channel")
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
156 record(longin,
"$(P)$(Q)GAUGE:2:MEAS1EXP")
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")
166 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
176 record(longin,
"$(P)$(Q)GAUGE:2:MEAS2EXP")
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")
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
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")
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")
203 field(DESC,
"Pressure")
206 info(INTEREST,
"HIGH")
208 alias(
"$(P)$(Q)GAUGE2")
211 ### SIMULATION RECORDS ###
214 record(longin,
"$(P)$(Q)GAUGE:2:MEAS1:SIM")
216 field(SCAN,
"Passive")
217 field(DTYP,
"Soft Channel")
220 record(longin,
"$(P)$(Q)GAUGE:2:MEAS1EXP:SIM")
222 field(SCAN,
"Passive")
223 field(DTYP,
"Soft Channel")
226 record(longin,
"$(P)$(Q)GAUGE:2:MEAS2:SIM")
228 field(SCAN,
"Passive")
229 field(DTYP,
"Soft Channel")
232 record(longin,
"$(P)$(Q)GAUGE:2:MEAS2EXP:SIM")
234 field(SCAN,
"Passive")
235 field(DTYP,
"Soft Channel")
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
242 record(longin,
"$(P)$(Q)GAUGE:3:MEAS1EXP")
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")
252 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
262 record(longin,
"$(P)$(Q)GAUGE:3:MEAS2EXP")
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")
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
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")
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")
289 field(DESC,
"Pressure")
292 info(INTEREST,
"HIGH")
294 alias(
"$(P)$(Q)GAUGE3")
297 ### SIMULATION RECORDS ###
300 record(longin,
"$(P)$(Q)GAUGE:3:MEAS1:SIM")
302 field(SCAN,
"Passive")
303 field(DTYP,
"Soft Channel")
306 record(longin,
"$(P)$(Q)GAUGE:3:MEAS1EXP:SIM")
308 field(SCAN,
"Passive")
309 field(DTYP,
"Soft Channel")
312 record(longin,
"$(P)$(Q)GAUGE:3:MEAS2:SIM")
314 field(SCAN,
"Passive")
315 field(DTYP,
"Soft Channel")
318 record(longin,
"$(P)$(Q)GAUGE:3:MEAS2EXP:SIM")
320 field(SCAN,
"Passive")
321 field(DTYP,
"Soft Channel")
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
328 record(longin,
"$(P)$(Q)GAUGE:4:MEAS1EXP")
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")
338 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
348 record(longin,
"$(P)$(Q)GAUGE:4:MEAS2EXP")
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")
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
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")
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")
375 field(DESC,
"Pressure")
378 info(INTEREST,
"HIGH")
380 alias(
"$(P)$(Q)GAUGE4")
383 ### SIMULATION RECORDS ###
386 record(longin,
"$(P)$(Q)GAUGE:4:MEAS1:SIM")
388 field(SCAN,
"Passive")
389 field(DTYP,
"Soft Channel")
392 record(longin,
"$(P)$(Q)GAUGE:4:MEAS1EXP:SIM")
394 field(SCAN,
"Passive")
395 field(DTYP,
"Soft Channel")
398 record(longin,
"$(P)$(Q)GAUGE:4:MEAS2:SIM")
400 field(SCAN,
"Passive")
401 field(DTYP,
"Soft Channel")
404 record(longin,
"$(P)$(Q)GAUGE:4:MEAS2EXP:SIM")
406 field(SCAN,
"Passive")
407 field(DTYP,
"Soft Channel")
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
414 record(longin,
"$(P)$(Q)GAUGE:5:MEAS1EXP")
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")
424 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
434 record(longin,
"$(P)$(Q)GAUGE:5:MEAS2EXP")
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")
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
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")
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")
461 field(DESC,
"Pressure")
464 info(INTEREST,
"HIGH")
466 alias(
"$(P)$(Q)GAUGE5")
469 ### SIMULATION RECORDS ###
472 record(longin,
"$(P)$(Q)GAUGE:5:MEAS1:SIM")
474 field(SCAN,
"Passive")
475 field(DTYP,
"Soft Channel")
478 record(longin,
"$(P)$(Q)GAUGE:5:MEAS1EXP:SIM")
480 field(SCAN,
"Passive")
481 field(DTYP,
"Soft Channel")
484 record(longin,
"$(P)$(Q)GAUGE:5:MEAS2:SIM")
486 field(SCAN,
"Passive")
487 field(DTYP,
"Soft Channel")
490 record(longin,
"$(P)$(Q)GAUGE:5:MEAS2EXP:SIM")
492 field(SCAN,
"Passive")
493 field(DTYP,
"Soft Channel")
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
500 record(longin,
"$(P)$(Q)GAUGE:6:MEAS1EXP")
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")
510 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
520 record(longin,
"$(P)$(Q)GAUGE:6:MEAS2EXP")
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")
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
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")
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")
547 field(DESC,
"Pressure")
550 info(INTEREST,
"HIGH")
552 alias(
"$(P)$(Q)GAUGE6")
555 ### SIMULATION RECORDS ###
558 record(longin,
"$(P)$(Q)GAUGE:6:MEAS1:SIM")
560 field(SCAN,
"Passive")
561 field(DTYP,
"Soft Channel")
564 record(longin,
"$(P)$(Q)GAUGE:6:MEAS1EXP:SIM")
566 field(SCAN,
"Passive")
567 field(DTYP,
"Soft Channel")
570 record(longin,
"$(P)$(Q)GAUGE:6:MEAS2:SIM")
572 field(SCAN,
"Passive")
573 field(DTYP,
"Soft Channel")
576 record(longin,
"$(P)$(Q)GAUGE:6:MEAS2EXP:SIM")
578 field(SCAN,
"Passive")
579 field(DTYP,
"Soft Channel")
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
586 record(longin,
"$(P)$(Q)GAUGE:7:MEAS1EXP")
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")
596 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
606 record(longin,
"$(P)$(Q)GAUGE:7:MEAS2EXP")
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")
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
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")
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")
633 field(DESC,
"Pressure")
636 info(INTEREST,
"HIGH")
638 alias(
"$(P)$(Q)GAUGE7")
641 ### SIMULATION RECORDS ###
644 record(longin,
"$(P)$(Q)GAUGE:7:MEAS1:SIM")
646 field(SCAN,
"Passive")
647 field(DTYP,
"Soft Channel")
650 record(longin,
"$(P)$(Q)GAUGE:7:MEAS1EXP:SIM")
652 field(SCAN,
"Passive")
653 field(DTYP,
"Soft Channel")
656 record(longin,
"$(P)$(Q)GAUGE:7:MEAS2:SIM")
658 field(SCAN,
"Passive")
659 field(DTYP,
"Soft Channel")
662 record(longin,
"$(P)$(Q)GAUGE:7:MEAS2EXP:SIM")
664 field(SCAN,
"Passive")
665 field(DTYP,
"Soft Channel")
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
672 record(longin,
"$(P)$(Q)GAUGE:8:MEAS1EXP")
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")
682 ## number in range 10 to 99 corresponding to 1.0 to 9.9
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")
692 record(longin,
"$(P)$(Q)GAUGE:8:MEAS2EXP")
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")
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
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")
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")
719 field(DESC,
"Pressure")
722 info(INTEREST,
"HIGH")
724 alias(
"$(P)$(Q)GAUGE8")
727 ### SIMULATION RECORDS ###
730 record(longin,
"$(P)$(Q)GAUGE:8:MEAS1:SIM")
732 field(SCAN,
"Passive")
733 field(DTYP,
"Soft Channel")
736 record(longin,
"$(P)$(Q)GAUGE:8:MEAS1EXP:SIM")
738 field(SCAN,
"Passive")
739 field(DTYP,
"Soft Channel")
742 record(longin,
"$(P)$(Q)GAUGE:8:MEAS2:SIM")
744 field(SCAN,
"Passive")
745 field(DTYP,
"Soft Channel")
748 record(longin,
"$(P)$(Q)GAUGE:8:MEAS2EXP:SIM")
750 field(SCAN,
"Passive")
751 field(DTYP,
"Soft Channel")
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")
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")
774 ### Simulation Records ###
776 record(mbbiDirect,
"$(P)$(Q)SIM:ADDR:517")
778 field(SCAN,
"Passive")
779 field(DTYP,
"Soft Channel")
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")
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")
801 ### Simulation Records ###
803 record(mbbiDirect,
"$(P)$(Q)SIM:ADDR:518")
805 field(SCAN,
"Passive")
806 field(DTYP,
"Soft Channel")
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")
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")
828 ### Simulation Records ###
830 record(mbbiDirect,
"$(P)$(Q)SIM:ADDR:519")
832 field(SCAN,
"Passive")
833 field(DTYP,
"Soft Channel")
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")
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")
855 ### Simulation Records ###
857 record(mbbiDirect,
"$(P)$(Q)SIM:ADDR:520")
859 field(SCAN,
"Passive")
860 field(DTYP,
"Soft Channel")
866 field(SCAN,
".1 second")
867 field(DESC,
"Detector overcount shutter error")
870 field(INP,
"$(P)$(Q)ADDR:517.B0 PP")
871 info(INTEREST,
"HIGH")
876 field(SCAN,
".1 second")
877 field(DESC,
"Detector overcount shutter")
878 field(ZNAM,
"CLOSED")
880 field(INP,
"$(P)$(Q)ADDR:517.B1 PP")
881 info(INTEREST,
"HIGH")
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")
896 field(SCAN,
".1 second")
897 field(DESC,
"Monitor 2 error")
900 field(INP,
"$(P)$(Q)ADDR:517.B3 PP")
901 info(INTEREST,
"HIGH")
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")
916 field(SCAN,
".1 second")
917 field(DESC,
"Monitor 4 error")
920 field(INP,
"$(P)$(Q)ADDR:517.B5 PP")
921 info(INTEREST,
"HIGH")
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")
936 field(SCAN,
".1 second")
937 field(DESC,
"Guide vacuum is OK")
940 field(INP,
"$(P)$(Q)ADDR:517.B7 PP")
941 info(INTEREST,
"HIGH")
946 field(SCAN,
".1 second")
947 field(DESC,
"Guide roughing pump isolation valve")
950 field(INP,
"$(P)$(Q)ADDR:517.B8 PP")
951 info(INTEREST,
"HIGH")
956 field(SCAN,
".1 second")
957 field(DESC,
"Guide roughing pump isolation valve")
958 field(ZNAM,
"CLOSED")
960 field(INP,
"$(P)$(Q)ADDR:517.B9 PP")
961 info(INTEREST,
"HIGH")
966 field(SCAN,
".1 second")
967 field(DESC,
"Snout bypass valve")
970 field(INP,
"$(P)$(Q)ADDR:517.BA PP")
971 info(INTEREST,
"HIGH")
976 field(SCAN,
".1 second")
977 field(DESC,
"Snout bypass valve")
978 field(ZNAM,
"CLOSED")
980 field(INP,
"$(P)$(Q)ADDR:517.BB PP")
981 info(INTEREST,
"HIGH")
986 field(SCAN,
".1 second")
987 field(DESC,
"Snout line valve")
990 field(INP,
"$(P)$(Q)ADDR:517.BC PP")
991 info(INTEREST,
"HIGH")
996 field(SCAN,
".1 second")
997 field(DESC,
"Snout line valve")
998 field(ZNAM,
"CLOSED")
1000 field(INP,
"$(P)$(Q)ADDR:517.BD PP")
1001 info(INTEREST,
"HIGH")
1006 field(SCAN,
".1 second")
1007 field(DESC,
"Snout vent valve")
1009 field(ONAM,
"ERROR")
1010 field(INP,
"$(P)$(Q)ADDR:517.BE PP")
1011 info(INTEREST,
"HIGH")
1016 field(SCAN,
".1 second")
1017 field(DESC,
"Snout vent valve")
1018 field(ZNAM,
"CLOSED")
1020 field(INP,
"$(P)$(Q)ADDR:517.BF PP")
1021 info(INTEREST,
"HIGH")
1026 field(SCAN,
".1 second")
1027 field(DESC,
"Tank dry air admittance valve 1 error")
1029 field(ONAM,
"ERROR")
1030 field(INP,
"$(P)$(Q)ADDR:518.B2 PP")
1031 info(INTEREST,
"HIGH")
1036 field(SCAN,
".1 second")
1037 field(DESC,
"Tank dry air admittance valve 1")
1038 field(ZNAM,
"CLOSED")
1040 field(INP,
"$(P)$(Q)ADDR:518.B3 PP")
1041 info(INTEREST,
"HIGH")
1046 field(SCAN,
".1 second")
1047 field(DESC,
"Tank dry air admittance valve 2")
1049 field(ONAM,
"ERROR")
1050 field(INP,
"$(P)$(Q)ADDR:518.B4 PP")
1051 info(INTEREST,
"HIGH")
1056 field(SCAN,
".1 second")
1057 field(DESC,
"Tank dry air admittance valve 2")
1058 field(ZNAM,
"CLOSED")
1060 field(INP,
"$(P)$(Q)ADDR:518.B5 PP")
1061 info(INTEREST,
"HIGH")
1066 field(SCAN,
".1 second")
1067 field(DESC,
"Tank vent valve error")
1069 field(ONAM,
"ERROR")
1070 field(INP,
"$(P)$(Q)ADDR:518.B6 PP")
1071 info(INTEREST,
"HIGH")
1076 field(SCAN,
".1 second")
1077 field(DESC,
"Tank vent valve")
1078 field(ZNAM,
"CLOSED")
1080 field(INP,
"$(P)$(Q)ADDR:518.B7 PP")
1081 info(INTEREST,
"HIGH")
1086 field(SCAN,
".1 second")
1087 field(DESC,
"Tank pump 1 isolation valve")
1089 field(ONAM,
"ERROR")
1090 field(INP,
"$(P)$(Q)ADDR:518.B8 PP")
1091 info(INTEREST,
"HIGH")
1096 field(SCAN,
".1 second")
1097 field(DESC,
"Tank pump 1 isolation valve")
1098 field(ZNAM,
"CLOSED")
1100 field(INP,
"$(P)$(Q)ADDR:518.B9 PP")
1101 info(INTEREST,
"HIGH")
1106 field(SCAN,
".1 second")
1107 field(DESC,
"Pump 1a running")
1109 field(ONAM,
"RUNNING")
1110 field(INP,
"$(P)$(Q)ADDR:518.BA PP")
1111 info(INTEREST,
"HIGH")
1116 field(SCAN,
".1 second")
1117 field(DESC,
"Pump 1a warning")
1119 field(ONAM,
"WARNING")
1120 field(INP,
"$(P)$(Q)ADDR:518.BB PP")
1121 info(INTEREST,
"HIGH")
1126 field(SCAN,
".1 second")
1127 field(DESC,
"Pump 1a fault")
1129 field(ONAM,
"FAULT")
1130 field(INP,
"$(P)$(Q)ADDR:518.BC PP")
1131 info(INTEREST,
"HIGH")
1136 field(SCAN,
".1 second")
1137 field(DESC,
"Pump 1a tripped/overloaded")
1139 field(ONAM,
"OVERLOAD")
1140 field(INP,
"$(P)$(Q)ADDR:518.BD PP")
1141 info(INTEREST,
"HIGH")
1146 field(SCAN,
".1 second")
1147 field(DESC,
"Pump 1b running")
1149 field(ONAM,
"RUNNING")
1150 field(INP,
"$(P)$(Q)ADDR:518.BE PP")
1151 info(INTEREST,
"HIGH")
1156 field(SCAN,
".1 second")
1157 field(DESC,
"Pump 1b tripped/overloaded")
1159 field(ONAM,
"OVERLOAD")
1160 field(INP,
"$(P)$(Q)ADDR:518.BF PP")
1161 info(INTEREST,
"HIGH")
1166 field(SCAN,
".1 second")
1167 field(DESC,
"Tank pump 2 isolation valve error")
1169 field(ONAM,
"ERROR")
1170 field(INP,
"$(P)$(Q)ADDR:519.B0 PP")
1171 info(INTEREST,
"HIGH")
1176 field(SCAN,
".1 second")
1177 field(DESC,
"Tank pump 2 isolation valve")
1180 field(INP,
"$(P)$(Q)ADDR:519.B1 PP")
1181 info(INTEREST,
"HIGH")
1186 field(SCAN,
".1 second")
1187 field(DESC,
"Pump 2 running")
1189 field(ONAM,
"RUNNING")
1190 field(INP,
"$(P)$(Q)ADDR:519.B2 PP")
1191 info(INTEREST,
"HIGH")
1196 field(SCAN,
".1 second")
1197 field(DESC,
"Pump 2 warning")
1199 field(ONAM,
"WARNING")
1200 field(INP,
"$(P)$(Q)ADDR:519.B3 PP")
1201 info(INTEREST,
"HIGH")
1206 field(SCAN,
".1 second")
1207 field(DESC,
"Pump 2 fault")
1209 field(ONAM,
"FAULT")
1210 field(INP,
"$(P)$(Q)ADDR:519.B4 PP")
1211 info(INTEREST,
"HIGH")
1216 field(SCAN,
".1 second")
1217 field(DESC,
"Pump 2 tripped/overloaded")
1219 field(ONAM,
"OVERLOAD")
1220 field(INP,
"$(P)$(Q)ADDR:519.B5 PP")
1221 info(INTEREST,
"HIGH")
1226 field(SCAN,
".1 second")
1227 field(DESC,
"Emergency stop pressed")
1228 field(ZNAM,
"FALSE")
1230 field(INP,
"$(P)$(Q)ADDR:519.B6 PP")
1231 info(INTEREST,
"HIGH")
1236 field(SCAN,
".1 second")
1237 field(DESC,
"Any MCB tripped")
1238 field(ZNAM,
"FALSE")
1240 field(INP,
"$(P)$(Q)ADDR:519.B7 PP")
1241 info(INTEREST,
"HIGH")
1246 field(SCAN,
".1 second")
1247 field(DESC,
"Compressed air")
1250 field(INP,
"$(P)$(Q)ADDR:519.B8 PP")
1251 info(INTEREST,
"HIGH")
1256 field(SCAN,
".1 second")
1257 field(DESC,
"Dry air for tank vent")
1260 field(INP,
"$(P)$(Q)ADDR:519.B9 PP")
1261 info(INTEREST,
"HIGH")
1266 field(SCAN,
".1 second")
1267 field(DESC,
"Tank setpoint reached")
1268 field(ZNAM,
"FALSE")
1270 field(INP,
"$(P)$(Q)ADDR:519.BA PP")
1271 info(INTEREST,
"HIGH")
1276 field(SCAN,
".1 second")
1277 field(DESC,
"Tank pipework setpoint reached")
1278 field(ZNAM,
"FALSE")
1280 field(INP,
"$(P)$(Q)ADDR:519.BB PP")
1281 info(INTEREST,
"HIGH")
1286 field(SCAN,
".1 second")
1287 field(DESC,
"Pump set 1 setpoint reached")
1288 field(ZNAM,
"FALSE")
1290 field(INP,
"$(P)$(Q)ADDR:519.BC PP")
1291 info(INTEREST,
"HIGH")
1296 field(SCAN,
".1 second")
1297 field(DESC,
"Pump set 2 setpoint reached")
1298 field(ZNAM,
"FALSE")
1300 field(INP,
"$(P)$(Q)ADDR:519.BD PP")
1301 info(INTEREST,
"HIGH")
1306 field(SCAN,
".1 second")
1307 field(DESC,
"Snout setpoint reached")
1308 field(ZNAM,
"FALSE")
1310 field(INP,
"$(P)$(Q)ADDR:519.BE PP")
1311 info(INTEREST,
"HIGH")
1316 field(SCAN,
".1 second")
1317 field(DESC,
"Guide setpoint reached")
1318 field(ZNAM,
"FALSE")
1320 field(INP,
"$(P)$(Q)ADDR:519.BF PP")
1321 info(INTEREST,
"HIGH")
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")
1336 field(SCAN,
".1 second")
1337 field(DESC,
"Overload/tripped/EMSTOP/air")
1339 field(ONAM,
"ALARM")
1340 field(INP,
"$(P)$(Q)ADDR:520.B1 PP")
1341 info(INTEREST,
"HIGH")
1343 # Zoom Vacuum Commands
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.
1348 # Each command has a SP and a command that can be directly used by the button
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
1369 # Inverse of the value read from the PV
1370 # Useful for LEDs on the OPI
1373 field(INPA,
"$(P)$(Q)DOS CP")
1374 field(CALC,
"A!=0?0:1")
1375 field(ASG,
"READONLY")
1379 field(DTYP,
"Raw Soft Channel")
1380 field(FLNK,
"$(P)$(Q)DOS:CALC")
1382 field(ZRST,
"CLOSED")
1389 field(SELL,
"$(P)$(Q)DOS:SP.RVAL NPP NMS")
1392 field(LNK1,
"$(P)$(Q):DOS:CLOSE.VAL PP NMS")
1395 field(LNK2,
"$(P)$(Q):DOS:OPEN.VAL PP NMS")
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")
1411 field(DTYP,
"Soft Channel")
1412 field(DESC,
"Open the detector overcount shutter")
1413 field(FLNK,
"$(P)$(Q)DOS:OPEN:RAW:VAL")
1419 field(OUT,
"$(P)$(Q)DOS:CLOSE:RAW:SP PP")
1425 field(OUT,
"$(P)$(Q)DOS:OPEN:RAW:SP PP")
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")
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")
1448 ### Simulation Records ###
1450 record(longout,
"$(P)$(Q)SIM:DOS:CLOSE:RAW:SP")
1452 field(SCAN,
"Passive")
1453 field(DTYP,
"Soft Channel")
1456 record(longout,
"$(P)$(Q)SIM:DOS:OPEN:RAW:SP")
1458 field(SCAN,
"Passive")
1459 field(DTYP,
"Soft Channel")
1463 # Zoom Vacuum Commands
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.
1468 # Each command has a SP and a command that can be directly used by the button
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
1489 # Inverse of the value read from the PV
1490 # Useful for LEDs on the OPI
1493 field(INPA,
"$(P)$(Q)MONITOR:2 CP")
1494 field(CALC,
"A!=0?0:1")
1495 field(ASG,
"READONLY")
1499 field(DTYP,
"Raw Soft Channel")
1500 field(FLNK,
"$(P)$(Q)MONITOR:2:CALC")
1502 field(ZRST,
"EXTRACTED")
1504 field(ONST,
"INSERTED")
1509 field(SELL,
"$(P)$(Q)MONITOR:2:SP.RVAL NPP NMS")
1512 field(LNK1,
"$(P)$(Q):MONITOR:2:EXTRACT.VAL PP NMS")
1515 field(LNK2,
"$(P)$(Q):MONITOR:2:INSERT.VAL PP NMS")
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")
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")
1536 record(longout,
"$(P)$(Q)MONITOR:2:EXTRACT:RAW:VAL")
1539 field(OUT,
"$(P)$(Q)MONITOR:2:EXTRACT:RAW:SP PP")
1542 record(longout,
"$(P)$(Q)MONITOR:2:INSERT:RAW:VAL")
1545 field(OUT,
"$(P)$(Q)MONITOR:2:INSERT:RAW:SP PP")
1548 record(longout,
"$(P)$(Q)MONITOR:2:EXTRACT:RAW:SP")
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")
1558 record(longout,
"$(P)$(Q)MONITOR:2:INSERT:RAW:SP")
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")
1568 ### Simulation Records ###
1570 record(longout,
"$(P)$(Q)SIM:MONITOR:2:EXTRACT:RAW:SP")
1572 field(SCAN,
"Passive")
1573 field(DTYP,
"Soft Channel")
1576 record(longout,
"$(P)$(Q)SIM:MONITOR:2:INSERT:RAW:SP")
1578 field(SCAN,
"Passive")
1579 field(DTYP,
"Soft Channel")
1583 # Zoom Vacuum Commands
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.
1588 # Each command has a SP and a command that can be directly used by the button
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
1609 # Inverse of the value read from the PV
1610 # Useful for LEDs on the OPI
1613 field(INPA,
"$(P)$(Q)MONITOR:4 CP")
1614 field(CALC,
"A!=0?0:1")
1615 field(ASG,
"READONLY")
1619 field(DTYP,
"Raw Soft Channel")
1620 field(FLNK,
"$(P)$(Q)MONITOR:4:CALC")
1622 field(ZRST,
"EXTRACTED")
1624 field(ONST,
"INSERTED")
1629 field(SELL,
"$(P)$(Q)MONITOR:4:SP.RVAL NPP NMS")
1632 field(LNK1,
"$(P)$(Q):MONITOR:4:EXTRACT.VAL PP NMS")
1635 field(LNK2,
"$(P)$(Q):MONITOR:4:INSERT.VAL PP NMS")
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")
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")
1656 record(longout,
"$(P)$(Q)MONITOR:4:EXTRACT:RAW:VAL")
1659 field(OUT,
"$(P)$(Q)MONITOR:4:EXTRACT:RAW:SP PP")
1662 record(longout,
"$(P)$(Q)MONITOR:4:INSERT:RAW:VAL")
1665 field(OUT,
"$(P)$(Q)MONITOR:4:INSERT:RAW:SP PP")
1668 record(longout,
"$(P)$(Q)MONITOR:4:EXTRACT:RAW:SP")
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")
1678 record(longout,
"$(P)$(Q)MONITOR:4:INSERT:RAW:SP")
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")
1688 ### Simulation Records ###
1690 record(longout,
"$(P)$(Q)SIM:MONITOR:4:EXTRACT:RAW:SP")
1692 field(SCAN,
"Passive")
1693 field(DTYP,
"Soft Channel")
1696 record(longout,
"$(P)$(Q)SIM:MONITOR:4:INSERT:RAW:SP")
1698 field(SCAN,
"Passive")
1699 field(DTYP,
"Soft Channel")
record(longin,"$(P)$(Q)$(NAME):RAW")