module: dlsPLC
defs:
- name: overrideRequestIndividual
  description: Template allowing override of individual interlock bits
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: DESC
    description: Description (e.g. DCM piezo override)
  - type: str
    name: PRESSURE1
    description: Pressure in mbar that needs to be over setpoint to allow override
  - type: str
    name: PRESSURE2
    description: Pressure in mbar that needs to be over setpoint to allow override
  - type: str
    name: OVERRIDE
    description: P of overrideRequestMain instance
  - type: str
    name: BIT
    description: Bit of overrideRequestMain instance to use (0-8)
  - type: str
    name: SETPOINT
    description: Setpoint in mbar that both pressures need to be higher than to allow
      override
  - type: id
    name: name
    description: This associates an edm screen with the template
  databases:
  - file: $(DLSPLC)/db/dlsPLC_overrideRequestIndividual.template
    args:
      name:
      SETPOINT:
      PRESSURE2:
      P:
      PRESSURE1:
      OVERRIDE:
      BIT:
      DESC:
- name: softwareVersion
  description: Template that reads software version from a PLC.
  args:
  - type: str
    name: device
    description: Device prefix
  databases:
  - file: $(DLSPLC)/db/dlsPLC_softwareVersion.template
    args:
      device:
- name: vacValveBistable
  description: Template database for a vacuum valve with different interlocks for
    open and close operations
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: device name of valve control crate
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade.  E.g. if valve is
      in DM150..159 then addr=150
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: cilk0
    description: Gauge interlock description 0
    default: unused
  - type: str
    name: cilk1
    description: Gauge interlock description 1
    default: unused
  - type: str
    name: cilk2
    description: Gauge interlock description 2
    default: unused
  - type: str
    name: cilk3
    description: Gauge interlock description 3
    default: unused
  - type: str
    name: cilk4
    description: Gauge interlock description 4
    default: unused
  - type: str
    name: cilk5
    description: Gauge interlock description 5
    default: unused
  - type: str
    name: cilk6
    description: Gauge interlock description 6
    default: unused
  - type: str
    name: cilk7
    description: Gauge interlock description 7
    default: unused
  - type: str
    name: cilk8
    description: Gauge interlock description 8
    default: unused
  - type: str
    name: cilk9
    description: Gauge interlock description 9
    default: unused
  - type: str
    name: cilk10
    description: Gauge interlock description 10
    default: unused
  - type: str
    name: cilk11
    description: Gauge interlock description 11
    default: unused
  - type: str
    name: cilk12
    description: Gauge interlock description 12
    default: unused
  - type: str
    name: cilk13
    description: Gauge interlock description 13
    default: unused
  - type: str
    name: cilk14
    description: Gauge interlock description 14
    default: unused
  - type: str
    name: cilk15
    description: Gauge interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: valvetype
    description: Template argument
    default: valve
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  - type: str
    name: mode1
    description: Template argument
    default: Operational
  - type: str
    name: mode2
    description: Template argument
    default: Service
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValveBistable.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      gda_name:
      allowpv:
      cilk10:
      ilksta_label4:
      vlvcc:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      port:
      ilksta_sv4:
      con_label6:
      ilk8:
      ilksta_label1:
      addr:
      mode1:
      con_label5:
      con_label4:
      ilksta_label5:
      whylocked:
      sta_label5:
      sta_label4:
      sta_label6:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      cilk12:
      cilk13:
      ilksta_label2:
      cilk11:
      timeout:
      cilk14:
      cilk15:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      valvetype:
      ilk6:
      ilk2:
      ilk7:
      device:
      mode2:
      cilk2:
      ilksta_label3:
      ilk1:
      ilk5:
      name:
      ilk4:
      ilk3:
      cilk8:
      cilk9:
      ilk0:
      con_label3:
      ilk9:
      cilk0:
      cilk1:
      gda_desc:
      cilk3:
      cilk4:
      cilk5:
      cilk6:
      cilk7:
- name: writeEnum
  description: Write the Enum value into a DM variable in a PLC
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: DM variable of the int
  - type: id
    name: name
    description: Object name and gui association name
  - type: int
    name: timeout
    description: timeout on PV write attempts
    default: 0
  - type: int
    name: VAL0
    description: Value for state 0
    default: 0
  - type: int
    name: VAL1
    description: Value for state 1
    default: 1
  - type: int
    name: VAL2
    description: Value for state 2
    default: 2
  - type: int
    name: VAL3
    description: Value for state 3
    default: 3
  - type: int
    name: VAL4
    description: Value for state 4
    default: 4
  - type: int
    name: VAL5
    description: Value for state 5
    default: 5
  - type: int
    name: VAL6
    description: Value for state 6
    default: 6
  - type: int
    name: VAL7
    description: Value for state 7
    default: 7
  - type: str
    name: STR0
    description: String Value for state 0
    default: ''
  - type: str
    name: STR1
    description: String Value for state 1
    default: ''
  - type: str
    name: STR2
    description: String Value for state 2
    default: ''
  - type: str
    name: STR3
    description: String Value for state 3
    default: ''
  - type: str
    name: STR4
    description: String Value for state 4
    default: ''
  - type: str
    name: STR5
    description: String Value for state 5
    default: ''
  - type: str
    name: STR6
    description: String Value for state 6
    default: ''
  - type: str
    name: STR7
    description: String Value for state 7
    default: ''
  databases:
  - file: $(DLSPLC)/db/dlsPLC_writeEnum.template
    args:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      port:
      addr:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
      Q:
      P:
      name:
      timeout:
- name: flow
  description: "This template defines a bi records for representing low and lolo\n
    water flow switched read from MPS RIO boxes. Low switches will be read from\n
    their normal DM variable (E.g. DM4), Lolo switches from the relevant interlock\n
    bits. E.g. if interlock DM816..818 bit 4 is S1 water,\nuse loloaddress=818,lolobit=4
    for instantaneous lolo signal"
  args:
  - type: str
    name: P
    description: EPICS prefix
  - type: str
    name: Q
    description: EPICS suffix
  - type: str
    name: DESC
    description: Description
  - type: str
    name: device
    description: EPICS name of the vacuum valve crate that connects to the RIO
  - type: str
    name: loaddress
    description: Address of lo DM variable. E.g. if lo signal is in DM4 bit1 then
      loaddress=4 lobit=1
  - type: str
    name: lobit
    description: Bit of lo DM variable. E.g. if lo signal is in DM4 bit1 then loaddress=4
      lobit=1
  - type: str
    name: loloaddress
    description: Address of lolo DM variable. E.g. if lolo signal is in DM818 bit4
      then loloaddress=818 lolobit=4
  - type: str
    name: lolobit
    description: Bit of lolo DM variable. E.g. if lolo signal is in DM818 bit4 then
      loloaddress=818 lolobit=4
  - type: id
    name: name
    description: This associates an edm screen with the template
  databases:
  - file: $(DLSPLC)/db/dlsPLC_flow.template
    args:
      loloaddress:
      name:
      lolobit:
      P:
      Q:
      lobit:
      device:
      loaddress:
      DESC:
- name: readEnum
  description: Read the Enum value stored in a DM variable in a PLC
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: vlvcc
    description: PLC control crate device prefix
  - type: str
    name: addr
    description: DM variable of the int
  - type: id
    name: name
    description: Object name and gui association name
  - type: int
    name: VAL0
    description: Value for state 0
    default: 0
  - type: int
    name: VAL1
    description: Value for state 1
    default: 1
  - type: int
    name: VAL2
    description: Value for state 2
    default: 2
  - type: int
    name: VAL3
    description: Value for state 3
    default: 3
  - type: int
    name: VAL4
    description: Value for state 4
    default: 4
  - type: int
    name: VAL5
    description: Value for state 5
    default: 5
  - type: int
    name: VAL6
    description: Value for state 6
    default: 6
  - type: int
    name: VAL7
    description: Value for state 7
    default: 7
  - type: str
    name: STR0
    description: String Value for state 0
    default: ''
  - type: str
    name: STR1
    description: String Value for state 1
    default: ''
  - type: str
    name: STR2
    description: String Value for state 2
    default: ''
  - type: str
    name: STR3
    description: String Value for state 3
    default: ''
  - type: str
    name: STR4
    description: String Value for state 4
    default: ''
  - type: str
    name: STR5
    description: String Value for state 5
    default: ''
  - type: str
    name: STR6
    description: String Value for state 6
    default: ''
  - type: str
    name: STR7
    description: String Value for state 7
    default: ''
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readEnum.template
    args:
      vlvcc:
      addr:
      name:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      Q:
      P:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
- name: motionInterlockPLC
  description: TODO:ADD DESCRIPTION
  args:
  - type: id
    name: name
    description: Name
  - type: str
    name: device
    description: Device Prefix
  - type: object
    name: port
    description: Fins port
  - type: int
    name: addr
    description: First interlock work
  - type: str
    name: axis1Description
    description: Axis 1 Description
    default: unused
  - type: str
    name: axis2Description
    description: Axis 2 Description
    default: unused
  - type: str
    name: axis3Description
    description: Axis 3 Description
    default: unused
  - type: str
    name: axis4Description
    description: Axis 4 Description
    default: unused
  - type: str
    name: axis5Description
    description: Axis 5 Description
    default: unused
  - type: str
    name: axis6Description
    description: Axis 6 Description
    default: unused
  - type: str
    name: axis7Description
    description: Axis 7 Description
    default: unused
  - type: str
    name: axis8Description
    description: Axis 8 Description
    default: unused
  - type: str
    name: interlock
    description: Interlock suffix (e.g. :INT1)
  - type: str
    name: desc
    description: Permit description (e.g. Front end permit)
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: int
    name: auto_reset
    description: Set to 1 to push the reset button whenever the raw interlocks are
      all ok
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_interlock.template
    args:
      ilk14:
      ilk15:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      interlock:
      port:
      addr:
      timeout:
      device:
      desc:
      name:
      auto_reset:
      ilk8:
      ilk9:
      ilk6:
      ilk7:
      ilk4:
      ilk5:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: NX102_robotDX200_RW
  description: Template database for reading and writing a real value for a DX200
    controller variable through NX102 PLC
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: variable
    description: PV suffix (its associated _RBV will be autogenerated).
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tagread
    description: tag name of ether_ip read value
  - type: str
    name: tagwrite
    description: tag name of ether_ip write value
  - type: str
    name: drvl
    description: Lowest accepted value
  - type: str
    name: drvh
    description: This associates an edm screen with the template
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: desc
    description: Description
    default: ''
  - type: str
    name: readscan
    description: value update time for readback value
    default: 1 second
  - type: float
    name: writescan
    description: value for Ethernet/IP update time - use value without "seconds",
      e.g. 0.5
    default: 0.5
  - type: str
    name: egu
    description: Engineering units
    default: ''
  - type: int
    name: prec
    description: precision for reporting value back
    default: 2
  databases:
  - file: $(DLSPLC)/db/NX102_robotDXrealRW.template
    args:
      tagread:
      name:
      drvh:
      drvl:
      tagwrite:
      egu:
      device:
      prec:
      variable:
      desc:
      writescan:
      port:
      readscan:
- name: externalValve
  description: Valve interface for a valve that lives in another IOC
  args:
  - type: str
    name: device
    description: Device macro of valve that exists in another IOC
  - type: enum
    name: valvetype
    description: Type of Device
    default: valve
    values:
      '"valve"':
      '"absorber"':
      '"shutter"':
- name: dummyValve
  description: "Template database for a dummy vacuum valve, enough to keep\nvacuum
    space happy\nPeter Denison 30/9/2005, based on vacuum valve by\nPete Owens - 26/4/04"
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: con_label0
    description: con_label0
    default: Open
  - type: str
    name: con_label1
    description: con_label1
    default: Close
  - type: str
    name: con_label2
    description: con_label2
    default: Reset
  - type: str
    name: con_label3
    description: con_label3
    default: ''
  - type: str
    name: con_label4
    description: con_label4
    default: ''
  - type: str
    name: con_label5
    description: con_label5
    default: ''
  - type: str
    name: con_label6
    description: con_label6
    default: ''
  - type: str
    name: ilksta_label0
    description: ilksta_label0
    default: Failed
  - type: str
    name: ilksta_label1
    description: ilksta_label1
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: ilksta_label2
    default: OK
  - type: str
    name: ilksta_label3
    description: ilksta_label3
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: ilksta_label4
    default: ''
  - type: str
    name: ilksta_label5
    description: ilksta_label5
    default: ''
  - type: str
    name: ilksta_sv0
    description: ilksta_sv0
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: ilksta_sv1
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: ilksta_sv2
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: ilksta_sv3
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: ilksta_sv4
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: ilksta_sv5
    default: NO_ALARM
  - type: str
    name: allowpv
    description: Template argument
    default: ''
  databases:
  - file: $(DLSPLC)/db/dlsPLC_dummyValve.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      ilksta_label0:
      con_label6:
      con_label5:
      con_label4:
      ilksta_label1:
      allowpv:
      ilksta_label3:
      ilksta_label5:
      ilksta_label4:
      device:
      ilksta_sv2:
      ilksta_sv3:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv5:
      ilksta_sv4:
      ilksta_label2:
- name: fastValve
  description: Template database for a vacuum valve without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: device name of valve control crate
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if valve is in
      DM110..118 then addr=110
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: gilk0
    description: Gauge interlock description 0
    default: unused
  - type: str
    name: gilk1
    description: Gauge interlock description 1
    default: unused
  - type: str
    name: gilk2
    description: Gauge interlock description 2
    default: unused
  - type: str
    name: gilk3
    description: Gauge interlock description 3
    default: unused
  - type: str
    name: gilk4
    description: Gauge interlock description 4
    default: unused
  - type: str
    name: gilk5
    description: Gauge interlock description 5
    default: unused
  - type: str
    name: gilk6
    description: Gauge interlock description 6
    default: unused
  - type: str
    name: gilk7
    description: Gauge interlock description 7
    default: unused
  - type: str
    name: gilk8
    description: Gauge interlock description 8
    default: unused
  - type: str
    name: gilk9
    description: Gauge interlock description 9
    default: unused
  - type: str
    name: gilk10
    description: Gauge interlock description 10
    default: unused
  - type: str
    name: gilk11
    description: Gauge interlock description 11
    default: unused
  - type: str
    name: gilk12
    description: Gauge interlock description 12
    default: unused
  - type: str
    name: gilk13
    description: Gauge interlock description 13
    default: unused
  - type: str
    name: gilk14
    description: Gauge interlock description 14
    default: unused
  - type: str
    name: gilk15
    description: Gauge interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: Arm
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open Armed
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: Open Disarmed
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: desc
    description: Box label for gui
    default: $(device)
  - type: int
    name: showilk
    description: 0 (default) => Gauge, 1 => Arm
    default: 0
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  - type: str
    name: mode1
    description: Template argument
    default: Operational
  - type: str
    name: mode2
    description: Template argument
    default: Service
  databases:
  - file: $(DLSPLC)/db/dlsPLC_fastValve.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      gda_name:
      allowpv:
      ilk8:
      ilksta_label4:
      ilk5:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      gilk14:
      gilk15:
      gilk12:
      port:
      gilk10:
      con_label6:
      ilksta_sv1:
      ilksta_label1:
      addr:
      ilksta_sv0:
      mode1:
      con_label5:
      con_label4:
      ilksta_label5:
      gilk13:
      sta_label5:
      sta_label4:
      sta_label6:
      gilk8:
      sta_label0:
      sta_label3:
      sta_label2:
      gilk4:
      gilk5:
      gilk6:
      gilk11:
      gilk0:
      gilk1:
      gilk2:
      gilk9:
      ilksta_label2:
      vlvcc:
      timeout:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      showilk:
      ilksta_sv4:
      device:
      mode2:
      whylocked:
      desc:
      ilksta_label3:
      ilk4:
      gilk7:
      name:
      ilksta_sv5:
      sta_label1:
      con_label3:
      ilk9:
      ilk6:
      ilk7:
      gda_desc:
      gilk3:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: NX102_mpsPermit
  description: TODO:ADD DESCRIPTION
  args:
  - type: str
    name: device
    description: Template argument
  - type: str
    name: port
    description: Template argument
  - type: str
    name: tag
    description: Template argument
  - type: int
    name: tagidx
    description: Template argument
  - type: str
    name: DIRILK1
    description: Template argument
    default: ''
  databases:
  - file: $(DLSPLC)/db/NX102_mpsPermit.template
    args:
      device:
      tagidx:
      tag:
      port:
      DIRILK1:
- name: BeamRecords
  description: "Creates beam records that the gui can connect to to see which valves
    and\n    shutters are open"
  args:
  - type: str
    name: P
    description: Device prefix for summary PV, records will be $(P):STA$(N) for 1<=N<=#objects
  - type: object
    name: object0
    description: vacuumValve object
  - type: object
    name: object1
    description: vacuumValve object
  - type: object
    name: object2
    description: vacuumValve object
  - type: object
    name: object3
    description: vacuumValve object
  - type: object
    name: object4
    description: vacuumValve object
  - type: object
    name: object5
    description: vacuumValve object
  - type: object
    name: object6
    description: vacuumValve object
  - type: object
    name: object7
    description: vacuumValve object
  - type: object
    name: object8
    description: vacuumValve object
  - type: object
    name: object9
    description: vacuumValve object
  - type: object
    name: object10
    description: vacuumValve object
  - type: object
    name: object11
    description: vacuumValve object
- name: readFloat32
  description: Read the Float32 value stored in 2 DM variables in a PLC
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: DM variable of the LOWERer address of the float32
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: SCAN
    description: Scan rate of read record
    default: 1 second
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readFloat32.template
    args:
      name:
      SCAN:
      Q:
      P:
      timeout:
      port:
      addr:
