#################################################################################
#
################################################################################
record(stringin, "$(IOC):$(NAME)-NAME")
{
field(DESC, "Name of the device")
field(VAL, "$(NAME) Device")
field(PINI, "YES")
}
record(stringin, "$(IOC):$(NAME)-IDN")
{
field(DESC, "Name of the device")
field(INP, "@devBronkhorst.proto identity $(PORT)")
field(PINI, "YES")
}
################################################################################
################################################################################
#INTEGER PARAMETERS
################################################################################
################################################################################
################################################################################
# Read; Measure will return a value between -23593 and 41942
# Record $(IOC):$(NAME)-MEASURE recomputes this value to percentages. NOTE that percentage
# can be larger than 100% (max value: 131.07%) and even negative for bipolar
# ADC mode. (min value: -73.73%)
################################################################################
record(ai, "$(IOC):$(NAME)-GET-MEASURE_")
{
field(DESC, "Read measure")
field(SCAN, "$(SCAN2)")
field(DTYP, "stream")
field(PREC, "3")
field(INP, "@devBronkhorst.proto readInt(01,20) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-MEASURE")
}
record(calc, "$(IOC):$(NAME)-GET-MEASURE")
{
field(DESC, "Measure to percentage")
field(INPA, "$(IOC):$(NAME)-GET-MEASURE_")
field(EGU, "%")
field(PREC, "3")
field(CALC, "A*100/32000")
field(FLNK, "$(IOC):$(NAME)-COMM-STATUS")
}
################################################################################
# Read; $(IOC):$(NAME)-GET-SETPOINT_ fetches the value from the device,
# $(IOC):$(NAME)-GET-SETPOINT recalculates the value to percentages.
#
# $(IOC):$(NAME)-GET-SETPOINT_ is scanned periodically, because setpoint value can be
# changed on ALARM or when the Counter reaches it's limit - this is configured
# by the user
################################################################################
record(ai, "$(IOC):$(NAME)-GET-SETPOINT_")
{
field(DESC, "Read setpoint in raw [0,32000]")
field(DTYP, "stream")
field(SCAN, "$(SCAN2)")
field(INP, "@devBronkhorst.proto readInt(01,21) $(PORT)")
field(PREC, "1")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT")
}
record(calc, "$(IOC):$(NAME)-GET-SETPOINT")
{
field(DESC, "Setpoint to percentage")
field(INPA, "$(IOC):$(NAME)-GET-SETPOINT_")
field(EGU, "%")
field(PREC, "1")
field(CALC, "A*100/32000")
}
################################################################################
# Write; User writes the flow percentage to $(IOC):$(NAME)-SET-SETPOINT.
# $(IOC):$(NAME)-SET-SETPOINT_ recalculates the percentage to interval [0, 32000] and
# writes the new setpoint to the device
################################################################################
record(ao, "$(IOC):$(NAME)-SET-SETPOINT")
{
field(DESC, "Setpoint in percentage")
field(EGU, "%")
field(PREC, "1")
field(FLNK, "$(IOC):$(NAME)-SET-SETPOINT_")
}
record(calcout, "$(IOC):$(NAME)-SET-SETPOINT_")
{
field(DESC, "Write setpoint in raw [0,32000]")
field(INPA, "$(IOC):$(NAME)-SET-SETPOINT")
field(PREC, "1")
field(DTYP, "stream")
field(CALC, "A*32000/100")
field(OUT, "@devBronkhorst.proto writeInt(01,21) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT_")
}
record(calcout, "$(IOC):$(NAME)-SET-SP-INIT_"){
field(INPA, "$(IOC):$(NAME)-SET-SETPOINT_")
field(CALC, "A*100/32000")
field(OUT, "$(IOC):$(NAME)-SET-SETPOINT")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-SETPOINT")
}
################################################################################
# Read/Write: Setpoint is ramped from 0% to 100% in slope*0.1 seconds
################################################################################
record(ai, "$(IOC):$(NAME)-GET-SETPOINT-SLOPE")
{
field(DESC, "Read setpoint slope")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(PINI, "YES")
field(INP, "@devBronkhorst.proto readInt(01,22) $(PORT)")
}
record(ao, "$(IOC):$(NAME)-SET-SETPOINT-SLOPE")
{
field(DESC, "Write setpoint slope")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeInt(01,22) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-SETPOINT-SLOPE")
}
################################################################################
# Read/Write: Get control mode from device. One of $(IOC):$(NAME)-CTRL-MODE-1/2_ will
# be in illegal value state. The GUI screen will show the one which is not in
# illegal value state by checking the severity of the state
################################################################################
record(ai, "$(IOC):$(NAME)-GET-CTRL-MODE_")
{
field(DESC,"")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(01,04) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-CTRL-MODE-1_")
}
record(mbbi, "$(IOC):$(NAME)-CTRL-MODE-1_")
{
field(DESC, "Control modes 0-15")
field(DTYP, "Raw Soft Channel")
field(INP, "$(IOC):$(NAME)-GET-CTRL-MODE_")
field(UNSV, "MAJOR")
field(ZRVL, "0")
field(ZRST, "BUS/RS232")
field(ONVL, "1")
field(ONST, "Analog input")
field(TWVL, "2")
field(TWST, "FLOWBUS*FLOWBUS")
field(THVL, "3")
field(THST, "Close valve")
field(FRVL, "4")
field(FRST, "Controller idle")
field(FVVL, "5")
field(FVST, "Testmode")
field(SXVL, "6")
field(SXST, "Tuning mode")
field(SVVL, "7")
field(SVST, "Setpoint=100%")
field(EIVL, "8")
field(EIST, "Purge valve")
field(NIVL, "9")
field(NIST, "Calibration mode")
field(TEVL, "10")
field(TEST, "analogIn*FLOWBUS")
field(ELVL, "11")
field(ELST, "Keyboard||FLOWBUS")
field(TVVL, "12")
field(TVST, "Setpoint=0%")
field(TTVL, "13")
field(TTST, "FLOWBUS*analogIn")
field(FTVL, "14")
field(FTST, "Range select mode")
field(FFVL, "15")
field(FFST, "Manual start, auto end")
field(FLNK, "$(IOC):$(NAME)-CTRL-MODE-2_")
}
record(mbbi, "$(IOC):$(NAME)-CTRL-MODE-2_")
{
field(DESC, "Control modes 0-15")
field(DTYP, "Raw Soft Channel")
field(INP, "$(IOC):$(NAME)-GET-CTRL-MODE_")
field(UNSV, "MAJOR")
field(ZRSV, "MAJOR")
field(ONVL, "16")
field(ONST, "Auto start, manual end")
field(TWVL, "17")
field(TWST, "Auto start/end")
field(THVL, "18")
field(THST, "RS232 setpoint")
field(FRVL, "19")
field(FRST, "RS232 broadcast")
field(FVVL, "20")
field(FVST, "Valve stearing")
field(SXVL, "21")
field(SXST, "Analog valve stearing")
field(SVVL, "22")
field(SVST, "Valve safe state")
}
################################################################################
# Read/Write: Set control mode. GUI screen will contain strings representing
# the values on the interval [0, 22]. These values correspond to states in mbbi
# records $(IOC):$(NAME)-CTRL-MODE-1,2_
################################################################################
record(ao, "$(IOC):$(NAME)-SET-CTRL-MODE")
{
field(DESC,"Set the control mode")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeChar(01,04) $(PORT)")
}
################################################################################
# Read/Write: Get/Set fluid number.
################################################################################
record(ai, "$(IOC):$(NAME)-GET-FLUID-NUM")
{
field(DESC, "Read fluid number")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(PINI, "YES")
field(INP, "@devBronkhorst.proto readChar(01,10) $(PORT)")
}
record(ao, "$(IOC):$(NAME)-SET-FLUID-NUM")
{
field(DESC, "Set fluid number")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(01,10) $(PORT)")
}
################################################################################
# Read: Read sensor type
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-SENSOR-TYPE")
{
field(DESC,"Read sensor type")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(01,0E) $(PORT)")
field(ZRVL, "0")
field(ONVL, "1")
field(TWVL, "2")
field(THVL, "3")
field(FRVL, "4")
field(FVVL, "128")
field(SXVL, "129")
field(SVVL, "130")
field(EIVL, "131")
field(NIVL, "132")
field(ZRST, "Pressure controller")
field(ONST, "Liquid volume controller")
field(TWST, "Liquid/gas controller")
field(THST, "Gas volume controller")
field(FRST, "Other controller")
field(FVST, "Pressure sensor")
field(SXST, "Liquid volume sensor")
field(SVST, "Liquid/gas mass sensor")
field(EIST, "Gas volume sensor")
field(NIST, "Other sensor")
field(PINI, "YES")
}
################################################################################
# Read: Get readout unit
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-CAP-UNIT-IDX")
{
field(DESC, "Capacity unit index")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(01,0F) $(PORT)")
field(ZRST, "ln/min")
field(ONST, "mln/h")
field(TWST, "mln/min")
field(THST, "ln/h")
field(FRST, "m3n/h")
field(FFST, "mls/min")
field(SXST, "mls/h")
field(SVST, "ls/min")
field(EIST, "ls/h")
field(NIST, "m3s/h")
field(PINI, "YES")
}
################################################################################
# Read: Valve will go into the safe state if buss communication is lost and
# control mode is in BUS/RS232 state or if initreset = 73 or if control mode
# is 22.
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-VALVE-STATE")
{
field(DESC, "Capacity unit index")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(72,1A) $(PORT)")
field(ZRST, "Deactivate")
field(ONST, "Activate")
field(TWST, "Close")
field(THST, "Open")
field(FRST, "Current position")
field(FFST, "Safe Value")
field(PINI, "YES")
}
record(mbbo, "$(IOC):$(NAME)-SET-VALVE-STATE")
{
field(DESC, "Capacity unit index")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(72,1A) $(PORT)")
field(ZRST, "Deactivate")
field(ONST, "Activate")
field(TWST, "Close")
field(THST, "Open")
field(FRST, "Current position")
field(FFST, "Safe Value")
field(FLNK, "$(IOC):$(NAME)-GET-VALVE-STATE")
}
################################################################################
# Read: Alarm info. mbbiDirect record checks which flags are set and then
# starts (forward links) the process chain of bi records representing the value
# of each alarm state.
################################################################################
record(mbbiDirect, "$(IOC):$(NAME)-GET-ALARM-INFO")
{
field(DESC, "Read alarm flags")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readChar(01,14) $(PORT)")
field(SCAN, "$(SCAN2)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-ERROR-MSG-NUM")
}
################################################################################
# Read: Alarm mode
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-ALARM-MODE")
{
field(DESC, "Read alarm mode")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readChar(61,03) $(PORT)")
field(SCAN, "$(SCAN1)")
field(ZRST, "Off")
field(ONST, "Absolute Limits")
field(TWST, "Setpoint Limits")
field(THST, "Power up")
field(PINI, "YES")
}
################################################################################
# Write; Set Alarm mode
################################################################################
record(mbbo, "$(IOC):$(NAME)-SET-ALARM-MODE")
{
field(DESC, "Set alarm mode")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeChar(61,03) $(PORT)")
field(SCAN, "$(SCAN1)")
field(ZRST, "Off")
field(ONST, "Absolute Limits")
field(TWST, "Setpoint Limits")
field(THST, "Power up")
field(FLNK, "$(IOC):$(NAME)-GET-ALARM-MODE")
}
################################################################################
# Read-Write; Get/Set maximum alarm limit. User specifies percentage which is
# converted to interval [0, 32000]
################################################################################
record(calc, "$(IOC):$(NAME)-GET-ALM-MAX-LIM")
{
field(DESC, "Get alarm maximum limit in %")
field(INPA, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
field(SCAN, "$(SCAN1)")
field(PREC, "1")
field(CALC, "A*100/32000")
field(EGU, "%")
}
record(ai, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
{
field(DESC, "Get alarm maximum limit in raw")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readInt(61,21) $(PORT)")
field(SCAN, "$(SCAN1)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-MAX-LIM")
}
record(ai, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
{
field(DESC, "Set alarm maximum limit in %")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-MAX-LIM_")
field(EGU, "%")
field(PREC, "1")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-MAX-LIM_")
{
field(DESC, "Set alarm maximum limit in raw")
field(DTYP, "stream")
field(INPA, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
field(CALC, "A*32000/100")
field(OUT, "@devBronkhorst.proto writeInt(61,21) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-MAX-LIM_")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-MAX-LIM-INIT_"){
field(INPA, "$(IOC):$(NAME)-SET-ALM-MAX-LIMT_")
field(CALC, "A*100/32000")
field(OUT, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-MAX-LIM")
}
################################################################################
# Read-Write; Get/Set minimum alarm limit. User specifies percentage which is
# converted to interval [0, 32000]
################################################################################
record(calc, "$(IOC):$(NAME)-GET-ALM-MIN-LIM")
{
field(DESC, "Get alarm minimum limit in %")
field(INPA, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
field(SCAN, "$(SCAN1)")
field(PREC, "1")
field(CALC, "A*100/32000")
}
record(ai, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
{
field(DESC, "Get alarm minimum limit in raw")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readInt(61,22) $(PORT)")
field(SCAN, "$(SCAN1)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-MIN-LIM")
}
record(ai, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
{
field(DESC, "Set alarm minimum limit in %")
field(EGU, "%")
field(PREC, "1")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-MIN-LIM_")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-MIN-LIM_")
{
field(DESC, "Set alarm minimum limit in raw")
field(DTYP, "stream")
field(INPA, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
field(CALC, "A*32000/100")
field(OUT, "@devBronkhorst.proto writeInt(61,22) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-MIN-LIM_")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-MIN-LIM-INIT_"){
field(INPA, "$(IOC):$(NAME)-SET-ALM-MIN-LIMT_")
field(CALC, "A*100/32000")
field(OUT, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-MIN-LIM")
}
################################################################################
# Read-Write; Get/Set alarm setpoint mode. If device goes into an alarm state,
# a new setpoint (stored in the record $(IOC):$(NAME)-GET/SET-ALM-NEW-SP) will be set,
# but only if device ($(IOC):$(NAME)-GET/SET-ALM-SP-MODE) is in state 1.
################################################################################
record(bi, "$(IOC):$(NAME)-GET-ALM-SP-MODE")
{
field(DESC, "Get alarm setpoint mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(ZNAM, "NO")
field(ONAM, "YES")
field(PINI, "YES")
field(INP, "@devBronkhorst.proto readChar(61,05) $(PORT)")
}
record(bo, "$(IOC):$(NAME)-SET-ALM-SP-MODE")
{
field(DESC, "Set alarm setpoint mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(ZNAM, "NO")
field(ONAM, "YES")
field(OUT, "@devBronkhorst.proto writeChar(61,05) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-SP-MODE")
}
record(ai, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
{
field(DESC, "Read alarm setpoint")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readInt(61,26) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-NEW-SP")
}
record(calc, "$(IOC):$(NAME)-GET-ALM-NEW-SP")
{
field(DESC, "Alarm setpoint to percentage")
field(INPA, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
field(EGU, "%")
field(PREC, "1")
field(CALC, "A*100/32000")
}
record(ao, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
{
field(DESC, "Alarm setpoint in percentage")
field(EGU, "%")
field(PREC, "1")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
{
field(DESC, "Write alarm setpoint")
field(INPA, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
field(DTYP, "stream")
field(CALC, "A*32000/100")
field(OUT, "@devBronkhorst.proto writeInt(61,26) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-NEW-SP_")
}
record(calcout, "$(IOC):$(NAME)-SET-ALM-NEW-SP-INIT_"){
field(INPA, "$(IOC):$(NAME)-SET-ALM-NEW-SP_")
field(CALC, "A*100/32000")
field(OUT, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-ALM-NEW-SP")
}
################################################################################
# Read-Write; Alarm delay time seconds. Alarm action will be delayed when alarm
# limit has been exceeded. Automatic reset will be delayed when sensor signal
# reaches safe level again.
################################################################################
record(ai, "$(IOC):$(NAME)-GET-ALM-DELAY")
{
field(DESC, "Get alarm delay")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(EGU, "s")
field(PINI, "YES")
field(INP, "@devBronkhorst.proto readChar(61,07) $(PORT)")
}
record(ao, "$(IOC):$(NAME)-SET-ALM-DELAY")
{
field(DESC, "Get alarm delay")
field(DTYP, "stream")
field(EGU, "s")
field(OUT, "@devBronkhorst.proto writeChar(61,07) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-ALM-DELAY")
}
################################################################################
# Read-Write; Enable reset alarm for different reset triggers.
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-RESET-ALM-MODE")
{
field(DESC, "Get reset alarm mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(61,09) $(PORT)")
field(ZRST, "OFF")
field(ONST, "Switch")
field(TWST, "External")
field(THST, "External,Switch")
field(FRST, "RS232")
field(FVST, "RS232,Switch")
field(SXST, "RS232,Ext")
field(SVST, "RS232,Ext,Switch")
field(EIST, "Auto")
field(NIST, "Auto,Switch")
field(TEST, "Auto,Ext")
field(ELST, "Auto,Ext,Switch")
field(TVST, "Auto,RS232")
field(TTST, "Auto,RS232,Switch")
field(FTST, "Auto,RS232,Ext")
field(FFST, "Auto,RS232,Ext,Switch")
#field(PINI, "YES")
}
record(mbboDirect, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
{
field(DESC, "Set alarm reset mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(B0, "1")
field(B2, "1")
field(OUT, "@devBronkhorst.proto writeChar(61,09) $(PORT)")
# field(ZRST, "OFF")
# field(ONST, "Switch")
# field(TWST, "External")
# field(THST, "Switch,External")
# field(FRST, "RS232")
# field(FVST, "RS232,Switch")
# field(SXST, "RS232,Ext")
# field(SVST, "RS232,Ext,Switch")
# field(EIST, "Auto")
# field(NIST, "Auto,Switch")
# field(TEST, "Auto,Ext")
# field(ELST, "Auto,Ext,Switch")
# field(TVST, "Auto,RS232")
# field(TTST, "Auto,RS232,Switch")
# field(FTST, "Auto,RS232,Ext")
# field(FFST, "Auto,RS232,Ext,Switch")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-RESET-ALM-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-SWITCH")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B0")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-EXT")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B1")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-RS232")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B2")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-AUTO")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-ALM-MODE.B3")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-ALM-MODE")
}
################################################################################
# Read-Write; Counter mode.
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-CNT-MODE")
{
field(DESC, "Get counter mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(68,08) $(PORT)")
field(ZRST, "Off")
field(ONST, "Continuous")
field(TWST, "To limit")
field(PINI, "YES")
}
record(mbbo, "$(IOC):$(NAME)-SET-CNT-MODE")
{
field(DESC, "Set counter mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(68,08) $(PORT)")
field(ZRST, "Off")
field(ONST, "Continuous")
field(TWST, "To limit")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-MODE")
}
################################################################################
# Read-Write; Counter setpoint mode. 0 - No setpoint change when limit is
# reached. 1 - setpoint change when limit is reached
################################################################################
record(bi, "$(IOC):$(NAME)-GET-CNT-SP-MODE")
{
field(DESC, "Get counter mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(68,05) $(PORT)")
field(ZNAM, "NO")
field(ONAM, "YES")
field(PINI, "YES")
}
record(bo, "$(IOC):$(NAME)-SET-CNT-SP-MODE")
{
field(DESC, "Set counter mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(68,05) $(PORT)")
field(ZNAM, "NO")
field(ONAM, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-SP-MODE")
}
################################################################################
# Read-Write; Get/Set new counter setpoint which will apply f GET-CNT-SP-MODE is
# YES when limit is reached.
################################################################################
record(ai, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
{
field(DESC, "Read counter new setpoint")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readInt(68,26) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-NEW-SP")
}
record(calc, "$(IOC):$(NAME)-GET-CNT-NEW-SP")
{
field(DESC, "Counter new setpoint to percentage")
field(INPA, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
field(EGU, "%")
field(PREC, "1")
field(CALC, "A*100/32000")
}
record(ao, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
{
field(DESC, "Counter new setpoint in percentage")
field(EGU, "%")
field(PREC, "1")
field(FLNK, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
}
record(calcout, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
{
field(DESC, "Write counter new setpoint")
field(INPA, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
field(DTYP, "stream")
field(CALC, "A*32000/100")
field(OUT, "@devBronkhorst.proto writeInt(68,26) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-NEW-SP_")
}
record(calcout, "$(IOC):$(NAME)-SET-CNT-NEW-SP-INIT_"){
field(INPA, "$(IOC):$(NAME)-SET-CNT-NEW-SP_")
field(CALC, "A*100/32000")
field(OUT, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-CNT-NEW-SP")
}
################################################################################
# Read-Write; Counter unit
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-CNT-UNIT")
{
field(DESC, "Read counter unit")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readChar(68,02) $(PORT)")
field(ZRST, "ln")
field(ONST, "mm3n")
field(TWST, "mln")
field(THST, "cm3n")
field(FRST, "uln")
field(FVST, "dm3n")
field(SXST, "m3n")
field(SVST, "uls")
field(EIST, "mm3s")
field(NIST, "mls")
field(TEST, "cm3s")
field(ELST, "ls")
field(TVST, "dm3s")
field(TTST, "m3s")
# field(PINI, "YES")
}
record(mbbo, "$(IOC):$(NAME)-SET-CNT-UNIT")
{
field(DESC, "Read counter unit")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeChar(68,02) $(PORT)")
field(VAL, "0")
field(ZRST, "ln")
field(ONST, "mm3n")
field(TWST, "mln")
field(THST, "cm3n")
field(FRST, "uln")
field(FVST, "dm3n")
field(SXST, "m3n")
field(SVST, "uls")
field(EIST, "mm3s")
field(NIST, "mls")
field(TEST, "cm3s")
field(ELST, "ls")
field(TVST, "dm3s")
field(TTST, "m3s")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-UNIT")
}
################################################################################
# Read-Write; Enable reset counter for different reset triggers.
################################################################################
record(mbbi, "$(IOC):$(NAME)-GET-RESET-CNT-MODE")
{
field(DESC, "Get reset alarm mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(68,09) $(PORT)")
field(ZRST, "OFF")
field(ONST, "Switch")
field(TWST, "External")
field(THST, "Switch,External")
field(FRST, "RS232")
field(FVST, "RS232,Switch")
field(SXST, "RS232,Ext")
field(SVST, "RS232,Ext,Switch")
field(EIST, "Auto")
field(NIST, "Auto,Switch")
field(TEST, "Auto,Ext")
field(ELST, "Auto,Ext,Switch")
field(TVST, "Auto,RS232")
field(TTST, "Auto,RS232,Switch")
field(FTST, "Auto,RS232,Ext")
field(FFST, "Auto,RS232,Ext,Switch")
}
record(mbboDirect, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
{
field(DESC, "Set alarm reset mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(B0, "1")
field(B2, "1")
field(OUT, "@devBronkhorst.proto writeChar(68,09) $(PORT)")
# field(ZRST, "OFF")
# field(ONST, "Switch")
# field(TWST, "External")
# field(THST, "Switch,External")
# field(FRST, "RS232")
# field(FVST, "RS232,Switch")
# field(SXST, "RS232,Ext")
# field(SVST, "RS232,Ext,Switch")
# field(EIST, "Auto")
# field(NIST, "Auto,Switch")
# field(TEST, "Auto,Ext")
# field(ELST, "Auto,Ext;Switch")
# field(TVST, "Auto,RS232")
# field(TTST, "Auto,RS232,Switch")
# field(FTST, "Auto,RS232,Ext")
# field(FFST, "Auto,RS232,Ext,Switch")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-RESET-CNT-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-SWITCH")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B0")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-EXT")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B1")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-RS232")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B2")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
}
record(bo, "$(IOC):$(NAME)-TOGGLE-RESET-CNT-AUTO")
{
field(DESC, "")
field(OUT, "$(IOC):$(NAME)-SET-RESET-CNT-MODE.B3")
field(FLNK, "$(IOC):$(NAME)-SET-RESET-CNT-MODE")
}
################################################################################
# Write. RESET
################################################################################
record(mbbo, "$(IOC):$(NAME)-RESET")
{
field(DESC, "Set alarm reset mode")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(73,08) $(PORT)")
field(ZRST, "NO RESET")
field(ONST, "Counter")
field(TWST, "Alarm")
field(THST, "Limit counter")
field(FRST, "Counter reset & OFF")
field(FVST, "Module")
field(SXST, "Alarm info error")
field(SVST, "Alarm info warning")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-MODE")
}
################################################################################
################################################################################
#FLOAT PARAMETERS
################################################################################
################################################################################
################################################################################
# Read; Counter value
################################################################################
record(ai, "$(IOC):$(NAME)-GET-CNT")
{
field(DESC, "Read counter")
field(PREC, "3")
}
record(aSub, "$(IOC):$(NAME)-GET-CNT_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-GET-CNT__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-GET-CNT")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(FLNK, "$(IOC):$(NAME)-GET-CNT")
}
record(ai, "$(IOC):$(NAME)-GET-CNT__")
{
field(DESC, "Read counter as long")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readFloat(68,41) $(PORT)")
field(SCAN, "$(SCAN2)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-CNT_")
}
record(ao, "$(IOC):$(NAME)-SET-CNT")
{
field(DESC, "Set counter")
field(FLNK, "$(IOC):$(NAME)-SET-CNT_")
}
record(aSub, "$(IOC):$(NAME)-SET-CNT_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-CNT")
field(FTA, "FLOAT")
field(OUTA, "$(IOC):$(NAME)-SET-CNT__")
field(FTVA, "LONG")
field(SNAM, "writeFloat")
field(FLNK, "$(IOC):$(NAME)-SET-CNT__")
}
record(ao, "$(IOC):$(NAME)-SET-CNT__")
{
field(DESC, "Set counter as long")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeFloat(68,41) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-CNT__")
}
record(aSub, "$(IOC):$(NAME)-SET-CNT-INIT_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-CNT__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-SET-CNT")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-CNT")
}
################################################################################
# Read; Counter limit
################################################################################
record(ai, "$(IOC):$(NAME)-GET-CNT-LIM")
{
field(DESC, "Read counter limit")
field(PREC, "3")
}
record(aSub, "$(IOC):$(NAME)-GET-CNT-LIM_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-GET-CNT-LIM__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-GET-CNT-LIM")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM")
}
record(ai, "$(IOC):$(NAME)-GET-CNT-LIM__")
{
field(DESC, "Read counter limit as long")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readFloat(68,43) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM_")
}
record(ao, "$(IOC):$(NAME)-SET-CNT-LIM")
{
field(DESC, "Set counter limit")
field(PREC, "3")
field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM_")
}
record(aSub, "$(IOC):$(NAME)-SET-CNT-LIM_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-CNT-LIM")
field(FTA, "FLOAT")
field(OUTA, "$(IOC):$(NAME)-SET-CNT-LIM__")
field(FTVA, "LONG")
field(SNAM, "writeFloat")
field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM__")
}
record(ao, "$(IOC):$(NAME)-SET-CNT-LIM__")
{
field(DESC, "Set counter limit as INPlong")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeFloat(68,43) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-CNT-LIM__")
}
record(aSub, "$(IOC):$(NAME)-SET-CNT-LIM-INIT_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-CNT-LIM__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-SET-CNT-LIM")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-SET-CNT-LIM")
}
################################################################################
# Read/write PID parameters
################################################################################
record(ai, "$(IOC):$(NAME)-GET-P")
{
field(DESC, "Read P")
field(PREC, "3")
}
record(aSub, "$(IOC):$(NAME)-GET-P_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-GET-P__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-GET-P")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(FLNK, "$(IOC):$(NAME)-GET-P")
}
record(ai, "$(IOC):$(NAME)-GET-P__")
{
field(DESC, "Read P as long")
field(SCAN, "Passive")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readFloat(72,55) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-P_")
}
record(ao, "$(IOC):$(NAME)-SET-P")
{
field(DESC, "Set P")
field(PREC, "3")
field(FLNK, "$(IOC):$(NAME)-SET-P_")
}
record(aSub, "$(IOC):$(NAME)-SET-P_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-P")
field(FTA, "FLOAT")
field(OUTA, "$(IOC):$(NAME)-SET-P__")
field(FTVA, "LONG")
field(SNAM, "writeFloat")
field(FLNK, "$(IOC):$(NAME)-SET-P__")
}
record(ao, "$(IOC):$(NAME)-SET-P__")
{
field(DESC, "Set P as INPlong")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeFloat(72,55) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-P__")
}
record(ai, "$(IOC):$(NAME)-GET-I")
{
field(DESC, "Read I")
field(PREC, "3")
}
record(aSub, "$(IOC):$(NAME)-GET-I_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-GET-I__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-GET-I")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(FLNK, "$(IOC):$(NAME)-GET-I")
}
record(ai, "$(IOC):$(NAME)-GET-I__")
{
field(DESC, "Read I as long")
field(SCAN, "Passive")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readFloat(72,56) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-I_")
}
record(ao, "$(IOC):$(NAME)-SET-I")
{
field(DESC, "Set I")
field(PREC, "3")
field(FLNK, "$(IOC):$(NAME)-SET-I_")
}
record(aSub, "$(IOC):$(NAME)-SET-I_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-I")
field(FTA, "FLOAT")
field(OUTA, "$(IOC):$(NAME)-SET-I__")
field(FTVA, "LONG")
field(SNAM, "writeFloat")
field(FLNK, "$(IOC):$(NAME)-SET-I__")
}
record(ao, "$(IOC):$(NAME)-SET-I__")
{
field(DESC, "Set I as INPlong")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeFloat(72,56) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-I__")
}
record(ai, "$(IOC):$(NAME)-GET-D")
{
field(DESC, "Read D")
field(PREC, "3")
}
record(aSub, "$(IOC):$(NAME)-GET-D_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-GET-D__")
field(FTA, "LONG")
field(OUTA, "$(IOC):$(NAME)-GET-D")
field(FTVA, "FLOAT")
field(SNAM, "readFloat")
field(FLNK, "$(IOC):$(NAME)-GET-D")
}
record(ai, "$(IOC):$(NAME)-GET-D__")
{
field(DESC, "Read D as long")
field(SCAN, "Passive")
field(DTYP, "stream")
field(INP, "@devBronkhorst.proto readFloat(72,57) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-D_")
}
record(ao, "$(IOC):$(NAME)-SET-D")
{
field(DESC, "Set D")
field(PREC, "3")
field(FLNK, "$(IOC):$(NAME)-SET-D_")
}
record(aSub, "$(IOC):$(NAME)-SET-D_")
{
field(DESC, "Interpret long as float")
field(INPA, "$(IOC):$(NAME)-SET-D")
field(FTA, "FLOAT")
field(OUTA, "$(IOC):$(NAME)-SET-D__")
field(FTVA, "LONG")
field(SNAM, "writeFloat")
field(FLNK, "$(IOC):$(NAME)-SET-D__")
}
record(ao, "$(IOC):$(NAME)-SET-D__")
{
field(DESC, "Set D as INPlong")
field(DTYP, "stream")
field(OUT, "@devBronkhorst.proto writeFloat(72,57) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-D__")
}
################################################################################
################################################################################
#STATUS PARAMETERS
################################################################################
################################################################################
################################################################################
# Read:Number of error messages. 0 - no error message, 1 - at least 1 error
# message
################################################################################
record(bi, "$(IOC):$(NAME)-ERROR-MSG-NUM")
{
field(DESC, "Number of error mesgs")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B0")
field(SCAN, "$(SCAN1)")
field(ZNAM, "No error")
field(ONAM, "Error")
field(FLNK, "$(IOC):$(NAME)-WARNING-MSG-NUM")
}
################################################################################
# Read:Number of warning messages. 0 - no warning message, 1 - at least 1
# warning message
################################################################################
record(bi, "$(IOC):$(NAME)-WARNING-MSG-NUM")
{
field(DESC, "Number of warning msgs")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B1")
field(SCAN, "$(SCAN1)")
field(ZNAM, "No warning")
field(ONAM, "Warning")
field(FLNK, "$(IOC):$(NAME)-MIN-ALARM")
}
################################################################################
# Read:Number of minimum alarm messages for measured signal.
# 0 - no minimum alarm message,
# 1 - at least 1 minumum alarm message
################################################################################
record(bi, "$(IOC):$(NAME)-MIN-ALARM")
{
field(DESC, "Number of min alarm msgs")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B2")
field(SCAN, "$(SCAN1)")
field(ZNAM, "No min alarm")
field(ONAM, "Min alarm")
field(FLNK, "$(IOC):$(NAME)-MAX-ALARM")
}
################################################################################
# Read:Number of maximum alarm messages for measured signal.
# 0 - no maximum alarm message,
# 1 - at least 1 maximum alarm message
################################################################################
record(bi, "$(IOC):$(NAME)-MAX-ALARM")
{
field(DESC, "Number of max alar msgs")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B3")
field(SCAN, "$(SCAN1)")
field(ZNAM, "No max alarm")
field(ONAM, "Max alarm")
field(FLNK, "$(IOC):$(NAME)-BATCH-CNT-ALARM")
}
################################################################################
# Read: 0 - Batch counter has not reached it's limit
# 1 - Batch counter has reached it's limit
################################################################################
record(bi, "$(IOC):$(NAME)-BATCH-CNT-ALARM")
{
field(DESC, "Batch counter alarm")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B4")
field(SCAN, "$(SCAN1)")
field(ZNAM, "OK")
field(ONAM, "Limit")
field(FLNK, "$(IOC):$(NAME)-RESPONSE-ALARM")
}
################################################################################
# Read: 0 - Response OK (setpoint-measure within limit)
# 1 - Response alarm message: setpoint-measure is too high
################################################################################
record(bi, "$(IOC):$(NAME)-RESPONSE-ALARM")
{
field(DESC, "Response alarm")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B5")
field(SCAN, "$(SCAN1)")
field(ZNAM, "OK")
field(ONAM, "SP to high")
field(FLNK, "$(IOC):$(NAME)-MASTER-OUT-ALARM")
}
################################################################################
# Read: 0 - Master output signal OK (or unused)
# 1 - Master output signal not received: check master instrument
################################################################################
record(bi, "$(IOC):$(NAME)-MASTER-OUT-ALARM")
{
field(DESC, "Master output alarm")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B6")
field(SCAN, "$(SCAN1)")
field(ZNAM, "OK")
field(ONAM, "Not received")
field(FLNK, "$(IOC):$(NAME)-HARDWARE-ALARM")
}
################################################################################
# Read: 0 - Hardware OK
# 1 - Hardware error message: check your hardware
################################################################################
record(bi, "$(IOC):$(NAME)-HARDWARE-ALARM")
{
field(DESC, "Response alarm")
field(INP, "$(IOC):$(NAME)-GET-ALARM-INFO.B7")
field(SCAN, "$(SCAN1)")
field(ZNAM, "OK")
field(ONAM, "Error")
}
################################################################################
# Read: Check if communication is OK
################################################################################
record(calc, "$(IOC):$(NAME)-COMM-STATUS")
{
field(DESC, "Communication status")
field(INPA, "$(IOC):$(NAME)-GET-MEASURE_.STAT")
field(CALC, "A>0")
field(FLNK, "$(IOC):$(NAME)-ALARM")
}
################################################################################
# Read; Sum of communication and device errors. If either device or comm. is in
# error, value is 1. LED on the main screen uses this to determine if everything
# is ok.
################################################################################
record(calc, "$(IOC):$(NAME)-ALARM")
{
field(DESC, "Communication status")
field(INPA, "$(IOC):$(NAME)-COMM-STATUS")
field(INPB, "$(IOC):$(NAME)-GET-ALARM-INFO.B0")
field(INPC, "$(IOC):$(NAME)-GET-ALARM-INFO.B1")
field(INPD, "$(IOC):$(NAME)-GET-ALARM-INFO.B2")
field(INPE, "$(IOC):$(NAME)-GET-ALARM-INFO.B3")
field(INPF, "$(IOC):$(NAME)-GET-ALARM-INFO.B5")
field(INPG, "$(IOC):$(NAME)-GET-ALARM-INFO.B6")
field(INPH, "$(IOC):$(NAME)-GET-ALARM-INFO.B7")
field(CALC, "(A+B+C+D+E+F+G+H)>0")
}
################################################################################
# Lock/unlock secured parameters, e.g. PID parameters
################################################################################
record(ai, "$(IOC):$(NAME)-GET-INITRESET__")
{
field(DESC, "Get locked/unlocked")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(INP, "@devBronkhorst.proto readChar(00,0A) $(PORT)")
field(PINI, "YES")
field(FLNK, "$(IOC):$(NAME)-GET-INITRESET_")
}
record(calcout, "$(IOC):$(NAME)-GET-INITRESET_"){
field(CALC, "(A=82)?0:(A=64)?1:2")
field(INPA, "$(IOC):$(NAME)-GET-INITRESET__")
field(OUT, "$(IOC):$(NAME)-GET-INITRESET")
field(FLNK, "$(IOC):$(NAME)-GET-INITRESET")
}
record(mbbo, "$(IOC):$(NAME)-GET-INITRESET")
{
field(DESC, "Locked/unlocked")
field(ZRVL, "0")
field(ZRST, "Lock")
field(ONVL, "1")
field(ONST, "Unlock")
field(TWVL, "2")
field(TWST, "Unknown")
}
record(mbbo, "$(IOC):$(NAME)-SET-INITRESET")
{
field(DESC, "Lock/unlock")
field(ZRVL, "0")
field(ZRST, "Lock")
field(ONVL, "1")
field(ONST, "Unlock")
field(OUT, "$(IOC):$(NAME)-SET-INITRESET_")
field(FLNK, "$(IOC):$(NAME)-SET-INITRESET_")
}
record(calcout, "$(IOC):$(NAME)-SET-INITRESET_"){
field(CALC, "(A=1)?64:82")
field(INPA, "$(IOC):$(NAME)-SET-INITRESET")
field(OUT, "$(IOC):$(NAME)-SET-INITRESET__")
field(FLNK, "$(IOC):$(NAME)-SET-INITRESET__")
}
record(ao, "$(IOC):$(NAME)-SET-INITRESET__")
{
field(DESC, "Send Lock/unlock")
field(DTYP, "stream")
field(SCAN, "$(SCAN1)")
field(OUT, "@devBronkhorst.proto writeChar(00,0A) $(PORT)")
field(FLNK, "$(IOC):$(NAME)-GET-INITRESET__")
}