Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
record(longin, "$(dev):c$(num):Count") {
field(DTYP, "Python Device")
field(INP , "@counter$(num)")
field(SCAN, "2 second")
#field(FLNK, "$(dev):c$(num):TotalCount")
}
record(calc, "$(dev):c$(num):TotalCount") {
#field(SCAN,"Passive")
field(SCAN, "2 second")
#field(VAL, "0")
field(INPA, "$(dev):c$(num):Count PP")
field(INPB, "$(dev):c$(num):TotalCount.VAL PP")
field(CALC, "A")
field(PREC, "9")
}
record(longin, "$(dev):c$(num):IsCounting") {
field(DESC, "counter is counting")
field(DTYP, "Soft Channel")
field(SCAN, "Passive")
field(VAL, "1")
}
record(longin, "$(dev):c$(num):TimeInterval") {
field(DESC, "time interval seconds")
field(DTYP, "Soft Channel")
field(SCAN, "Passive")
field(VAL, "60")
}
record(calc, "$(dev):c$(num):TotalTime") {
field(SCAN,"2 second")
field(INPA, "$(dev):c$(num):IsCounting PP")
field(INPB, "$(dev):c$(num):TotalTime.VAL PP")
field(CALC, "(A>0) ? (2.0 + B) : B")
field(PREC, "9")
}
record(calc, "$(dev):c$(num):TotalRate") {
field(SCAN,"2 second")
field(INPA, "$(dev):c$(num):TotalTime PP")
field(INPB, "$(dev):c$(num):TotalCount PP")
field(CALC, "B/A")
field(PREC, "4")
}
record(longin, "$(dev):c$(num):Reset") {
field(DESC, "Initiate counter reset")
field(DTYP, "Soft Channel")
field(SCAN, "Passive")
field(VAL, "0")
}
record(calcout, "$(dev):c$(num):DoReset") {
field(OOPT, "On Change")
field(DOPT, "Use OCAL") # to set OUT
field(OUT, "$(dev):c$(num):Reset CA")
field(INPA, "$(dev):c$(num):Reset CP")
field(CALC, "A")
field(OCAL, "0")
field(PREC, "4")
field(FLNK, "$(dev):c$(num):ResetTotalTime")
}
record(calcout, "$(dev):c$(num):ResetTotalTime") {
field(OOPT, "Every Time")
field(OUT, "$(dev):c$(num):TotalTime CA")
field(INPA, "$(dev):c$(num):TotalTime PP")
field(CALC, "0.000001")
}