diff -r 000000000000 -r 77d8eafe2a07 IOCINFRAApp/Db/Bronkhorst.db --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IOCINFRAApp/Db/Bronkhorst.db Thu Mar 07 09:23:26 2019 +0100 @@ -0,0 +1,1430 @@ +################################################################################# +# +################################################################################ +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__") +}