- name: DCMHeater
  description: "Initially created for use with I22's new (2021) DCM.\n    Calc records
    are created in the dlsPLC_DCMHeater.template file so that they have the archiver
    tag applied."
  args:
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: P
    description: Device Prefix
  - type: str
    name: Q
    description: Device Suffix
  - type: str
    name: desc
    description: Description
  - type: str
    name: vlvcc
    description: Parent PLC control crate device prefix
  - type: object
    name: port
    description: asyn port name of FINS driver
  - type: int
    name: C_addr
    description: Address of the demand register
  - type: int
    name: UTSP_addr
    description: Address of the under temperature setpoint register
  - type: int
    name: PID_offset
    description: 2 digit integer offset of DM variables. E.g. if Proportional             gain
      constant setpoint is in DM150 and readback in DM250 offset=50
  - type: int
    name: PID_output_addr
    description: Address of the PID loop output
  - type: str
    name: addr
    description: DM variable of the int
  - type: int
    name: VAL0
    description: Value for state 0
    default: 0
  - type: int
    name: VAL1
    description: Value for state 1
    default: 1
  - type: int
    name: VAL2
    description: Value for state 2
    default: 2
  - type: int
    name: VAL3
    description: Value for state 3
    default: 3
  - type: int
    name: VAL4
    description: Value for state 4
    default: 4
  - type: int
    name: VAL5
    description: Value for state 5
    default: 5
  - type: int
    name: VAL6
    description: Value for state 6
    default: 6
  - type: int
    name: VAL7
    description: Value for state 7
    default: 7
  - type: str
    name: STR0
    description: String Value for state 0
    default: ''
  - type: str
    name: STR1
    description: String Value for state 1
    default: ''
  - type: str
    name: STR2
    description: String Value for state 2
    default: ''
  - type: str
    name: STR3
    description: String Value for state 3
    default: ''
  - type: str
    name: STR4
    description: String Value for state 4
    default: ''
  - type: str
    name: STR5
    description: String Value for state 5
    default: ''
  - type: str
    name: STR6
    description: String Value for state 6
    default: ''
  - type: str
    name: STR7
    description: String Value for state 7
    default: ''
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: str
    name: ftvl
    description: Type of data in subArray
    default: USHORT
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readEnum.template
    args:
      vlvcc:
      addr:
      name:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      Q:
      P:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
  - file: $(DLSPLC)/db/dlsPLC_DCMHeater.template
    args:
      Q:
      P:
      name:
      desc:
  - file: $(DLSPLC)/db/dlsPLC_writeInt16.template
    args:
      addr:
      Q:
      P:
      timeout:
      port:
      name:
  - file: $(DLSPLC)/db/dlsPLC_readInt16.template
    args:
      vlvcc:
      ftvl:
      addr:
      Q:
      P:
      name:
  - file: $(DLSPLC)/db/dlsPLC_writeEnum.template
    args:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      port:
      addr:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
      Q:
      P:
      name:
      timeout:
- name: NX102_vacValve
  description: Template database for a vacuum valve without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: EtherIP Port Name
  - type: str
    name: tag
    description: NX PLC tag string e.g. V (from V.Control[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from V.Control[1])
  - type: int
    name: ILKNUM
    description: Part of definition of gauge interlocks, Gauge NX PLC tag (Gauge.PIRG[dollar(ILKNUM)])
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it. (Optional - defaults to "")
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom. (Optional.  Defaults to "Open command not allowed")
    default: Open command not allowed
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label7
    description: Label string for control value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Alarm severity for status value 0 (Optional - defaults to MAJOR)
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Alarm severity for status value 1 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Alarm severity for status value 2 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Alarm severity for status value 3 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Alarm severity for status value 4 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Alarm severity for status value 5 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Alarm severity for status value 6 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: Alarm severity for status value 7 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for status value 0 (Optional - defaults to Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for status value 1 (Optional - defaults to Run Ilks
      Ok)
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Label string for status value 2 (Optional - defaults to OK)
    default: OK
  - type: str
    name: ilksta_label3
    description: Label string for status value 3 (Optional - defaults to Disarmed)
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Alarm severity for interlock status value 6 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Alarm severity for interlock status value 7 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE.ZNAM) (Optional - defaults
      Operational)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE.ONAM)  (Optional - defaults
      Service)
    default: Service
  - type: str
    name: DIRILK1
    description: Part of ILK1 PV name (dollar(device):dollar(DIRILK1)ILK), named for
      "direction" of operation controlled by ILK1, e.g. set to OPEN for Bistable valve
      or leave blank for ordinary valve.  (Optional - defaults to "")
    default: ''
  - type: str
    name: DIRILK2
    description: Part of ILK2 PV name (dollar(device):dollar(DIRILK2)ILK), named for
      "direction" of operation controlled by ILK2, e.g. set to CLOSE for Bistable
      valves (Optional - defaults to "ILK2")
    default: ILK2
  - type: id
    name: name
    description: Object name and associated gui name      (Optional - defaults to
      "")
  - type: str
    name: desc
    description: Box label for gui                        (Optional - defaults to
      value of device macro)
    default: $(device)
  databases:
  - file: $(DLSPLC)/db/NX102_vacValve.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      ilksta_label5:
      DIRILK1:
      DIRILK2:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      sta_label6:
      device:
      whylocked:
      desc:
      ILKNUM:
      name:
      ilksta_label7:
- name: fastVacuumMaster
  description: TODO:ADD DESCRIPTION
  args:
  - type: id
    name: name
    description: Gui tag
  - type: str
    name: dom
    description: Domain, eg, FE06I
  - type: object
    name: fins_port
    description: FINS port
  - type: str
    name: eip_port
    description: EtherIP port
  - type: str
    name: device
    description: Device prefix
  values:
  - description: device name
    name: device
    value: :- {{dom}}-VA-FAST-01
  databases:
  - file: $(DLSPLC)/db/dlsPLC_fastVacuumMaster.template
    args:
      device:
      eip_port:
- name: read100
  description: "Template that reads 100 blocks of memory into records so\nthat it
    can be used in various templates."
  args:
  - type: str
    name: device
    description: Device prefix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: century
    description: Read DM$(century)00..DM$(century)99
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: str
    name: SCAN
    description: Scan rate of read record
    default: 1 second
  databases:
  - file: $(DLSPLC)/db/dlsPLC_read100.template
    args:
      device:
      century:
      port:
      timeout:
      SCAN:
- name: NX102_temperature
  description: "Template database for an individual temperature on a\ntemperature
    PLC."
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: temp
    description: PV suffix
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: lolo
    description: Lolo alarm limit
  - type: str
    name: low
    description: Low alarm limit
  - type: str
    name: high
    description: High alarm limit
  - type: str
    name: hihi
    description: Hihi alarm limit
  - type: str
    name: hopr
    description: High operating range
  - type: str
    name: lopr
    description: Low operating range
  - type: str
    name: tag
    description: Tag name on PLC -- default "Temp" for e.g. Temp.Value[tagindex] E
    default: '"'
  - type: str
    name: llsv
    description: Lolo severity
    default: NO_ALARM
  - type: str
    name: lsv
    description: Low severity
    default: NO_ALARM
  - type: int
    name: hyst
    description: alarm deadband
    default: 0
  - type: float
    name: adel
    description: archiver deadband
    default: 0.2
  - type: int
    name: scalefac
    description: scale factor for temperature/setpoint (1 for new PLC templates, 10
      for old where PLC reports in 10ths of a degree)
    default: 1
  - type: int
    name: tempcal
    description: temperature calibration offset in egu (default=0)
    default: 0
  - type: int
    name: prec
    description: precision for reporting value back
    default: 1
  - type: id
    name: name
    description: Object and gui association name
  - type: str
    name: disable_pv
    description: If set, then this is the value of A in disable_calc
    default: $(device)$(temp):ZERO
  - type: str
    name: disable_calc
    description: If this condition is met then save the current limit and set the
      limit to 3276.7, disabling the interlock for this PV
    default: A=1
  - type: str
    name: egu
    description: This associates an edm screen with the template
    default: C
  - type: str
    name: desc
    description: Description
  databases:
  - file: $(DLSPLC)/db/NX102_temperature.template
    args:
      lsv:
      tag:
      disable_calc:
      port:
      hyst:
      tempcal:
      lopr:
      hopr:
      lolo:
      prec:
      low:
      disable_pv:
      scalefac:
      device:
      desc:
      high:
      name:
      temp:
      hihi:
      egu:
      llsv:
      adel:
- name: PIDControl
  description: "Associates a PID control that runs on the PLC.\n    Calc records are
    created in the associated template file so that they have the archiver tag applied.\n\
    \    Initially created for use with K11's proportional valve (2021)."
  args:
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: P
    description: Device Prefix
  - type: str
    name: Q
    description: Device Suffix
  - type: str
    name: desc
    description: Description
  - type: str
    name: vlvcc
    description: Parent PLC control crate device prefix
  - type: object
    name: port
    description: asyn port name of FINS driver
  - type: int
    name: SetValue_addr
    description: Address of the value register for value setting
  - type: int
    name: PID_output_addr
    description: Address of the current PID output value read
  - type: int
    name: Control_addr
    description: Address of the demand register for mode setting
  - type: int
    name: PID_addr
    description: Address of the PID values group read block (starting by Proportional
      constant)
  - type: int
    name: PIDwrite_addr
    description: Address of the PID values group write block (starting by Proportional
      constant)
  - type: str
    name: units
    description: Value units
  - type: int
    name: precision
    description: Decimal precision for setpoint (converted from integer)
  - type: str
    name: addr
    description: DM variable of the int
  - type: int
    name: VAL0
    description: Value for state 0
    default: 0
  - type: int
    name: VAL1
    description: Value for state 1
    default: 1
  - type: int
    name: VAL2
    description: Value for state 2
    default: 2
  - type: int
    name: VAL3
    description: Value for state 3
    default: 3
  - type: int
    name: VAL4
    description: Value for state 4
    default: 4
  - type: int
    name: VAL5
    description: Value for state 5
    default: 5
  - type: int
    name: VAL6
    description: Value for state 6
    default: 6
  - type: int
    name: VAL7
    description: Value for state 7
    default: 7
  - type: str
    name: STR0
    description: String Value for state 0
    default: ''
  - type: str
    name: STR1
    description: String Value for state 1
    default: ''
  - type: str
    name: STR2
    description: String Value for state 2
    default: ''
  - type: str
    name: STR3
    description: String Value for state 3
    default: ''
  - type: str
    name: STR4
    description: String Value for state 4
    default: ''
  - type: str
    name: STR5
    description: String Value for state 5
    default: ''
  - type: str
    name: STR6
    description: String Value for state 6
    default: ''
  - type: str
    name: STR7
    description: String Value for state 7
    default: ''
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: str
    name: ftvl
    description: Type of data in subArray
    default: USHORT
  - type: str
    name: UNITS
    description: common units
  - type: int
    name: PREC
    description: decimal precision for SetPoint and Proportional Constant
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readEnum.template
    args:
      vlvcc:
      addr:
      name:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      Q:
      P:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
  - file: $(DLSPLC)/db/dlsPLC_writeInt16.template
    args:
      addr:
      Q:
      P:
      timeout:
      port:
      name:
  - file: $(DLSPLC)/db/dlsPLC_readInt16.template
    args:
      vlvcc:
      ftvl:
      addr:
      Q:
      P:
      name:
  - file: $(DLSPLC)/db/dlsPLC_writeEnum.template
    args:
      STR3:
      STR2:
      STR1:
      STR0:
      STR7:
      STR6:
      STR5:
      STR4:
      port:
      addr:
      VAL3:
      VAL2:
      VAL1:
      VAL0:
      VAL7:
      VAL6:
      VAL5:
      VAL4:
      Q:
      P:
      name:
      timeout:
  - file: $(DLSPLC)/db/dlsPLC_PIDControl.template
    args:
      name:
      PREC:
      Q:
      P:
      UNITS:
      desc:
- name: writeFloat32
  description: Write an float32 value into a PLC DM variable
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: DM variable of the LOWERer address of the float32
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: id
    name: name
    description: Object name and gui association name
  - type: int
    name: drvl
    description: Drive low limit
    default: 0
  - type: int
    name: drvh
    description: Drive high limit
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_writeFloat32.template
    args:
      name:
      drvh:
      drvl:
      Q:
      P:
      timeout:
      port:
      addr:
- name: NX102_robotDX200_status
  description: Template database for reading the status of a DX200 controller through
    NX102 PLC
  args:
  - type: str
    name: P
    description: PV prefix
  - type: str
    name: Q
    description: PV suffix
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tag
    description: ether_ip tag name of robot status
  - type: str
    name: numbits
    description: number of bits used
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: scan
    description: value update time
    default: 1 second
  - type: str
    name: desc
    description: Description
    default: ''
  - type: str
    name: label0
    description: Label string for status bit 0
    default: unused
  - type: str
    name: label1
    description: Label string for status bit 1
    default: unused
  - type: str
    name: label2
    description: Label string for status bit 2
    default: unused
  - type: str
    name: label3
    description: Label string for status bit 3
    default: unused
  - type: str
    name: label4
    description: Label string for status bit 4
    default: unused
  - type: str
    name: label5
    description: Label string for status bit 5
    default: unused
  - type: str
    name: label6
    description: Label string for status bit 6
    default: unused
  - type: str
    name: label7
    description: Label string for status bit 7
    default: unused
  - type: str
    name: label8
    description: Label string for status bit 8
    default: unused
  - type: str
    name: label9
    description: Label string for status bit 9
    default: unused
  - type: str
    name: labelA
    description: Label string for status bit 10
    default: unused
  - type: str
    name: labelB
    description: Label string for status bit 11
    default: unused
  - type: str
    name: labelC
    description: Label string for status bit 12
    default: unused
  - type: str
    name: labelD
    description: Label string for status bit 13
    default: unused
  - type: str
    name: labelE
    description: Label string for status bit 14
    default: unused
  - type: str
    name: labelF
    description: This associates a BOY screen with the template
    default: unused
  databases:
  - file: $(DLSPLC)/db/NX102_robotDXstatus.template
    args:
      scan:
      numbits:
      tag:
      port:
      labelA:
      labelB:
      labelC:
      labelD:
      labelE:
      labelF:
      label8:
      label9:
      label0:
      label1:
      label2:
      label3:
      label4:
      label5:
      label6:
      label7:
      Q:
      P:
      desc:
      name:
- name: interlockNameOverride
  description: Template allowing interlock names to be overriden.
  args:
  - type: str
    name: device
    description: device prefix
  - type: str
    name: interlock
    description: Interlock suffix (e.g. :INT1)
  - type: str
    name: ilk0
    description: Interlock description 0
  - type: str
    name: ilk1
    description: Interlock description 1
  - type: str
    name: ilk2
    description: Interlock description 2
  - type: str
    name: ilk3
    description: Interlock description 3
  - type: str
    name: ilk4
    description: Interlock description 4
  - type: str
    name: ilk5
    description: Interlock description 5
  - type: str
    name: ilk6
    description: Interlock description 6
  - type: str
    name: ilk7
    description: Interlock description 7
  - type: str
    name: ilk8
    description: Interlock description 8
  - type: str
    name: ilk9
    description: Interlock description 9
  - type: str
    name: ilk10
    description: Interlock description 10
  - type: str
    name: ilk11
    description: Interlock description 11
  - type: str
    name: ilk12
    description: Interlock description 12
  - type: str
    name: ilk13
    description: Interlock description 13
  - type: str
    name: ilk14
    description: Interlock description 14
  - type: str
    name: ilk15
    description: Interlock description 15
  databases:
  - file: $(DLSPLC)/db/dlsPLC_valveIlkNameOverride.template
    args:
      ilk14:
      ilk15:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      interlock:
      device:
      ilk8:
      ilk9:
      ilk6:
      ilk7:
      ilk4:
      ilk5:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: temperature
  description: "Template database for an individual temperature on a\ntemperature
    PLC. Requires an instance of dlsPLC_read100 for century=1 and\ncentury=2"
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: temp
    description: PV suffix
  - type: str
    name: desc
    description: Description
  - type: str
    name: tmpcc
    description: Parent temperature control crate prefix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: offset
    description: 2 digit integer offset of DM variables. E.g. if setpoint is in DM136
      and readback in DM236 offset=36
  - type: str
    name: lolo
    description: Lolo alarm limit
  - type: str
    name: low
    description: Low alarm limit
  - type: str
    name: high
    description: High alarm limit
  - type: str
    name: hihi
    description: Hihi alarm limit
  - type: str
    name: hopr
    description: High operating range
  - type: str
    name: lopr
    description: Low operating range
  - type: str
    name: llsv
    description: Lolo severity
    default: NO_ALARM
  - type: str
    name: lsv
    description: Low severity
    default: NO_ALARM
  - type: int
    name: hyst
    description: alarm deadband
    default: 0
  - type: float
    name: adel
    description: archiver deadband
    default: 0.2
  - type: int
    name: scalefac
    description: scale factor for temperature/setpoint
    default: 10
  - type: int
    name: tempcal
    description: temperature calibration offset in egu (default=0)
    default: 0
  - type: int
    name: prec
    description: precision for reporting value back
    default: 1
  - type: id
    name: name
    description: Object and gui association name
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: disable_pv
    description: If set, then this is the value of A in disable_calc
    default: $(device)$(temp):ZERO
  - type: str
    name: disable_calc
    description: If this condition is met then save the current limit and set the
      limit to 3276.7, disabling the interlock for this PV
    default: A=1
  - type: int
    name: incentury
    description: The Century digit(s) for the PLC D address to read temperature values
    default: 2
  - type: int
    name: outcentury
    description: The Century digit(s) for the PLC D address to write setpoints
    default: 1
  - type: str
    name: egu
    description: This associates an edm screen with the template
    default: C
  databases:
  - file: $(DLSPLC)/db/dlsPLC_temperature.template
    args:
      gda_name:
      lsv:
      llsv:
      prec:
      disable_calc:
      port:
      hyst:
      tempcal:
      incentury:
      lopr:
      hopr:
      lolo:
      outcentury:
      low:
      disable_pv:
      tmpcc:
      scalefac:
      offset:
      device:
      desc:
      high:
      name:
      temp:
      hihi:
      egu:
      timeout:
      adel:
      gda_desc:
