IOCINFRAApp/Db/Bronkhorst.db
changeset 0 77d8eafe2a07
equal deleted inserted replaced
-1:000000000000 0:77d8eafe2a07
       
     1 #################################################################################
       
     2 #
       
     3 ################################################################################
       
     4 record(stringin, "$(IOC):$(NAME)-NAME")
       
     5 {
       
     6 	field(DESC, "Name of the device")
       
     7 	field(VAL, "$(NAME) Device")
       
     8 	field(PINI, "YES")
       
     9 }
       
    10 
       
    11 record(stringin, "$(IOC):$(NAME)-IDN")
       
    12 {
       
    13 	field(DESC, "Name of the device")
       
    14 	field(INP, "@devBronkhorst.proto identity $(PORT)")
       
    15 	field(PINI, "YES")
       
    16 }
       
    17 
       
    18 ################################################################################
       
    19 ################################################################################
       
    20 #INTEGER PARAMETERS
       
    21 ################################################################################
       
    22 ################################################################################
       
    23 ################################################################################
       
    24 # Read; Measure will return a value between -23593 and 41942
       
    25 # Record $(IOC):$(NAME)-MEASURE recomputes this value to percentages. NOTE that percentage
       
    26 # can be larger than 100% (max value: 131.07%) and even negative for bipolar
       
    27 # ADC mode. (min value: -73.73%)
       
    28 ################################################################################
       
    29 record(ai, "$(IOC):$(NAME)-GET-MEASURE_")
       
    30 {
       
    31 	field(DESC, "Read measure")
       
    32 	field(SCAN, "$(SCAN2)")
       
    33 	field(DTYP, "stream")
       
    34 	field(PREC, "3")
       
    35 	field(INP, "@devBronkhorst.proto readInt(01,20) $(PORT)")
       
    36 	field(FLNK, "$(IOC):$(NAME)-GET-MEASURE")
       
    37 }
       
    38 
       
    39 record(calc, "$(IOC):$(NAME)-GET-MEASURE")
       
    40 {
       
    41 	field(DESC, "Measure to percentage")
       
    42 	field(INPA, "$(IOC):$(NAME)-GET-MEASURE_")
       
    43 	field(EGU, "%")
       
    44 	field(PREC, "3")
       
    45 	field(CALC, "A*100/32000")
       
    46 	field(FLNK, "$(IOC):$(NAME)-COMM-STATUS")
       
    47 }
       
    48 
       
    49 
       
    50 ################################################################################
       
    51 # Read; $(IOC):$(NAME)-GET-SETPOINT_ fetches the value from the device, 
       
    52 # $(IOC):$(NAME)-GET-SETPOINT recalculates the value to percentages.
       
    53 #
       
    54 # $(IOC):$(NAME)-GET-SETPOINT_ is scanned periodically, because setpoint value can be 
       
    55 # changed on ALARM or when the Counter reaches it's limit - this is configured
       
    56 # by the user
       
    57 ################################################################################
       
    58 record(ai, "$(IOC):$(NAME)-GET-SETPOINT_")
       
    59 {
       
    60 	field(DESC, "Read setpoint in raw [0,32000]")
       
    61 	field(DTYP, "stream")
       
    62 	field(SCAN, "$(SCAN2)")
       
    63 	field(INP, "@devBronkhorst.proto readInt(01,21) $(PORT)")
       
    64 	field(PREC, "1")
       
    65 	field(PINI, "YES")
       
    66 	field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT")
       
    67 }
       
    68 
       
    69 record(calc, "$(IOC):$(NAME)-GET-SETPOINT")
       
    70 {
       
    71 	field(DESC, "Setpoint to percentage")
       
    72 	field(INPA, "$(IOC):$(NAME)-GET-SETPOINT_")
       
    73 	field(EGU, "%")
       
    74 	field(PREC, "1")
       
    75 	field(CALC, "A*100/32000")
       
    76 }
       
    77 
       
    78 ################################################################################
       
    79 # Write; User writes the flow percentage to $(IOC):$(NAME)-SET-SETPOINT.
       
    80 # $(IOC):$(NAME)-SET-SETPOINT_ recalculates the percentage to interval [0, 32000] and 
       
    81 # writes the new setpoint to the device
       
    82 ################################################################################
       
    83 record(ao, "$(IOC):$(NAME)-SET-SETPOINT")
       
    84 {
       
    85 	field(DESC, "Setpoint in percentage")
       
    86 	field(EGU, "%")
       
    87 	field(PREC, "1")
       
    88 	field(FLNK, "$(IOC):$(NAME)-SET-SETPOINT_")
       
    89 }
       
    90 
       
    91 record(calcout, "$(IOC):$(NAME)-SET-SETPOINT_")
       
    92 {
       
    93 	field(DESC, "Write setpoint in raw [0,32000]")
       
    94 	field(INPA, "$(IOC):$(NAME)-SET-SETPOINT")
       
    95 	field(PREC, "1")
       
    96 	field(DTYP, "stream")
       
    97 	field(CALC, "A*32000/100")
       
    98 	field(OUT, "@devBronkhorst.proto writeInt(01,21) $(PORT)")
       
    99 	field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT_")
       
   100 }
       
   101 
       
   102 record(calcout, "$(IOC):$(NAME)-SET-SP-INIT_"){
       
   103 	field(INPA, "$(IOC):$(NAME)-SET-SETPOINT_")
       
   104 	field(CALC, "A*100/32000")
       
   105 	field(OUT, "$(IOC):$(NAME)-SET-SETPOINT")
       
   106 	field(PINI, "YES")
       
   107 	field(FLNK, "$(IOC):$(NAME)-SET-SETPOINT")
       
   108 
       
   109 }
       
   110 
       
   111 ################################################################################
       
   112 # Read/Write: Setpoint is ramped from 0% to 100% in slope*0.1 seconds
       
   113 ################################################################################
       
   114 record(ai, "$(IOC):$(NAME)-GET-SETPOINT-SLOPE")
       
   115 {
       
   116 	field(DESC, "Read setpoint slope")
       
   117 	field(DTYP, "stream")
       
   118 	field(SCAN, "$(SCAN1)")
       
   119 	field(PINI, "YES")
       
   120 	field(INP, "@devBronkhorst.proto readInt(01,22) $(PORT)")
       
   121 }
       
   122 
       
   123 record(ao, "$(IOC):$(NAME)-SET-SETPOINT-SLOPE")
       
   124 {
       
   125 	field(DESC, "Write setpoint slope")
       
   126 	field(DTYP, "stream")
       
   127 	field(SCAN, "$(SCAN1)")
       
   128 	field(OUT, "@devBronkhorst.proto writeInt(01,22) $(PORT)")
       
   129 	field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT-SLOPE")
       
   130 }
       
   131 
       
   132 ################################################################################
       
   133 # Read/Write: Get control mode from device. One of $(IOC):$(NAME)-CTRL-MODE-1/2_ will
       
   134 # be in illegal value state. The GUI screen will show the one which is not in 
       
   135 # illegal value state by checking the severity of the state
       
   136 ################################################################################
       
   137 record(ai, "$(IOC):$(NAME)-GET-CTRL-MODE_")
       
   138 {
       
   139 	field(DESC,"")
       
   140 	field(DTYP, "stream")
       
   141 	field(SCAN, "$(SCAN1)")
       
   142 	field(INP, "@devBronkhorst.proto readChar(01,04) $(PORT)")
       
   143 	field(PINI, "YES")
       
   144 	field(FLNK, "$(IOC):$(NAME)-CTRL-MODE-1_")
       
   145 }
       
   146 
       
   147 record(mbbi, "$(IOC):$(NAME)-CTRL-MODE-1_")
       
   148 {
       
   149 	field(DESC, "Control modes 0-15")
       
   150 	field(DTYP, "Raw Soft Channel")
       
   151 	field(INP, "$(IOC):$(NAME)-GET-CTRL-MODE_")
       
   152 	field(UNSV, "MAJOR")
       
   153 	field(ZRVL, "0")
       
   154 	field(ZRST, "BUS/RS232")
       
   155 	field(ONVL, "1")
       
   156 	field(ONST, "Analog input")
       
   157 	field(TWVL, "2")
       
   158 	field(TWST, "FLOWBUS*FLOWBUS")
       
   159 	field(THVL, "3")
       
   160 	field(THST, "Close valve")
       
   161 	field(FRVL, "4")
       
   162 	field(FRST, "Controller idle")
       
   163 	field(FVVL, "5")
       
   164 	field(FVST, "Testmode")
       
   165 	field(SXVL, "6")
       
   166 	field(SXST, "Tuning mode")
       
   167 	field(SVVL, "7")
       
   168 	field(SVST, "Setpoint=100%")
       
   169 	field(EIVL, "8")
       
   170 	field(EIST, "Purge valve")
       
   171 	field(NIVL, "9")
       
   172 	field(NIST, "Calibration mode")
       
   173 	field(TEVL, "10")
       
   174 	field(TEST, "analogIn*FLOWBUS")
       
   175 	field(ELVL, "11")
       
   176 	field(ELST, "Keyboard||FLOWBUS")
       
   177 	field(TVVL, "12")
       
   178 	field(TVST, "Setpoint=0%")
       
   179 	field(TTVL, "13")
       
   180 	field(TTST, "FLOWBUS*analogIn")
       
   181 	field(FTVL, "14")
       
   182 	field(FTST, "Range select mode")
       
   183 	field(FFVL, "15")
       
   184 	field(FFST, "Manual start, auto end")
       
   185 	field(FLNK, "$(IOC):$(NAME)-CTRL-MODE-2_")
       
   186 }
       
   187 
       
   188 record(mbbi, "$(IOC):$(NAME)-CTRL-MODE-2_")
       
   189 {
       
   190 	field(DESC, "Control modes 0-15")
       
   191 	field(DTYP, "Raw Soft Channel")
       
   192 	field(INP, "$(IOC):$(NAME)-GET-CTRL-MODE_")
       
   193 	field(UNSV, "MAJOR")
       
   194 	field(ZRSV, "MAJOR")
       
   195 	field(ONVL, "16")
       
   196 	field(ONST, "Auto start, manual end")
       
   197 	field(TWVL, "17")
       
   198 	field(TWST, "Auto start/end")
       
   199 	field(THVL, "18")
       
   200 	field(THST, "RS232 setpoint")
       
   201 	field(FRVL, "19")
       
   202 	field(FRST, "RS232 broadcast")
       
   203 	field(FVVL, "20")
       
   204 	field(FVST, "Valve stearing")
       
   205 	field(SXVL, "21")
       
   206 	field(SXST, "Analog valve stearing")
       
   207 	field(SVVL, "22")
       
   208 	field(SVST, "Valve safe state")
       
   209 }
       
   210 
       
   211 ################################################################################
       
   212 # Read/Write: Set control mode. GUI screen will contain strings representing
       
   213 # the values on the interval [0, 22]. These values correspond to states in mbbi 
       
   214 # records $(IOC):$(NAME)-CTRL-MODE-1,2_
       
   215 ################################################################################
       
   216 record(ao, "$(IOC):$(NAME)-SET-CTRL-MODE")
       
   217 {
       
   218 	field(DESC,"Set the control mode")
       
   219 	field(DTYP, "stream")	
       
   220 	field(OUT, "@devBronkhorst.proto writeChar(01,04) $(PORT)")
       
   221 }
       
   222 
       
   223 
       
   224 ################################################################################
       
   225 # Read/Write: Get/Set fluid number.
       
   226 ################################################################################
       
   227 record(ai, "$(IOC):$(NAME)-GET-FLUID-NUM")
       
   228 {
       
   229 	field(DESC, "Read fluid number")
       
   230 	field(DTYP, "stream")
       
   231 	field(SCAN, "$(SCAN1)")
       
   232 	field(PINI, "YES")
       
   233 	field(INP, "@devBronkhorst.proto readChar(01,10) $(PORT)")
       
   234 
       
   235 }
       
   236 
       
   237 record(ao, "$(IOC):$(NAME)-SET-FLUID-NUM")
       
   238 {
       
   239 	field(DESC, "Set fluid number")
       
   240 	field(DTYP, "stream")
       
   241 	field(SCAN, "$(SCAN1)")
       
   242 	field(OUT, "@devBronkhorst.proto writeChar(01,10) $(PORT)")
       
   243 }
       
   244 
       
   245 ################################################################################
       
   246 # Read: Read sensor type
       
   247 ################################################################################
       
   248 record(mbbi, "$(IOC):$(NAME)-GET-SENSOR-TYPE")
       
   249 {
       
   250 	field(DESC,"Read sensor type")
       
   251 	field(DTYP, "stream")
       
   252 	field(SCAN, "$(SCAN1)")	
       
   253 	field(INP, "@devBronkhorst.proto readChar(01,0E) $(PORT)")
       
   254 	field(ZRVL, "0")
       
   255 	field(ONVL, "1")
       
   256 	field(TWVL, "2")
       
   257 	field(THVL, "3")
       
   258 	field(FRVL, "4")
       
   259 	field(FVVL, "128")
       
   260 	field(SXVL, "129")
       
   261 	field(SVVL, "130")
       
   262 	field(EIVL, "131")
       
   263 	field(NIVL, "132")
       
   264 	field(ZRST, "Pressure controller")
       
   265 	field(ONST, "Liquid volume controller")
       
   266 	field(TWST, "Liquid/gas controller")
       
   267 	field(THST, "Gas volume controller")
       
   268 	field(FRST, "Other controller")
       
   269 	field(FVST, "Pressure sensor")
       
   270 	field(SXST, "Liquid volume sensor")
       
   271 	field(SVST, "Liquid/gas mass sensor")
       
   272 	field(EIST, "Gas volume sensor")
       
   273 	field(NIST, "Other sensor")
       
   274 	field(PINI, "YES")
       
   275 }
       
   276 
       
   277 
       
   278 ################################################################################
       
   279 # Read: Get readout unit
       
   280 ################################################################################
       
   281 record(mbbi, "$(IOC):$(NAME)-GET-CAP-UNIT-IDX")
       
   282 {
       
   283 	field(DESC, "Capacity unit index")
       
   284 	field(DTYP, "stream")
       
   285 	field(SCAN, "$(SCAN1)")
       
   286 	field(INP, "@devBronkhorst.proto readChar(01,0F) $(PORT)")
       
   287 	field(ZRST, "ln/min")
       
   288 	field(ONST, "mln/h")
       
   289 	field(TWST, "mln/min")
       
   290 	field(THST, "ln/h")
       
   291 	field(FRST, "m3n/h")
       
   292 	field(FFST, "mls/min")
       
   293 	field(SXST, "mls/h")
       
   294 	field(SVST, "ls/min")
       
   295 	field(EIST, "ls/h")
       
   296 	field(NIST, "m3s/h")
       
   297 	field(PINI, "YES")
       
   298 }
       
   299 
       
   300 ################################################################################
       
   301 # Read: Valve will go into the safe state if buss communication is lost and
       
   302 # control mode is in BUS/RS232 state or if initreset = 73 or if control mode
       
   303 # is 22.
       
   304 ################################################################################
       
   305 record(mbbi, "$(IOC):$(NAME)-GET-VALVE-STATE")
       
   306 {
       
   307 	field(DESC, "Capacity unit index")
       
   308 	field(DTYP, "stream")
       
   309 	field(SCAN, "$(SCAN1)")
       
   310 	field(INP, "@devBronkhorst.proto readChar(72,1A) $(PORT)")
       
   311 	field(ZRST, "Deactivate")
       
   312 	field(ONST, "Activate")
       
   313 	field(TWST, "Close")
       
   314 	field(THST, "Open")
       
   315 	field(FRST, "Current position")
       
   316 	field(FFST, "Safe Value")
       
   317 	field(PINI, "YES")
       
   318 }
       
   319 
       
   320 record(mbbo, "$(IOC):$(NAME)-SET-VALVE-STATE")
       
   321 {
       
   322 	field(DESC, "Capacity unit index")
       
   323 	field(DTYP, "stream")
       
   324 	field(SCAN, "$(SCAN1)")
       
   325 	field(OUT, "@devBronkhorst.proto writeChar(72,1A) $(PORT)")
       
   326 	field(ZRST, "Deactivate")
       
   327 	field(ONST, "Activate")
       
   328 	field(TWST, "Close")
       
   329 	field(THST, "Open")
       
   330 	field(FRST, "Current position")
       
   331 	field(FFST, "Safe Value")
       
   332 	field(FLNK, "$(IOC):$(NAME)-GET-VALVE-STATE")
       
   333 }
       
   334 
       
   335 ################################################################################
       
   336 # Read: Alarm info. mbbiDirect record checks which flags are set and then 
       
   337 # starts (forward links) the process chain of bi records representing the value
       
   338 # of each alarm state. 
       
   339 ################################################################################
       
   340 record(mbbiDirect, "$(IOC):$(NAME)-GET-ALARM-INFO")
       
   341 {
       
   342 	field(DESC, "Read alarm flags")
       
   343 	field(DTYP, "stream")
       
   344 	field(INP, "@devBronkhorst.proto readChar(01,14) $(PORT)")
       
   345 	field(SCAN, "$(SCAN2)")
       
   346 	field(PINI, "YES")
       
   347 	field(FLNK, "$(IOC):$(NAME)-ERROR-MSG-NUM")
       
   348 }
       
   349 
       
   350 ################################################################################
       
   351 # Read: Alarm mode
       
   352 ################################################################################
       
   353 record(mbbi, "$(IOC):$(NAME)-GET-ALARM-MODE")
       
   354 {
       
   355 	field(DESC, "Read alarm mode")
       
   356 	field(DTYP, "stream")
       
   357 	field(INP, "@devBronkhorst.proto readChar(61,03) $(PORT)")
       
   358 	field(SCAN, "$(SCAN1)")
       
   359 	field(ZRST, "Off")
       
   360 	field(ONST, "Absolute Limits")
       
   361 	field(TWST, "Setpoint Limits")
       
   362 	field(THST, "Power up")
       
   363 	field(PINI, "YES")
       
   364 }
       
   365 
       
   366 ################################################################################
       
   367 # Write; Set Alarm mode
       
   368 ################################################################################
       
   369 record(mbbo, "$(IOC):$(NAME)-SET-ALARM-MODE")
       
   370 {
       
   371 	field(DESC, "Set alarm mode")
       
   372 	field(DTYP, "stream")
       
   373 	field(OUT, "@devBronkhorst.proto writeChar(61,03) $(PORT)")
       
   374 	field(SCAN, "$(SCAN1)")
       
   375 	field(ZRST, "Off")
       
   376 	field(ONST, "Absolute Limits")
       
   377 	field(TWST, "Setpoint Limits")
       
   378 	field(THST, "Power up")
       
   379 	field(FLNK, "$(IOC):$(NAME)-GET-ALARM-MODE")
       
   380 }
       
   381 ################################################################################
       
   382 # Read-Write; Get/Set maximum alarm limit. User specifies percentage which is 
       
   383 # converted to interval [0, 32000]
       
   384 ################################################################################
       
   385 record(calc, "$(IOC):$(NAME)-GET-ALM-MAX-LIM")
       
   386 {
       
   387 	field(DESC, "Get alarm maximum limit in %")
       
   388 	field(INPA, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
       
   389 	field(SCAN, "$(SCAN1)")
       
   390 	field(PREC, "1")
       
   391 	field(CALC, "A*100/32000")
       
   392 	field(EGU, "%")
       
   393 }
       
   394 
       
   395 record(ai, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
       
   396 {
       
   397 	field(DESC, "Get alarm maximum limit in raw")
       
   398 	field(DTYP, "stream")
       
   399 	field(INP, "@devBronkhorst.proto readInt(61,21) $(PORT)")
       
   400 	field(SCAN, "$(SCAN1)")
       
   401 	field(PINI, "YES")
       
   402 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-MAX-LIM")
       
   403 }
       
   404 
       
   405 record(ai, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
       
   406 {
       
   407 	field(DESC, "Set alarm maximum limit in %")
       
   408 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-MAX-LIM_")
       
   409 	field(EGU, "%")
       
   410 	field(PREC, "1")
       
   411 }
       
   412 
       
   413 record(calcout, "$(IOC):$(NAME)-SET-ALM-MAX-LIM_")
       
   414 {
       
   415 	field(DESC, "Set alarm maximum limit in raw")
       
   416 	field(DTYP, "stream")
       
   417 	field(INPA, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
       
   418 	field(CALC, "A*32000/100")
       
   419 	field(OUT, "@devBronkhorst.proto writeInt(61,21) $(PORT)")
       
   420 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
       
   421 }
       
   422 
       
   423 record(calcout, "$(IOC):$(NAME)-SET-ALM-MAX-LIM-INIT_"){
       
   424 	field(INPA, "$(IOC):$(NAME)-SET-ALM-MAX-LIMT_")
       
   425 	field(CALC, "A*100/32000")
       
   426 	field(OUT, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
       
   427 	field(PINI, "YES")
       
   428 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
       
   429 
       
   430 }
       
   431 
       
   432 ################################################################################
       
   433 # Read-Write; Get/Set minimum alarm limit. User specifies percentage which is 
       
   434 # converted to interval [0, 32000]
       
   435 ################################################################################
       
   436 record(calc, "$(IOC):$(NAME)-GET-ALM-MIN-LIM")
       
   437 {
       
   438 	field(DESC, "Get alarm minimum limit in %")
       
   439 	field(INPA, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
       
   440 	field(SCAN, "$(SCAN1)")
       
   441 	field(PREC, "1")
       
   442 	field(CALC, "A*100/32000")
       
   443 }
       
   444 
       
   445 record(ai, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
       
   446 {
       
   447 	field(DESC, "Get alarm minimum limit in raw")
       
   448 	field(DTYP, "stream")
       
   449 	field(INP, "@devBronkhorst.proto readInt(61,22) $(PORT)")
       
   450 	field(SCAN, "$(SCAN1)")
       
   451 	field(PINI, "YES")
       
   452 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-MIN-LIM")
       
   453 }
       
   454 
       
   455 record(ai, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
       
   456 {
       
   457 	field(DESC, "Set alarm minimum limit in %")
       
   458 	field(EGU, "%")
       
   459 	field(PREC, "1")
       
   460 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-MIN-LIM_")
       
   461 }
       
   462 
       
   463 record(calcout, "$(IOC):$(NAME)-SET-ALM-MIN-LIM_")
       
   464 {
       
   465 	field(DESC, "Set alarm minimum limit in raw")
       
   466 	field(DTYP, "stream")
       
   467 	field(INPA, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
       
   468 	field(CALC, "A*32000/100")
       
   469 	field(OUT, "@devBronkhorst.proto writeInt(61,22) $(PORT)")
       
   470 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
       
   471 }
       
   472 
       
   473 record(calcout, "$(IOC):$(NAME)-SET-ALM-MIN-LIM-INIT_"){
       
   474 	field(INPA, "$(IOC):$(NAME)-SET-ALM-MIN-LIMT_")
       
   475 	field(CALC, "A*100/32000")
       
   476 	field(OUT, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
       
   477 	field(PINI, "YES")
       
   478 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
       
   479 
       
   480 }
       
   481 
       
   482 
       
   483 ################################################################################
       
   484 # Read-Write; Get/Set alarm setpoint mode. If device goes into an alarm state,
       
   485 # a new setpoint (stored in the record $(IOC):$(NAME)-GET/SET-ALM-NEW-SP) will be set, 
       
   486 # but only if device ($(IOC):$(NAME)-GET/SET-ALM-SP-MODE) is in state 1.
       
   487 ################################################################################
       
   488 record(bi, "$(IOC):$(NAME)-GET-ALM-SP-MODE")
       
   489 {
       
   490 	field(DESC, "Get alarm setpoint mode")
       
   491 	field(DTYP, "stream")
       
   492 	field(SCAN, "$(SCAN1)")
       
   493 	field(ZNAM, "NO")
       
   494 	field(ONAM, "YES")
       
   495 	field(PINI, "YES")
       
   496 	field(INP, "@devBronkhorst.proto readChar(61,05) $(PORT)")
       
   497 }
       
   498 
       
   499 record(bo, "$(IOC):$(NAME)-SET-ALM-SP-MODE")
       
   500 {
       
   501 	field(DESC, "Set alarm setpoint mode")
       
   502 	field(DTYP, "stream")
       
   503 	field(SCAN, "$(SCAN1)")
       
   504 	field(ZNAM, "NO")
       
   505 	field(ONAM, "YES")
       
   506 	field(OUT, "@devBronkhorst.proto writeChar(61,05) $(PORT)")
       
   507 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-SP-MODE")
       
   508 }
       
   509 
       
   510 record(ai, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
       
   511 {
       
   512 	field(DESC, "Read alarm setpoint")
       
   513 	field(DTYP, "stream")
       
   514 	field(INP, "@devBronkhorst.proto readInt(61,26) $(PORT)")
       
   515 	field(PINI, "YES")
       
   516 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-NEW-SP")
       
   517 }
       
   518 
       
   519 record(calc, "$(IOC):$(NAME)-GET-ALM-NEW-SP")
       
   520 {
       
   521 	field(DESC, "Alarm setpoint to percentage")
       
   522 	field(INPA, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
       
   523 	field(EGU, "%")
       
   524 	field(PREC, "1")
       
   525 	field(CALC, "A*100/32000")
       
   526 }
       
   527 
       
   528 record(ao, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
       
   529 {
       
   530 	field(DESC, "Alarm setpoint in percentage")
       
   531 	field(EGU, "%")
       
   532 	field(PREC, "1")
       
   533 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
       
   534 }
       
   535 
       
   536 record(calcout, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
       
   537 {
       
   538 	field(DESC, "Write alarm setpoint")
       
   539 	field(INPA, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
       
   540 	field(DTYP, "stream")
       
   541 	field(CALC, "A*32000/100")
       
   542 	field(OUT, "@devBronkhorst.proto writeInt(61,26) $(PORT)")
       
   543 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
       
   544 }
       
   545 
       
   546 record(calcout, "$(IOC):$(NAME)-SET-ALM-NEW-SP-INIT_"){
       
   547 	field(INPA, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
       
   548 	field(CALC, "A*100/32000")
       
   549 	field(OUT, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
       
   550 	field(PINI, "YES")
       
   551 	field(FLNK, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
       
   552 
       
   553 }
       
   554 
       
   555 
       
   556 ################################################################################
       
   557 # Read-Write; Alarm delay time seconds. Alarm action will be delayed when alarm
       
   558 # limit has been exceeded. Automatic reset will be delayed when sensor signal
       
   559 # reaches safe level again.
       
   560 ################################################################################
       
   561 record(ai, "$(IOC):$(NAME)-GET-ALM-DELAY")
       
   562 {
       
   563 	field(DESC, "Get alarm delay")
       
   564 	field(DTYP, "stream")
       
   565 	field(SCAN, "$(SCAN1)")
       
   566 	field(EGU, "s")
       
   567 	field(PINI, "YES")
       
   568 	field(INP, "@devBronkhorst.proto readChar(61,07) $(PORT)")
       
   569 }
       
   570 
       
   571 record(ao, "$(IOC):$(NAME)-SET-ALM-DELAY")
       
   572 {
       
   573 	field(DESC, "Get alarm delay")
       
   574 	field(DTYP, "stream")
       
   575 	field(EGU, "s")
       
   576 	field(OUT, "@devBronkhorst.proto writeChar(61,07) $(PORT)")
       
   577 	field(FLNK, "$(IOC):$(NAME)-GET-ALM-DELAY")
       
   578 }
       
   579 
       
   580 ################################################################################
       
   581 # Read-Write; Enable reset alarm for different reset triggers.
       
   582 ################################################################################
       
   583 record(mbbi, "$(IOC):$(NAME)-GET-RESET-ALM-MODE")
       
   584 {
       
   585 	field(DESC, "Get reset alarm mode")
       
   586 	field(DTYP, "stream")
       
   587 	field(SCAN, "$(SCAN1)")
       
   588 	field(INP, "@devBronkhorst.proto readChar(61,09) $(PORT)")
       
   589 	field(ZRST, "OFF")
       
   590 	field(ONST, "Switch")
       
   591 	field(TWST, "External")
       
   592 	field(THST, "External,Switch")
       
   593 	field(FRST, "RS232")
       
   594 	field(FVST, "RS232,Switch")
       
   595 	field(SXST, "RS232,Ext")
       
   596 	field(SVST, "RS232,Ext,Switch")
       
   597 	field(EIST, "Auto")
       
   598 	field(NIST, "Auto,Switch")
       
   599 	field(TEST, "Auto,Ext")
       
   600 	field(ELST, "Auto,Ext,Switch")
       
   601 	field(TVST, "Auto,RS232")
       
   602 	field(TTST, "Auto,RS232,Switch")
       
   603 	field(FTST, "Auto,RS232,Ext")
       
   604 	field(FFST, "Auto,RS232,Ext,Switch")
       
   605 	#field(PINI, "YES")
       
   606 }
       
   607 
       
   608 record(mbboDirect, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
       
   609 {
       
   610 	field(DESC, "Set alarm reset mode")
       
   611 	field(DTYP, "stream")
       
   612 	field(SCAN, "$(SCAN1)")
       
   613 	field(B0, "1")
       
   614 	field(B2, "1")
       
   615 	field(OUT, "@devBronkhorst.proto writeChar(61,09) $(PORT)")
       
   616 #	field(ZRST, "OFF")
       
   617 #	field(ONST, "Switch")
       
   618 #	field(TWST, "External")
       
   619 #	field(THST, "Switch,External")
       
   620 #	field(FRST, "RS232")
       
   621 #	field(FVST, "RS232,Switch")
       
   622 #	field(SXST, "RS232,Ext")
       
   623 #	field(SVST, "RS232,Ext,Switch")
       
   624 #	field(EIST, "Auto")
       
   625 #	field(NIST, "Auto,Switch")
       
   626 #	field(TEST, "Auto,Ext")
       
   627 #	field(ELST, "Auto,Ext,Switch")
       
   628 #	field(TVST, "Auto,RS232")
       
   629 #	field(TTST, "Auto,RS232,Switch")
       
   630 #	field(FTST, "Auto,RS232,Ext")
       
   631 #	field(FFST, "Auto,RS232,Ext,Switch")
       
   632 	field(PINI, "YES")
       
   633 	field(FLNK, "$(IOC):$(NAME)-GET-RESET-ALM-MODE")
       
   634 }
       
   635 
       
   636 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-SWITCH")
       
   637 {
       
   638 	field(DESC, "")
       
   639 	field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B0")
       
   640 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
       
   641 
       
   642 }
       
   643 
       
   644 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-EXT")
       
   645 {
       
   646 	field(DESC, "")
       
   647 	field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B1")
       
   648 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
       
   649 
       
   650 }
       
   651 
       
   652 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-RS232")
       
   653 {
       
   654 	field(DESC, "")
       
   655 	field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B2")
       
   656 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
       
   657 
       
   658 }
       
   659 
       
   660 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-AUTO")
       
   661 {
       
   662 	field(DESC, "")
       
   663 	field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B3")
       
   664 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
       
   665 
       
   666 }
       
   667 
       
   668 ################################################################################
       
   669 # Read-Write; Counter mode.
       
   670 ################################################################################
       
   671 record(mbbi, "$(IOC):$(NAME)-GET-CNT-MODE")
       
   672 {
       
   673 	field(DESC, "Get counter mode")
       
   674 	field(DTYP, "stream")
       
   675 	field(SCAN, "$(SCAN1)")
       
   676 	field(INP, "@devBronkhorst.proto readChar(68,08) $(PORT)")
       
   677 	field(ZRST, "Off")
       
   678 	field(ONST, "Continuous")
       
   679 	field(TWST, "To limit")
       
   680 	field(PINI, "YES")
       
   681 }
       
   682 
       
   683 record(mbbo, "$(IOC):$(NAME)-SET-CNT-MODE")
       
   684 {
       
   685 	field(DESC, "Set counter mode")
       
   686 	field(DTYP, "stream")
       
   687 	field(SCAN, "$(SCAN1)")
       
   688 	field(OUT, "@devBronkhorst.proto writeChar(68,08) $(PORT)")
       
   689 	field(ZRST, "Off")
       
   690 	field(ONST, "Continuous")
       
   691 	field(TWST, "To limit")
       
   692 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-MODE")
       
   693 }
       
   694 
       
   695 ################################################################################
       
   696 # Read-Write; Counter setpoint mode. 0 - No setpoint change when limit is 
       
   697 # reached. 1 - setpoint change when limit is reached
       
   698 ################################################################################
       
   699 record(bi, "$(IOC):$(NAME)-GET-CNT-SP-MODE")
       
   700 {
       
   701 	field(DESC, "Get counter mode")
       
   702 	field(DTYP, "stream")
       
   703 	field(SCAN, "$(SCAN1)")
       
   704 	field(INP, "@devBronkhorst.proto readChar(68,05) $(PORT)")
       
   705 	field(ZNAM, "NO")
       
   706 	field(ONAM, "YES")
       
   707 	field(PINI, "YES")
       
   708 }
       
   709 
       
   710 record(bo, "$(IOC):$(NAME)-SET-CNT-SP-MODE")
       
   711 {
       
   712 	field(DESC, "Set counter mode")
       
   713 	field(DTYP, "stream")
       
   714 	field(SCAN, "$(SCAN1)")
       
   715 	field(OUT, "@devBronkhorst.proto writeChar(68,05) $(PORT)")
       
   716 	field(ZNAM, "NO")
       
   717 	field(ONAM, "YES")
       
   718 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-SP-MODE")
       
   719 }
       
   720 
       
   721 ################################################################################
       
   722 # Read-Write; Get/Set new counter setpoint which will apply f GET-CNT-SP-MODE is
       
   723 # YES when limit is reached.
       
   724 ################################################################################
       
   725 record(ai, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
       
   726 {
       
   727 	field(DESC, "Read counter new setpoint")
       
   728 	field(DTYP, "stream")
       
   729 	field(INP, "@devBronkhorst.proto readInt(68,26) $(PORT)")
       
   730 	field(PINI, "YES")
       
   731 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-NEW-SP")
       
   732 }
       
   733 
       
   734 record(calc, "$(IOC):$(NAME)-GET-CNT-NEW-SP")
       
   735 {
       
   736 	field(DESC, "Counter new setpoint to percentage")
       
   737 	field(INPA, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
       
   738 	field(EGU, "%")
       
   739 	field(PREC, "1")
       
   740 	field(CALC, "A*100/32000")
       
   741 }
       
   742 
       
   743 record(ao, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
       
   744 {
       
   745 	field(DESC, "Counter new setpoint in percentage")
       
   746 	field(EGU, "%")
       
   747 	field(PREC, "1")
       
   748 	field(FLNK, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
       
   749 }
       
   750 
       
   751 record(calcout, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
       
   752 {
       
   753 	field(DESC, "Write counter new setpoint")
       
   754 	field(INPA, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
       
   755 	field(DTYP, "stream")
       
   756 	field(CALC, "A*32000/100")
       
   757 	field(OUT, "@devBronkhorst.proto writeInt(68,26) $(PORT)")
       
   758 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
       
   759 }
       
   760 
       
   761 record(calcout, "$(IOC):$(NAME)-SET-CNT-NEW-SP-INIT_"){
       
   762 	field(INPA, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
       
   763 	field(CALC, "A*100/32000")
       
   764 	field(OUT, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
       
   765 	field(PINI, "YES")
       
   766 	field(FLNK, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
       
   767 
       
   768 }
       
   769 
       
   770 ################################################################################
       
   771 # Read-Write; Counter unit
       
   772 ################################################################################
       
   773 record(mbbi, "$(IOC):$(NAME)-GET-CNT-UNIT")
       
   774 {
       
   775 	field(DESC, "Read counter unit")
       
   776 	field(DTYP, "stream")
       
   777 	field(INP, "@devBronkhorst.proto readChar(68,02) $(PORT)")
       
   778 	field(ZRST, "ln")
       
   779 	field(ONST, "mm3n")
       
   780 	field(TWST, "mln")
       
   781 	field(THST, "cm3n")
       
   782 	field(FRST, "uln")
       
   783 	field(FVST, "dm3n")
       
   784 	field(SXST, "m3n")
       
   785 	field(SVST, "uls")
       
   786 	field(EIST, "mm3s")
       
   787 	field(NIST, "mls")
       
   788 	field(TEST, "cm3s")
       
   789 	field(ELST, "ls")
       
   790 	field(TVST, "dm3s")
       
   791 	field(TTST, "m3s")
       
   792 #	field(PINI, "YES")
       
   793 }
       
   794 
       
   795 record(mbbo, "$(IOC):$(NAME)-SET-CNT-UNIT")
       
   796 {
       
   797 	field(DESC, "Read counter unit")
       
   798 	field(DTYP, "stream")
       
   799 	field(OUT, "@devBronkhorst.proto writeChar(68,02) $(PORT)")
       
   800 	field(VAL, "0")
       
   801 	field(ZRST, "ln")
       
   802 	field(ONST, "mm3n")
       
   803 	field(TWST, "mln")
       
   804 	field(THST, "cm3n")
       
   805 	field(FRST, "uln")
       
   806 	field(FVST, "dm3n")
       
   807 	field(SXST, "m3n")
       
   808 	field(SVST, "uls")
       
   809 	field(EIST, "mm3s")
       
   810 	field(NIST, "mls")
       
   811 	field(TEST, "cm3s")
       
   812 	field(ELST, "ls")
       
   813 	field(TVST, "dm3s")
       
   814 	field(TTST, "m3s")
       
   815 	field(PINI, "YES")
       
   816 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-UNIT")
       
   817 }
       
   818 
       
   819 
       
   820 ################################################################################
       
   821 # Read-Write; Enable reset counter for different reset triggers.
       
   822 ################################################################################
       
   823 record(mbbi, "$(IOC):$(NAME)-GET-RESET-CNT-MODE")
       
   824 {
       
   825 	field(DESC, "Get reset alarm mode")
       
   826 	field(DTYP, "stream")
       
   827 	field(SCAN, "$(SCAN1)")
       
   828 	field(INP, "@devBronkhorst.proto readChar(68,09) $(PORT)")
       
   829 	field(ZRST, "OFF")
       
   830 	field(ONST, "Switch")
       
   831 	field(TWST, "External")
       
   832 	field(THST, "Switch,External")
       
   833 	field(FRST, "RS232")
       
   834 	field(FVST, "RS232,Switch")
       
   835 	field(SXST, "RS232,Ext")
       
   836 	field(SVST, "RS232,Ext,Switch")
       
   837 	field(EIST, "Auto")
       
   838 	field(NIST, "Auto,Switch")
       
   839 	field(TEST, "Auto,Ext")
       
   840 	field(ELST, "Auto,Ext,Switch")
       
   841 	field(TVST, "Auto,RS232")
       
   842 	field(TTST, "Auto,RS232,Switch")
       
   843 	field(FTST, "Auto,RS232,Ext")
       
   844 	field(FFST, "Auto,RS232,Ext,Switch")
       
   845 }
       
   846 
       
   847 record(mbboDirect, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
       
   848 {
       
   849 	field(DESC, "Set alarm reset mode")
       
   850 	field(DTYP, "stream")
       
   851 	field(SCAN, "$(SCAN1)")
       
   852 	field(B0, "1")
       
   853 	field(B2, "1")
       
   854 	field(OUT, "@devBronkhorst.proto writeChar(68,09) $(PORT)")
       
   855 #	field(ZRST, "OFF")
       
   856 #	field(ONST, "Switch")
       
   857 #	field(TWST, "External")
       
   858 #	field(THST, "Switch,External")
       
   859 #	field(FRST, "RS232")
       
   860 #	field(FVST, "RS232,Switch")
       
   861 #	field(SXST, "RS232,Ext")
       
   862 #	field(SVST, "RS232,Ext,Switch")
       
   863 #	field(EIST, "Auto")
       
   864 #	field(NIST, "Auto,Switch")
       
   865 #	field(TEST, "Auto,Ext")
       
   866 #	field(ELST, "Auto,Ext;Switch")
       
   867 #	field(TVST, "Auto,RS232")
       
   868 #	field(TTST, "Auto,RS232,Switch")
       
   869 #	field(FTST, "Auto,RS232,Ext")
       
   870 #	field(FFST, "Auto,RS232,Ext,Switch")
       
   871 	field(PINI, "YES")
       
   872 	field(FLNK, "$(IOC):$(NAME)-GET-RESET-CNT-MODE")
       
   873 }
       
   874 
       
   875 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-SWITCH")
       
   876 {
       
   877 	field(DESC, "")
       
   878 	field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B0")
       
   879 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
       
   880 }
       
   881 
       
   882 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-EXT")
       
   883 {
       
   884 	field(DESC, "")
       
   885 	field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B1")
       
   886 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
       
   887 }
       
   888 
       
   889 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-RS232")
       
   890 {
       
   891 	field(DESC, "")
       
   892 	field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B2")
       
   893 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
       
   894 }
       
   895 
       
   896 record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-AUTO")
       
   897 {
       
   898 	field(DESC, "")
       
   899 	field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B3")
       
   900 	field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
       
   901 }
       
   902 ################################################################################
       
   903 # Write. RESET
       
   904 ################################################################################
       
   905 record(mbbo, "$(IOC):$(NAME)-RESET")
       
   906 {
       
   907 	field(DESC, "Set alarm reset mode")
       
   908 	field(DTYP, "stream")
       
   909 	field(SCAN, "$(SCAN1)")
       
   910 	field(OUT, "@devBronkhorst.proto writeChar(73,08) $(PORT)")
       
   911 	field(ZRST, "NO RESET")
       
   912 	field(ONST, "Counter")
       
   913 	field(TWST, "Alarm")
       
   914 	field(THST, "Limit counter")
       
   915 	field(FRST, "Counter reset & OFF")
       
   916 	field(FVST, "Module")
       
   917 	field(SXST, "Alarm info error")
       
   918 	field(SVST, "Alarm info warning")
       
   919 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-MODE")
       
   920 
       
   921 }
       
   922 
       
   923 ################################################################################
       
   924 ################################################################################
       
   925 #FLOAT PARAMETERS
       
   926 ################################################################################
       
   927 ################################################################################
       
   928 ################################################################################
       
   929 # Read; Counter value
       
   930 ################################################################################
       
   931 record(ai, "$(IOC):$(NAME)-GET-CNT")
       
   932 {
       
   933 	field(DESC, "Read counter")
       
   934 	field(PREC, "3")
       
   935 }
       
   936 
       
   937 record(aSub, "$(IOC):$(NAME)-GET-CNT_")
       
   938 {
       
   939 	field(DESC, "Interpret long as float")
       
   940 	field(INPA, "$(IOC):$(NAME)-GET-CNT__")
       
   941 	field(FTA, "LONG")
       
   942 	field(OUTA, "$(IOC):$(NAME)-GET-CNT")
       
   943 	field(FTVA, "FLOAT")
       
   944 	field(SNAM, "readFloat")
       
   945 	field(FLNK, "$(IOC):$(NAME)-GET-CNT")
       
   946 }
       
   947 
       
   948 record(ai, "$(IOC):$(NAME)-GET-CNT__")
       
   949 {
       
   950 	field(DESC, "Read counter as long")
       
   951 	field(DTYP, "stream")
       
   952 	field(INP, "@devBronkhorst.proto readFloat(68,41) $(PORT)")
       
   953 	field(SCAN, "$(SCAN2)")
       
   954 	field(PINI, "YES")
       
   955 	field(FLNK, "$(IOC):$(NAME)-GET-CNT_")
       
   956 }
       
   957 
       
   958 record(ao, "$(IOC):$(NAME)-SET-CNT")
       
   959 {
       
   960 	field(DESC, "Set counter")
       
   961 	field(FLNK, "$(IOC):$(NAME)-SET-CNT_")
       
   962 }
       
   963 
       
   964 record(aSub, "$(IOC):$(NAME)-SET-CNT_")
       
   965 {
       
   966 	field(DESC, "Interpret long as float")
       
   967 	field(INPA, "$(IOC):$(NAME)-SET-CNT")
       
   968 	field(FTA, "FLOAT")
       
   969 	field(OUTA, "$(IOC):$(NAME)-SET-CNT__")
       
   970 	field(FTVA, "LONG")
       
   971 	field(SNAM, "writeFloat")
       
   972 	field(FLNK, "$(IOC):$(NAME)-SET-CNT__")
       
   973 }
       
   974 
       
   975 record(ao, "$(IOC):$(NAME)-SET-CNT__")
       
   976 {
       
   977 	field(DESC, "Set counter as long")
       
   978 	field(DTYP, "stream")
       
   979 	field(OUT, "@devBronkhorst.proto writeFloat(68,41) $(PORT)")
       
   980 	field(FLNK, "$(IOC):$(NAME)-GET-CNT__")
       
   981 }
       
   982 
       
   983 record(aSub, "$(IOC):$(NAME)-SET-CNT-INIT_")
       
   984 {
       
   985 	field(DESC, "Interpret long as float")
       
   986 	field(INPA, "$(IOC):$(NAME)-SET-CNT__")
       
   987 	field(FTA, "LONG")
       
   988 	field(OUTA, "$(IOC):$(NAME)-SET-CNT")
       
   989 	field(FTVA, "FLOAT")
       
   990 	field(SNAM, "readFloat")
       
   991 	field(PINI, "YES")
       
   992 	field(FLNK, "$(IOC):$(NAME)-SET-CNT")
       
   993 }
       
   994 
       
   995 
       
   996 ################################################################################
       
   997 # Read; Counter limit
       
   998 ################################################################################
       
   999 record(ai, "$(IOC):$(NAME)-GET-CNT-LIM")
       
  1000 {
       
  1001 	field(DESC, "Read counter limit")
       
  1002 	field(PREC, "3")
       
  1003 }
       
  1004 
       
  1005 record(aSub, "$(IOC):$(NAME)-GET-CNT-LIM_")
       
  1006 {
       
  1007 	field(DESC, "Interpret long as float")
       
  1008 	field(INPA, "$(IOC):$(NAME)-GET-CNT-LIM__")
       
  1009 	field(FTA, "LONG")
       
  1010 	field(OUTA, "$(IOC):$(NAME)-GET-CNT-LIM")
       
  1011 	field(FTVA, "FLOAT")
       
  1012 	field(SNAM, "readFloat")
       
  1013 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM")
       
  1014 }
       
  1015 
       
  1016 record(ai, "$(IOC):$(NAME)-GET-CNT-LIM__")
       
  1017 {
       
  1018 	field(DESC, "Read counter limit as long")
       
  1019 	field(DTYP, "stream")
       
  1020 	field(INP, "@devBronkhorst.proto readFloat(68,43) $(PORT)")
       
  1021 	field(PINI, "YES")
       
  1022 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM_")
       
  1023 }
       
  1024 
       
  1025 record(ao, "$(IOC):$(NAME)-SET-CNT-LIM")
       
  1026 {
       
  1027 	field(DESC, "Set counter limit")
       
  1028 	field(PREC, "3")
       
  1029 	field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM_")
       
  1030 }
       
  1031 
       
  1032 record(aSub, "$(IOC):$(NAME)-SET-CNT-LIM_")
       
  1033 {
       
  1034 	field(DESC, "Interpret long as float")
       
  1035 	field(INPA, "$(IOC):$(NAME)-SET-CNT-LIM")
       
  1036 	field(FTA, "FLOAT")
       
  1037 	field(OUTA, "$(IOC):$(NAME)-SET-CNT-LIM__")
       
  1038 	field(FTVA, "LONG")
       
  1039 	field(SNAM, "writeFloat")
       
  1040 	field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM__")
       
  1041 }
       
  1042 
       
  1043 record(ao, "$(IOC):$(NAME)-SET-CNT-LIM__")
       
  1044 {
       
  1045 	field(DESC, "Set counter limit as INPlong")
       
  1046 	field(DTYP, "stream")
       
  1047 	field(OUT, "@devBronkhorst.proto writeFloat(68,43) $(PORT)")
       
  1048 	field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM__")
       
  1049 }
       
  1050 
       
  1051 record(aSub, "$(IOC):$(NAME)-SET-CNT-LIM-INIT_")
       
  1052 {
       
  1053 	field(DESC, "Interpret long as float")
       
  1054 	field(INPA, "$(IOC):$(NAME)-SET-CNT-LIM__")
       
  1055 	field(FTA, "LONG")
       
  1056 	field(OUTA, "$(IOC):$(NAME)-SET-CNT-LIM")
       
  1057 	field(FTVA, "FLOAT")
       
  1058 	field(SNAM, "readFloat")
       
  1059 	field(PINI, "YES")
       
  1060 	field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM")
       
  1061 }
       
  1062 
       
  1063 ################################################################################
       
  1064 # Read/write PID parameters
       
  1065 ################################################################################
       
  1066 record(ai, "$(IOC):$(NAME)-GET-P")
       
  1067 {
       
  1068 	field(DESC, "Read P")
       
  1069 	field(PREC, "3")
       
  1070 }
       
  1071 
       
  1072 record(aSub, "$(IOC):$(NAME)-GET-P_")
       
  1073 {
       
  1074 	field(DESC, "Interpret long as float")
       
  1075 	field(INPA, "$(IOC):$(NAME)-GET-P__")
       
  1076 	field(FTA, "LONG")
       
  1077 	field(OUTA, "$(IOC):$(NAME)-GET-P")
       
  1078 	field(FTVA, "FLOAT")
       
  1079 	field(SNAM, "readFloat")
       
  1080 	field(FLNK, "$(IOC):$(NAME)-GET-P")
       
  1081 }
       
  1082 
       
  1083 record(ai, "$(IOC):$(NAME)-GET-P__")
       
  1084 {
       
  1085 	field(DESC, "Read P as long")
       
  1086 	field(SCAN, "Passive")
       
  1087 	field(DTYP, "stream")
       
  1088 	field(INP, "@devBronkhorst.proto readFloat(72,55) $(PORT)")
       
  1089 	field(PINI, "YES")
       
  1090 	field(FLNK, "$(IOC):$(NAME)-GET-P_")
       
  1091 }
       
  1092 
       
  1093 record(ao, "$(IOC):$(NAME)-SET-P")
       
  1094 {
       
  1095 	field(DESC, "Set P")
       
  1096 	field(PREC, "3")
       
  1097 	field(FLNK, "$(IOC):$(NAME)-SET-P_")
       
  1098 }
       
  1099 
       
  1100 record(aSub, "$(IOC):$(NAME)-SET-P_")
       
  1101 {
       
  1102 	field(DESC, "Interpret long as float")
       
  1103 	field(INPA, "$(IOC):$(NAME)-SET-P")
       
  1104 	field(FTA, "FLOAT")
       
  1105 	field(OUTA, "$(IOC):$(NAME)-SET-P__")
       
  1106 	field(FTVA, "LONG")
       
  1107 	field(SNAM, "writeFloat")
       
  1108 	field(FLNK, "$(IOC):$(NAME)-SET-P__")
       
  1109 }
       
  1110 
       
  1111 record(ao, "$(IOC):$(NAME)-SET-P__")
       
  1112 {
       
  1113 	field(DESC, "Set P as INPlong")
       
  1114 	field(DTYP, "stream")
       
  1115 	field(OUT, "@devBronkhorst.proto writeFloat(72,55) $(PORT)")
       
  1116 	field(FLNK, "$(IOC):$(NAME)-GET-P__")
       
  1117 }
       
  1118 
       
  1119 record(ai, "$(IOC):$(NAME)-GET-I")
       
  1120 {
       
  1121 	field(DESC, "Read I")
       
  1122 	field(PREC, "3")
       
  1123 }
       
  1124 
       
  1125 record(aSub, "$(IOC):$(NAME)-GET-I_")
       
  1126 {
       
  1127 	field(DESC, "Interpret long as float")
       
  1128 	field(INPA, "$(IOC):$(NAME)-GET-I__")
       
  1129 	field(FTA, "LONG")
       
  1130 	field(OUTA, "$(IOC):$(NAME)-GET-I")
       
  1131 	field(FTVA, "FLOAT")
       
  1132 	field(SNAM, "readFloat")
       
  1133 	field(FLNK, "$(IOC):$(NAME)-GET-I")
       
  1134 }
       
  1135 
       
  1136 record(ai, "$(IOC):$(NAME)-GET-I__")
       
  1137 {
       
  1138 	field(DESC, "Read I as long")
       
  1139 	field(SCAN, "Passive")
       
  1140 	field(DTYP, "stream")
       
  1141 	field(INP, "@devBronkhorst.proto readFloat(72,56) $(PORT)")
       
  1142 	field(PINI, "YES")
       
  1143 	field(FLNK, "$(IOC):$(NAME)-GET-I_")
       
  1144 }
       
  1145 
       
  1146 record(ao, "$(IOC):$(NAME)-SET-I")
       
  1147 {
       
  1148 	field(DESC, "Set I")
       
  1149 	field(PREC, "3")
       
  1150 	field(FLNK, "$(IOC):$(NAME)-SET-I_")
       
  1151 }
       
  1152 
       
  1153 record(aSub, "$(IOC):$(NAME)-SET-I_")
       
  1154 {
       
  1155 	field(DESC, "Interpret long as float")
       
  1156 	field(INPA, "$(IOC):$(NAME)-SET-I")
       
  1157 	field(FTA, "FLOAT")
       
  1158 	field(OUTA, "$(IOC):$(NAME)-SET-I__")
       
  1159 	field(FTVA, "LONG")
       
  1160 	field(SNAM, "writeFloat")
       
  1161 	field(FLNK, "$(IOC):$(NAME)-SET-I__")
       
  1162 }
       
  1163 
       
  1164 record(ao, "$(IOC):$(NAME)-SET-I__")
       
  1165 {
       
  1166 	field(DESC, "Set I as INPlong")
       
  1167 	field(DTYP, "stream")
       
  1168 	field(OUT, "@devBronkhorst.proto writeFloat(72,56) $(PORT)")
       
  1169 	field(FLNK, "$(IOC):$(NAME)-GET-I__")
       
  1170 }
       
  1171 
       
  1172 record(ai, "$(IOC):$(NAME)-GET-D")
       
  1173 {
       
  1174 	field(DESC, "Read D")
       
  1175 	field(PREC, "3")
       
  1176 }
       
  1177 
       
  1178 record(aSub, "$(IOC):$(NAME)-GET-D_")
       
  1179 {
       
  1180 	field(DESC, "Interpret long as float")
       
  1181 	field(INPA, "$(IOC):$(NAME)-GET-D__")
       
  1182 	field(FTA, "LONG")
       
  1183 	field(OUTA, "$(IOC):$(NAME)-GET-D")
       
  1184 	field(FTVA, "FLOAT")
       
  1185 	field(SNAM, "readFloat")
       
  1186 	field(FLNK, "$(IOC):$(NAME)-GET-D")
       
  1187 }
       
  1188 
       
  1189 record(ai, "$(IOC):$(NAME)-GET-D__")
       
  1190 {
       
  1191 	field(DESC, "Read D as long")
       
  1192 	field(SCAN, "Passive")
       
  1193 	field(DTYP, "stream")
       
  1194 	field(INP, "@devBronkhorst.proto readFloat(72,57) $(PORT)")
       
  1195 	field(PINI, "YES")
       
  1196 	field(FLNK, "$(IOC):$(NAME)-GET-D_")
       
  1197 }
       
  1198 
       
  1199 record(ao, "$(IOC):$(NAME)-SET-D")
       
  1200 {
       
  1201 	field(DESC, "Set D")
       
  1202 	field(PREC, "3")
       
  1203 	field(FLNK, "$(IOC):$(NAME)-SET-D_")
       
  1204 }
       
  1205 
       
  1206 record(aSub, "$(IOC):$(NAME)-SET-D_")
       
  1207 {
       
  1208 	field(DESC, "Interpret long as float")
       
  1209 	field(INPA, "$(IOC):$(NAME)-SET-D")
       
  1210 	field(FTA, "FLOAT")
       
  1211 	field(OUTA, "$(IOC):$(NAME)-SET-D__")
       
  1212 	field(FTVA, "LONG")
       
  1213 	field(SNAM, "writeFloat")
       
  1214 	field(FLNK, "$(IOC):$(NAME)-SET-D__")
       
  1215 }
       
  1216 
       
  1217 record(ao, "$(IOC):$(NAME)-SET-D__")
       
  1218 {
       
  1219 	field(DESC, "Set D as INPlong")
       
  1220 	field(DTYP, "stream")
       
  1221 	field(OUT, "@devBronkhorst.proto writeFloat(72,57) $(PORT)")
       
  1222 	field(FLNK, "$(IOC):$(NAME)-GET-D__")
       
  1223 }
       
  1224 ################################################################################
       
  1225 ################################################################################
       
  1226 #STATUS PARAMETERS
       
  1227 ################################################################################
       
  1228 ################################################################################
       
  1229 ################################################################################
       
  1230 # Read:Number of error messages. 0 - no error message, 1 - at least 1 error
       
  1231 # message
       
  1232 ################################################################################
       
  1233 record(bi, "$(IOC):$(NAME)-ERROR-MSG-NUM")
       
  1234 {
       
  1235 	field(DESC, "Number of error mesgs")
       
  1236 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B0")
       
  1237 	field(SCAN, "$(SCAN1)")
       
  1238 	field(ZNAM, "No error")
       
  1239 	field(ONAM, "Error")
       
  1240 	field(FLNK, "$(IOC):$(NAME)-WARNING-MSG-NUM")
       
  1241 }
       
  1242 
       
  1243 ################################################################################
       
  1244 # Read:Number of warning messages. 0 - no warning message, 1 - at least 1 
       
  1245 # warning message
       
  1246 ################################################################################
       
  1247 record(bi, "$(IOC):$(NAME)-WARNING-MSG-NUM")
       
  1248 {
       
  1249 	field(DESC, "Number of warning msgs")
       
  1250 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B1")
       
  1251 	field(SCAN, "$(SCAN1)")
       
  1252 	field(ZNAM, "No warning")
       
  1253 	field(ONAM, "Warning")
       
  1254 	field(FLNK, "$(IOC):$(NAME)-MIN-ALARM")
       
  1255 }
       
  1256 
       
  1257 ################################################################################
       
  1258 # Read:Number of minimum alarm messages for measured signal. 
       
  1259 # 0 - no minimum alarm message, 
       
  1260 # 1 - at least 1 minumum alarm message
       
  1261 ################################################################################
       
  1262 record(bi, "$(IOC):$(NAME)-MIN-ALARM")
       
  1263 {
       
  1264 	field(DESC, "Number of min alarm msgs")
       
  1265 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B2")
       
  1266 	field(SCAN, "$(SCAN1)")
       
  1267 	field(ZNAM, "No min alarm")
       
  1268 	field(ONAM, "Min alarm")
       
  1269 	field(FLNK, "$(IOC):$(NAME)-MAX-ALARM")
       
  1270 }
       
  1271 
       
  1272 ################################################################################
       
  1273 # Read:Number of maximum alarm messages for measured signal. 
       
  1274 # 0 - no maximum alarm message, 
       
  1275 # 1 - at least 1 maximum alarm message
       
  1276 ################################################################################
       
  1277 record(bi, "$(IOC):$(NAME)-MAX-ALARM")
       
  1278 {
       
  1279 	field(DESC, "Number of max alar msgs")
       
  1280 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B3")
       
  1281 	field(SCAN, "$(SCAN1)")
       
  1282 	field(ZNAM, "No max alarm")
       
  1283 	field(ONAM, "Max alarm")
       
  1284 	field(FLNK, "$(IOC):$(NAME)-BATCH-CNT-ALARM")
       
  1285 }
       
  1286 
       
  1287 ################################################################################
       
  1288 # Read: 0 - Batch counter has not reached it's limit
       
  1289 #       1 - Batch counter has reached it's limit
       
  1290 ################################################################################
       
  1291 record(bi, "$(IOC):$(NAME)-BATCH-CNT-ALARM")
       
  1292 {
       
  1293 	field(DESC, "Batch counter alarm")
       
  1294 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B4")
       
  1295 	field(SCAN, "$(SCAN1)")
       
  1296 	field(ZNAM, "OK")
       
  1297 	field(ONAM, "Limit")
       
  1298 	field(FLNK, "$(IOC):$(NAME)-RESPONSE-ALARM")
       
  1299 }
       
  1300 
       
  1301 ################################################################################
       
  1302 # Read: 0 - Response OK (setpoint-measure within limit)
       
  1303 #       1 - Response alarm message: setpoint-measure is too high
       
  1304 ################################################################################
       
  1305 record(bi, "$(IOC):$(NAME)-RESPONSE-ALARM")
       
  1306 {
       
  1307 	field(DESC, "Response alarm")
       
  1308 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B5")
       
  1309 	field(SCAN, "$(SCAN1)")
       
  1310 	field(ZNAM, "OK")
       
  1311 	field(ONAM, "SP to high")
       
  1312 	field(FLNK, "$(IOC):$(NAME)-MASTER-OUT-ALARM")
       
  1313 }
       
  1314 
       
  1315 ################################################################################
       
  1316 # Read: 0 - Master output signal OK (or unused)
       
  1317 #       1 - Master output signal not received: check master instrument
       
  1318 ################################################################################
       
  1319 record(bi, "$(IOC):$(NAME)-MASTER-OUT-ALARM")
       
  1320 {
       
  1321 	field(DESC, "Master output alarm")
       
  1322 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B6")
       
  1323 	field(SCAN, "$(SCAN1)")
       
  1324 	field(ZNAM, "OK")
       
  1325 	field(ONAM, "Not received")
       
  1326 	field(FLNK, "$(IOC):$(NAME)-HARDWARE-ALARM")
       
  1327 }
       
  1328 
       
  1329 ################################################################################
       
  1330 # Read: 0 - Hardware OK
       
  1331 #       1 - Hardware error message: check your hardware
       
  1332 ################################################################################
       
  1333 record(bi, "$(IOC):$(NAME)-HARDWARE-ALARM")
       
  1334 {
       
  1335 	field(DESC, "Response alarm")
       
  1336 	field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B7")
       
  1337 	field(SCAN, "$(SCAN1)")
       
  1338 	field(ZNAM, "OK")
       
  1339 	field(ONAM, "Error")
       
  1340 }
       
  1341 
       
  1342 
       
  1343 ################################################################################
       
  1344 # Read: Check if communication is OK
       
  1345 ################################################################################
       
  1346 record(calc, "$(IOC):$(NAME)-COMM-STATUS")
       
  1347 {
       
  1348 	field(DESC, "Communication status")
       
  1349 	field(INPA, "$(IOC):$(NAME)-GET-MEASURE_.STAT")
       
  1350 	field(CALC, "A>0")
       
  1351 	field(FLNK, "$(IOC):$(NAME)-ALARM")
       
  1352 }
       
  1353 
       
  1354 ################################################################################
       
  1355 # Read; Sum of communication and device errors. If either device or comm. is in
       
  1356 # error, value is 1. LED on the main screen uses this to determine if everything
       
  1357 # is ok.
       
  1358 ################################################################################
       
  1359 record(calc, "$(IOC):$(NAME)-ALARM")
       
  1360 {
       
  1361 	field(DESC, "Communication status")
       
  1362 	field(INPA, "$(IOC):$(NAME)-COMM-STATUS")
       
  1363 	field(INPB, "$(IOC):$(NAME)-GET-ALARM-INFO.B0")
       
  1364 	field(INPC, "$(IOC):$(NAME)-GET-ALARM-INFO.B1")
       
  1365 	field(INPD, "$(IOC):$(NAME)-GET-ALARM-INFO.B2")
       
  1366 	field(INPE, "$(IOC):$(NAME)-GET-ALARM-INFO.B3")
       
  1367 	field(INPF, "$(IOC):$(NAME)-GET-ALARM-INFO.B5")
       
  1368 	field(INPG, "$(IOC):$(NAME)-GET-ALARM-INFO.B6")
       
  1369 	field(INPH, "$(IOC):$(NAME)-GET-ALARM-INFO.B7")
       
  1370 	field(CALC, "(A+B+C+D+E+F+G+H)>0")
       
  1371 }
       
  1372 
       
  1373 ################################################################################
       
  1374 # Lock/unlock secured parameters, e.g. PID parameters
       
  1375 ################################################################################
       
  1376 
       
  1377 record(ai, "$(IOC):$(NAME)-GET-INITRESET__")
       
  1378 {
       
  1379 	field(DESC, "Get locked/unlocked")
       
  1380 	field(DTYP, "stream")
       
  1381 	field(SCAN, "$(SCAN1)")
       
  1382 	field(INP, "@devBronkhorst.proto readChar(00,0A) $(PORT)")
       
  1383 	field(PINI, "YES")
       
  1384 	field(FLNK, "$(IOC):$(NAME)-GET-INITRESET_")
       
  1385 }
       
  1386 
       
  1387 record(calcout, "$(IOC):$(NAME)-GET-INITRESET_"){
       
  1388 	field(CALC, "(A=82)?0:(A=64)?1:2")
       
  1389 	field(INPA, "$(IOC):$(NAME)-GET-INITRESET__")
       
  1390 	field(OUT, "$(IOC):$(NAME)-GET-INITRESET")
       
  1391 	field(FLNK, "$(IOC):$(NAME)-GET-INITRESET")
       
  1392 }
       
  1393 
       
  1394 record(mbbo, "$(IOC):$(NAME)-GET-INITRESET")
       
  1395 {	
       
  1396 	field(DESC, "Locked/unlocked")	
       
  1397 	field(ZRVL, "0")
       
  1398 	field(ZRST, "Lock")
       
  1399 	field(ONVL, "1")
       
  1400 	field(ONST, "Unlock")
       
  1401 	field(TWVL, "2")
       
  1402 	field(TWST, "Unknown")
       
  1403 }
       
  1404 
       
  1405 record(mbbo, "$(IOC):$(NAME)-SET-INITRESET")
       
  1406 {
       
  1407 	field(DESC, "Lock/unlock")
       
  1408 	field(ZRVL, "0")
       
  1409 	field(ZRST, "Lock")
       
  1410 	field(ONVL, "1")
       
  1411 	field(ONST, "Unlock")
       
  1412 	field(OUT, "$(IOC):$(NAME)-SET-INITRESET_")
       
  1413 	field(FLNK, "$(IOC):$(NAME)-SET-INITRESET_")
       
  1414 }
       
  1415 
       
  1416 record(calcout, "$(IOC):$(NAME)-SET-INITRESET_"){
       
  1417 	field(CALC, "(A=1)?64:82")
       
  1418 	field(INPA, "$(IOC):$(NAME)-SET-INITRESET")
       
  1419 	field(OUT, "$(IOC):$(NAME)-SET-INITRESET__")
       
  1420 	field(FLNK, "$(IOC):$(NAME)-SET-INITRESET__")
       
  1421 }
       
  1422 
       
  1423 record(ao, "$(IOC):$(NAME)-SET-INITRESET__")
       
  1424 {
       
  1425 	field(DESC, "Send Lock/unlock")
       
  1426 	field(DTYP, "stream")
       
  1427 	field(SCAN, "$(SCAN1)")
       
  1428 	field(OUT, "@devBronkhorst.proto writeChar(00,0A) $(PORT)")
       
  1429 	field(FLNK, "$(IOC):$(NAME)-GET-INITRESET__")
       
  1430 }