Skip to content
Snippets Groups Projects
counters.db 1.78 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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")
    }