- name: motionLimitInterlock
  description: TODO:ADD DESCRIPTION
  args:
  - type: object
    name: PLC
    description: Instance of motionInterlockPLC to belong to
  - type: enum
    name: axisNo
    description: Axis Number
    values:
      '"1"':
      '"6"':
      '"7"':
      '"4"':
      '"5"':
      '"8"':
      '"2"':
      '"3"':
  - type: enum
    name: pLim
    description: 1 for +lim, 0 for -lim
    values:
      '"0"':
      '"1"':
  - type: str
    name: ilk0
    description: Interlock 0 description
    default: unused
  - type: str
    name: ilk1
    description: Interlock 1 description
    default: unused
  - type: str
    name: ilk2
    description: Interlock 2 description
    default: unused
  - type: str
    name: ilk3
    description: Interlock 3 description
    default: unused
  - type: str
    name: ilk4
    description: Interlock 4 description
    default: unused
  - type: str
    name: ilk5
    description: Interlock 5 description
    default: unused
  - type: str
    name: ilk6
    description: Interlock 6 description
    default: unused
  - type: str
    name: ilk7
    description: Interlock 7 description
    default: unused
  - type: str
    name: ilk8
    description: Interlock 8 description
    default: unused
  - type: str
    name: ilk9
    description: Interlock 9 description
    default: unused
  - type: str
    name: ilk10
    description: Interlock 10 description
    default: unused
  - type: str
    name: ilk11
    description: Interlock 11 description
    default: unused
  - type: str
    name: ilk12
    description: Interlock 12 description
    default: unused
  - type: str
    name: ilk13
    description: Interlock 13 description
    default: unused
  - type: str
    name: ilk14
    description: Interlock 14 description
    default: unused
  - type: str
    name: ilk15
    description: Interlock 15 description
    default: unused
- name: vacPump
  description: Template database for a vacuum Pump without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: device name of Pump control crate
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if pump is in
      DM110..118 then addr=110
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to On)
    default: On
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Off)
    default: Off
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to On)
    default: On
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Turning On)
    default: Turning On
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Off)
    default: Off
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Turning Off)
    default: Turning Off
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)
    default: Service
  - type: enum
    name: pumptype
    description: Type of Pump
    default: turbo
    values:
      '"cryo"':
      '"scroll"':
      '"turbo"':
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacPump.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      gda_name:
      allowpv:
      ilk8:
      ilksta_label4:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      port:
      ilksta_sv4:
      con_label6:
      mode2:
      addr:
      mode1:
      ilksta_label1:
      con_label5:
      con_label4:
      ilksta_label5:
      sta_label5:
      sta_label4:
      sta_label6:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      ilksta_label2:
      vlvcc:
      timeout:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      device:
      whylocked:
      ilksta_label3:
      ilk5:
      name:
      pumptype:
      con_label3:
      ilk9:
      ilk6:
      ilk7:
      gda_desc:
      ilk4:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: readInt32
  description: Read the Int32 value stored in 2 DM variables in a PLC
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: addr
    description: DM variable of the int
  - type: str
    name: port
    description: Template argument
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: int
    name: scale
    description: Scaling of raw value into EGUs
    default: 1
  - type: int
    name: roffset
    description: Pre scaling offset in cts
    default: 0
  - type: int
    name: offset
    description: Offset of value in EGUs
    default: 0
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: scan
    description: Template argument
    default: 1 second
  - type: str
    name: egu
    description: Template argument
    default: mm
  - type: int
    name: prec
    description: Template argument
    default: 3
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readInt32.template
    args:
      scale:
      addr:
      scan:
      roffset:
      egu:
      Q:
      P:
      prec:
      timeout:
      offset:
      port:
      name:
- name: vacValveGroup
  description: "Template database for a group of up to 8 vacuum valves\nPete Owens
    - 3/5/05"
  args:
  - type: str
    name: device
    description: device name
  - type: float
    name: delay
    description: delay between opening valves
  - type: str
    name: valve1
    description: Valve 1 device name
  - type: str
    name: valve2
    description: Valve 2 device name
  - type: str
    name: valve3
    description: Valve 3 device name
  - type: str
    name: valve4
    description: Valve 4 device name
  - type: str
    name: valve5
    description: Valve 5 device name
  - type: str
    name: valve6
    description: Valve 6 device name
  - type: str
    name: valve7
    description: Valve 7 device name
  - type: str
    name: valve8
    description: Valve 8 device name
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)
    default: Service
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValveGroup.template
    args:
      mode2:
      mode1:
      delay:
      device:
      valve8:
      valve4:
      valve5:
      valve6:
      valve7:
      valve1:
      valve2:
      valve3:
- name: NX102_fastValve
  description: Template database for a fast vacuum valve.
  args:
  - type: str
    name: device
    description: Mandatory.  Device name of the fast valve used as PV name prefix.
  - type: str
    name: port
    description: Mandatory.  EtherIP communication port name.
  - type: str
    name: tag
    description: Mandatory.  NX PLC protocol tag string.
  - type: int
    name: tagidx
    description: Mandatory.  NX PLC tag index number.
  - type: int
    name: ILKNUM
    description: Mandatory.  Part of definition of gauge interlocks, Gauge NX PLC
      tag (Gauge.PIRG[dollar(ILKNUM)])
  - type: str
    name: allowpv
    description: Optional.  Defaults to "".  If specified, then only write an open
      command when this is non-zero. MUST have CP at the end of it.
    default: ''
  - type: str
    name: whylocked
    description: Optional.  Defaults to "Open command not allowed".  String for GUI
      screen as to precisely why the device is locked and by whom.
    default: Open command not allowed
  - type: str
    name: con_label0
    description: Optional.  Defaults to Open.   Label string for control value 0.
    default: Open
  - type: str
    name: con_label1
    description: Optional.  Defaults to Close.  Label string for control value 1.
    default: Close
  - type: str
    name: con_label2
    description: Optional.  Defaults to Reset.  Label string for control value 2.
    default: Reset
  - type: str
    name: con_label3
    description: Optional.  Defaults to Arm.    Label string for control value 3.
    default: Arm
  - type: str
    name: con_label4
    description: Optional.  Defaults to "".     Label string for control value 4.
    default: Partially Arm
  - type: str
    name: con_label5
    description: Optional.  Defaults to "".     Label string for control value 5.
    default: ''
  - type: str
    name: con_label6
    description: Optional.  Defaults to "".     Label string for control value 6.
    default: ''
  - type: str
    name: con_label7
    description: Optional.  Defaults to "".     Label string for control value 7.
    default: ''
  - type: str
    name: sta_label0
    description: "Optional.  Defaults to Fault.\t\t Label string for status value
      0."
    default: Fault
  - type: str
    name: sta_label1
    description: "Optional.  Defaults to Open Fully Armed.\t Label string for status
      value 1."
    default: Open Armed
  - type: str
    name: sta_label2
    description: "Optional.  Defaults to Opening.\t\t Label string for status value
      2."
    default: Opening
  - type: str
    name: sta_label3
    description: "Optional.  Defaults to Closed.\t\t Label string for status value
      3."
    default: Closed
  - type: str
    name: sta_label4
    description: "Optional.  Defaults to Closing.\t\t Label string for status value
      4."
    default: Closing
  - type: str
    name: sta_label5
    description: "Optional.  Defaults to Open Disarmed.\t Label string for status
      value 5."
    default: Open Disarmed
  - type: str
    name: sta_label6
    description: Optional.  Defaults to Open Partially Armed.  Label string for status
      value 6.
    default: Partially Armed
  - type: str
    name: sta_label7
    description: "Optional.  Defaults to \"\".  \t     \t Label string for status
      value 7."
    default: ''
  - type: str
    name: sta_sv0
    description: "Optional.  Defaults to MAJOR.         \t Alarm severity for status
      value 0."
    default: MAJOR
  - type: str
    name: sta_sv1
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 1."
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 2."
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 3."
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 4."
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 5."
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 6."
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 7."
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Optional.  Defaults to Failed.       Label string for status value
      0.
    default: Failed
  - type: str
    name: ilksta_label1
    description: Optional.  Defaults to Run Ilks Ok.  Label string for status value
      1.
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: "Optional.  Defaults to OK. \t       Label string for status value
      2."
    default: OK
  - type: str
    name: ilksta_label3
    description: Optional.  Defaults to Disarmed.     Label string for status value
      3.
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: "Optional.  Defaults to \"\".\t       Label string for status value
      4."
    default: ''
  - type: str
    name: ilksta_label5
    description: "Optional.  Defaults to \"\".\t       Label string for status value
      5."
    default: ''
  - type: str
    name: ilksta_label6
    description: "Optional.  Defaults to \"\".\t       Label string for status value
      6."
    default: ''
  - type: str
    name: ilksta_label7
    description: Optional.  Defaults to "".           Label string for status value
      7.
    default: ''
  - type: str
    name: ilksta_sv0
    description: Optional.  Defaults to MAJOR.        Alarm severity for interlock
      status value 0.
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 1.
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 2.
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 3.
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 4.
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 5.
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 6.
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 7.
    default: NO_ALARM
  - type: str
    name: mode1
    description: Optional.  Defaults to Operational.  Name of first mode of operation,
      remote commands allowed.  (Name is mode1 but value is 0.  i.e. :MODE.ZNAM)
    default: Operational
  - type: str
    name: mode2
    description: Optional.  Defaults to Service.      Name of second mode of operation,
      local control only.  (Name is mode2 but value is 1.  i.e. :MODE.ONAM)
    default: Service
  - type: str
    name: DIRILK1
    description: Optional.  Defaults to "".           Component interlock PV names
      (dollar(device):dollar(DIRILK1)ILK), named for "direction" of operation controlled
      by ILK1.
    default: ''
  - type: int
    name: showilk
    description: 'Optional.  Defaults to 0.            Which set of interlocks to
      display - 0: Gauge 1: Arm'
    default: 0
  - type: id
    name: name
    description: Optional.  Defaults to "".           Object name and associated gui
      name.
  databases:
  - file: $(DLSPLC)/db/NX102_fastValve.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      ilksta_label5:
      DIRILK1:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      sta_label6:
      device:
      whylocked:
      ILKNUM:
      name:
      ilksta_label7:
      showilk:
- name: NX102_radmonreset
  description: "Template database for a vacuum valve\nIan Gillingham October 2012"
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: asyn port name
  - type: str
    name: radmon_device
    description: full PV name of RAD MON :RESET:OK
  databases:
  - file: $(DLSPLC)/db/NX102_radmonreset.template
    args:
      device:
      port:
      radmon_device:
