//GAM for realtime statemachine +Timer100kHzGAM = { Class = IOGAM InputSignals = { Time = { DataSource = Timer Type = uint32 } Counter = { DataSource = Timer Type = uint32 Frequency = 200000 //operation:10k(=100us cyc) //Frequency = 100000 //operation:100k(=10us cyc) } RTThreadPerf = { DataSource = Timings Alias = "WaitHVON.Thread3_CycleTime" Type = uint32 } MHVPS_DT = { DataSource = EPICSCAInput_Th3 Type = uint32 } APS_HVON_DT = { DataSource = EPICSCAInput_Th3 Type = uint32 } APS_SWON_DT = { DataSource = EPICSCAInput_Th3 Type = uint32 } BPS_HVON_DT = { DataSource = EPICSCAInput_Th3 Type = uint32 } BPS_SWON_DT = { DataSource = EPICSCAInput_Th3 Type = uint32 } SHOTLEN = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_ON = { DataSource = EPICSCAInput_Th3 Type = uint32 } GYA_APS_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } GYB_APS_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } GYA_BPS_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } GYB_BPS_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_OV = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_OC = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } MIS_ITL = { DataSource = EPICSCAInput_Th3 Type = uint32 } MISB_ITL = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_ITL = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_MODE1 = { DataSource = EPICSCAInput_Th3 Type = uint32 } MD1_SHOTLEN_LIM = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_MODE2 = { DataSource = EPICSCAInput_Th3 Type = uint32 } MD2_SHOTLEN_LIM = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_MODE3 = { DataSource = EPICSCAInput_Th3 Type = uint32 } MD3_SHOTLEN_LIM = { DataSource = EPICSCAInput_Th3 Type = uint32 } PLC_MODE4 = { DataSource = EPICSCAInput_Th3 Type = uint32 } MD4_SHOTLEN_LIM = { DataSource = EPICSCAInput_Th3 Type = uint32 } APS_HVON = { DataSource = EPICSCAInput_Th3 Type = uint32 } APS_SWON = { DataSource = EPICSCAInput_Th3 Type = uint32 } APS_STOP = { DataSource = EPICSCAInput_Th3 Type = uint32 } BPS_HVON = { DataSource = EPICSCAInput_Th3 Type = uint32 } BPS_SWON = { DataSource = EPICSCAInput_Th3 Type = uint32 } BPS_STOP = { DataSource = EPICSCAInput_Th3 Type = uint32 } BEAM_ON_STAT = { DataSource = EPICSCAInput_Th3 Type = uint32 } DO_REV5 = { DataSource = EPICSCAInput_Th3 Type = uint32 } DO_REV6 = { DataSource = EPICSCAInput_Th3 Type = uint32 } DO_REV7 = { DataSource = EPICSCAInput_Th3 Type = uint32 } DO_REV8 = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_HVON = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_STOP = { DataSource = EPICSCAInput_Th3 Type = uint32 } MHVPS_MODSW = { DataSource = EPICSCAInput_Th3 Type = uint32 } PCF_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } HVARMED = { DataSource = EPICSCAInput_Th3 Type = uint32 } SHORT_PULSE_MODE = { DataSource = EPICSCAInput_Th3 Type = uint32 } HVINJECTION = { DataSource = EPICSCAInput_Th3 Type = uint32 } RFON = { DataSource = EPICSCAInput_Th3 Type = uint32 } FHPS_RU = { DataSource = EPICSCAInput_Th3 Type = uint32 } SCM_RU = { DataSource = EPICSCAInput_Th3 Type = uint32 } SCM_RD = { DataSource = EPICSCAInput_Th3 Type = uint32 } CCPS_IN_OPERATION = { DataSource = EPICSCAInput_Th3 Type = uint32 } PXI_FLT = { DataSource = EPICSCAInput_Th3 Type = uint32 } } OutputSignals = { Time = { DataSource = DDB3 Type = uint32 } Counter = { DataSource = DDB3 Type = uint32 } RTThreadPerf = { DataSource = DDB3 Type = uint32 } MHVPS_DT = { DataSource = DDB3 Type = uint32 } APS_HVON_DT = { DataSource = DDB3 Type = uint32 } APS_SWON_DT = { DataSource = DDB3 Type = uint32 } BPS_HVON_DT = { DataSource = DDB3 Type = uint32 } BPS_SWON_DT = { DataSource = DDB3 Type = uint32 } SHOTLEN = { DataSource = DDB3 Type = uint32 } PLC_ON = { DataSource = DDB3 Type = uint32 } GYA_APS_FLT = { DataSource = DDB3 Type = uint32 } GYB_APS_FLT = { DataSource = DDB3 Type = uint32 } GYA_BPS_FLT = { DataSource = DDB3 Type = uint32 } GYB_BPS_FLT = { DataSource = DDB3 Type = uint32 } MHVPS_OV = { DataSource = DDB3 Type = uint32 } MHVPS_OC = { DataSource = DDB3 Type = uint32 } MHVPS_FLT = { DataSource = DDB3 Type = uint32 } MIS_ITL = { DataSource = DDB3 Type = uint32 } MISB_ITL = { DataSource = DDB3 Type = uint32 } PLC_ITL = { DataSource = DDB3 Type = uint32 } PLC_MODE1 = { DataSource = DDB3 Type = uint32 } MD1_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE2 = { DataSource = DDB3 Type = uint32 } MD2_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE3 = { DataSource = DDB3 Type = uint32 } MD3_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE4 = { DataSource = DDB3 Type = uint32 } MD4_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } APS_HVON = { DataSource = DDB3 Type = uint32 } APS_SWON = { DataSource = DDB3 Type = uint32 } APS_STOP = { DataSource = DDB3 Type = uint32 } BPS_HVON = { DataSource = DDB3 Type = uint32 } BPS_SWON = { DataSource = DDB3 Type = uint32 } BPS_STOP = { DataSource = DDB3 Type = uint32 } BEAM_ON_STAT = { DataSource = DDB3 Type = uint32 } DO_REV5 = { DataSource = DDB3 Type = uint32 } DO_REV6 = { DataSource = DDB3 Type = uint32 } DO_REV7 = { DataSource = DDB3 Type = uint32 } DO_REV8 = { DataSource = DDB3 Type = uint32 } MHVPS_HVON = { DataSource = DDB3 Type = uint32 } MHVPS_STOP = { DataSource = DDB3 Type = uint32 } MHVPS_MODSW = { DataSource = DDB3 Type = uint32 } PCF_FLT = { DataSource = DDB3 Type = uint32 } HVARMED = { DataSource = DDB3 Type = uint32 } SHORT_PULSE_MODE = { DataSource = DDB3 Type = uint32 } HVINJECTION = { DataSource = DDB3 Type = uint32 } RFON = { DataSource = DDB3 Type = uint32 } FHPS_RU = { DataSource = DDB3 Type = uint32 } SCM_RU = { DataSource = DDB3 Type = uint32 } SCM_RD = { DataSource = DDB3 Type = uint32 } CCPS_IN_OPERATION = { DataSource = DDB3 Type = uint32 } PXI_FLT = { DataSource = DDB3 Type = uint32 } } } +StopRequestGAM = { Class = JAConditionalSignalUpdateGAM Operation = OR ExpectedValues = {1 1 1 1 1 1 1 1 1 1} Comparators = {EQUALS EQUALS EQUALS EQUALS EQUALS EQUALS EQUALS EQUALS EQUALS EQUALS} Values = {1} InputSignals = { GYA_APS_FLT = { DataSource = DDB3 Type = uint32 } GYB_APS_FLT = { DataSource = DDB3 Type = uint32 } GYA_BPS_FLT = { DataSource = DDB3 Type = uint32 } GYB_BPS_FLT = { DataSource = DDB3 Type = uint32 } MHVPS_OV = { DataSource = DDB3 Type = uint32 } MHVPS_OC = { DataSource = DDB3 Type = uint32 } MHVPS_FLT = { DataSource = DDB3 Type = uint32 } MIS_ITL = { DataSource = DDB3 Type = uint32 } MISB_ITL = { DataSource = DDB3 Type = uint32 } PLC_ITL = { DataSource = DDB3 Type = uint32 } StopRequest_DEFAULT = { DataSource = DDB3 Type = uint32 Default = 0 } } OutputSignals = { StopRequest = { DataSource = DDB3 Type = uint32 } } } // Check the selected mode, and check maximum pulse length. Use with a StateMachineGAM +ModeLimitGAM = { Class = JAModeControlGAM InputSignals = { PLC_MODE1 = { DataSource = DDB3 Type = uint32 } MD1_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE2 = { DataSource = DDB3 Type = uint32 } MD2_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE3 = { DataSource = DDB3 Type = uint32 } MD3_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } PLC_MODE4 = { DataSource = DDB3 Type = uint32 } MD4_SHOTLEN_LIM = { DataSource = DDB3 Type = uint32 } RFON_Share = { DataSource = DDB3 Type = uint32 } Time = { DataSource = DDB3 Type = uint32 } HVINJECTION_Share = { DataSource = DDB3 Type = uint32 } } OutputSignals = { MODE_SHOTLEN_FLAG = { DataSource = DDB3 Type = uint32 } } } // Digital Output port access. // EPICS PV to one uint8 variable +NI6528P3GAM = { Class = JABitSumGAM InputSignals = { APS_HVON = { DataSource = DDB3 Type = uint32 } APS_SWON = { DataSource = DDB3 Type = uint32 } APS_STOP = { DataSource = DDB3 Type = uint32 } BPS_HVON = { DataSource = DDB3 Type = uint32 } BPS_SWON = { DataSource = DDB3 Type = uint32 } BPS_STOP = { DataSource = DDB3 Type = uint32 } BEAM_ON_STAT = { DataSource = DDB3 Type = uint32 } DO_REV5 = { DataSource = DDB3 Type = uint32 } } OutputSignals = { NI6528P3CurrentValue = { DataSource = DDB3 Type = uint8 } } } +NI6528P4GAM = { Class = JABitSumGAM InputSignals = { DO_REV6 = { DataSource = DDB3 Type = uint32 } DO_REV7 = { DataSource = DDB3 Type = uint32 } DO_REV8 = { DataSource = DDB3 Type = uint32 } MHVPS_HVON = { DataSource = DDB3 Type = uint32 } MHVPS_STOP = { DataSource = DDB3 Type = uint32 } MHVPS_MODSW = { DataSource = DDB3 Type = uint32 } PCF_FLT = { DataSource = DDB3 Type = uint32 } HVARMED = { DataSource = DDB3 Type = uint32 } } OutputSignals = { NI6528P4CurrentValue = { DataSource = DDB3 Type = uint8 } } } // Real-Time state machine GAMs +GAMRealTimeStateMachine = { Class = JARTStateMachineGAM ConditionTrigger = 1 mhvps_hvon = 4 aps_hvon = 1 aps_swon = 16 bps_hvon = 2 bps_swon = 8 InputSignals = { Time = { DataSource = DDB3 Type = uint32 } PLC_ON = { DataSource = DDB3 Type = uint32 } MHVPS_DT = { DataSource = DDB3 Type = uint32 } APS_HVON_DT = { DataSource = DDB3 Type = uint32 } APS_SWON_DT = { DataSource = DDB3 Type = uint32 } BPS_HVON_DT = { DataSource = DDB3 Type = uint32 } BPS_SWON_DT = { DataSource = DDB3 Type = uint32 } SHOTLEN = { DataSource = DDB3 Type = uint32 } StopRequest = { DataSource = DDB3 Type = uint32 } MODE_SHOTLEN_FLAG = { DataSource = DDB3 Type = uint32 } SHORT_PULSE_MODE = { DataSource = DDB3 Type = uint32 } //Add 20210120 MHVPS_MODSW = { DataSource = DDB3 Type = uint32 } //Add 20210121 DO_REV6 = { DataSource = DDB3 Type = uint32 } } OutputSignals = { RTSMValue = { DataSource = DDB3 Type = uint32 Trigger = 1 } BEAM_ON_STAT_Share = { DataSource = DDB3 Type = uint32 } HVARMED_Share = { DataSource = DDB3 Type = uint32 } HVINJECTION_Share = { DataSource = DDB3 Type = uint32 } RFON_Share = { DataSource = DDB3 Type = uint32 } BeamONTime_Share = { DataSource = DDB3 Type = uint32 } RFONTime_Share = { DataSource = DDB3 Type = uint32 } SHOT_ID_Share = { DataSource = DDB3 Type = uint32 } APS_HVON_Share = { DataSource = DDB3 Type = uint32 } APS_SWON_Share = { DataSource = DDB3 Type = uint32 } BPS_HVON_Share = { DataSource = DDB3 Type = uint32 } BPS_SWON_Share = { DataSource = DDB3 Type = uint32 } MHVPS_HVON_Share = { DataSource = DDB3 Type = uint32 } NI6259Value = { DataSource = NI6259 //DataSource = DDB3 Type = uint32 Trigger = 1 } NI6528P3Value = { DataSource = NI6528P3 //DataSource = DDB3 Type = uint8 } NI6528P4Value = { DataSource = NI6528P4 //DataSource = DDB3 Type = uint8 } } } +GAMSDNRealTimeStateMachine = { Class = JASDNRTStateMachineGAM ConditionTrigger = 1 mhvps_hvon = 4 aps_hvon = 1 aps_swon = 16 bps_hvon = 2 bps_swon = 8 InputSignals = { Time = { DataSource = DDB3 Type = uint32 } PLC_ON = { DataSource = DDB3 Type = uint32 } MHVPS_DT = { DataSource = DDB3 Type = uint32 } APS_HVON_DT = { DataSource = DDB3 Type = uint32 } APS_SWON_DT = { DataSource = DDB3 Type = uint32 } BPS_HVON_DT = { DataSource = DDB3 Type = uint32 } BPS_SWON_DT = { DataSource = DDB3 Type = uint32 } SHOTLEN = { DataSource = DDB3 Type = uint32 } StopRequest = { DataSource = DDB3 Type = uint32 } MODE_SHOTLEN_FLAG = { DataSource = DDB3 Type = uint32 } Command = { DataSource = TriggerAsyncBridge Type = uint16 } } OutputSignals = { RTSMValue = { DataSource = DDB3 Type = uint32 Trigger = 1 } BeamON_Share = { DataSource = DDB3 Type = uint32 } HVARMED_Share = { DataSource = DDB3 Type = uint32 } HVINJECTION_Share = { DataSource = DDB3 Type = uint32 } RFON_Share = { DataSource = DDB3 Type = uint32 } BeamONTime_Share = { DataSource = DDB3 Type = uint32 } RFONTime_Share = { DataSource = DDB3 Type = uint32 } SHOT_ID_Share = { DataSource = DDB3 Type = uint32 } } } //Terminal Interface reads three inputs. // INPUTs: StateMahine Value, NI6528P3Value and NI6528P4Value // OUTPUTs: Each NIxxx data sources. +TerminalInterfaceGAM = { Class = JATerminalInterfaceGAM mhvps_hvon_term = 4 aps_hvon_term = 1 aps_swon_term = 16 bps_hvon_term = 2 bps_swon_term = 8 InputSignals = { MHVPS_HVON = { DataSource = DDB3 Type = uint32 } APS_HVON = { DataSource = DDB3 Type = uint32 } APS_SWON = { DataSource = DDB3 Type = uint32 } BPS_HVON = { DataSource = DDB3 Type = uint32 } BPS_SWON = { DataSource = DDB3 Type = uint32 } SHORT_PULSE_MODE = { DataSource = DDB3 Type = uint32 } //Input signals about HW terminal. RTSMValue = { DataSource = DDB3 Type = uint32 } NI6528P3CurrentValue = { DataSource = DDB3 Type = uint8 } NI6528P4CurrentValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6259Value = { DataSource = NI6259 //DataSource = DDB3 Type = uint32 Trigger = 1 } NI6528P3Value = { DataSource = NI6528P3 //DataSource = DDB3 Type = uint8 } NI6528P4Value = { DataSource = NI6528P4 //DataSource = DDB3 Type = uint8 } } } +NI6528P5GAM = { Class = JABitSumGAM InputSignals = { HVINJECTION = { DataSource = DDB3 Type = uint32 } RFON = { DataSource = DDB3 Type = uint32 } FHPS_RU = { DataSource = DDB3 Type = uint32 } SCM_RU = { DataSource = DDB3 Type = uint32 } SCM_RD = { DataSource = DDB3 Type = uint32 } CCPS_IN_OPERATION = { DataSource = DDB3 Type = uint32 } PXI_FLT = { DataSource = DDB3 Type = uint32 } NONE2 = { DataSource = DDB3 Type = uint32 Default = 0 } } OutputSignals = { NI6528P5CurrentValue = { DataSource = DDB3 Type = uint8 } } } // reversed uint8 variable (value to write on port.) +NI6528P3PV2PortGAM = { Class = JABitReverseGAM InputSignals = { NI6528P3CurrentValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P3PortValue = { DataSource = DDB3 Type = uint8 } } } +NI6528P4PV2PortGAM = { Class = JABitReverseGAM InputSignals = { NI6528P4CurrentValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P4PortValue = { DataSource = DDB3 Type = uint8 } } } +NI6528P5PV2PortGAM = { Class = JABitReverseGAM InputSignals = { NI6528P5CurrentValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P5PortValue = { DataSource = DDB3 Type = uint8 } } } // write a uint8 port value to PXI data source. +NI6528P3WriteGAM = { Class = IOGAM InputSignals = { NI6528P3PortValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P3Value = { DataSource = NI6528P3 Type = uint8 } } } +NI6528P4WriteGAM = { Class = IOGAM InputSignals = { NI6528P4PortValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P4Value = { DataSource = NI6528P4 Type = uint8 } } } +NI6528P5WriteGAM = { Class = IOGAM InputSignals = { NI6528P5PortValue = { DataSource = DDB3 Type = uint8 } } OutputSignals = { NI6528P5Value = { DataSource = NI6528P5 Type = uint8 } } } +ShareOutGAM = { Class = IOGAM InputSignals = { BEAM_ON_STAT_Share = { DataSource = DDB3 Type = uint32 } HVARMED_Share = { DataSource = DDB3 Type = uint32 } HVINJECTION_Share = { DataSource = DDB3 Type = uint32 } RFON_Share = { DataSource = DDB3 Type = uint32 } BeamONTime_Share = { DataSource = DDB3 Type = uint32 } RFONTime_Share = { DataSource = DDB3 Type = uint32 } SHOT_ID_Share = { DataSource = DDB3 Type = uint32 } APS_HVON_Share = { DataSource = DDB3 Type = uint32 } APS_SWON_Share = { DataSource = DDB3 Type = uint32 } BPS_HVON_Share = { DataSource = DDB3 Type = uint32 } BPS_SWON_Share = { DataSource = DDB3 Type = uint32 } MHVPS_HVON_Share = { DataSource = DDB3 Type = uint32 } CCPS_IN_OPERATION = { DataSource = DDB3 Type = uint32 } } OutputSignals = { BEAM_ON_STAT = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } HVARMED = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } HVINJECTION = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } RFON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } BeamONTime = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } RFONTime = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } SHOT_ID = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } APS_HVON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } APS_SWON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } BPS_HVON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } BPS_SWON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } MHVPS_HVON = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } CCPS_IN_OPERATION = { DataSource = RealTimeThreadAsyncBridge Type = uint32 } } }