IOCINFRAApp/Db/SATECO_base.db
changeset 0 77d8eafe2a07
equal deleted inserted replaced
-1:000000000000 0:77d8eafe2a07
       
     1 # $Source: /cvs/G/DRV/SATECO/SATECO_base.template,v $
       
     2 # $Date: 2008/10/28 14:01:25 $
       
     3 # $Revision: 1.20 $
       
     4 # $Author: wang_x1 $
       
     5 
       
     6 
       
     7 #  Required substitutions:
       
     8 #    NAME        - prefix, e.g. X99SA-ES1-CRYOJET:
       
     9 #    UNIT        - temperature unit
       
    10 #    PTCOLS      - StreamDevice protocol file
       
    11 #    PORT        - port name
       
    12 
       
    13 # The Alarm Status of this record is used to trigger WATCHDOG
       
    14 record(stringin, "$(NAME):VERSION")
       
    15 {
       
    16     field(DESC, "control version")
       
    17     field(DTYP, "stream")
       
    18     field(INP,  "@$(PTCOLS) GET_VERSION $(PORT)")
       
    19     field(SCAN, "1 second")
       
    20     field(DISV, "0")
       
    21     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
    22 
       
    23     field(FLNK, "$(NAME):ONESHOT")
       
    24 }
       
    25 
       
    26 ##############################################
       
    27 # Controller Mode
       
    28 ##############################################
       
    29 record(mbbi, "$(NAME):MODE_RBV")
       
    30 {
       
    31     field(DESC, "control mode")
       
    32     field(DTYP, "stream")
       
    33     field(INP,  "@$(PTCOLS) GET_MODE $(PORT)")
       
    34     
       
    35     field(ZRVL, "0")
       
    36     field(ONVL, "1")
       
    37 
       
    38     field(ZRST, "Local")
       
    39     field(ONST, "Remote")
       
    40 
       
    41     field(SCAN, "1 second")
       
    42     field(DISV, "0")
       
    43     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
    44 }
       
    45 
       
    46 record(mbbo, "$(NAME):MODE")
       
    47 {
       
    48     field(DESC, "control mode")
       
    49     field(DTYP, "stream")
       
    50     field(OUT,  "@$(PTCOLS) SET_MODE $(PORT)")
       
    51     
       
    52     field(ZRVL, "0")
       
    53     field(ONVL, "1")
       
    54 
       
    55     field(ZRST, "Local")
       
    56     field(ONST, "Remote")
       
    57 
       
    58     field(DISV, "0")
       
    59     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
    60 }
       
    61 
       
    62 
       
    63 ##############################################
       
    64 # Connection Status Monitor
       
    65 ##############################################
       
    66 record(mbbo,    "$(NAME):CONN-STAT")
       
    67 {
       
    68     field(DESC, "connection status")
       
    69 
       
    70     field(ZRVL, "0")
       
    71     field(ONVL, "1")
       
    72     field(TWVL, "2")
       
    73 
       
    74     field(ZRST, "Disconnected")
       
    75     field(ONST, "Connected")
       
    76     field(TWST, "Connecting") 
       
    77 
       
    78     field(ZRSV, "MAJOR")
       
    79     field(ONSV, "NO_ALARM")
       
    80     field(TWSV, "MINOR")
       
    81 }
       
    82 record(bo,      "$(NAME):CONN")
       
    83 {
       
    84     field(DESC, "turn on/off connection")
       
    85 
       
    86     field(ZNAM, "Disconnect")
       
    87     field(ONAM, "Connect")
       
    88     field(ZSV,  "MAJOR")
       
    89     field(OSV,  "NO_ALARM")
       
    90    
       
    91     field(OUT,  "$(NAME):CONN-DFAN.VAL PP")
       
    92     field(FLNK, "$(NAME):CONN-CALC")
       
    93 }
       
    94 
       
    95 record(dfanout, "$(NAME):CONN-DFAN")
       
    96 {
       
    97     field(DESC, "fanout connect action")
       
    98     field(OMSL, "supervisory")
       
    99 
       
   100     field(OUTA, "$(NAME):ASYNIO.ENBL")
       
   101 #    field(OUTB, "$(NAME):ENBLSCAN.VAL")
       
   102     field(OUTC, "$(NAME):WATCHDOG.VAL PP")
       
   103 }
       
   104 
       
   105 record(calcout, "$(NAME):CONN-CALC")
       
   106 {
       
   107     field(DESC, "connecting")
       
   108     field(INPA, "$(NAME):CONN.VAL")
       
   109     field(CALC, "A=1?2:0")
       
   110     field(DOPT, "Use CALC")
       
   111     field(OOPT, "Transition To Non-zero")
       
   112     field(OUT,  "$(NAME):CONN-STAT.VAL PP MS")
       
   113     field(SCAN, "Passive")
       
   114 }
       
   115 
       
   116 record(calcout, "$(NAME):ONESHOT")
       
   117 {
       
   118     field(DESC, "watchdog trigger")
       
   119     field(INPA, "$(NAME):VERSION.STAT")
       
   120     field(CALC, "A=0?1:0")
       
   121     field(OOPT, "When Non-zero")
       
   122     field(OUT,  "$(NAME):WATCHDOG.VAL PP MS")
       
   123     field(SCAN, "Passive")
       
   124 }
       
   125 
       
   126 record(bo, "$(NAME):ENBLSCAN")
       
   127 {
       
   128     field(DESC, "enable/disable record scan")
       
   129     field(DTYP, "Soft Channel")
       
   130     field(SCAN, "Passive")
       
   131 
       
   132     field(ZNAM, "Disable")
       
   133     field(ONAM, "Enable")
       
   134 }
       
   135 
       
   136 record(bo, "$(NAME):WATCHDOG")
       
   137 {
       
   138     field(DESC, "connection indicator")
       
   139     field(DTYP, "Soft Channel")
       
   140 
       
   141     field(HIGH, "15")
       
   142     field(SCAN, "Passive")
       
   143 
       
   144     field(OUT,  "$(NAME):CONN-STAT.VAL PP")
       
   145 
       
   146     field(ZNAM, "Disconnected")
       
   147     field(ONAM, "Connected")
       
   148     field(ZSV,  "MAJOR")
       
   149     field(OSV,  "NO_ALARM")
       
   150 }
       
   151 
       
   152 record(asyn, "$(NAME):ASYNIO")
       
   153 {
       
   154     field(DESC, "asyn port")
       
   155     field(PORT, "$(PORT)")
       
   156 }
       
   157 
       
   158 record(calcout, "$(NAME):TRIG-CONN")
       
   159 {   
       
   160     field(DESC, "trigger scan")
       
   161     field(INPA, "$(NAME):WATCHDOG.VAL CPP MS")
       
   162     field(CALC, "A")
       
   163     field(OUT,  "$(NAME):CONN.VAL PP MS")
       
   164     field(OOPT, "Transition To Zero")
       
   165 }
       
   166 
       
   167 ###########################################
       
   168 #   PID
       
   169 ###########################################
       
   170 record(ao,      "$(NAME):P")
       
   171 {
       
   172     field(DESC, "PID - proportion set-point")
       
   173     field(DTYP, "stream")
       
   174     field(OUT,  "@$(PTCOLS) SET_P($(NAME)) $(PORT)")
       
   175 
       
   176     field(DISV, "0")
       
   177     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   178     field(PREC, "1")
       
   179 }
       
   180 
       
   181 record(ai,      "$(NAME):P_RBV")
       
   182 {
       
   183     field(DESC, "PID - proportion readback")
       
   184     field(DTYP, "stream")
       
   185     field(INP,  "@$(PTCOLS) GET_P $(PORT)")
       
   186 
       
   187     field(SCAN, "1 second")
       
   188     field(DISV, "0")
       
   189     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   190     field(PREC, "1")
       
   191 }
       
   192 record(ao,      "$(NAME):I")
       
   193 {
       
   194     field(DESC, "PID - integral set-point")
       
   195     field(DTYP, "stream")
       
   196     field(OUT,  "@$(PTCOLS) SET_I($(NAME)) $(PORT)")
       
   197 
       
   198     field(DISV, "0")
       
   199     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   200     field(PREC, "1")
       
   201 }
       
   202 
       
   203 record(ai,      "$(NAME):I_RBV")
       
   204 {
       
   205     field(DESC, "PID - integral readback")
       
   206     field(DTYP, "stream")
       
   207     field(INP,  "@$(PTCOLS) GET_I $(PORT)")
       
   208 
       
   209     field(SCAN, "1 second")
       
   210     field(DISV, "0")
       
   211     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   212     field(PREC, "1")
       
   213 }
       
   214 record(ao,      "$(NAME):D")
       
   215 {
       
   216     field(DESC, "PID - derivative set-point")
       
   217     field(DTYP, "stream")
       
   218     field(OUT,  "@$(PTCOLS) SET_D($(NAME)) $(PORT)")
       
   219 
       
   220     field(DISV, "0")
       
   221     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   222     field(PREC, "1")
       
   223 }
       
   224 
       
   225 record(ai,      "$(NAME):D_RBV")
       
   226 {
       
   227     field(DESC, "PID - derivative readback")
       
   228     field(DTYP, "stream")
       
   229     field(INP,  "@$(PTCOLS) GET_D $(PORT)")
       
   230 
       
   231     field(SCAN, "1 second")
       
   232     field(DISV, "0")
       
   233     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   234     field(PREC, "1")
       
   235 }
       
   236 
       
   237 ###########################################
       
   238 #   Heating Level
       
   239 ###########################################
       
   240 record(ao,      "$(NAME):HT-LVL")
       
   241 {
       
   242     field(DESC, "heater level set-point")
       
   243     field(DTYP, "stream")
       
   244     field(OUT,  "@$(PTCOLS) SET_HEAT-LEVEL $(PORT)")
       
   245 
       
   246 
       
   247     field(DISV, "0")
       
   248     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   249 
       
   250     field(HOPR, "100")
       
   251     field(LOPR, "0")
       
   252     field(PREC, "1")
       
   253     field(EGU,  "%")
       
   254 }
       
   255 
       
   256 record(ai,      "$(NAME):HT-LVL_RBV")
       
   257 {
       
   258     field(DESC, "heater level readback")
       
   259     field(DTYP, "stream")
       
   260     field(INP,  "@$(PTCOLS) GET_HEAT-LEVEL $(PORT)")
       
   261 
       
   262     field(SCAN, "1 second")
       
   263     field(DISV, "0")
       
   264     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   265 
       
   266     field(HOPR, "100")
       
   267     field(LOPR, "0")
       
   268     field(PREC, "1")
       
   269     field(EGU,  "%")
       
   270 }
       
   271 
       
   272 ###########################################
       
   273 #   Temperature
       
   274 ###########################################
       
   275 
       
   276 record(ai, "$(NAME):TEMP_RBV")
       
   277 {
       
   278     field(DESC, "temperature")
       
   279     field(DTYP, "stream")
       
   280     field(INP,  "@$(PTCOLS) GET_TEMP $(PORT)")
       
   281     field(FLNK, "$(NAME):TEMP-AVG")
       
   282 
       
   283     field(SCAN, "1 second")
       
   284     field(DISV, "0")
       
   285     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   286 
       
   287     field(PREC, "2")
       
   288     field(EGU,  "$(UNIT)")
       
   289 }
       
   290 
       
   291 record(ao, "$(NAME):TEMP")
       
   292 {
       
   293     field(DESC, "temperature")
       
   294     field(DTYP, "stream")
       
   295     field(OUT,  "@$(PTCOLS) SET_TEMP $(PORT)")
       
   296 
       
   297     field(DISV, "0")
       
   298     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   299 
       
   300     field(PREC, "2")
       
   301     field(EGU,  "$(UNIT)")
       
   302 
       
   303     field(FLNK, "$(NAME):GO-1 PP MS")
       
   304 }
       
   305 
       
   306 #!
       
   307 record(ai, "$(NAME):TEMP-SP")
       
   308 {
       
   309     field(DESC, "temperature setpoint")
       
   310     field(DTYP, "stream")
       
   311     field(INP,  "@$(PTCOLS) GET_TEMP-SP $(PORT)")
       
   312 
       
   313     field(DISV, "0")
       
   314     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   315 
       
   316     field(PREC, "2")
       
   317     field(EGU,  "$(UNIT)")
       
   318 }
       
   319 
       
   320 ###########################################
       
   321 #   busy record for temperature set-point
       
   322 ###########################################
       
   323 record(calcout, "$(NAME):GO-1")
       
   324 {
       
   325     field(DESC, "")
       
   326     field(INPA, "$(NAME):TEMP.SIMM")
       
   327     field(CALC, "A=1?0:1")
       
   328 
       
   329     field(OUT,  "$(NAME):GO-2 PP MS")
       
   330     field(OOPT, "When Non-zero")
       
   331 }
       
   332 
       
   333 record(bo,  "$(NAME):GO-2")
       
   334 {
       
   335     field(DESC, "")
       
   336     field(DTYP, "Soft Channel")
       
   337     field(OMSL, "supervisory")
       
   338     field(VAL,  "1")
       
   339     field(OUT,  "$(NAME):BUSY.VAL PP MS")
       
   340                                 # update TEMP-STAT, not waiting for next readback
       
   341     field(FLNK, "$(NAME):RNG-CALC")
       
   342 }
       
   343 
       
   344 record(busy,    "$(NAME):BUSY")
       
   345 {
       
   346 }
       
   347 
       
   348 ###########################################
       
   349 #   Temperature Status Monitor
       
   350 ###########################################
       
   351 
       
   352 record(longout, "$(NAME):SETTL-PRD")
       
   353 {
       
   354     field(DESC, "settling time")
       
   355     field(EGU,  "s")
       
   356     field(VAL,  "120")
       
   357     field(FLNK, "$(NAME):TEMP-AVG")
       
   358 }
       
   359 
       
   360 record(ao,      "$(NAME):TOLERANCE")
       
   361 {
       
   362     field(DESC, "tolerance band width")
       
   363     field(EGU,  "$(UNIT)")
       
   364     field(VAL,  "1")
       
   365     field(PREC, "2")
       
   366 }
       
   367 
       
   368 record(sub, "$(NAME):TEMP-AVG")
       
   369 {
       
   370     field(DESC, "temperature average")
       
   371     field(INPA, "$(NAME):SETTL-PRD.VAL")
       
   372     field(INPB, "$(NAME):TEMP_RBV.VAL")
       
   373     field(INPD, "0") # Continuous Mode
       
   374     field(INAM, "initSubAve")
       
   375     field(SNAM, "SubAve")
       
   376     field(PREC, "2")
       
   377     field(SCAN, "Passive")
       
   378 
       
   379     field(FLNK, "$(NAME):RNG-CALC")
       
   380 }
       
   381 
       
   382 record(calcout, "$(NAME):RNG-CALC")
       
   383 {
       
   384     field(DESC, "temperature status calc")
       
   385     field(INPA, "$(NAME):TEMP-AVG.VAL")
       
   386     field(INPB, "$(NAME):TEMP.VAL")
       
   387     field(INPC, "$(NAME):TOLERANCE.VAL")
       
   388     field(INPD, "$(NAME):TEMP_RBV.VAL")
       
   389 
       
   390     field(CALC, "(ABS(A-B)<=C)&&(ABS(D-B)<=C)?0:1")
       
   391     field(DOPT, "Use CALC")
       
   392     field(OOPT, "When Zero")
       
   393 
       
   394     field(OUT,  "$(NAME):BUSY.VAL PP MS")
       
   395     field(FLNK, "$(NAME):TEMP-STAT.VAL PP MS")
       
   396 
       
   397     field(SCAN, "Passive")
       
   398 }
       
   399 
       
   400 record(mbbo,    "$(NAME):TEMP-STAT")
       
   401 {
       
   402     field(DESC, "temperature status")
       
   403 
       
   404     field(DOL,  "$(NAME):RNG-CALC MS")
       
   405     field(OMSL, "closed_loop")
       
   406  
       
   407     field(ZRVL, "0")
       
   408     field(ONVL, "1")
       
   409 
       
   410     field(ZRST, "Inside Range")
       
   411     field(ONST, "Out of Range")
       
   412 
       
   413     field(ZRSV,  "NO_ALARM")
       
   414     field(ONSV,  "MAJOR")
       
   415 
       
   416     field(SCAN, "Passive")
       
   417 }
       
   418 ###########################################
       
   419 #   For Debug Use
       
   420 ###########################################
       
   421 record(stringout,    "$(NAME):QUERY")
       
   422 {
       
   423     field(DESC, "debug - query")
       
   424     field(DTYP, "stream")
       
   425     field(OUT,  "@$(PTCOLS) QUERY($(NAME):RECV.VAL) $(PORT)")
       
   426     field(DISV, "0")
       
   427     field(SDIS, "$(NAME):WATCHDOG.VAL")
       
   428 }
       
   429 record(stringout,    "$(NAME):RECV")
       
   430 {
       
   431     field(DESC, "debug - received message")
       
   432     field(DTYP, "Soft Channel")
       
   433 }
       
   434 
       
   435 ###########################################
       
   436 #  retrieve temp set-point when connected
       
   437 ###########################################
       
   438 record(calcout, "$(NAME):TRIG-STAT")
       
   439 {   
       
   440     field(DESC, "trigger TRIG-SP")
       
   441     field(INPA, "$(NAME):CONN-STAT.VAL CPP MS")
       
   442     field(CALC, "A=1?1:0")
       
   443     field(OUT,  "$(NAME):TEMP-SIMM1.VAL PP MS")
       
   444     field(OOPT, "Transition To Non-zero")
       
   445 }
       
   446 record(bo,      "$(NAME):TEMP-SIMM1")
       
   447 {
       
   448     field(DESC, "set TEMP in simulation")
       
   449     field(OUT,  "$(NAME):TEMP.SIMM")
       
   450     field(FLNK, "$(NAME):SEQ")
       
   451 }
       
   452 
       
   453 record(sseq,    "$(NAME):SEQ")
       
   454 {
       
   455     field(SELM, "All")
       
   456 
       
   457     field(WAIT1,"Wait")
       
   458     field(DO1,  "1")
       
   459     field(LNK1, "$(NAME):TEMP-SP.PROC CA")
       
   460 
       
   461     field(DOL2,  "$(NAME):TEMP-SP.VAL")
       
   462     field(LNK2,  "$(NAME):TEMP.VAL PP")
       
   463  
       
   464     field(FLNK, "$(NAME):TEMP-SIMM2")
       
   465 }
       
   466 
       
   467 record(bo,      "$(NAME):TEMP-SIMM2")
       
   468 {
       
   469     field(DESC, "reset TEMP out simulation")
       
   470     field(DOL,  "0")
       
   471     field(OUT,  "$(NAME):TEMP.SIMM")
       
   472     field(OMSL, "closed_loop")
       
   473 }