- name: vacValveSoftOpening
  description: Template database for a soft opening vacuum valve.
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: 'device name of valve control crate (prefix of device name), NOTE:
      make sure there is a read100 component whose century (0 means 0-99) includes
      the object address'
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if valve is in
      DM110..119 then addr=110
  - type: str
    name: fullilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: fullilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: fullilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: fullilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: fullilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: fullilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: fullilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: fullilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: fullilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: fullilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: fullilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: fullilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: fullilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: fullilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: fullilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: fullilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: softilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: softilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: softilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: softilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: softilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: softilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: softilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: softilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: softilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: softilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: softilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: softilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: softilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: softilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: softilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: softilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Soft Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to Full Open)
    default: Full Open
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Full Open)
    default: Full Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Soft Open)
    default: Soft Open
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for interlock status value 0 (Optional - defaults to
      Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for interlock status value 1 (Optional - defaults to
      Run Ilks Ok)
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Label string for interlock status value 2 (Optional - defaults to
      OK)
    default: OK
  - type: str
    name: ilksta_label3
    description: Label string for interlock status value 3 (Optional - defaults to
      Disarmed)
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Label string for interlock status value 4 (Optional - defaults to
      "")
    default: ''
  - type: str
    name: ilksta_label5
    description: Label string for interlock status value 5 (Optional - defaults to
      "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: allowpv
    description: Template argument
    default: ''
  - type: str
    name: whylocked
    description: Template argument
    default: Open command not allowed
  - type: int
    name: timeout
    description: Template argument
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValveSoftOpening.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      ilksta_label0:
      con_label6:
      con_label5:
      con_label4:
      ilksta_sv3:
      allowpv:
      ilksta_label4:
      softilk1:
      fullilk1:
      fullilk0:
      fullilk3:
      fullilk2:
      fullilk5:
      fullilk4:
      fullilk7:
      fullilk6:
      fullilk9:
      fullilk8:
      ilksta_sv0:
      ilksta_sv1:
      port:
      ilksta_sv4:
      ilksta_label1:
      softilk10:
      addr:
      softilk11:
      ilksta_label3:
      ilksta_label5:
      gda_name:
      sta_label5:
      sta_label4:
      softilk12:
      softilk13:
      softilk14:
      softilk15:
      sta_label3:
      sta_label2:
      sta_label1:
      ilksta_sv5:
      softilk0:
      sta_sv4:
      sta_label0:
      softilk8:
      softilk9:
      ilksta_label2:
      softilk2:
      softilk3:
      sta_sv3:
      sta_sv2:
      softilk6:
      softilk7:
      softilk4:
      softilk5:
      sta_label6:
      device:
      sta_sv6:
      sta_sv5:
      whylocked:
      sta_sv1:
      name:
      sta_sv0:
      ilksta_sv2:
      fullilk11:
      fullilk10:
      fullilk13:
      fullilk12:
      fullilk15:
      fullilk14:
      timeout:
      gda_desc:
      vlvcc:
- name: genericDevice
  description: Template5B database for a vacuum valve without debounce or raw air
    records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: device name of valve control crate
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if valve is in
      DM110..118 then addr=110
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: On
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Off
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: On
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: ''
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Off
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: ''
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE)
    default: Operational
  - type: str
    name: mode2
    description: This associates an edm screen with the template
    default: Service
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  databases:
  - file: $(DLSPLC)/db/dlsPLC_genericDevice.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      gda_name:
      allowpv:
      ilk8:
      ilksta_label4:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      port:
      ilksta_sv4:
      con_label6:
      mode2:
      addr:
      mode1:
      ilksta_label1:
      con_label5:
      con_label4:
      ilksta_label5:
      sta_label5:
      sta_label4:
      sta_label6:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      ilksta_label2:
      vlvcc:
      timeout:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      device:
      whylocked:
      ilksta_label3:
      ilk5:
      name:
      con_label3:
      ilk9:
      ilk6:
      ilk7:
      gda_desc:
      ilk4:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: NX102_PreVacCoils_SMControl
  description: 'Template database for a control of PreVac Sample Manipulator.  Two
    parameters for source and target chambers (where to transfer sample from and to
    respectively) have to be written.  Further writes to NX PLC registers act commands
    to turn on motors and gas, and transfer commands for Prepare, Transfer, Abort,
    Reset.  Each of these writes has to have associated pulsed trigger writes to cause
    the NX PLC to act on the latest value.  The NX PLC processes the requested value
    and decides whether to pass it to the PreVac Modbus PLC.  If the latter, the PreVac
    Modbus PLC also processes the requested value and decides whether to act on it
    or not.  EPICS does not have any direct communication with the PreVac Modbus PLC.  Intentions
    for macros as follows: (1) Strings for posportID<n>_shortdesc macros should be
    provided only for ports which are present, but they should be left alone as empty
    strings for ports which are not present.  (2) Alarm severities of MAJOR should
    be defined for posportID<n>_SV macros for ports which are not present, but those
    which are present are left alone as NO_ALARM.  (3) Setting the posportID<n>_compass
    macros must result in a unique compass direction for all ports n=1-8 for the embedded
    diagram display on the Control screen to work properly.  The default values conform
    to this.  (4) Set targetparam_init to a posport ID number of a port which is present.  (5)
    The value of posportIDs_allowedmask defaults to a safe value of 0, which causes
    no transfers to be allowed, so you must define it according to the ports present
    to allow transfers.  (NOTE: In descriptions and macro names, "arm" is a noun referring
    to the sample manipulator arm and not a verb as used for a fast valve).'
  args:
  - type: str
    name: device
    description: Mandatory. Device name.
  - type: str
    name: port
    description: Mandatory. Comms port (DLS NX102) PLC controller is on.
  - type: str
    name: tag_sourceparam
    description: Mandatory. NX PLC tag string to write the source chamber parameter.
  - type: str
    name: tag_targetparam
    description: Mandatory. NX PLC tag string to write the target chamber parameter.
  - type: str
    name: tag_setcoil
    description: Mandatory. NX PLC tag string to set a Coil to TRUE.
  - type: str
    name: tag_unsetcoil
    description: Mandatory. NX PLC tag string to set a Coil to FALSE.
  - type: str
    name: tag_Tsourceparam
    description: Optional.  Defaults to T$(tag_sourceparam).  NX PLC tag string to
      set the trigger to set the source chamber parameter.
    default: T$(tag_sourceparam)
  - type: str
    name: tag_Ttargetparam
    description: Optional.  Defaults to T$(tag_targetparam).  NX PLC tag string to
      set the trigger to set the target chamber parameter.
    default: T$(tag_targetparam)
  - type: str
    name: tag_Tsetcoil
    description: Optional.  Defaults to T$(tag_setcoil).      NX PLC tag string to
      set the trigger to set a Coil to TRUE.
    default: T$(tag_setcoil)
  - type: str
    name: tag_Tunsetcoil
    description: Optional.  Defaults to T$(tag_unsetcoil).    NX PLC tag string to
      set the trigger to set a Coil to FALSE.
    default: T$(tag_unsetcoil)
  - type: float
    name: coilout_scanrate
    description: Optional.  Defaults to .2   The value of scanrate which when writing
      to NX PLC the coil output records set the EtherIP scanrate S flag to in their
      OUT field syntax to add the readback to one of the EtherIP scanlists. (These
      are the records which run commands).
    default: 0.2
  - type: float
    name: paramout_scanrate
    description: Optional.  Defaults to .2   The value of scanrate which when writing
      to NX PLC the parameter output records set the EtherIP scanrate S flag to in
      their OUT field syntax to add the readback to one of the EtherIP scanlists.
    default: 0.5
  - type: float
    name: trigger_scanrate
    description: Optional.  Defaults to .2   The value of scanrate which when writing
      to NX PLC triggers the trigger output records set the EtherIP scanrate S flag
      to in their OUT field syntax to add the readback to one of the EtherIP scanlists.
    default: 0.2
  - type: int
    name: posportIDs_allowedmask
    description: Optional.  Defaults to 0.   Mask of bits set for each posportID number
      which is allowed as source and target.  (i.e. a chamber is present).  Bit 0
      represents the Arm - do NOT set that bit, it is not allowed as a target and
      has special functionality for error recovery as a source.  Although the macro
      is optional, the default value doesnt allow any transfers, so you must set this.
    default: 0
  - type: str
    name: posportID0_shortdesc
    description: Optional.  Defaults to Arm.           Short (for menu) description
      of zeroth port (for error recovery only).  The posportID1...7_shortdesc macros
      are not populated by default, so you must set some of them to get a readable
      menu button.
    default: Arm
  - type: str
    name: posportID1_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 1.
    default: ''
  - type: str
    name: posportID2_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 2.
    default: ''
  - type: str
    name: posportID3_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 3.
    default: ''
  - type: str
    name: posportID4_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 4.
    default: ''
  - type: str
    name: posportID5_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 5.
    default: ''
  - type: str
    name: posportID6_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 6.
    default: ''
  - type: str
    name: posportID7_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 7.
    default: ''
  - type: str
    name: posportID8_shortdesc
    description: Optional.  Defaults to empty string.  Short (for menu) description
      of posport 8.
    default: ''
  - type: str
    name: posportID0_sourceSV
    description: Optional.  Defaults to MINOR.         Alarm severity for posport
      ID 0 for the Arm as source.  It is allowed as part of error recovery.
    default: MINOR
  - type: str
    name: posportID0_targetSV
    description: Optional.  Defaults to MAJOR.         Alarm severity for posport
      ID 0 for the Arm as target.
    default: MAJOR
  - type: str
    name: posportID1_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 1, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID2_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 2, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID3_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 3, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID4_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 4, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID5_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 5, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID6_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 6, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID7_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 7, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID8_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 8, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID1_compass
    description: Optional.  Defaults to E.             Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen for posport ID1.
    default: E
  - type: str
    name: posportID2_compass
    description: Optional.  Defaults to NE.            Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID2.
    default: NE
  - type: str
    name: posportID3_compass
    description: Optional.  Defaults to N.             Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID3.
    default: N
  - type: str
    name: posportID4_compass
    description: Optional.  Defaults to NW.            Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID4.
    default: NW
  - type: str
    name: posportID5_compass
    description: Optional.  Defaults to W.             Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID5.
    default: W
  - type: str
    name: posportID6_compass
    description: Optional.  Defaults to SW.            Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID6.
    default: SW
  - type: str
    name: posportID7_compass
    description: Optional.  Defaults to S.             Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID7.
    default: S
  - type: str
    name: posportID8_compass
    description: Optional.  Defaults to SE.            Allowed values N,NW,W,SW,S,SE,E,NE.  Position
      in the layout of the sample manipulator diagram on the control screen brought
      up from the Control button on the generated screen, posport ID8.
    default: SE
  - type: str
    name: ctrlprefix
    description: Optional.  Defaults to :CTRL          Prefix for SM control records.
    default: :CTRL
  - type: str
    name: paramprefix
    description: Optional.  Defaults to :PARAM         Prefix for SM parameter records.
    default: :PARAM
  - type: int
    name: paramprec
    description: Optional.  Defaults to 0.             Precision of the parameter
      value.
    default: 0
  - type: str
    name: staprefix
    description: Optional.  Defaults to :STA           Prefix for SM status records
      for screens.  Must match SM status template.
    default: :STA
  - type: str
    name: posportprefix
    description: Optional.  Defaults to :POSPORT       Prefix for SM port status records
      for screens.  Must match definitions for SM port status template.
    default: :POSPORT
  - type: str
    name: sourceparam_shortdesc
    description: Optional.  Defaults to Source.        Short description or name of
      the Source parameter.
    default: Source
  - type: str
    name: targetparam_shortdesc
    description: Optional.  Defaults to Target.        Short description or name of
      the Target parameter.
    default: Target
  - type: str
    name: sourceparam_longdesc
    description: Optional.  Defaults to $(sourceparam_shortdesc=Source) chamber to
      move from.  Long description of the Source Parameter.
    default: $(sourceparam_shortdesc=Source) chamber to move from.
  - type: str
    name: targetparam_longdesc
    description: Optional.  Defaults to $(targetparam_shortdesc=Target) chamber to
      move to.  Long description of the Target Parameter.
    default: ' $(targetparam_shortdesc=Target) chamber to move to.'
  - type: int
    name: sourceparam_init
    description: Optional.  Defaults to 0 (Arm).       Initial value of the user demand
      for the Source parameter.  Helps the display on reboot in the absence of autosave.
    default: 0
  - type: int
    name: targetparam_init
    description: Optional.  Defaults to 1.             Initial value of the user demand
      for the Target parameter.  Helps the display on reboot in the absence of autosave.  The
      default value could not be left at 0 because the Arm is never allowed as target.  The
      value of 1 is arbitrary.  Recommend set this to the ID of one of the ports which
      is present in the manipulator configuration.
    default: 1
  - type: int
    name: trigger_onval
    description: Optional.  Defaults to 1.             Value to write to a trigger
      tag to pulse the trigger on.  Must be consistent with trigger_offval.  Together
      they allow the defininition of the trigger pulse as a blip or a dip with blip
      as the default.
    default: 1
  - type: int
    name: trigger_offval
    description: Optional.  Defaults to 0.             Value to write to a trigger
      tag to pulse the trigger off.  Must be consistent with trigger_onval.  Together
      they allow the defininition of the trigger pulse as a blip or a dip with blip
      as the default.
    default: 0
  - type: str
    name: trigger_ONAM
    description: Optional.  Defaults to Trigger On.    Label for 1 state on a trigger
      record.  Must be consistent with trigger_onval and trigger_offval.
    default: Trigger On
  - type: str
    name: trigger_ZNAM
    description: Optional.  Defaults to Trigger Off.   Label for 0 state on a trigger
      record.  Must be consistent with trigger_onval and trigger_offval.
    default: Trigger Off
  - type: float
    name: trigger_pulseDLY
    description: Optional.  Defaults to 1.0.           Delay in seconds between sending
      Trigger On and Trigger Off writes when pulsing a trigger.
    default: 1.0
  - type: int
    name: ackprepare_bitno
    description: Optional.  Defaults to 0.             Number (0 to 15) of the bit
      in the status word which acknowledges response to the prepare transfer command.
    default: 0
  - type: int
    name: acktransfer_bitno
    description: Optional.  Defaults to 1.             Number (0 to 15) of the bit
      in the status word which acknowledges response to the transfer command.
    default: 1
  - type: int
    name: ackabort_bitno
    description: Optional.  Defaults to 2.             Number (0 to 15) of the bit
      in the status word which acknowledges response to the abort transfer command.
    default: 2
  - type: int
    name: ackclear_bitno
    description: Optional.  Defaults to 3.             Number (0 to 15) of the bit
      in the status word which acknowledges response to the clear error command.
    default: 3
  - type: str
    name: ackprepare_status
    description: Optional.  Defaults $(device)$(posportprefix=:POSPORT)0:POSSTA.  Record
      for status word to link to extract the acknowledgement to the prepare transfer
      command from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: acktransfer_status
    description: Optional.  Defaults $(device)$(posportprefix=:POSPORT)0:POSSTA.  Record
      for status word to link to extract the acknowledgement to the transfer command
      from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: ackabort_status
    description: Optional.  Defaults $(device)$(posportprefix=:POSPORT)0:POSSTA.  Record
      for status word to link to extract the acknowledgement to the abort transfer
      command from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: ackclear_status
    description: Optional.  Defaults $(device)$(posportprefix=:POSPORT)0:POSSTA.  Record
      for status word to link to extract the acknowledgement to the clear error command
      from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: ackprepare_ZNAM
    description: Optional.  Defaults to No Request.     Label for off state (ZNAM
      field) of prepare for transfer command acknowledgement.
    default: No Request
  - type: str
    name: acktransfer_ZNAM
    description: Optional.  Defaults to No Request.     Label for off state (ZNAM
      field) of transfer command acknowledgement.
    default: No Request
  - type: str
    name: ackabort_ZNAM
    description: Optional.  Defaults to No Request.     Label for off state (ZNAM
      field) of abort transfer command acknowledgement.
    default: No Request
  - type: str
    name: ackclear_ZNAM
    description: Optional.  Defaults to No Request.     Label for off state (ZNAM
      field) of clear error command acknowledgement.
    default: No Request
  - type: str
    name: ackprepare_ONAM
    description: Optional.  Defaults to Request.        Label for on state (ONAM field)
      of prepare for transfer command acknowledgement.
    default: Request
  - type: str
    name: acktransfer_ONAM
    description: Optional.  Defaults to Request.        Label for on state (ONAM field)
      of transfer command acknowledgement.
    default: Request
  - type: str
    name: ackabort_ONAM
    description: Optional.  Defaults to Request.        Label for on state (ONAM field)
      of abort transfer command acknowledgement.
    default: Request
  - type: str
    name: ackclear_ONAM
    description: Optional.  Defaults to Request.        Label for on state (ONAM field)
      of clear error command acknowledgement.
    default: Request
  - type: str
    name: acksource_ZNAM
    description: Optional.  Defaults to No Trigger.     Label for off state (ZNAM
      field) of source parameter acknowledgement.
    default: No Trigger
  - type: str
    name: acktarget_ZNAM
    description: Optional.  Defaults to No Trigger.     Label for off state (ZNAM
      field) of target parameter acknowledgement.
    default: No Trigger
  - type: str
    name: acksource_ONAM
    description: Optional.  Defaults to Trigger.        Label for on state (ONAM field)
      of source parameter acknowledgement.
    default: Trigger
  - type: str
    name: acktarget_ONAM
    description: Optional.  Defaults to Trigger.        Label for on state (ONAM field)
      of target parameter acknowledgement.
    default: Trigger
  - type: str
    name: ackmotorcurrenton_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of motor current on command acknowledgement.
    default: No Trigger
  - type: str
    name: ackmotorcurrentoff_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of motor current off command acknowledgement.
    default: No Trigger
  - type: str
    name: ackmotorcurrenton_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of motor current on command acknowledgement.
    default: Trigger
  - type: str
    name: ackmotorcurrentoff_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of motor current off command acknowledgement.
    default: Trigger
  - type: str
    name: ackcompressedairon_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of compressed air on command acknowledgement.
    default: No Trigger
  - type: str
    name: ackcompressedairoff_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of compressed air off command acknowledgement.
    default: No Trigger
  - type: str
    name: ackcompressedairon_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of compressed air on command acknowledgement.
    default: Trigger
  - type: str
    name: ackcompressedairoff_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of compressed air off command acknowledgement.
    default: Trigger
  - type: str
    name: ackholderonarmon_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of acknowledgement for command to set the Holder On Arm status to True.
    default: No Trigger
  - type: str
    name: ackholderonarmoff_ZNAM
    description: Optional.  Defaults to No Trigger.   Label for off state (ZNAM field)
      of acknowledgement for command to set the Holder On Arm status to False.
    default: No Trigger
  - type: str
    name: ackholderonarmon_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of acknowledgement for command to set the Holder On Arm status to True.
    default: Trigger
  - type: str
    name: ackholderonarmoff_ONAM
    description: Optional.  Defaults to Trigger.      Label for on state (ONAM field)
      of acknowledgement for command to set the Holder On Arm status to False.
    default: Trigger
  - type: str
    name: ingprepare_ZNAM
    description: Optional.  Defaults to Not Preparing.     Label for off state (ZNAM
      field) of in progress for prepare command.
    default: Not Preparing
  - type: str
    name: ingprepare_ONAM
    description: Optional.  Defaults to Preparing.         Label for on state (ONAM
      field) of in progress for prepare command.
    default: Preparing
  - type: str
    name: ingtransfer_ZNAM
    description: Optional.  Defaults to Not Transferring.  Label for off state (ZNAM
      field) of in progress for transfer command.
    default: Not Transferring
  - type: str
    name: ingtransfer_ONAM
    description: Optional.  Defaults to Transferring.      Label for on state (ONAM
      field) of in progress for transfer command.
    default: Transferring
  - type: str
    name: ingabort_ZNAM
    description: Optional.  Defaults to Not Aborting.      Label for off state (ZNAM
      field) of in progress for abort command.
    default: Not Aborting
  - type: str
    name: ingabort_ONAM
    description: Optional.  Defaults to Aborting.          Label for on state (ONAM
      field) of in progress for abort command.
    default: Aborting
  - type: str
    name: ingclear_ZNAM
    description: Optional.  Defaults to Not Clearing.      Label for off state (ZNAM
      field) of in progress for clear command.
    default: Not Clearing
  - type: str
    name: ingclear_ONAM
    description: Optional.  Defaults to Clearing.          Label for on state (ONAM
      field) of in progress for clear command.
    default: Clearing
  - type: int
    name: ingprepare_bitno
    description: Optional.  Defaults to 11.           Number (0 to 15) of the bit
      in the status word for the in progress status for the prepare command.
    default: 11
  - type: int
    name: ingtransfer_bitno
    description: Optional.  Defaults to 10.           Number (0 to 15) of the bit
      in the status word for the in progress status for the transfer command.
    default: 10
  - type: int
    name: ingabort_bitno1
    description: Optional.  Defaults to 1.            Number (0 to 15) of the bit
      in the status word for the in progress status for the abort command.
    default: 1
  - type: int
    name: ingabort_bitno2
    description: Optional.  Defaults to 15.           Number (0 to 15) of the bit
      in the status word for the aborted status for the abort command.
    default: 15
  - type: str
    name: ingprepare_status
    description: Optional.  Defaults to $(device)$(posportprefix=:POSPORT)0:POSSTA).  Record
      for status word to link to extract in progress status for the prepare command
      from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: ingtransfer_status
    description: Optional.  Defaults to $(device)$(posportprefix=:POSPORT)0:POSSTA).  Record
      for status word to link to extract in progress status for the transfer command
      from.
    default: $(device)$(posportprefix=:POSPORT)0:POSSTA
  - type: str
    name: ingabort_status1
    description: Optional.  Defaults to $(device)$(staprefix=:STA):TRANSFERERRORS2).   Record
      for status word to link to extract in progress status for the abort command
      from.
    default: $(device)$(staprefix=:STA):TRANSFERERRORS2
  - type: str
    name: ingabort_status2
    description: Optional.  Defaults to $(device)$(staprefix=:STA):TRANSFERSTATUS).    Record
      for status word to link to extract aborted status for the abort command from.  This
      is required because of the behaviour during HiTES1 commissioning of the PreVac
      Modbus PLC failing to update some of its status including the aborting in progress
      bit which once set persists until the next command.
    default: $(device)$(staprefix=:STA):TRANSFERSTATUS
  - type: id
    name: name
    description: Optional.  Defaults to empty.         Object name and associated
      gui name
  databases:
  - file: $(DLSPLC)/db/NX102_PreVacCoils_SMControl.template
    args:
      posportID6_compass:
      posportID2_shortdesc:
      ackcompressedairon_ONAM:
      ackprepare_ONAM:
      posportID1_SV:
      posportID1_compass:
      acktarget_ZNAM:
      posportID3_compass:
      ackclear_bitno:
      sourceparam_shortdesc:
      ackholderonarmoff_ONAM:
      ackprepare_ZNAM:
      posportID2_compass:
      acktransfer_bitno:
      posportID5_SV:
      acktransfer_status:
      ackabort_bitno:
      ackmotorcurrenton_ZNAM:
      ackclear_ONAM:
      targetparam_longdesc:
      name:
      posportID0_shortdesc:
      trigger_ONAM:
      posportID7_shortdesc:
      paramprefix:
      sourceparam_longdesc:
      ingabort_status1:
      ingprepare_status:
      ingprepare_bitno:
      ackmotorcurrentoff_ONAM:
      port:
      posportprefix:
      posportID4_compass:
      posportID3_SV:
      trigger_scanrate:
      coilout_scanrate:
      posportID1_shortdesc:
      ackcompressedairon_ZNAM:
      acktarget_ONAM:
      tag_Ttargetparam:
      ackholderonarmon_ZNAM:
      ackprepare_bitno:
      ingabort_status2:
      tag_sourceparam:
      tag_unsetcoil:
      posportIDs_allowedmask:
      ackabort_ZNAM:
      ackclear_status:
      posportID3_shortdesc:
      paramout_scanrate:
      posportID4_SV:
      targetparam_shortdesc:
      ctrlprefix:
      posportID7_SV:
      posportID6_SV:
      ingabort_bitno2:
      posportID8_SV:
      posportID2_SV:
      ackabort_status:
      tag_Tsourceparam:
      acksource_ZNAM:
      paramprec:
      ingprepare_ONAM:
      acktransfer_ZNAM:
      ackcompressedairoff_ZNAM:
      posportID4_shortdesc:
      ingabort_ONAM:
      ingtransfer_ZNAM:
      trigger_pulseDLY:
      acktransfer_ONAM:
      ingabort_bitno1:
      ingprepare_ZNAM:
      ingtransfer_status:
      posportID5_compass:
      tag_setcoil:
      posportID5_shortdesc:
      trigger_offval:
      ackmotorcurrenton_ONAM:
      acksource_ONAM:
      ackholderonarmon_ONAM:
      ingtransfer_ONAM:
      ingclear_ONAM:
      ackabort_ONAM:
      tag_Tunsetcoil:
      posportID8_shortdesc:
      staprefix:
      posportID0_sourceSV:
      ackclear_ZNAM:
      posportID0_targetSV:
      sourceparam_init:
      posportID7_compass:
      ingclear_ZNAM:
      ackprepare_status:
      ackmotorcurrentoff_ZNAM:
      targetparam_init:
      device:
      ingabort_ZNAM:
      trigger_ZNAM:
      ackcompressedairoff_ONAM:
      trigger_onval:
      ingtransfer_bitno:
      ackholderonarmoff_ZNAM:
      posportID8_compass:
      tag_targetparam:
      posportID6_shortdesc:
      tag_Tsetcoil:
- name: vacValve
  description: Template database for a vacuum valve without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: 'device name of valve control crate (prefix of device name), NOTE:
      make sure there is a read100 component whose century (0 means 0-99) includes
      the object address'
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if valve is in
      DM110..119 then addr=110
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: gilk0
    description: Gauge interlock description 0
    default: unused
  - type: str
    name: gilk1
    description: Gauge interlock description 1
    default: unused
  - type: str
    name: gilk2
    description: Gauge interlock description 2
    default: unused
  - type: str
    name: gilk3
    description: Gauge interlock description 3
    default: unused
  - type: str
    name: gilk4
    description: Gauge interlock description 4
    default: unused
  - type: str
    name: gilk5
    description: Gauge interlock description 5
    default: unused
  - type: str
    name: gilk6
    description: Gauge interlock description 6
    default: unused
  - type: str
    name: gilk7
    description: Gauge interlock description 7
    default: unused
  - type: str
    name: gilk8
    description: Gauge interlock description 8
    default: unused
  - type: str
    name: gilk9
    description: Gauge interlock description 9
    default: unused
  - type: str
    name: gilk10
    description: Gauge interlock description 10
    default: unused
  - type: str
    name: gilk11
    description: Gauge interlock description 11
    default: unused
  - type: str
    name: gilk12
    description: Gauge interlock description 12
    default: unused
  - type: str
    name: gilk13
    description: Gauge interlock description 13
    default: unused
  - type: str
    name: gilk14
    description: Gauge interlock description 14
    default: unused
  - type: str
    name: gilk15
    description: Gauge interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: desc
    description: Box label for gui
    default: $(device)
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)
    default: Service
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValve.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      gda_name:
      allowpv:
      ilk8:
      ilksta_label4:
      ilk5:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      gilk14:
      gilk15:
      gilk12:
      port:
      gilk10:
      con_label6:
      ilksta_sv1:
      mode2:
      addr:
      ilksta_sv0:
      mode1:
      ilksta_label1:
      con_label5:
      con_label4:
      ilksta_label5:
      gilk13:
      sta_label5:
      sta_label4:
      sta_label6:
      gilk8:
      sta_label0:
      sta_label3:
      sta_label2:
      gilk4:
      gilk5:
      gilk6:
      gilk11:
      gilk0:
      gilk1:
      gilk2:
      gilk9:
      ilksta_label2:
      vlvcc:
      timeout:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      ilksta_sv4:
      device:
      whylocked:
      desc:
      ilksta_label3:
      ilk4:
      gilk7:
      name:
      ilksta_sv5:
      sta_label1:
      con_label3:
      ilk9:
      ilk6:
      ilk7:
      gda_desc:
      gilk3:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: NX102_sequence
  description: Template database for control and interlock of a non-specific device.
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tag
    description: NX PLC tag string e.g. S (from S.Interfc[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from S.Interfc[1])
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it (Optional - defaults to "")
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom (Optional.  Defaults to "Open command not allowed")
    default: Start command not allowed
  - type: int
    name: stastrSCAN
    description: Scan rate for :STASTR PV string read in seconds, may be 10,5,2 or
      1. Use to reduce network traffic if comms problems (Optional - defaults to 1)
    default: 1
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Start)
    default: Start
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Abort)
    default: Abort
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label7
    description: Label string for control value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Not running)
    default: Not running
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Running)
    default: Running
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Aborted)
    default: Aborted
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Alarm severity for status value 0 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv1
    description: Alarm severity for status value 1 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Alarm severity for status value 2 (Optional - defaults to MAJOR)
    default: MAJOR
  - type: str
    name: sta_sv3
    description: Alarm severity for status value 3 (Optional - defaults to MINOR)
    default: MINOR
  - type: str
    name: sta_sv4
    description: Alarm severity for status value 4 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Alarm severity for status value 5 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Alarm severity for status value 6 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: Alarm severity for status value 7 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for status value 0 (Optional - defaults to Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for status value 1 (Optional - defaults to Run Ilks
      Ok)
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Label string for status value 2 (Optional - defaults to OK)
    default: OK
  - type: str
    name: ilksta_label3
    description: Label string for status value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Alarm severity for interlock status value 6 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Alarm severity for interlock status value 7 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: p1_desc
    description: Label string for parameter 1 (Optional - defaults to "Param1")
    default: Param1
  - type: int
    name: p1_isEnum
    description: Display as enum(1) or number(0) (Optional - defaults to 1)
    default: 1
  - type: int
    name: p1_prec
    description: Precision of p1 number (Optional - defaults to 0)
    default: 0
  - type: str
    name: p1_LOPR
    description: LOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p1_HOPR
    description: HOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p1_label0
    description: Label string for enum value 0 (Optional - defaults to "unused")
    default: unused
  - type: str
    name: p1_label1
    description: Label string for enum value 1 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label2
    description: Label string for enum value 2 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label3
    description: Label string for enum value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label4
    description: Label string for enum value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label5
    description: Label string for enum value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label6
    description: Label string for enum value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label7
    description: Label string for enum value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label8
    description: Label string for enum value 8 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label9
    description: Label string for enum value 9 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label10
    description: Label string for enum value 10 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label11
    description: Label string for enum value 11 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label12
    description: Label string for enum value 12 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label13
    description: Label string for enum value 13 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label14
    description: Label string for enum value 14 (Optional - defaults to "")
    default: ''
  - type: str
    name: p1_label15
    description: Label string for enum value 15 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_desc
    description: Label string for parameter 2 (Optional - defaults to "Param2")
    default: Param2
  - type: int
    name: p2_isEnum
    description: Display as enum(1) or number(0) (Optional - defaults to 1)
    default: 1
  - type: int
    name: p2_prec
    description: Precision of p2 number (Optional - defaults to 0)
    default: 0
  - type: str
    name: p2_LOPR
    description: LOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p2_HOPR
    description: HOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p2_label0
    description: Label string for enum value 0 (Optional - defaults to "unused")
    default: unused
  - type: str
    name: p2_label1
    description: Label string for enum value 1 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label2
    description: Label string for enum value 2 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label3
    description: Label string for enum value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label4
    description: Label string for enum value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label5
    description: Label string for enum value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label6
    description: Label string for enum value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label7
    description: Label string for enum value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label8
    description: Label string for enum value 8 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label9
    description: Label string for enum value 9 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label10
    description: Label string for enum value 10 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label11
    description: Label string for enum value 11 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label12
    description: Label string for enum value 12 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label13
    description: Label string for enum value 13 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label14
    description: Label string for enum value 14 (Optional - defaults to "")
    default: ''
  - type: str
    name: p2_label15
    description: Label string for enum value 15 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_desc
    description: Label string for parameter 3 (Optional - defaults to "Param3")
    default: Param3
  - type: int
    name: p3_isEnum
    description: Display as enum(1) or number(0) (Optional - defaults to 1)
    default: 1
  - type: int
    name: p3_prec
    description: Precision of p3 number (Optional - defaults to 0)
    default: 0
  - type: str
    name: p3_LOPR
    description: LOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p3_HOPR
    description: HOPR for p1 number, optionally set if not using enums (Optional -
      defaults to "")
    default: ''
  - type: str
    name: p3_label0
    description: Label string for enum value 0 (Optional - defaults to "unused")
    default: unused
  - type: str
    name: p3_label1
    description: Label string for enum value 1 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label2
    description: Label string for enum value 2 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label3
    description: Label string for enum value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label4
    description: Label string for enum value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label5
    description: Label string for enum value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label6
    description: Label string for enum value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label7
    description: Label string for enum value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label8
    description: Label string for enum value 8 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label9
    description: Label string for enum value 9 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label10
    description: Label string for enum value 10 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label11
    description: Label string for enum value 11 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label12
    description: Label string for enum value 12 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label13
    description: Label string for enum value 13 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label14
    description: Label string for enum value 14 (Optional - defaults to "")
    default: ''
  - type: str
    name: p3_label15
    description: Label string for enum value 15 (Optional - defaults to "")
    default: ''
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE) (Optional - defaults to Operational)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)  (Optional - defaults to Service)
    default: Service
  - type: id
    name: name
    description: Object name and associated gui name      (Optional - defaults to
      "")
  databases:
  - file: $(DLSPLC)/db/NX102_sequence.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      p3_label9:
      p3_label8:
      p3_label3:
      p3_label2:
      p2_label14:
      p2_label15:
      p2_isEnum:
      p2_label10:
      p2_label11:
      p2_label12:
      p3_label4:
      p2_desc:
      p3_desc:
      p1_label12:
      p3_label6:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      p1_label9:
      p1_label8:
      p3_LOPR:
      p1_label2:
      p1_label1:
      p1_label0:
      p1_label7:
      p1_label6:
      p1_label5:
      p1_label4:
      p3_isEnum:
      p3_HOPR:
      name:
      p3_label11:
      p3_label10:
      p3_label13:
      p3_label12:
      p3_label15:
      p3_label14:
      p1_HOPR:
      allowpv:
      ilksta_sv2:
      ilksta_sv3:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_sv5:
      p1_prec:
      p2_label13:
      p3_label1:
      ilksta_label4:
      ilksta_label5:
      ilksta_label6:
      ilksta_label7:
      ilksta_label0:
      ilksta_label1:
      ilksta_label2:
      ilksta_label3:
      p3_label0:
      p1_label10:
      p2_LOPR:
      sta_label6:
      p1_isEnum:
      p1_desc:
      stastrSCAN:
      whylocked:
      p3_label5:
      p2_prec:
      tag:
      p3_prec:
      mode2:
      mode1:
      p3_label7:
      ilksta_sv7:
      p1_label13:
      p1_label3:
      p1_label11:
      p2_HOPR:
      p1_label15:
      p1_label14:
      p1_LOPR:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      device:
      p2_label8:
      p2_label9:
      p2_label2:
      p2_label3:
      p2_label0:
      p2_label1:
      p2_label6:
      p2_label7:
      p2_label4:
      p2_label5:
- name: NX102_PreVacCoils_SMPort
  description: Template database for status info regarding a Port on PreVac Sample
    Manipulator.
  args:
  - type: str
    name: device
    description: Mandatory. Device name.
  - type: str
    name: posportID
    description: Mandatory. ID of the vacuum port position for the sample manipulator.  Must
      be integer 1 to 8 or 0 for special case of Arm in RDC/UFO and overall status.
  - type: str
    name: port
    description: Mandatory. Comms port (DLS NX102) PLC controller is on.
  - type: str
    name: tag
    description: Mandatory. NX PLC tag string e.g. V (from V.Control[1])
  - type: int
    name: tagidx
    description: Mandatory. NX PLC tag index number e.g. 1 (from V.Control[1])
  - type: str
    name: tagname
    description: Mandatory. NX PLC tag name.
  - type: str
    name: tagprefix
    description: Mandatory. NX PLC prefix to tag name.
  - type: str
    name: posportprefix
    description: Optional.  Defaults to ":POSPORT".            Prefix for the vacuum
      port position records.
    default: :POSPORT
  - type: int
    name: smready_bitno
    description: 'Optional.  Defaults to "1".                   Bit number in port
      position status for whether sample manipulator inside the chamber is in position
      ready to participate in the transfer, values 0-15.  The Arm/RDC/UFO port is
      likely to have non-default value, as it needs to address the "Master Interlock
      Status" bit, whereas the other ports address the "ReadyForTransfer" bit.  NOTE:
      The intended use is for signals derived from GPIO on GeoBricks with other sample
      manipulator motors on them.'
    default: 1
  - type: int
    name: sampleholder_bitno
    description: 'Optional.  Defaults to "2".              Bit number in port position
      status for whether sample holder is present inside the chamber, values 0-15.  The
      Arm/RDC/UFO port is likely to have non-default value, as it needs to address
      the "Holder On Arm" bit, whereas the other ports address the "Sample Inside"
      bit.  NOTE: The sample holder might not have a sample in it!'
    default: 2
  - type: str
    name: desc_label0
    description: Optional.  Defaults to "PrepareForTransfer".  Descriptive label for
      bit0 of the Coil word.
    default: PrepareForTransfer
  - type: str
    name: desc_label1
    description: Optional.  Defaults to "ReadyForTransfer".    Descriptive label for
      bit1 of the Coil word.
    default: ReadyForTransfer
  - type: str
    name: desc_label2
    description: Optional.  Defaults to "SampleInside".        Descriptive label for
      bit2 of the Coil word.
    default: SampleInside
  - type: str
    name: desc_label3
    description: Optional.  Defaults to "Error".               Descriptive label for
      bit3 of the Coil word.
    default: Error
  - type: str
    name: desc_label4
    description: Optional.  Defaults to "Busy".                Descriptive label for
      bit4 of the Coil word.
    default: Busy
  - type: str
    name: desc_label5
    description: Optional.  Defaults to "GateOpenRequest".     Descriptive label for
      bit5 of the Coil word.
    default: GateOpenRequest
  - type: str
    name: desc_label6
    description: Optional.  Defaults to "GateOpen".            Descriptive label for
      bit6 of the Coil word.
    default: GateOpen
  - type: str
    name: desc_label7
    description: Optional.  Defaults to "GateClosed".          Descriptive label for
      bit7 of the Coil word.
    default: GateClosed
  - type: str
    name: desc_label8
    description: Optional.  Defaults to "ArmOnPort".           Descriptive label for
      bit8 of the Coil word.
    default: ArmOnPort
  - type: str
    name: desc_label9
    description: Optional.  Defaults to "ReservedForFuture".   Descriptive label for
      bit9 of the Coil word.
    default: ReservedForFuture
  - type: str
    name: desc_label10
    description: Optional.  Defaults to "".                    Descriptive label for
      bit10 of the Coil word.
    default: ''
  - type: str
    name: desc_label11
    description: Optional.  Defaults to "".                    Descriptive label for
      bit11 of the Coil word.
    default: ''
  - type: str
    name: desc_label12
    description: Optional.  Defaults to "".                    Descriptive label for
      bit12 of the Coil word.
    default: ''
  - type: str
    name: desc_label13
    description: Optional.  Defaults to "".                    Descriptive label for
      bit13 of the Coil word.
    default: ''
  - type: str
    name: desc_label14
    description: Optional.  Defaults to "".                    Descriptive label for
      bit14 of the Coil word.
    default: ''
  - type: str
    name: desc_label15
    description: Optional.  Defaults to "".                    Descriptive label for
      bit15 of the Coil word.
    default: ''
  - type: str
    name: longdesc
    description: Optional.  Defaults to "Manipulator Position Port $(posportID) status."  Description
      of position port.
    default: Manipulator Position Port $(posportID) status.
  - type: str
    name: shortdesc
    description: Optional.  Defaults to "Posport$(posportID)"  Short, abbreviated
      description of position port.
    default: Posport$(posportID)
  - type: str
    name: chamber_name
    description: Optional.  Defaults to "".               Name of vacuum chamber associated
      with position port.
    default: ''
  - type: str
    name: chamber_shortname
    description: Optional.  Defaults to "".               Short name of vacuum chamber
      associated with position port.
    default: ''
  - type: str
    name: valve_device
    description: Optional.  Defaults to "".               Device name of vacuum valve
      associated with position port.  So far it is a string for info only, no calcs.
    default: ''
  - type: str
    name: valve_shortname
    description: Optional.  Defaults to "".               Short, abbreviated name
      of vacuum valve associated with the position port.
    default: ''
  - type: str
    name: valve_desc
    description: Optional.  Defaults to "".               Description of vacuum valve
      associated with position port.
    default: ''
  - type: id
    name: name
    description: Optional.  Defaults to empty.            Object name and associated
      gui name
  databases:
  - file: $(DLSPLC)/db/NX102_PreVacCoils_SMPort.template
    args:
      tagprefix:
      tag:
      posportID:
      valve_device:
      port:
      posportprefix:
      valve_shortname:
      tagidx:
      desc_label15:
      desc_label14:
      desc_label13:
      desc_label12:
      desc_label11:
      desc_label10:
      desc_label9:
      desc_label8:
      desc_label3:
      desc_label2:
      desc_label1:
      desc_label0:
      desc_label7:
      desc_label6:
      desc_label5:
      desc_label4:
      chamber_name:
      sampleholder_bitno:
      device:
      smready_bitno:
      valve_desc:
      name:
      chamber_shortname:
      tagname:
      shortdesc:
      longdesc:
- name: NX102_readReal
  description: TODO:ADD DESCRIPTION
  args:
  - type: str
    name: device
    description: Template argument
  - type: str
    name: port
    description: Template argument
  - type: str
    name: tag
    description: Template argument
  - type: str
    name: desc
    description: Template argument
    default: ''
  - type: str
    name: scan
    description: Template argument
    default: 1 second
  - type: str
    name: egu
    description: Template argument
    default: ''
  - type: int
    name: prec
    description: Template argument
    default: 2
  databases:
  - file: $(DLSPLC)/db/NX102_readReal.template
    args:
      scan:
      prec:
      tag:
      egu:
      device:
      port:
      desc:
- name: NX102_genericDevice
  description: Template database for control and interlock of a non-specific device.
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tag
    description: NX PLC tag string e.g. S (from S.Interfc[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from S.Interfc[1])
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it (Optional - defaults to "")
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom (Optional.  Defaults to "Open command not allowed")
    default: Open command not allowed
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: On
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Off
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label7
    description: Label string for control value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: On
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: ''
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Off
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: ''
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Alarm severity for status value 0 (Optional - defaults to MAJOR)
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Alarm severity for status value 1 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Alarm severity for status value 2 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Alarm severity for status value 3 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Alarm severity for status value 4 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Alarm severity for status value 5 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Alarm severity for status value 6 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: Alarm severity for status value 7 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for status value 0 (Optional - defaults to Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for status value 1 (Optional - defaults to Run Ilks
      Ok)
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Label string for status value 2 (Optional - defaults to OK)
    default: OK
  - type: str
    name: ilksta_label3
    description: Label string for status value 3 (Optional - defaults to Disarmed)
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Alarm severity for interlock status value 6 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Alarm severity for interlock status value 7 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE) (Optional - defaults to Operational)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)  (Optional - defaults to Service)
    default: Service
  - type: id
    name: name
    description: Object name and associated gui name      (Optional - defaults to
      "")
  databases:
  - file: $(DLSPLC)/db/NX102_genericDevice.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      ilksta_label5:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      sta_label6:
      device:
      whylocked:
      name:
      ilksta_label7:
- name: reboot_rga
  description: Power cycle an RGA where the PLC code has been setup to power cycle
    when 1 is written to a particular DM variable
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: addr
    description: DM variable to write to to reboot rga
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: id
    name: name
    description: Object name and associated gui name
  databases:
  - file: $(DLSPLC)/db/dlsPLC_reboot_rga.template
    args:
      device:
      port:
      name:
      timeout:
      addr:
- name: NX102_realRW
  description: Template database for reading and writing a real value for a DX200
    controller variable through NX102 PLC
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: variable
    description: PV suffix (its associated _RBV will be autogenerated).
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tagread
    description: tag name of ether_ip read value
  - type: str
    name: tagwrite
    description: tag name of ether_ip write value
  - type: str
    name: drvl
    description: Lowest accepted value
  - type: str
    name: drvh
    description: Highest accepted value
  - type: int
    name: tagidx
    description: Template argument
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: desc
    description: Description
    default: ''
  - type: str
    name: readscan
    description: value update time for readback value
    default: 1 second
  - type: float
    name: writescan
    description: value for Ethernet/IP update time - use value without "seconds",
      e.g. 0.5
    default: 0.5
  - type: str
    name: egu
    description: Engineering units
    default: ''
  - type: int
    name: prec
    description: precision for reporting value back
    default: 2
  databases:
  - file: $(DLSPLC)/db/NX102_realRW.template
    args:
      tagread:
      name:
      drvh:
      drvl:
      tagwrite:
      egu:
      device:
      tagidx:
      prec:
      variable:
      desc:
      writescan:
      port:
      readscan:
- name: NX102_vacValveDebounce
  description: Template database for a vacuum valve without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: EtherIP Port Name
  - type: str
    name: tag
    description: NX PLC tag string e.g. V (from V.Control[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from V.Control[1])
  - type: int
    name: ILKNUM
    description: Part of definition of gauge interlocks, Gauge NX PLC tag (Gauge.PIRG[dollar(ILKNUM)])
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it. (Optional - defaults to "")
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom. (Optional.  Defaults to "Open command not allowed")
    default: Open command not allowed
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label7
    description: Label string for control value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Alarm severity for status value 0 (Optional - defaults to MAJOR)
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Alarm severity for status value 1 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Alarm severity for status value 2 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Alarm severity for status value 3 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Alarm severity for status value 4 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Alarm severity for status value 5 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Alarm severity for status value 6 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: Alarm severity for status value 7 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for status value 0 (Optional - defaults to Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for status value 1 (Optional - defaults to Run Ilks
      Ok)
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Label string for status value 2 (Optional - defaults to OK)
    default: OK
  - type: str
    name: ilksta_label3
    description: Label string for status value 3 (Optional - defaults to Disarmed)
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Alarm severity for interlock status value 6 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Alarm severity for interlock status value 7 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE.ZNAM) (Optional - defaults
      Operational)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE.ONAM)  (Optional - defaults
      Service)
    default: Service
  - type: str
    name: DIRILK1
    description: Part of ILK1 PV name (dollar(device):dollar(DIRILK1)ILK), named for
      "direction" of operation controlled by ILK1, e.g. set to OPEN for Bistable valve
      or leave blank for ordinary valve.  (Optional - defaults to "")
    default: ''
  - type: str
    name: DIRILK2
    description: Part of ILK2 PV name (dollar(device):dollar(DIRILK2)ILK), named for
      "direction" of operation controlled by ILK2, e.g. set to CLOSE for Bistable
      valves (Optional - defaults to "ILK2")
    default: ILK2
  - type: id
    name: name
    description: Object name and associated gui name      (Optional - defaults to
      "")
  - type: str
    name: desc
    description: Box label for gui                        (Optional - defaults to
      value of device macro)
    default: $(device)
  databases:
  - file: $(DLSPLC)/db/NX102_vacValveDebounce.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      ilksta_label5:
      DIRILK1:
      DIRILK2:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      sta_label6:
      device:
      whylocked:
      desc:
      ILKNUM:
      name:
      ilksta_label7:
- name: NX102_vacPump
  description: 'Template for a NX PLC to control and interlock vacuum pumps of various
    kinds, e.g. Scroll and Turbo pumps.  NOTE: Covers basic commonly required control
    only and excludes pump make and model or application specific control and monitoring
    of the pump which might be available and also be required typically via serial
    control, for example settings configuration or service period information.'
  args:
  - type: str
    name: device
    description: Mandatory.  Device name of the pump.
  - type: str
    name: port
    description: Mandatory.  Name of port for the ether_ip driver for the PLC controlling/interlocking
      the pump.
  - type: str
    name: tag
    description: Mandatory.  NX PLC tag string e.g. S for Scroll or T for Turbo.
  - type: int
    name: tagidx
    description: Mandatory.  NX PLC tag index number.  Typically this is the same
      as the id number in the device name, but
  - type: str
    name: allowpv
    description: Optional.   Defaults to "".  If specified, then only write an "open"
      i.e. on command when this is non-zero. MUST have CP at the end of it.  The term
      "open" here and in PV names is because of heritage from valve control.  Generally
      by default the "open" command for a pump actually signifies turn it on.
    default: ''
  - type: str
    name: whylocked
    description: Optional.   Defaults to "On command not allowed".  String to output
      to EDM synoptic as to precisely why the device is locked and by whom.
    default: On command not allowed
  - type: str
    name: con_label0
    description: Optional.  Defaults to On.        Label string for control value
      0
    default: On
  - type: str
    name: con_label1
    description: Optional.  Defaults to Off.       Label string for control value
      1
    default: Off
  - type: str
    name: con_label2
    description: Optional.  Defaults to Reset.     Label string for control value
      2
    default: Reset
  - type: str
    name: con_label3
    description: Optional.  Defaults to Standby.   Label string for control value
      3
    default: ''
  - type: str
    name: con_label4
    description: Optional.  Defaults to FullSpeed. Label string for control value
      4
    default: ''
  - type: str
    name: con_label5
    description: Optional.  Defaults to "".        Label string for control value
      5
    default: ''
  - type: str
    name: con_label6
    description: Optional.  Defaults to "".        Label string for control value
      6
    default: ''
  - type: str
    name: con_label7
    description: Optional.  Defaults to "".        Label string for control value
      7
    default: ''
  - type: str
    name: sta_label0
    description: Optional.  Defaults to Fault.     Label string for status value 0
    default: Fault
  - type: str
    name: sta_label1
    description: Optional.  Defaults to On.        Label string for status value 1
    default: On
  - type: str
    name: sta_label2
    description: Optional.  Defaults to Standby.   Label string for status value 2
    default: Standby
  - type: str
    name: sta_label3
    description: Optional.  Defaults to Off.       Label string for status value 3
    default: Off
  - type: str
    name: sta_label4
    description: Optional.  Defaults to "".        Label string for status value 4
    default: FullSpeed
  - type: str
    name: sta_label5
    description: Optional.  Defaults to "".        Label string for status value 5
    default: ''
  - type: str
    name: sta_label6
    description: Optional.  Defaults to "".        Label string for status value 6
    default: ''
  - type: str
    name: sta_label7
    description: Optional.  Defaults to "".        Label string for status value 7
    default: ''
  - type: str
    name: sta_sv0
    description: "Optional.  Defaults to MAJOR.         \t Alarm severity for status
      value 0."
    default: MAJOR
  - type: str
    name: sta_sv1
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 1."
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 2."
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 3."
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 4."
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 5."
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 6."
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: "Optional.  Defaults to NO_ALARM.      \t Alarm severity for status
      value 7."
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Optional.  Defaults to Failed.      Label string for status value
      0
    default: Failed
  - type: str
    name: ilksta_label1
    description: Optional.  Defaults to Run Ilks OK. Label string for status value
      1
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Optional.  Defaults to OK.          Label string for status value
      2
    default: OK
  - type: str
    name: ilksta_label3
    description: Optional.  Defaults to "".          Label string for status value
      3
    default: ''
  - type: str
    name: ilksta_label4
    description: Optional.  Defaults to "".          Label string for status value
      4
    default: ''
  - type: str
    name: ilksta_label5
    description: Optional.  Defaults to "".          Label string for status value
      5
    default: ''
  - type: str
    name: ilksta_label6
    description: Optional.  Defaults to "".          Label string for status value
      6
    default: ''
  - type: str
    name: ilksta_label7
    description: Optional.  Defaults to "".          Label string for status value
      7
    default: ''
  - type: str
    name: ilksta_sv0
    description: Optional.  Defaults to MAJOR.        Alarm severity for interlock
      status value 0.
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 1.
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 2.
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 3.
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 4.
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 5.
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 6.
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Optional.  Defaults to NO_ALARM.     Alarm severity for interlock
      status value 7.
    default: NO_ALARM
  - type: str
    name: mode1
    description: Optional.  Defaults to Operational.   Name of first mode of operation,
      remote commands allowed.  (Name is mode1 but value is 0.  i.e. :MODE.ZNAM)
    default: Operational
  - type: str
    name: mode2
    description: Optional.  Defaults to Service.       Name of second mode of operation,
      local control only.  (Name is mode2 but value is 1.  i.e. :MODE.ONAM)
    default: Service
  - type: str
    name: short_desc
    description: Optional.  Defaults to Shorting Plug. Description field on the PLUG
      record DESC field for whether a shorting plug is present.
    default: Shorting Plug
  - type: str
    name: short_label0
    description: Optional.  Defaults to Dummy.         Label on the PLUG record ZNAM
      field for no shorting plug present.
    default: Dummy
  - type: str
    name: short_label1
    description: Optional.  Defaults to Real.          Label on the PLUG record ONAM
      field for shorting plug present.
    default: Real
  - type: str
    name: short_sv0
    description: Optional.  Defaults to NO_ALARM.      Severity on the PLUG record
      ZSV field for the status value 0.
    default: NO_ALARM
  - type: str
    name: short_sv1
    description: Optional.  Defaults to NO_ALARM.      Severity on the PLUG record
      OSV field for the status value 1.
    default: NO_ALARM
  - type: id
    name: name
    description: Optional.  Defaults to "".            Object name and associated
      gui name.
  databases:
  - file: $(DLSPLC)/db/NX102_vacPump.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      short_desc:
      sta_label7:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      short_label1:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      short_sv1:
      short_sv0:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      short_label0:
      ilksta_label5:
      device:
      whylocked:
      name:
      ilksta_label7:
      sta_label6:
- name: NX102_powerSupply
  description: Template showing the status of the power supply from the ether IP readings
  args:
  - type: str
    name: device
    description: device prefix
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from PSU.Voltage[1])
  - type: str
    name: tag
    description: NX PLC tag string e.g. PSU (from PSU.Voltage[1])
    default: PSU
  - type: id
    name: name
    description: Object name and associated gui name
  databases:
  - file: $(DLSPLC)/db/NX102_powerSupply.template
    args:
      device:
      tagidx:
      tag:
      port:
      name:
- name: feTemperature
  description: "Template database for an individual temperature on a\ntemperature
    PLC. Requires an instance of dlsPLC_read100 for century=1 and\ncentury=2"
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: temp
    description: PV suffix
  - type: str
    name: desc
    description: Description
  - type: str
    name: tmpcc
    description: Parent temperature control crate prefix
  - type: str
    name: offset
    description: 2 digit integer offset of DM variables. E.g. if setpoint is in DM136
      and readback in DM236 offset=36
  - type: str
    name: lolo
    description: Lolo alarm limit
  - type: str
    name: low
    description: Low alarm limit
  - type: str
    name: high
    description: High alarm limit
  - type: str
    name: hihi
    description: Hihi alarm limit
  - type: str
    name: hopr
    description: High operating range
  - type: str
    name: lopr
    description: Low operating range
  - type: str
    name: llsv
    description: Lolo severity
    default: NO_ALARM
  - type: str
    name: lsv
    description: Low severity
    default: NO_ALARM
  - type: int
    name: hyst
    description: alarm deadband
    default: 0
  - type: float
    name: adel
    description: archiver deadband
    default: 0.2
  - type: int
    name: scalefac
    description: scale factor for temperature/setpoint
    default: 10
  - type: int
    name: tempcal
    description: temperature calibration offset in egu (default=0)
    default: 0
  - type: int
    name: prec
    description: precision for reporting value back
    default: 1
  - type: id
    name: name
    description: Object and gui association name
  - type: str
    name: disable_pv
    description: If set, then this is the value of A in disable_calc
    default: $(device)$(temp):ZERO
  - type: str
    name: disable_calc
    description: If this condition is met then save the current limit and set the
      limit to 3276.7, disabling the interlock for this PV
    default: A=1
  - type: int
    name: incentury
    description: The Century digit(s) for the PLC D address to read temperature values
    default: 2
  - type: int
    name: outcentury
    description: The Century digit(s) for the PLC D address to write setpoints
    default: 1
  - type: str
    name: egu
    description: This associates an edm screen with the template
    default: C
  databases:
  - file: $(DLSPLC)/db/dlsPLC_feTemperature.template
    args:
      gda_name:
      lsv:
      llsv:
      prec:
      disable_calc:
      hyst:
      tempcal:
      incentury:
      lopr:
      hopr:
      lolo:
      outcentury:
      low:
      disable_pv:
      tmpcc:
      scalefac:
      offset:
      device:
      desc:
      high:
      name:
      temp:
      hihi:
      egu:
      adel:
      gda_desc:
- name: NX102_interlock
  description: "Template showing the status of various MPS interlocks in\nan Omron
    NX102 PLC."
  args:
  - type: str
    name: device
    description: device prefix
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: interlock
    description: Interlock suffix (e.g. :INT1)
  - type: str
    name: tag
    description: NX PLC tag string e.g. ILK (from ILK.Control[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from ILK.Control[1])
  - type: str
    name: desc
    description: Permit description (e.g. Front end permit)
  - type: id
    name: name
    description: Object name and gui association name
  - type: int
    name: auto_reset
    description: Set to 1 to push the reset button whenever the raw interlocks are
      all ok
    default: 0
  databases:
  - file: $(DLSPLC)/db/NX102_interlock.template
    args:
      name:
      auto_reset:
      tag:
      interlock:
      tagidx:
      device:
      port:
      desc:
- name: NX102_digitalIn_Debounced
  description: TODO:ADD DESCRIPTION
  args:
  - type: str
    name: device
    description: Template argument
  - type: str
    name: port
    description: Template argument
  - type: int
    name: tagidx
    description: Template argument
  - type: id
    name: name
    description: Template argument
  - type: str
    name: tag
    description: Template argument
    default: Digital_In
  databases:
  - file: $(DLSPLC)/db/NX102_digitalIn_Debounced.template
    args:
      device:
      tagidx:
      tag:
      port:
      name:
- name: NX102_PreVacCoils_SMStaleBanner
  description: Template for Warning GUI banner for stale data from the PreVac Sample
    Manipulator controller.
  args:
  - type: str
    name: device
    description: Mandatory.  Device name of sample manipulator.
  - type: str
    name: staprefix
    description: Optional.   Defaults to :STA           Prefix for the SM status records.
    default: :STA
  - type: id
    name: name
    description: Optional.   Defaults to empty.         Object name and associated
      gui name
  databases:
  - file: $(DLSPLC)/db/NX102_PreVacCoils_SMStaleBanner.template
    args:
      device:
      staprefix:
      name:
- name: NX102_robotDX200_R
  description: Template database for reading a real value for a DX200 controller variable
    through NX102 PLC
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: variable
    description: PV suffix for this robot variable
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: str
    name: tagread
    description: tag name of ether_ip read value
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: desc
    description: Description
    default: ''
  - type: str
    name: scan
    description: value update time
    default: 1 second
  - type: str
    name: egu
    description: Engineering units
    default: ''
  - type: int
    name: prec
    description: This associates an edm screen with the template
    default: 2
  databases:
  - file: $(DLSPLC)/db/NX102_robotDXrealR.template
    args:
      name:
      scan:
      prec:
      device:
      egu:
      variable:
      tagread:
      port:
      desc:
- name: interlockSummary
  description: Template database for a summary PV of up to 24 interlocks
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: ilk1
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk2
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk3
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk4
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk5
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk6
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk7
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk8
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk9
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk10
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk11
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk12
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk13
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk14
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk15
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk16
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk17
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk18
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk19
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk20
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk21
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk22
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk23
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  - type: str
    name: ilk24
    description: Interlock suffix (e.g. INT1)
    default: NO-INTERLOCK
  databases:
  - file: $(DLSPLC)/db/dlsPLC_interlock_summary.template
    args:
      ilk14:
      ilk15:
      ilk16:
      ilk17:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      ilk18:
      ilk19:
      device:
      ilk24:
      ilk21:
      ilk20:
      ilk23:
      ilk22:
      ilk8:
      ilk9:
      ilk6:
      ilk7:
      ilk4:
      ilk5:
      ilk2:
      ilk3:
      ilk1:
- name: NX102_PreVacCoils_SMStatus
  description: Template database for status info on PreVac Sample Manipulator (in
    addition to that for individual SM Ports).
  args:
  - type: str
    name: device
    description: Mandatory.  Device name.
  - type: str
    name: port
    description: Mandatory.  Comms port (DLS NX102) PLC controller is on.
  - type: str
    name: staprefix
    description: Optional.  Defaults to :STA           Prefix for the SM status records.
    default: :STA
  - type: str
    name: posportprefix
    description: Optional.  Defaults to :POSPORT       Prefix for records for individual
      ports.  Must match port template.
    default: :POSPORT
  - type: str
    name: posportID0_shortdesc
    description: Optional.  Defaults to Arm.           Short description of zeroth
      port (for error recovery only).  The posportID1...7_shortdesc macros are not
      populated by default, so you must set some of them to make things sensible.  Leave
      the ones not present (i.e. no chamber connected as empty string.)
    default: Arm
  - type: str
    name: posportID1_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 1, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID2_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 2, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID3_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 3, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID4_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 4, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID5_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 5, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID6_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 6, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID7_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 7, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID8_shortdesc
    description: Optional.  Defaults to empty string.  Short description of posport
      with ID 8, recommend use an abbreviated chamber name but only if a chamber is
      present.
    default: ''
  - type: str
    name: posportID0_sourceSV
    description: Optional.  Defaults to MINOR.         Alarm severity for posport
      ID 0 for the Arm as source.  It is allowed as part of error recovery.
    default: MINOR
  - type: str
    name: posportID0_targetSV
    description: Optional.  Defaults to MAJOR.         Alarm severity for posport
      ID 0 for the Arm as target.
    default: MAJOR
  - type: str
    name: posportID1_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 1, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID2_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 2, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID3_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 3, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID4_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 4, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID5_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 5, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID6_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 6, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID7_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 7, same for source and target.
    default: NO_ALARM
  - type: str
    name: posportID8_SV
    description: Optional.  Defaults to NO_ALARM.      Alarm severity for posport
      ID 8, same for source and target.
    default: NO_ALARM
  - type: id
    name: name
    description: Optional.  Defaults to empty.         Object name and associated
      gui name
  databases:
  - file: $(DLSPLC)/db/NX102_PreVacCoils_SMStatus.template
    args:
      posportID2_shortdesc:
      posportID6_SV:
      posportID8_SV:
      posportID1_SV:
      posportID2_SV:
      staprefix:
      posportID0_sourceSV:
      port:
      posportprefix:
      posportID3_SV:
      posportID0_targetSV:
      posportID1_shortdesc:
      posportID5_SV:
      posportID8_shortdesc:
      posportID4_shortdesc:
      device:
      posportID4_SV:
      posportID3_shortdesc:
      name:
      posportID0_shortdesc:
      posportID5_shortdesc:
      posportID7_shortdesc:
      posportID6_shortdesc:
      posportID7_SV:
- name: interlock
  description: "Template showing the status of various MPS interlocks in\na PLC. Requires
    dlsPLC_read100 for any century used"
  args:
  - type: str
    name: device
    description: device prefix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: interlock
    description: Interlock suffix (e.g. :INT1)
  - type: str
    name: desc
    description: Permit description (e.g. Front end permit)
  - type: str
    name: addr
    description: First address in the DM variable range. E.g. if interlock is in DM800..808
      then addr=800
  - type: id
    name: name
    description: Object name and gui association name
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: int
    name: auto_reset
    description: Set to 1 to push the reset button whenever the raw interlocks are
      all ok
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_interlock.template
    args:
      ilk14:
      ilk15:
      ilk10:
      ilk11:
      ilk12:
      ilk13:
      interlock:
      port:
      addr:
      timeout:
      device:
      desc:
      name:
      auto_reset:
      ilk8:
      ilk9:
      ilk6:
      ilk7:
      ilk4:
      ilk5:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: fastVacuumChannel
  description: TODO:ADD DESCRIPTION
  args:
  - type: id
    name: name
    description: Gui tag
  - type: object
    name: master
    description: Master
  - type: str
    name: img
    description: Base IMG PV
  - type: enum
    name: id
    description: FV PLC gauge number
    values:
      '05':
      '04':
      '08':
      '10':
      '03':
      '02':
      '09':
      '07':
      '06':
      '01':
  - type: enum
    name: em
    description: EM block to use
    default: 0
    values:
      '"0"':
      '"1"':
      '"2"':
  - type: int
    name: timeout
    description: asyn fins_port timeout
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_fastVacuumChannel.template
    args:
      em:
      fins_port: '{{master.fins_port}}'
      wave4_addr: w
      eip_port: '{{master.eip_port}}'
      wave3_addr: w
      img:
      wave2_addr: w
      wave5_addr: w
      combined_nelm: w
      tagidx: '{{id}}'
      wave1_addr: w
      timeout:
      wave0_addr: w
      device: '{{master.device}}'
      id:
      waveform_nelm: wn
- name: vacValveDebounce
  description: Template database for a vacuum valve without debounce or raw air records
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: vlvcc
    description: device name of valve control crate
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if pump is in
      DM110..118 then addr=110
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom
    default: Open command not allowed
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol
    default: 0
  - type: enum
    name: valvetype
    description: Type of Device
    default: valve
    values:
      '"valve"':
      '"absorber"':
      '"shutter"':
  - type: str
    name: ilk0
    description: Interlock description 0
    default: unused
  - type: str
    name: ilk1
    description: Interlock description 1
    default: unused
  - type: str
    name: ilk2
    description: Interlock description 2
    default: unused
  - type: str
    name: ilk3
    description: Interlock description 3
    default: unused
  - type: str
    name: ilk4
    description: Interlock description 4
    default: unused
  - type: str
    name: ilk5
    description: Interlock description 5
    default: unused
  - type: str
    name: ilk6
    description: Interlock description 6
    default: unused
  - type: str
    name: ilk7
    description: Interlock description 7
    default: unused
  - type: str
    name: ilk8
    description: Interlock description 8
    default: unused
  - type: str
    name: ilk9
    description: Interlock description 9
    default: unused
  - type: str
    name: ilk10
    description: Interlock description 10
    default: unused
  - type: str
    name: ilk11
    description: Interlock description 11
    default: unused
  - type: str
    name: ilk12
    description: Interlock description 12
    default: unused
  - type: str
    name: ilk13
    description: Interlock description 13
    default: unused
  - type: str
    name: ilk14
    description: Interlock description 14
    default: unused
  - type: str
    name: ilk15
    description: Interlock description 15
    default: unused
  - type: str
    name: gilk0
    description: Gauge interlock description 0
    default: unused
  - type: str
    name: gilk1
    description: Gauge interlock description 1
    default: unused
  - type: str
    name: gilk2
    description: Gauge interlock description 2
    default: unused
  - type: str
    name: gilk3
    description: Gauge interlock description 3
    default: unused
  - type: str
    name: gilk4
    description: Gauge interlock description 4
    default: unused
  - type: str
    name: gilk5
    description: Gauge interlock description 5
    default: unused
  - type: str
    name: gilk6
    description: Gauge interlock description 6
    default: unused
  - type: str
    name: gilk7
    description: Gauge interlock description 7
    default: unused
  - type: str
    name: gilk8
    description: Gauge interlock description 8
    default: unused
  - type: str
    name: gilk9
    description: Gauge interlock description 9
    default: unused
  - type: str
    name: gilk10
    description: Gauge interlock description 10
    default: unused
  - type: str
    name: gilk11
    description: Gauge interlock description 11
    default: unused
  - type: str
    name: gilk12
    description: Gauge interlock description 12
    default: unused
  - type: str
    name: gilk13
    description: Gauge interlock description 13
    default: unused
  - type: str
    name: gilk14
    description: Gauge interlock description 14
    default: unused
  - type: str
    name: gilk15
    description: Gauge interlock description 15
    default: unused
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Optional. Defaults to MAJOR.     Alarm severity for status value
      0.
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      1.
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      2.
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      3.
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      4.
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      5.
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Optional. Defaults to NO_ALARM.  Alarm severity for status value
      6.
    default: NO_ALARM
  - type: id
    name: name
    description: Object name and associated gui name
  - type: str
    name: desc
    description: Box label for gui
    default: $(device)
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE)
    default: Service
  - type: str
    name: ilksta_label0
    description: Template argument
    default: Failed
  - type: str
    name: ilksta_label1
    description: Template argument
    default: Run Ilks Ok
  - type: str
    name: ilksta_label2
    description: Template argument
    default: OK
  - type: str
    name: ilksta_label3
    description: Template argument
    default: Disarmed
  - type: str
    name: ilksta_label4
    description: Template argument
    default: ''
  - type: str
    name: ilksta_label5
    description: Template argument
    default: ''
  - type: str
    name: ilksta_sv0
    description: Template argument
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Template argument
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Template argument
    default: NO_ALARM
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValveDebounce.template
    args:
      ilk14:
      ilk15:
      con_label1:
      con_label0:
      ilk10:
      ilk11:
      ilk12:
      valvetype:
      gda_name:
      allowpv:
      ilk8:
      ilksta_label4:
      ilk5:
      con_label2:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      gilk14:
      gilk15:
      gilk12:
      port:
      gilk10:
      con_label6:
      ilksta_sv1:
      mode2:
      addr:
      ilksta_sv0:
      mode1:
      ilksta_label1:
      con_label5:
      ilk13:
      ilksta_label5:
      gilk13:
      sta_label5:
      sta_label4:
      sta_label6:
      gilk8:
      sta_label0:
      sta_label3:
      sta_label2:
      gilk4:
      gilk5:
      gilk6:
      gilk11:
      gilk0:
      gilk1:
      gilk2:
      gilk9:
      ilksta_label2:
      vlvcc:
      timeout:
      con_label4:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv6:
      ilksta_sv4:
      device:
      whylocked:
      desc:
      ilksta_label3:
      ilk4:
      gilk7:
      sta_sv1:
      name:
      ilksta_sv5:
      sta_label1:
      con_label3:
      ilk9:
      ilk6:
      ilk7:
      gda_desc:
      gilk3:
      ilk2:
      ilk3:
      ilk0:
      ilk1:
- name: readInt16
  description: Read the Int16 value stored in 1 DM variables in a PLC
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: vlvcc
    description: PLC control crate device prefix
  - type: str
    name: addr
    description: DM variable of the int
  - type: id
    name: name
    description: Object name and gui association name
  - type: str
    name: ftvl
    description: Type of data in subArray
    default: USHORT
  databases:
  - file: $(DLSPLC)/db/dlsPLC_readInt16.template
    args:
      vlvcc:
      ftvl:
      addr:
      Q:
      P:
      name:
- name: writeInt16
  description: Write an int32 value into a PLC DM variable
  args:
  - type: str
    name: P
    description: device prefix
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: port
    description: asyn port name of FINS driver
  - type: str
    name: addr
    description: DM variable of the LOWERer address of the float32
  - type: int
    name: timeout
    description: Timeout in seconds for the FINS protocol reads/writes
    default: 0
  - type: id
    name: name
    description: Object name and gui association name
  databases:
  - file: $(DLSPLC)/db/dlsPLC_writeInt16.template
    args:
      addr:
      Q:
      P:
      timeout:
      port:
      name:
- name: vacValveReadOnly
  description: Template for read only vacuum valves - manual valves with limit switches
    read back by valve controller PLC so their state is known, but control is not
    available.
  args:
  - type: str
    name: device
    description: device name of the valve.
  - type: str
    name: vlvcc
    description: device name of valve control crate
  - type: str
    name: addr
    description: First address in the DM variable range decade. E.g. if valve is in
      DM110..118 then addr=110
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Partial)
    default: Partial
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: id
    name: name
    description: This associates an edm screen with the template
  - type: str
    name: valvetype
    description: Template argument
    default: manualValve
  databases:
  - file: $(DLSPLC)/db/dlsPLC_vacValveReadOnly.template
    args:
      vlvcc:
      addr:
      valvetype:
      sta_label5:
      sta_label4:
      sta_label6:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      device:
      name:
- name: NX102_PreVacCoils_SMLVDT
  description: Template database for an LVDT on PreVac Sample Manipulator.
  args:
  - type: str
    name: device
    description: Mandatory. Device name.
  - type: str
    name: port
    description: Mandatory. Comms port (DLS NX102) PLC controller is on.
  - type: str
    name: lvdtID
    description: Mandatory. ID of the LVDT.  Defacto it is a number but it need not
      be.
  - type: str
    name: tag
    description: Mandatory. NX PLC tag string.
  - type: str
    name: lvdtprefix
    description: Optional.  Defaults to ":LVDT".                       Prefix for
      SM LVDT records.
    default: :LVDT
  - type: str
    name: lvdt_shortname
    description: Optional.  Defaults to "LVDT{{lvdtID}}".               Short name
      of the LVDT.
    default: LVDT{{lvdtID}}
  - type: str
    name: lvdt_shortdesc
    description: Optional.  Defaults to "LVDT {{lvdtID}}".              Short description
      of the LVDT.
    default: LVDT {{lvdtID}}
  - type: str
    name: lvdt_longdesc
    description: Optional.  Defaults to "Manipulator LVDT {{lvdtID}}".  Longer description
      of the LVDT.
    default: Manipulator LVDT {{lvdtID}}
  - type: str
    name: tagidx
    description: Optional.  Defaults to "{{lvdtID}}".                   NX PLC tag
      string array index.
    default: '{{lvdtID}}'
  - type: str
    name: pos_SCAN
    description: 'Optional.  Defaults to ".5 second".  EPICS .SCAN field.  Scan rate
      for reading encoder.  NOTE: This is the normal EPICS .SCAN field scanrate and
      the EtherIP S Flag for scanrate is not in use here.'
    default: .5 second
  - type: int
    name: pos_PREC
    description: Optional.  Defaults to 3.            Precision on the encoder position
      value.
    default: 3
  - type: str
    name: pos_EGU
    description: Optional.  Defaults to empty string. Engineering units on the encoder
      value.
    default: ''
  - type: str
    name: pos_LINR
    description: Optional.  Defaults to empty string. Values can be "NO CONVERSION",
      "SLOPE" (must define pos_ESLO and and pos_EOFF), "LINEAR" (must define pos_EGUL
      and pos_EGUF), (or name of special table) and it will default to "NO CONVERSION".  Conversion
      method for encoder value.  See EPICS record reference manual sections on the
      ai record and the convert menu and conversion.
    default: ''
  - type: str
    name: pos_EGUL
    description: Optional.  Defaults to empty string.  Low end of LINEAR conversion
      scale for encoder value.
    default: ''
  - type: str
    name: pos_EGUF
    description: Optional.  Defaults to empty string.  High end or full value on LINEAR
      conversion scale for encoder value.
    default: ''
  - type: str
    name: pos_EOFF
    description: Optional.  Defaults to empty string.  The offset on the value for
      SLOPE conversion.  It will default to 0.
    default: ''
  - type: str
    name: pos_ESLO
    description: Optional.  Defaults to empty string.  The slope on the value for
      SLOPE conversion.  It will default to 1.
    default: ''
  - type: str
    name: pos_AOFF
    description: Optional.  Defaults to empty string.  The raw adjustment offset on
      the value for conversion for all types of conversion.  It will default to 0.
    default: ''
  - type: str
    name: pos_ASLO
    description: Optional.  Defaults to empty string.  The raw adjustment slope on
      the value for conversion for all types of conversion.   It will default to 1.
    default: ''
  - type: str
    name: pos_SMOO
    description: Optional.  Defaults to empty string.  The smoothing fraction parameter
      on the smoothing algorithm, value between 0 (no smoothing) and 1 (value never
      changes), it will default to 0.
    default: ''
  - type: str
    name: pos_HOPR
    description: Optional.  Defaults to empty string.  The position high operator
      display value.  Will default to 0.
    default: ''
  - type: str
    name: pos_LOPR
    description: Optional.  Defaults to empty string.  The position low operator display
      value.   Will default to 0.
    default: ''
  - type: str
    name: pos_HIHI
    description: Optional.  Defaults to empty string.  The position high high limit.  It
      will default to 0.
    default: ''
  - type: str
    name: pos_HIGH
    description: Optional.  Defaults to empty string.  The position high limit.       It
      will default to 0.
    default: ''
  - type: str
    name: pos_LOW
    description: Optional.  Defaults to empty string.  The position low limit.        It
      will default to 0.
    default: ''
  - type: str
    name: pos_LOLO
    description: Optional.  Defaults to empty string.  The position low low limit.    It
      will default to 0.
    default: ''
  - type: str
    name: pos_HHSV
    description: Optional.  Defaults to empty string.  The alarm severity for the
      HIHI alarm.  It will default to NO_ALARM.
    default: ''
  - type: str
    name: pos_HSV
    description: Optional.  Defaults to empty string.  The alarm severity for the
      HIGH alarm.  It will default to NO_ALARM.
    default: ''
  - type: str
    name: pos_LSV
    description: Optional.  Defaults to empty string.  The alarm severity for the
      LOW alarm.   It will default to NO_ALARM.
    default: ''
  - type: str
    name: pos_LLSV
    description: Optional.  Defaults to empty string.  The alarm severity for the
      LOLO alarm.  It will default to NO_ALARM.
    default: ''
  - type: str
    name: pos_HYST
    description: Optional.  Defaults to empty string.  The alarm deadband or hysteresis
      for the scaled position.                 It will default to 0.
    default: ''
  - type: str
    name: pos_ADEL
    description: Optional.  Defaults to empty string.  The archiver deadband, to stop
      archiving noise, for the scaled position.  It will default to 0.
    default: ''
  - type: str
    name: pos_MDEL
    description: Optional.  Defaults to empty string.  The monitor deadband, to stop
      reacting noise, for the scaled position.    It will default to 0.
    default: ''
  - type: str
    name: raw_EGU
    description: Optional.  Defaults to count.         Engineering units on the encoder
      raw value.
    default: count
  - type: str
    name: raw_HYST
    description: Optional.  Defaults to empty string.  The alarm deadband or hysteresis
      for the raw position.                    It will default to 0.
    default: ''
  - type: str
    name: raw_ADEL
    description: Optional.  Defaults to empty string.  The archiver deadband, to stop
      archiving noise, for the raw position.     It will default to 0.
    default: ''
  - type: str
    name: raw_MDEL
    description: Optional.  Defaults to empty string.  The monitor deadband, to stop
      reacting noise, for the raw position.       It will default to 0.
    default: ''
  - type: int
    name: slope_PREC
    description: Optional.  Defaults to 6.             Precision on the derived encoder
      slope value.
    default: 6
  - type: str
    name: cal_SCAN
    description: 'Optional.  Defaults to "1 second".    EPICS .SCAN field.  Scan rate
      for reading calibration parameters.  NOTE: This is the normal EPICS .SCAN field
      scanrate and the EtherIP S Flag for scanrate is not in use here.'
    default: 1 second
  - type: float
    name: calout_scanrate
    description: Optional.  Defaults to .5   The value of scanrate which when writing
      to NX PLC the calibration output records set the EtherIP scanrate S flag to
      in their OUT field syntax to add the readback to one of the EtherIP scanlists.
    default: 0.5
  - type: float
    name: trigger_scanrate
    description: Optional.  Defaults to .2            The value of scanrate which
      when writing to NX PLC triggers the trigger output records set the EtherIP scanrate
      S flag to in their OUT field syntax to add the readback to one of the EtherIP
      scanlists.
    default: 0.2
  - type: int
    name: trigger_onval
    description: Optional.  Defaults to 1.            Value to write to a trigger
      tag to pulse the trigger on.  Must be consistent with trigger_offval.  Together
      they allow the defininition of the trigger pulse as a blip or a dip with blip
      as the default.
    default: 1
  - type: int
    name: trigger_offval
    description: Optional.  Defaults to 0.            Value to write to a trigger
      tag to pulse the trigger off.  Must be consistent with trigger_onval.  Together
      they allow the defininition of the trigger pulse as a blip or a dip with blip
      as the default.
    default: 0
  - type: str
    name: trigger_ONAM
    description: Optional.  Defaults to Trigger On.   Label for 1 state on a trigger
      record.  Must be consistent with trigger_onval and trigger_offval.
    default: Trigger On
  - type: str
    name: trigger_ZNAM
    description: Optional.  Defaults to Trigger Off.  Label for 0 state on a trigger
      record.  Must be consistent with trigger_onval and trigger_offval.
    default: Trigger Off
  - type: float
    name: trigger_pulsestartDLY
    description: Optional.  Defaults to 1.0.          Delay in seconds between last
      calibration parameter write and pulsing the trigger.
    default: 1.0
  - type: float
    name: trigger_pulsewidthDLY
    description: Optional.  Defaults to 1.0.          Delay in seconds between sending
      Trigger On and Trigger Off writes when pulsing a trigger.
    default: 1.0
  - type: id
    name: name
    description: Optional.  Defaults to empty.         Object name and associated
      gui name.
  databases:
  - file: $(DLSPLC)/db/NX102_PreVacCoils_SMLVDT.template
    args:
      pos_LINR:
      pos_ASLO:
      raw_EGU:
      pos_HIHI:
      pos_HYST:
      lvdt_shortname:
      lvdtID:
      tag:
      lvdt_longdesc:
      pos_ADEL:
      pos_SCAN:
      pos_SMOO:
      port:
      slope_PREC:
      pos_PREC:
      pos_EGUF:
      pos_HIGH:
      pos_EGUL:
      pos_HOPR:
      pos_LOW:
      tagidx:
      lvdtprefix:
      pos_EGU:
      cal_SCAN:
      pos_LLSV:
      trigger_ONAM:
      pos_EOFF:
      pos_HHSV:
      calout_scanrate:
      pos_LOPR:
      pos_LOLO:
      trigger_pulsestartDLY:
      pos_AOFF:
      pos_ESLO:
      device:
      trigger_pulsewidthDLY:
      raw_HYST:
      raw_MDEL:
      name:
      trigger_ZNAM:
      pos_LSV:
      trigger_scanrate:
      pos_HSV:
      trigger_onval:
      raw_ADEL:
      trigger_offval:
      lvdt_shortdesc:
      pos_MDEL:
- name: overrideRequestMain
  description: Template allowing overrideRequestIndividual instances to be created
  args:
  - type: str
    name: P
    description: device prefix. This must match a dlsPLC_read100.template device macro
  - type: str
    name: Q
    description: device suffix
  - type: str
    name: outaddr
    description: Output address. Input address is $(outaddr)+1. E.g. if outaddr=80,
      read DM81 and write DM80.
  - type: str
    name: port
    description: Asyn port for doing serial comms
  - type: int
    name: timeout
    description: Template argument
    default: 0
  databases:
  - file: $(DLSPLC)/db/dlsPLC_overrideRequestMain.template
    args:
      Q:
      P:
      outaddr:
      port:
      timeout:
- name: NX102_feTemperature
  description: "Template database for an individual temperature on a front end\ntemperature
    PLC."
  args:
  - type: str
    name: device
    description: PV prefix
  - type: str
    name: temp
    description: PV suffix
  - type: str
    name: port
    description: port name of ether_ip driver
  - type: int
    name: tagidx
    description: temperature index on PLC
  - type: str
    name: lolo
    description: Lolo alarm limit
  - type: str
    name: low
    description: Low alarm limit
  - type: str
    name: high
    description: High alarm limit
  - type: str
    name: hihi
    description: Hihi alarm limit
  - type: str
    name: hopr
    description: High operating range
  - type: str
    name: lopr
    description: Low operating range
  - type: str
    name: tag
    description: etherip tag
    default: Temp
  - type: str
    name: llsv
    description: Lolo severity
    default: NO_ALARM
  - type: str
    name: lsv
    description: Low severity
    default: NO_ALARM
  - type: int
    name: hyst
    description: alarm deadband
    default: 0
  - type: float
    name: adel
    description: archiver deadband
    default: 0.2
  - type: int
    name: scalefac
    description: scale factor for temperature/setpoint (1 for new PLC templates, 10
      for old where PLC reports in 10ths of a degree)
    default: 1
  - type: int
    name: tempcal
    description: temperature calibration offset in egu (default=0)
    default: 0
  - type: int
    name: prec
    description: precision for reporting value back
    default: 1
  - type: id
    name: name
    description: Object and gui association name
  - type: str
    name: disable_pv
    description: If set, then this is the value of A in disable_calc
    default: $(device)$(temp):ZERO
  - type: str
    name: disable_calc
    description: If this condition is met then save the current limit and set the
      limit to 3276.7, disabling the interlock for this PV
    default: A=1
  - type: str
    name: egu
    description: This associates an edm screen with the template
    default: C
  - type: str
    name: desc
    description: Description
  databases:
  - file: $(DLSPLC)/db/NX102_feTemperature.template
    args:
      lsv:
      tag:
      disable_calc:
      port:
      hyst:
      tempcal:
      lopr:
      hopr:
      lolo:
      prec:
      tagidx:
      low:
      disable_pv:
      scalefac:
      device:
      desc:
      high:
      name:
      temp:
      hihi:
      egu:
      llsv:
      adel:
- name: NX102_digitalIn
  description: TODO:ADD DESCRIPTION
  args:
  - type: str
    name: device
    description: Template argument
  - type: str
    name: port
    description: Template argument
  - type: int
    name: tagidx
    description: Template argument
  - type: id
    name: name
    description: Template argument
  - type: str
    name: tag
    description: Template argument
    default: Digital_In
  databases:
  - file: $(DLSPLC)/db/NX102_digitalIn.template
    args:
      device:
      tagidx:
      tag:
      port:
      name:
- name: NX102_vacValveBistable
  description: Template database for a bistable vacuum valve without debounce or raw
    air records.  It has different interlocks for opening and closing it.
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: EtherIP Port Name
  - type: str
    name: tag
    description: NX PLC tag string e.g. V (from V.Control[1])
  - type: int
    name: tagidx
    description: NX PLC tag index number e.g. 1 (from V.Control[1])
  - type: int
    name: ILKNUM
    description: Part of Gauge PLC tag (Gauge.PIRG[dollar(ILKNUM)])
  - type: str
    name: allowpv
    description: If specified, then only write an open command when this is non-zero.
      MUST have CP at the end of it. (Optional - defaults to "")
    default: ''
  - type: str
    name: whylocked
    description: String to output to EDM synoptic as to precisely why the device is
      locked and by whom (Optional.  Defaults to "Open command not allowed")
    default: Open command not allowed
  - type: str
    name: con_label0
    description: Label string for control value 0 (Optional - defaults to Open)
    default: Open
  - type: str
    name: con_label1
    description: Label string for control value 1 (Optional - defaults to Close)
    default: Close
  - type: str
    name: con_label2
    description: Label string for control value 2 (Optional - defaults to Reset)
    default: Reset
  - type: str
    name: con_label3
    description: Label string for control value 3 (Optional - defaults to Close Enable)
    default: Close Enable
  - type: str
    name: con_label4
    description: Label string for control value 4 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label5
    description: Label string for control value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label6
    description: Label string for control value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: con_label7
    description: Label string for control value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label0
    description: Label string for status value 0 (Optional - defaults to Fault)
    default: Fault
  - type: str
    name: sta_label1
    description: Label string for status value 1 (Optional - defaults to Open)
    default: Open
  - type: str
    name: sta_label2
    description: Label string for status value 2 (Optional - defaults to Opening)
    default: Opening
  - type: str
    name: sta_label3
    description: Label string for status value 3 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: sta_label4
    description: Label string for status value 4 (Optional - defaults to Closing)
    default: Closing
  - type: str
    name: sta_label5
    description: Label string for status value 5 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label6
    description: Label string for status value 6 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: sta_sv0
    description: Alarm severity for status value 0 (Optional - defaults to MAJOR)
    default: MAJOR
  - type: str
    name: sta_sv1
    description: Alarm severity for status value 1 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv2
    description: Alarm severity for status value 2 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv3
    description: Alarm severity for status value 3 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv4
    description: Alarm severity for status value 4 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv5
    description: Alarm severity for status value 5 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv6
    description: Alarm severity for status value 6 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: sta_sv7
    description: Alarm severity for status value 7 (Optional - defaults to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_label0
    description: Label string for status value 0 (Optional - defaults to Failed)
    default: Failed
  - type: str
    name: ilksta_label1
    description: Label string for status value 1 (Optional - defaults to Open Disabled)
    default: Open Disabled
  - type: str
    name: ilksta_label2
    description: Label string for status value 2 (Optional - defaults to Closed, Open
      Available)
    default: Closed, Open Available
  - type: str
    name: ilksta_label3
    description: Label string for status value 3 (Optional - defaults to Open)
    default: Open
  - type: str
    name: ilksta_label4
    description: Label string for status value 4 (Optional - defaults to Close Disabled)
    default: Close Disabled
  - type: str
    name: ilksta_label5
    description: Label string for status value 5 (Optional - defaults to Open, Close
      Available)
    default: Open, Close Available
  - type: str
    name: ilksta_label6
    description: Label string for status value 6 (Optional - defaults to Closed)
    default: Closed
  - type: str
    name: ilksta_label7
    description: Label string for status value 7 (Optional - defaults to "")
    default: ''
  - type: str
    name: ilksta_sv0
    description: Alarm severity for interlock status value 0 (Optional - defaults
      to MAJOR)
    default: MAJOR
  - type: str
    name: ilksta_sv1
    description: Alarm severity for interlock status value 1 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv2
    description: Alarm severity for interlock status value 2 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv3
    description: Alarm severity for interlock status value 3 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv4
    description: Alarm severity for interlock status value 4 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv5
    description: Alarm severity for interlock status value 5 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv6
    description: Alarm severity for interlock status value 6 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: ilksta_sv7
    description: Alarm severity for interlock status value 7 (Optional - defaults
      to NO_ALARM)
    default: NO_ALARM
  - type: str
    name: mode1
    description: name of remote operational mode (:MODE.ZNAM) (Optional - defaults
      to Operational)
    default: Operational
  - type: str
    name: mode2
    description: name of local operational mode (:MODE.ONAM)  (Optional - defaults
      to Service)
    default: Service
  - type: str
    name: DIRILK1
    description: Part of ILK1 PV name (dollar(device):dollar(DIRILK1)ILK), named for
      "direction" of operation controlled by ILK1, e.g. set to OPEN for Bistable valve
      (Optional - defaults to OPEN)
    default: OPEN
  - type: str
    name: DIRILK1_label
    description: Label string for the interlock 1 "direction".  (Optional - defaults
      to Open)
    default: Open
  - type: str
    name: DIRILK2
    description: Part of ILK2 PV name (dollar(device):dollar(DIRILK2)ILK), named for
      "direction" of operation controlled by ILK2, e.g. set to CLOSE for Bistable
      valves (Optional - defaults to CLOSE)
    default: CLOSE
  - type: str
    name: DIRILK2_label
    description: Label string for the interlock 2 "direction".  (Optional - defaults
      to Close)
    default: Close
  - type: id
    name: name
    description: "Object name and associated gui name    \t (Optional - defaults to
      \"\")"
  - type: str
    name: desc
    description: Box label for gui                        (Optional - defaults to
      value of device macro)
    default: $(device)
  - type: str
    name: valvetype
    description: Type of valve for the gui.          (Optional - defaults to valve).
    default: valve
  databases:
  - file: $(DLSPLC)/db/NX102_vacValveBistable.template
    args:
      con_label3:
      con_label2:
      con_label1:
      con_label0:
      con_label7:
      con_label6:
      con_label5:
      con_label4:
      allowpv:
      ilksta_label6:
      ilksta_label4:
      tag:
      ilksta_sv3:
      ilksta_sv2:
      ilksta_label0:
      ilksta_sv0:
      ilksta_sv1:
      ilksta_sv6:
      port:
      ilksta_sv4:
      ilksta_label1:
      mode2:
      ilksta_label2:
      mode1:
      ilksta_label3:
      ilksta_label5:
      DIRILK1:
      DIRILK2:
      ilksta_sv7:
      sta_label5:
      sta_label4:
      sta_label7:
      tagidx:
      sta_label1:
      sta_label0:
      sta_label3:
      sta_label2:
      ilksta_sv5:
      DIRILK1_label:
      sta_sv1:
      sta_sv0:
      sta_sv3:
      sta_sv2:
      sta_sv5:
      sta_sv4:
      sta_sv7:
      sta_sv6:
      valvetype:
      sta_label6:
      DIRILK2_label:
      device:
      whylocked:
      desc:
      ILKNUM:
      name:
      ilksta_label7:
- name: NX102_flowMeter
  description: Template database for a machine flow meter
  args:
  - type: str
    name: device
    description: device name
  - type: str
    name: port
    description: asyn port name of etherip driver
  - type: int
    name: tagidx
    description: etherip tag index
  - type: str
    name: desc
    description: Template argument
  - type: str
    name: tag
    description: etherip tag
    default: FlowRate
  - type: str
    name: egu
    description: EGU
    default: Litres / Hour
  - type: int
    name: prec
    description: PREC
    default: 1
  - type: int
    name: hopr
    description: HOPR
    default: 300
  - type: float
    name: lopr
    description: LOPR
    default: 0.0
  - type: int
    name: hihi
    description: HIHI
    default: 295
  - type: int
    name: lolo
    description: LOLO
    default: 100
  - type: int
    name: high
    description: HIGH
    default: 275
  - type: int
    name: adel
    description: ADEL
    default: 50
  - type: int
    name: mdel
    description: MDEL
    default: 10
  - type: int
    name: low
    description: LOW
    default: 120
  databases:
  - file: $(DLSPLC)/db/NX102_flowMeter.template
    args:
      lopr:
      lolo:
      mdel:
      tagidx:
      egu:
      high:
      device:
      tag:
      low:
      hopr:
      adel:
      prec:
      hihi:
      port:
      desc:
