From 11e6159e0a58a97c9de4be6d43ff7d0fff1e48b3 Mon Sep 17 00:00:00 2001 From: Martino Ferrari Date: Thu, 5 Feb 2026 10:33:53 +0100 Subject: [PATCH] Config 1 --- .../Configurations/Makefile.inc | 8 +- .../Configurations/src/app.marte | 6 + .../Configurations/src/app_states.marte | 564 ++++++++++++++--- .../Configurations/src/data/epics.marte | 310 +++++++--- .../Configurations/src/data/pxi.marte | 141 +---- .../src/state_machine/disabled.marte | 44 +- .../src/state_machine/error.marte | 22 +- .../src/state_machine/initial.marte | 18 +- .../src/state_machine/waithvon.marte | 66 +- .../src/state_machine/waithvon_prep.marte | 66 +- .../src/state_machine/waithvon_sdn.marte | 66 +- .../src/state_machine/waithvon_sdn_prep.marte | 66 +- .../src/state_machine/waitpermit.marte | 132 ++-- .../src/state_machine/waitready.marte | 66 +- .../src/state_machine/waitstandby.marte | 66 +- .../Configurations/src/thread1/data.marte | 88 +++ .../Configurations/src/thread1/epics.marte | 245 ++++++-- .../src/thread1/preprogrammed_waveform.marte | 7 - .../src/thread1/pxi_error_management.marte | 91 +-- .../src/thread1/references_generator.marte | 120 +--- .../src/thread1/state_management.marte | 69 ++- .../src/thread1/thread_data_broker.marte | 342 +++++++---- .../Configurations/src/thread2/sdn.marte | 63 +- .../Configurations/src/thread3/datasync.marte | 391 +++--------- .../Configurations/src/thread3/epics.marte | 12 +- .../src/thread3/hvon_functions.marte | 22 +- .../src/thread3/pxi_io_gams.marte | 18 +- .../src/thread3/rt_statemachines.marte | 17 +- .../src/thread4/adc_2_dan.marte | 577 ++++++++++++++++++ .../src/thread5/dio_dan_writer.marte | 376 ++++++++++++ .../Configurations/src/thread6/ccps.marte | 42 ++ .../Configurations/src/thread6/fhps.marte | 77 +++ .../Configurations/src/thread6/synch.marte | 81 +++ .../Configurations/src/timers.marte | 55 +- .../Configurations/src/variables.marte | 43 ++ 35 files changed, 3019 insertions(+), 1358 deletions(-) create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/ccps.marte create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/fhps.marte create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/synch.marte create mode 100644 EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/Makefile.inc b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/Makefile.inc index aa6f316..51b4641 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/Makefile.inc +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/Makefile.inc @@ -23,7 +23,9 @@ ############################################################# #Named of the unit files to be compiled -OBJSX=JAGyrotronA_FY19_P1.x +OBJSX=JARF01App.x +MDT=mdt +SOURCES=src/*.marte src/state_machine/*.marte src/data/*.marte src/thread1/*.marte src/thread2/*.marte src/thread3/*.marte src/thread4/*.marte src/thread5/*.marte src/thread6/*.marte #Location of the Build directory where the configuration file will be written to BUILD_DIR?=./out/ @@ -36,7 +38,7 @@ MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET) all: $(OBJS) - echo $(OBJS) - + $(MDT) build $(SOURCES) -o $(OBJSX) + include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET) diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app.marte index 30cdb72..354cba7 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app.marte @@ -1,8 +1,11 @@ #package jada_gyro +//# Main Operational State Machine +StateMachine = { Class = StateMachine } + +//# MARTe RealTime Application +RTApp = { Class = RealTimeApplication +Data = { @@ -26,6 +29,9 @@ AllowNoProducers = 1 ResetUnusedVariablesAtStateChange = 0 } + +DDB6 = { + Class = GAMDataSource + } +Timings = { Class = TimingDataSource } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app_states.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app_states.marte index 00bbdd2..a68d4bc 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app_states.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/app_states.marte @@ -1,23 +1,67 @@ #package jada_gyro.RTApp.States + +Disabled = { Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM GoErrorGAM GoWaitStandbyGAM ChoiceGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM } - CPUs = 0x100 + CPUs = @cpus_epics + Functions = { + SyncThreadConsumerGAM, + StateGAM, + MCPSGAM, + PXIErrorGAM, + GoErrorGAM, + GoWaitStandbyGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + CPUs = @cpus_sdn + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM HVPSsOffGAM NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + CPUs = @cpus_rt + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + HVPSsOffGAM, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + } + +ADCThread = { + Class = RealTimeThread + CPUs = @cpus_adc + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + } + +DANThread = { + Class = RealTimeThread + CPUs = @cpus_dan + Functions = { DANDIOPublisherGAM } + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + WGProducerGAM + } } } } @@ -25,20 +69,66 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM ChoiceGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoDisabledGAM GoWaitReadyGAM GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + MCPSGAM, + PXIErrorGAM, + GoDisabledGAM, + GoWaitReadyGAM, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM HVPSsOffGAM NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + HVPSsOffGAM, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSSetpointGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -46,20 +136,67 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoWaitPermitGAM GoWaitStandbyFromReadyGAM GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + WFRecordGAM, + PreProgrammedGAM, + PXIErrorGAM, + GoWaitPermitGAM, + GoWaitStandbyFromReadyGAM, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM HVPSsOffGAM NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + HVPSsOffGAM, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSSetpointGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -67,20 +204,70 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM GoWaitReadyFromWaitPermitGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoWaitHVONGAM GoWaitHVON_PREP_GAM GoWaitHVON_SDN_GAM GoWaitHVON_SDN_PREP_GAM GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + WFRecordGAM, + PreProgrammedGAM, + PXIErrorGAM, + GoWaitReadyFromWaitPermitGAM, + GoWaitHVONGAM, + GoWaitHVON_PREP_GAM, + GoWaitHVON_SDN_GAM, + GoWaitHVON_SDN_PREP_GAM, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM HVPSsOffGAM NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + HVPSsOffGAM, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSSetpointGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -89,20 +276,64 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM FastStatesSync FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + PXIErrorGAM, + FromWaitHVONToWaitStandby, + FromWaitHVONToWaitPermit, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { TimeSDNGAM, SDNCommandGAM, SDNReplyGAM } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM FastEpicsInputGAM FastStopRequestGAM ModeLimitGAM GAMRealTimeStateMachine NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + FastEpicsInputGAM, + FastStopRequestGAM, + ModeLimitGAM, + GAMRealTimeStateMachine, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSSetpointGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -110,20 +341,67 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM FastStatesSync FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + PXIErrorGAM, + FromWaitHVONToWaitStandby, + FromWaitHVONToWaitPermit, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM FastEpicsInputGAM FastStopRequestGAM ModeLimitGAM GAMSDNRealTimeStateMachine NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + FastEpicsInputGAM, + FastStopRequestGAM, + ModeLimitGAM, + GAMSDNRealTimeStateMachine, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -131,20 +409,60 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM FastStatesSync FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + PreProgrammedGAM, + PXIErrorGAM, + FromWaitHVONToWaitStandby, + FromWaitHVONToWaitPermit, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { TimeSDNGAM, SDNCommandGAM, SDNReplyGAM } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM FastEpicsInputGAM FastStopRequestGAM ModeLimitGAM GAMRealTimeStateMachine NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + FastEpicsInputGAM, + FastStopRequestGAM, + ModeLimitGAM, + GAMRealTimeStateMachine, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { ReadADC, PushADCtoDAN, PushADCtoEpics } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -152,20 +470,63 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM ChoiceGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM FastStatesSync FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM } - CPUs = 0x100 + Functions = { + SyncThreadConsumerGAM, + StateGAM, + PreProgrammedGAM, + PXIErrorGAM, + FromWaitHVONToWaitStandby, + FromWaitHVONToWaitPermit, + GoErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM FastEpicsInputGAM FastStopRequestGAM ModeLimitGAM GAMSDNRealTimeStateMachine SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + FastEpicsInputGAM, + FastStopRequestGAM, + ModeLimitGAM, + GAMSDNRealTimeStateMachine, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { ReadADC, PushADCtoDAN, PushADCtoEpics } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + FHPSRampupGAM, + WGProducerGAM + } } } } @@ -173,22 +534,63 @@ Class = RealTimeState +Threads = { Class = ReferenceContainer - +Thread1 = { + +EPICSThread = { Class = RealTimeThread - Functions = { SyncThreadConsumerGAM StateGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM ResetErrorGAM ChoiceGAM EPICSOutputGAM CCPSWaveformGAM } + Functions = { + SyncThreadConsumerGAM, + StateGAM, + PXIErrorGAM, + ResetErrorGAM, + ChoiceGAM, + EPICSThSyncGAM, + EPICSOutputGAM + } // REMOVED: GoErrorGAM (redundant), FHPSSetPointGAM and FHPSRumpUpGAM // TODO: Discus about the removal - CPUs = 0x100 + CPUs = @cpus_epics } - +Thread2 = { + +SDNThread = { Class = RealTimeThread - Functions = { TimeSDNGAM SDNCommandGAM SDNReplyGAM } - CPUs = 0x200 + Functions = { + TimeSDNGAM, + SDNCommandGAM, + SDNReplyGAM + } + CPUs = @cpus_sdn } - +Thread3 = { + +RealTimeThread = { Class = RealTimeThread - Functions = { FastTimerGAM NI6528_0_ReaderGAM HVPSsOffGAM NI6528_0_WriterGAM SyncThreadProducerGAM } - CPUs = 0x400 + Functions = { + FastTimerGAM, + NI6528_0_ReaderGAM, + HVPSsOffGAM, + NI6528_0_WriterGAM, + SyncThreadProducerGAM + } + CPUs = @cpus_rt + } + +ADCThread = { + Class = RealTimeThread + Functions = { + ReadADC, + PushADCtoDAN, + PushADCtoEpics + } + CPUs = @cpus_adc + } + +DANThread = { + Class = RealTimeThread + Functions = { DANDIOPublisherGAM } + CPUs = @cpus_dan + } + +ReferenceGenerationThread = { + Class = RealTimeThread + CPUs = @cpus_wg + Functions = { + WGTimerGAM, + CCPSWaveformGAM, + WGProducerGAM + } } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/epics.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/epics.marte index fede2fd..bf0a40e 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/epics.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/epics.marte @@ -1,173 +1,202 @@ #package jada_gyro.RTApp.Data + +EPICSCAInput = { Class = EPICSCAInput Signals = { + CSV_LOAD = { + PVName = (@rfid .. "-GAF:STAT-CSV-LOAD") + Type = uint32 + } CSV_NAME = { - PVName = "EC-GN-P01-GAF:STAT-CSV-NAME" + PVName = (@rfid .. "-GAF:STAT-CSV-NAME") Type = char8 NumberOfElements = 40 } MIS_ITL = { Type = uint32 - PVName = "EC-GN-P01-GAFP:FMC4310-YTRP" + PVName = (@rfid .. "-GAFP:FMC4310-YTRP") } RESET_FLT = { - PVName = "EC-GN-P01-GPF:STAT-RST-FLT" + PVName = (@rfid .. "-GPF:STAT-RST-FLT") Type = uint32 } PLC_SELECT = { - PVName = "EC-GN-P01-GPS:PLC4110-CON-OPGY1" + PVName = (@rfid .. "-GPS:PLC4110-CON-OPGY1") Type = uint32 } CCPS_OUTPUT_FREQ = { - PVName = "EC-GN-P01-GAF-CCPS:STAT-FREQ" + PVName = (@rfid .. "-GAF-CCPS:STAT-FREQ") Type = float32 } CCPS_OUTPUT_AMP = { - PVName = "EC-GN-P01-GAF-CCPS:STAT-AMP" + PVName = (@rfid .. "-GAF-CCPS:STAT-AMP") Type = float32 } CCPS_OUTPUT_OFFS = { - PVName = "EC-GN-P01-GAF-CCPS:STAT-OFFS" + PVName = (@rfid .. "-GAF-CCPS:STAT-OFFS") Type = float32 } GCPS_TRG_CURR_MANUAL = { - PVName = "EC-GN-P01-GAF-GCPS:PSU2130-TRG-CURR-SET-MI" + PVName = (@rfid .. "-GAF-GCPS:PSU2130-TRG-CURR-SET-MI") Type = float32 } MCPS_TRG_CURR_MANUAL = { - PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MI" + PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MI") Type = float32 } BPS_MANUAL = { - PVName = "EC-GN-P01-PB1F:PSU1000-EREF-MSP" + PVName = (@rfid .. "-PB1F:PSU1000-EREF-MSP") Type = float32 } BPS_MM = { - PVName = "EC-GN-P01-PB1F:STAT-MANM" + PVName = (@rfid .. "-PB1F:STAT-MANM") Type = uint32 } APS_MANUAL = { - PVName = "EC-GN-P01-PA1F:PSU3000-EREF-MSP" + PVName = (@rfid .. "-PA1F:PSU3000-EREF-MSP") Type = float32 } APS_MM = { - PVName = "EC-GN-P01-PA1F:STAT-MANM" + PVName = (@rfid .. "-PA1F:STAT-MANM") Type = uint32 } MHVPS_MANUAL = { - PVName = "EC-GN-P01-PMF:PSU0000-EREF-MSP" + PVName = (@rfid .. "-PMF:PSU0000-EREF-MSP") Type = float32 } MHVPS_MM = { - PVName = "EC-GN-P01-PMF:STAT-MANM" + PVName = (@rfid .. "-PMF:STAT-MANM") Type = uint32 } MCPS_MM = { - PVName = "EC-GN-P01-GAF-MCPS:STAT-MANM" + PVName = (@rfid .. "-GAF-MCPS:STAT-MANM") Type = uint32 } GCPS_MM = { - PVName = "EC-GN-P01-GAF-GCPS:STAT-MANM" + PVName = (@rfid .. "-GAF-GCPS:STAT-MANM") Type = uint32 } FHPS_AUTO_TAGV = { - PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-TAGV" + PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-TAGV") Type = float32 } FHPS_AUTO_TIME = { - PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-RU-TIME" + PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-RU-TIME") Type = float32 } FHPS_AUTO_START = { - PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-START" + PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-START") Type = uint32 } FHPS_MANM = { - PVName = "EC-GN-P01-GAF-FHPS:STAT-MANM" + PVName = (@rfid .. "-GAF-FHPS:STAT-MANM") Type = uint32 } //# Guncoil state readback GCPS_ACT_RB = { - PVName = "EC-GN-P01-GAF-GCPS:PSU2130-ACT-RB" + PVName = (@rfid .. "-GAF-GCPS:PSU2130-ACT-RB") Type = uint32 } //# Guncoil current monitor GCPS_CURR_MON = { - PVName = "EC-GN-P01-GAF-GCPS:PSU2130-CURR-MON" + PVName = (@rfid .. "-GAF-GCPS:PSU2130-CURR-MON") Type = float32 } //# Main coil state readback MCPS_ACT_RB = { - PVName = "EC-GN-P01-GAF-MCPS:PSU2120-ACT-RB" + PVName = (@rfid .. "-GAF-MCPS:PSU2120-ACT-RB") Type = uint32 } //# Main coil current monitor MCPS_CURR_MON = { - PVName = "EC-GN-P01-GAF-MCPS:PSU2120-CURR-MON" + PVName = (@rfid .. "-GAF-MCPS:PSU2120-CURR-MON") Type = float32 } //# Pre-program flag PREP_MODE = { - PVName = "EC-GN-P01-GAF:STAT-PREP-MODE" + PVName = (@rfid .. "-GAF:STAT-PREP-MODE") Type = uint32 } // Timing settings MHVPS_DT = { - PVName = "EC-GN-P01-PMF:STAT-DT-HVON" + PVName = (@rfid .. "-PMF:STAT-DT-HVON") Type = uint32 } APS_HVON_DT = { - PVName = "EC-GN-P01-PA1F:STAT-DT-HVON" + PVName = (@rfid .. "-PA1F:STAT-DT-HVON") Type = uint32 } APS_SWON_DT = { - PVName = "EC-GN-P01-PA1F:STAT-DT-SWON" + PVName = (@rfid .. "-PA1F:STAT-DT-SWON") Type = uint32 } BPS_HVON_DT = { - PVName = "EC-GN-P01-PB1F:STAT-DT-HVON" + PVName = (@rfid .. "-PB1F:STAT-DT-HVON") Type = uint32 } BPS_SWON_DT = { - PVName = "EC-GN-P01-PB1F:STAT-DT-SWON" + PVName = (@rfid .. "-PB1F:STAT-DT-SWON") Type = uint32 } SHOTLEN = { - PVName = "EC-GN-P01-GAF:STAT-DT-SHOTLEN" + PVName = (@rfid .. "-GAF:STAT-DT-SHOTLEN") Type = uint32 } PLC_MODE1 = { - PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD1" + PVName = (@rfid .. "-GPS:PLC4110-YTS-MD1") Type = uint32 } PLC_MODE2 = { - PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD2" + PVName = (@rfid .. "-GPS:PLC4110-YTS-MD2") Type = uint32 } PLC_MODE3 = { - PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD3" + PVName = (@rfid .. "-GPS:PLC4110-YTS-MD3") Type = uint32 } PLC_MODE4 = { - PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD4" + PVName = (@rfid .. "-GPS:PLC4110-YTS-MD4") Type = uint32 } MD1_SHOTLEN_LIM = { - PVName = "EC-GN-P01-GPF:STAT-MD1-LIM" + PVName = (@rfid .. "-GPF:STAT-MD1-LIM") Type = uint32 } MD2_SHOTLEN_LIM = { - PVName = "EC-GN-P01-GPF:STAT-MD2-LIM" + PVName = (@rfid .. "-GPF:STAT-MD2-LIM") Type = uint32 } MD3_SHOTLEN_LIM = { - PVName = "EC-GN-P01-GPF:STAT-MD3-LIM" + PVName = (@rfid .. "-GPF:STAT-MD3-LIM") Type = uint32 } MD4_SHOTLEN_LIM = { - PVName = "EC-GN-P01-GPF:STAT-MD4-LIM" + PVName = (@rfid .. "-GPF:STAT-MD4-LIM") + Type = uint32 + } + GY_MCPS_CURR_MON = { + PVName = (@rfid .. "-GAF-MCPS:PSU2120-CURR-MON") + Type = float32 + } + GY_GCPS_CURR_MON = { + PVName = (@rfid .. "-GAF-GCPS:PSU2130-CURR-MON") + Type = float32 + } + GY_FHPS_MEAS_ACI = { + PVName = (@rfid .. "-GAF-FHPS:PSU2610-MEAS-ACI") + Type = float32 + } + GY_FHPS_MEAS_ACV = { + PVName = (@rfid .. "-GAF-FHPS:PSU2610-MEAS-ACV") + Type = float32 + } + GY_CCPS_MEAS_DCI = { + PVName = (@rfid .. "-GAF-CCPS:PSU2320-MEAS-DCI") + Type = float32 + } + SHORT_PULSE_MODE = { + PVName = (@rfid .. "-GAF:STAT-SHORT-PULSE") Type = uint32 } } @@ -179,172 +208,289 @@ NumberOfBuffers = 2 Signals = { PCF_STATE = { - PVName = "EC-GN-P01-GAF:STAT-SM" + PVName = (@rfid .. "-GAF:STAT-SM") Type = uint32 } // Analog Output PVs in Variables-signal tab. FHPS_REF = { - PVName = "EC-GN-P01-GAF-FHPS:PSU2610-EREF" + PVName = (@rfid .. "-GAF-FHPS:PSU2610-EREF") Type = float32 } BPS_REF = { - PVName = "EC-GN-P01-PB1F:PSU1000-EREF" + PVName = (@rfid .. "-PB1F:PSU1000-EREF") Type = float32 } APS_REF = { - PVName = "EC-GN-P01-PA1F:STAT-EREF-CONV.A" + PVName = (@rfid .. "-PA1F:STAT-EREF-CONV.A") + // TODO: PSU3000-YSTA Type = float32 } MHVPS_REF = { - PVName = "EC-GN-P01-PMF:STAT-EREF-CALC.A" + PVName = (@rfid .. "-PMF:STAT-EREF-CALC.A") Type = float32 } // Digital Output PVs in Variables-signal tab. APS_STOP = { - PVName = "EC-GN-P01-PA1F:PSU3000-CTRP" + PVName = (@rfid .. "-PA1F:PSU3000-CTRP") Type = uint32 } BPS_STOP = { - PVName = "EC-GN-P01-PB1F:PSU1000-CTRP" + PVName = (@rfid .. "-PB1F:PSU1000-CTRP") Type = uint32 } BEAM_ON_STAT = { - PVName = "EC-GN-P01-GAFP:FMC4310-YSTA-GAOP" + PVName = (@rfid .. "-GAFP:FMC4310-YSTA-GAOP") Type = uint32 } MHVPS_STOP = { - PVName = "EC-GN-P01-PMF:PSU0000-COFF" + PVName = (@rfid .. "-PMF:PSU0000-COFF") Type = uint32 } PCF_FLT = { - PVName = "EC-GN-P01-GPF:PCF4210-CTRP" + PVName = (@rfid .. "-GPF:PCF4210-CTRP") Type = uint32 } PXI_FLT = { - PVName = "EC-GN-P01-GPS:PLC4110-RV2" + PVName = (@rfid .. "-GPS:PLC4110-RV2") Type = uint32 } HVARMED = { - PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA1" + PVName = (@rfid .. "-GPF:PCF4210-YTS-GA1") Type = uint32 } HVINJECTION = { - PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA2" + PVName = (@rfid .. "-GPF:PCF4210-YTS-GA2") Type = uint32 } RFON = { - PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA3" + PVName = (@rfid .. "-GPF:PCF4210-YTS-GA3") Type = uint32 } // Output PVs in Variables-operation tab. MHVPS_PREP_WF = { - PVName = "EC-GN-P01-PMF:STAT-PREP-WF" + PVName = (@rfid .. "-PMF:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } BPS_PREP_WF = { - PVName = "EC-GN-P01-PB1F:STAT-PREP-WF" + PVName = (@rfid .. "-PB1F:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } APS_PREP_WF = { - PVName = "EC-GN-P01-PA1F:STAT-PREP-WF" + PVName = (@rfid .. "-PA1F:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } FHPS_PREP_WF = { - PVName = "EC-GN-P01-GAF-FHPS:STAT-PREP-WF" + PVName = (@rfid .. "-GAF-FHPS:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } MCPS_PREP_WF = { - PVName = "EC-GN-P01-GAF-MCPS:STAT-PREP-WF" + PVName = (@rfid .. "-GAF-MCPS:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } GCPS_PREP_WF = { - PVName = "EC-GN-P01-GAF-GCPS:STAT-PREP-WF" + PVName = (@rfid .. "-GAF-GCPS:STAT-PREP-WF") Type = float32 NumberOfElements = 8000 NumberOfDimensions = 1 } PREP_TIME_WF = { - PVName = "EC-GN-P01-GAF:STAT-PREP-TIME-WF" + PVName = (@rfid .. "-GAF:STAT-PREP-TIME-WF") Type = int32 NumberOfElements = 8000 NumberOfDimensions = 1 } BEAM_ON_TIME = { - PVName = "EC-GN-P01-GAF:STAT-BEAMON-TIME" + PVName = (@rfid .. "-GAF:STAT-BEAMON-TIME") Type = uint32 } ELAPSED_TIME = { - PVName = "EC-GN-P01-GAF:STAT-ELAPSED" + PVName = (@rfid .. "-GAF:STAT-ELAPSED") Type = uint32 } SHOT_ID = { - PVName = "EC-GN-P01-GAF:STAT-SHOT-ID" + PVName = (@rfid .. "-GAF:STAT-SHOT-ID") Type = uint32 } CSV_LOADED = { - PVName = "EC-GN-P01-GAF:STAT-CSV-LOADED" + PVName = (@rfid .. "-GAF:STAT-CSV-LOADED") Type = uint32 } CSV_ERR = { - PVName = "EC-GN-P01-GAF:STAT-CSV-ERR" + PVName = (@rfid .. "-GAF:STAT-CSV-ERR") Type = uint32 } // Output PVs in Variables-jastec tab. MCPS_TRG_CURR_SET = { - PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MO" + PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MO") Type = float32 } MCPS_ACT_SP = { - PVName = "EC-GN-P01-GAF-MCPS:PSU2120-ACT-SP-MO" + PVName = (@rfid .. "-GAF-MCPS:PSU2120-ACT-SP-MO") Type = uint32 } GCPS_TRG_CURR_SET = { - PVName = "EC-GN-P01-GAF-GCPS:PSU2130-TRG-CURR-SET-MO" + PVName = (@rfid .. "-GAF-GCPS:PSU2130-TRG-CURR-SET-MO") Type = float32 } GCPS_ACT_SP = { - PVName = "EC-GN-P01-GAF-GCPS:PSU2130-ACT-SP-MO" + PVName = (@rfid .. "-GAF-GCPS:PSU2130-ACT-SP-MO") Type = uint32 } // Output PVs in Variables-kikusui tab. CCPS_REF = { - PVName = "EC-GN-P01-GAF-CCPS:PSU2320-EREF" + PVName = (@rfid .. "-GAF-CCPS:PSU2320-EREF") Type = float32 } FHPS_AUTO_STAT = { - PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-STAT" + PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-STAT") Type = uint32 } // Add 20201117 APS_HVON = { - PVName = "EC-GN-P01-PA1F:PSU3000-CON-HV" - Type = uint32 + PVName = (@rfid .. "-PA1F:PSU3000-CON-HV") + Type = uint8 } APS_SWON = { - PVName = "EC-GN-P01-PA1F:PSU3000-CON-SW" - Type = uint32 + PVName = (@rfid .. "-PA1F:PSU3000-CON-SW") + Type = uint8 } BPS_HVON = { - PVName = "EC-GN-P01-PB1F:PSU1000-CON-HV" - Type = uint32 + PVName = (@rfid .. "-PB1F:PSU1000-CON-HV") + Type = uint8 } BPS_SWON = { - PVName = "EC-GN-P01-PB1F:PSU1000-CON-SW" - Type = uint32 + PVName = (@rfid .. "-PB1F:PSU1000-CON-SW") + Type = uint8 } MHVPS_HVON = { - PVName = "EC-GN-P01-PMF:STAT-HVON-CALC.A" - Type = uint32 + PVName = (@rfid .. "-PMF:STAT-HVON-CALC.A") + Type = uint8 + } + EXT_TRIGGER = { + PVName = (@rfid .. "-GAF:DIO4900-YON") + Type = uint8 + } + ECPC_MHVPS_MOD = { + PVName = (@rfid .. "-GPF:PSU0000-YSTA-MOD") + Type = uint8 + } + PLC_PERMIT = { + PVName = (@rfid .. "-GPS:PLC4110-CON-GY1PRM") + Type = uint8 + } + PLC_OP_SELECTED = { + PVName = (@rfid .. "-GPS:PLC4110-CON-OPGY1") + Type = uint8 + } + CCPS_IN_OP = { + PVName = (@rfid .. "-GPS:PLC4110-YON-CCPS1") + Type = uint8 + } + PLC_SYNCMODE = { + PVName = (@rfid .. "-GPS:PLC4110-YSTA-MPSS") + Type = uint8 + } + PLC_ITL = { + PVName = (@rfid .. "-GPS:PLC4110-YTRP") + Type = uint8 + } + PLC_STANDBY = { + PVName = (@rfid .. "-GPS:PLC4110-ST1R") + Type = uint8 + } + PLC_READY = { + PVName = (@rfid .. "-GPS:PLC4110-ST2R") + Type = uint8 + } + PLC_ON = { + PVName = (@rfid .. "-GPS:PLC4110-ST3R") + Type = uint8 + } + APS_FLT = { + PVName = (@rfid .. "-PA1F:PSU3000-YFLT") + Type = uint8 + } + APS_READY = { + PVName = (@rfid .. "-PA1F:PSU3000-YSTA") + Type = uint8 + } + BPS_FLT = { + PVName = (@rfid .. "-PA1F:PSU1000-YFLT") + Type = uint8 + } + BPS_READY = { + PVName = (@rfid .. "-PA1F:PSU1000-YSTA") + Type = uint8 + } + MHPS_FLT = { + PVName = (@rfid .. "-PMF:PSU0000-YFLT") + Type = uint8 + } + MHPS_READY = { + PVName = (@rfid .. "-PMF:PSU0000-TYSTA") + Type = uint8 + } + MHPS_OC = { + PVName = (@rfid .. "-GAFP:FMC4310-YFLT-OC") + Type = uint8 + } + MHPS_OV = { + PVName = (@rfid .. "-GAFP:FMC4310-YFLT-OV") + Type = uint8 + } + CRIO_RV1 = { + Type = uint8 + PVName = (@rfid .. "-GAFP:FMC4310-RV1") + } + CRIO_RV2 = { + Type = uint8 + PVName = (@rfid .. "-GAFP:FMC4310-RV2") + } + CRIO_RV3 = { + Type = uint8 + PVName = (@rfid .. "-GAFP:FMC4310-RV3") + } + FAST_ITL = { + Type = uint8 + PVName = (@rfid .. "-GAFP:FMC4310-YTRP") + } + //! unused: Not shared with th1 (TODO) + FAST_PAUSE = { + Type = uint8 + PVName = (@rfid .. "-GAFP:FMC4310-YTRP2") + } + PXI_6259_STATE = { + Type = uint8 + PVName = (@rfid .. "-HWCF:6259-0-STATUS") + } + //! unused: No 6683 DS (TODO) + PXI_6683_STATE = { + Type = uint8 + PVName = (@rfid .. "-HWCF:6683-0-STATUS") + } + //! unused: No 6683 DS (TODO) + PXI_6683_SYNC = { + Type = uint8 + PVName = (@rfid .. "-HWCF:6683-0-SYNC") + } + //! unused: No 6683 DS (TODO) + PXI_6683_SYNCLOST = { + Type = uint8 + PVName = (@rfid .. "-HWCF:6683-0-SYNCLOST") + } + PXI_6528_STATE = { + Type = uint8 + PVName = (@rfid .. "-HWCF:6528-0-STATUS") } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/pxi.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/pxi.marte index 30016b5..ef257d3 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/pxi.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/data/pxi.marte @@ -1,5 +1,6 @@ #package jada_gyro.RTApp.Data + +DDB1 = { Signals = { //# PXI Status @@ -12,15 +13,6 @@ PXI6259_Status = { Type = uint32 } - PCF_FLT_6259 = { - Type = uint32 - } - PCF_FLT_6368_ERRNO_04 = { - Type = uint32 - } - PCF_FLT_6368_ERRNO_03 = { - Type = uint32 - } GYA_APS_READY = { Type = uint8 } @@ -111,13 +103,23 @@ BEAM_ON_TIME = { Type = uint32 } + SHOT_ID = { + Type = uint32 + } + CRIO_RV1 = { + Type = uint8 + } + CRIO_RV2 = { + Type = uint8 + } + CRIO_RV3 = { + Type = uint8 + } } } +DDB3 = { Signals = { - //! unused: To be udpdated - PXI6528_Status = { - // PXI 6528 Board Status + SHOT_ID = { Type = uint32 } //# DI.0 @@ -160,6 +162,18 @@ FAST_TRIP = { Type = uint8 } + //# DI 11 + CRIO_RV1 = { + Type = uint8 + } + //# DI 12 + CRIO_RV2 = { + Type = uint8 + } + //# DI 13 + CRIO_RV3 = { + Type = uint8 + } //# DI.14 PLC_ITL = { Type = uint8 @@ -324,9 +338,9 @@ //# P1.0 I.08 ECPC Modulation //# P1.1 I.09 Fast Protection Trip //# P1.2 I.10 - //# P1.3 I.11 - //# P1.4 I.12 - //# P1.5 I.13 + //# P1.3 I.11 CRIO RV1 + //# P1.4 I.12 CRIO RV2 + //# P1.5 I.13 CRIO RV3 //# P1.6 I.14 LV1 Alarm //# P1.7 I.15 PLC STANDBY DI1 = { @@ -387,10 +401,13 @@ //# NI6259.0 //# APS_SWON BoardId=0, PortId=3.0 +NI6259_DIO_P0 = { - Class = NI6259::NI6259DIO + Class = NI6259DIO DeviceName = "/dev/pxi6259" BoardId = 1 Signals = { + Status = { + Type = uint32 + } NI6259Value = { Type = uint32 Mask = 0xFF @@ -398,95 +415,3 @@ } } } -+NI6259_AO = { - Class = GAMDataSource - Signals = { - CCPS_REF = { - Type = float32 - } - } -} -//# Analog slow monitor PXI NI6259 -//# TODO implement -+NI6259_AI = { - Class = GAMDataSource - Signals = { - PXI6259_Status = { - Type = uint32 - } - GYA_BPS_MESVOLT = { - // AI: 0 - Type = float32 - } - GYA_BPS_MESCURR = { - // AI: 1 - Type = float32 - } - GYA_APS_MESVOLT = { - // AI: 2 - Type = float32 - } - GYA_APS_MESCURR = { - // AI: 3 - Type = float32 - } - GYA_ARC1_MESVOLT = { - // AI:4 - Type = float32 - } - GYA_ARC2_MESVOLT = { - // AI:5 - Type = float32 - } - GYA_ARC3_MESVOLT = { - // AI:6 - Type = float32 - } - GYA_MHVPS_MESVOLT = { - Type = float32 - // AI:8 - } - GYA_MHVPS_MESCURR = { - Type = float32 - // AI:9 - } - GYA_MCPS_CURR_MON = { - Type = float32 - } - GYA_GCPS_CURR_MON = { - Type = float32 - } - GYA_FHPS_MEAS_ACI = { - Type = float32 - } - GYA_CCPS_MEAS_DCI = { - Type = float32 - } - // TODO check where is measured - FHPS_MEAS_ACV = { - Type = float32 - } - } -} -+PXI6368_3_DataSource = { - Class = GAMDataSource - Signals = { - PXI6368_0 = { - Type = uint32 - } - PXI6368_1 = { - Type = uint32 - } - } -} -+PXI6368_4_DataSource = { - Class = GAMDataSource - Signals = { - PXI6368_0 = { - Type = uint32 - } - PXI6368_1 = { - Type = uint32 - } - } -} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/disabled.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/disabled.marte index c4014f5..a96a42a 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/disabled.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/disabled.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/error.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/error.marte index c099b32..ebd5411 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/error.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/error.marte @@ -10,14 +10,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -26,23 +26,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/initial.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/initial.marte index ea16009..f1d10e2 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/initial.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/initial.marte @@ -9,8 +9,8 @@ +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -19,23 +19,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon.marte index 96b47dc..a3891c7 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitPermit @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 5 + SignalValue = @state_permit } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_prep.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_prep.marte index d1efd1c..635dfab 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_prep.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_prep.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitPermit @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 5 + SignalValue = @state_permit } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn.marte index 5c9c9a3..234c426 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitPermit @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 5 + SignalValue = @state_permit } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn_prep.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn_prep.marte index a5fb92c..289205b 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn_prep.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waithvon_sdn_prep.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitPermit @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 5 + SignalValue = @state_permit } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitpermit.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitpermit.marte index f0deb4c..0a3fb10 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitpermit.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitpermit.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitReady @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 4 + SignalValue = @state_ready } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitHVON @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 6 + SignalValue = @state_hvon } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitHVON_SDN @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 8 + SignalValue = @state_hvon_sdn } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -150,14 +150,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitHVON_PREP @@ -166,23 +166,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 7 + SignalValue = @state_hvon_prep } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -197,14 +197,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitHVON_SDN_PREP @@ -213,23 +213,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 9 + SignalValue = @state_hvon_sdn_prep } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -244,14 +244,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -260,23 +260,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitready.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitready.marte index d066dd7..cc4aaa3 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitready.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitready.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitStandby @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 3 + SignalValue = @state_standby } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitPermit @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 5 + SignalValue = @state_permit } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitstandby.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitstandby.marte index fc376d0..3e7c07e 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitstandby.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/waitstandby.marte @@ -9,14 +9,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = WaitReady @@ -25,23 +25,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 4 + SignalValue = @state_ready } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -56,14 +56,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Disabled @@ -72,23 +72,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 2 + SignalValue = @state_disabled } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT @@ -103,14 +103,14 @@ +StopCurrentStateExecutionMsg = { Class = Message Destination = RTApp - Function = StopCurrentStateExecution - Mode = ExpectsReply + Function = "StopCurrentStateExecution" + Mode = "ExpectsReply" } +PrepareNextStateMsg = { Class = Message Destination = RTApp - Mode = ExpectsReply - Function = PrepareNextState + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { Class = ConfigurationDatabase param1 = Error @@ -119,23 +119,23 @@ +StartNextStateExecutionMsg = { Class = Message Destination = RTApp - Function = StartNextStateExecution - Mode = ExpectsReply + Function = "StartNextStateExecution" + Mode = "ExpectsReply" } +SetState = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_STATE - SignalValue = 1 + SignalValue = @state_error } } +SetFault = { Class = Message - Destination = JAGyroApp.Functions.StateGAM - Function = SetOutput + Destination = RTApp.Functions.StateGAM + Function = "SetOutput" +Parameters = { Class = ConfigurationDatabase SignalName = PCF_FAULT diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/data.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/data.marte index d98dc4a..8fa7185 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/data.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/data.marte @@ -1,7 +1,58 @@ #package jada_gyro.RTApp.Data + +DDB1 = { Signals = { + FAST_STOP = { + Type = uint32 + } + PREP_TIME_WF = { + Type = uint32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + MHVPS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + BPS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + APS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + MCPS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + GCPS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + FHPS_PREP_WF = { + Type = float32 + NumberOfElements = 8000 + NumberOfDimensions = 1 + } + GYA_PREPRO_TIME = { + Type = int32 + } + FHPS_PrePro = { + Type = float32 + } + CSV_LOADED = { + Type = uint32 + } + CSV_ERR = { + Type = uint32 + } GCPS_TRG_CURR_SET = { Type = float32 } @@ -42,3 +93,40 @@ } } } + ++Th1Bridge = { + Class = RealTimeThreadAsyncBridge + NumberOfBuffers = 20 + Signals = { + APS_OUT = { + Type = float32 + } + BPS_OUT = { + Type = float32 + } + MHVPS_OUT = { + Type = float32 + } + PLC_STANDBY = { + Type = uint8 + } + FHPS_PrePro = { + Type = float32 + } + PXI_FAULT = { + Type = uint32 + } + } +} ++NI_6683H = { + Class = NI6683H + BoardId = 0 + Signals = { + Status = { + Type = uint8 + } + PtpdStatus = { + Type = uint8 + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/epics.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/epics.marte index 09242fa..cbab6d6 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/epics.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/epics.marte @@ -1,5 +1,6 @@ #package jada_gyro.RTApp.Functions + //# Copy data from DDB1 to EPICSCAOutput DataSource. +EPICSOutputGAM = { Class = IOGAM @@ -7,13 +8,17 @@ PCF_STATE = { DataSource = DDB1 } - MCPS_ACT_SP = { + //! implicit: unkown signal + MCPS_ACT_SP = { // TODO what the fuck it is? DataSource = DDB1 Type = uint32 + Value = 0 } - GCPS_ACT_SP = { + //! implicit: unkown signal + GCPS_ACT_SP = { // TODO what the fuck it is? DataSource = DDB1 Type = uint32 + Value = 0 } BPS_OUT = { DataSource = DDB1 @@ -28,8 +33,7 @@ DataSource = DDB1 } FHPS_REF = { - DataSource = DDB1 - Type = float32 + DataSource = WGAsyncBridge } CSV_LOADED = { DataSource = DDB1 @@ -45,74 +49,55 @@ } HVARMED = { DataSource = DDB1 - Type = uint32 + Type = uint8 } HVINJECTION = { DataSource = DDB1 - Type = uint32 + Type = uint8 } RFON = { DataSource = DDB1 - Type = uint32 + Type = uint8 } MHVPS_OUT = { DataSource = DDB1 } PREP_TIME_WF = { DataSource = DDB1 - Type = int32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } MHVPS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } BPS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } APS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } MCPS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } GCPS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } FHPS_PREP_WF = { DataSource = DDB1 - Type = float32 - NumberOfElements = 8000 - NumberOfDimensions = 1 } CCPS_REF = { - DataSource = DDB1 - Type = float32 + DataSource = WGAsyncBridge } MHVPS_STOP = { + Alias = FAST_STOP DataSource = DDB1 Type = uint32 } APS_STOP = { + Alias = FAST_STOP DataSource = DDB1 Type = uint32 } BPS_STOP = { + Alias = FAST_STOP DataSource = DDB1 Type = uint32 } @@ -121,46 +106,124 @@ Type = uint32 } // MARTe Internal PCF_FLT - PCF_FLT = { + PCF_FAULT = { DataSource = DDB1 Type = uint32 } - PXI_FLT = { + PXI_FAULT = { DataSource = DDB1 - Type = uint32 } BEAM_ON_STAT = { DataSource = DDB1 - Type = uint32 + Type = uint8 } SHOT_ID = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 } FHPS_AUTO_STAT = { - DataSource = DDB1 - Type = uint32 + DataSource = WGAsyncBridge } // Add 20201117 APS_HVON = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 } APS_SWON = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 } BPS_HVON = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 } BPS_SWON = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 } MHVPS_HVON = { - DataSource = RealTimeThreadAsyncBridge - Type = uint32 + DataSource = DDB1 + } + TRIGGER = { + DataSource = DDB1 + } + ECPC_MOD = { + DataSource = DDB1 + } + PLC_PERMIT = { + DataSource = DDB1 + } + PLC_OP_SELECTED = { + DataSource = DDB1 + } + CCPS_IN_OPERATION = { + DataSource = DDB1 + } + PLC_SYNCMODE = { + DataSource = DDB1 + } + PLC_ITL = { + DataSource = DDB1 + } + PLC_STANDBY = { + DataSource = DDB1 + } + PLC_READY = { + DataSource = DDB1 + } + PLC_ON = { + DataSource = DDB1 + } + GYA_APS_FLT = { + DataSource = DDB1 + } + GYA_APS_READY = { + DataSource = DDB1 + } + GYA_BPS_FLT = { + DataSource = DDB1 + } + GYA_BPS_READY = { + DataSource = DDB1 + } + MHVPS_FLT = { + DataSource = DDB1 + } + MHVPS_READY = { + DataSource = DDB1 + } + MHVPS_OC = { + DataSource = DDB1 + } + MHVPS_OV = { + DataSource = DDB1 + } + CRIO_RV1 = { + DataSource = DDB1 + } + CRIO_RV2 = { + DataSource = DDB1 + } + CRIO_RV3 = { + DataSource = DDB1 + } + FAST_TRIP = { + DataSource = DDB1 + } + // DO_REV6 = { + // DataSource = DDB1 + // } + PXI6259_Status = { + DataSource = DDB1 + } + PXI_6683_STATE = { + DataSource = NI_6683H + Alias = Status + } + PXI_6683_SYNC = { + DataSource = NI_6683H + Alias = PtpdStatus + } + // PXI_6683_SYNCLOST = { + // DataSource = DDB1 + // } + PXI6528_Status = { + DataSource = DDB1 } } OutputSignals = { @@ -264,7 +327,6 @@ DataSource = EPICSCAOutput Type = uint32 } - // EPICS PCF_FLT PCF_FLT = { DataSource = EPICSCAOutput } @@ -280,7 +342,6 @@ FHPS_AUTO_STAT = { DataSource = EPICSCAOutput } - // Added 20201117 APS_HVON = { DataSource = EPICSCAOutput } @@ -296,5 +357,89 @@ MHVPS_HVON = { DataSource = EPICSCAOutput } + EXT_TRIGGER = { + DataSource = EPICSCAOutput + } + ECPC_MHVPS_MOD = { + DataSource = EPICSCAOutput + } + PLC_PERMIT = { + DataSource = EPICSCAOutput + } + PLC_OP_SELECTED = { + DataSource = EPICSCAOutput + } + CCPS_IN_OP = { + DataSource = EPICSCAOutput + } + PLC_SYNCMODE = { + DataSource = EPICSCAOutput + } + PLC_ITL = { + DataSource = EPICSCAOutput + } + PLC_STANDBY = { + DataSource = EPICSCAOutput + } + PLC_READY = { + DataSource = EPICSCAOutput + } + PLC_ON = { + DataSource = EPICSCAOutput + } + APS_FLT = { + DataSource = EPICSCAOutput + } + APS_READY = { + DataSource = EPICSCAOutput + } + BPS_FLT = { + DataSource = EPICSCAOutput + } + BPS_READY = { + DataSource = EPICSCAOutput + } + MHPS_FLT = { + DataSource = EPICSCAOutput + } + MHPS_READY = { + DataSource = EPICSCAOutput + } + MHPS_OC = { + DataSource = EPICSCAOutput + } + MHPS_OV = { + DataSource = EPICSCAOutput + } + CRIO_RV1 = { + DataSource = EPICSCAOutput + } + CRIO_RV2 = { + DataSource = EPICSCAOutput + } + CRIO_RV3 = { + DataSource = EPICSCAOutput + } + FAST_ITL = { + DataSource = EPICSCAOutput + } + // FAST_PAUSE = { + // DataSource = EPICSCAOutput + // } + PXI_6259_STATE = { + DataSource = EPICSCAOutput + } + PXI_6683_STATE = { + DataSource = EPICSCAOutput + } + PXI_6683_SYNC = { + DataSource = EPICSCAOutput + } + // PXI_6683_SYNCLOST = { + // DataSource = EPICSCAOutput + // } + PXI_6528_STATE = { + DataSource = EPICSCAOutput + } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/preprogrammed_waveform.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/preprogrammed_waveform.marte index 27af941..4037eb5 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/preprogrammed_waveform.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/preprogrammed_waveform.marte @@ -17,31 +17,24 @@ OutputSignals = { PREP_TIME_WF = { DataSource = DDB1 - Type = float32 } MHVPS_PREP_WF = { DataSource = DDB1 - Type = float32 } BPS_PREP_WF = { DataSource = DDB1 - Type = float32 } APS_PREP_WF = { DataSource = DDB1 - Type = float32 } MCPS_PREP_WF = { DataSource = DDB1 - Type = float32 } GCPS_PREP_WF = { DataSource = DDB1 - Type = float32 } FHPS_PREP_WF = { DataSource = DDB1 - Type = float32 } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/pxi_error_management.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/pxi_error_management.marte index 792594d..12b7dac 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/pxi_error_management.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/pxi_error_management.marte @@ -1,89 +1,28 @@ #package jada_gyro.RTApp.Functions -//# Check PXI board status. -+PXI6259ErrorGAM = { + ++PXIErrorGAM = { Class = JAConditionalSignalUpdateGAM - Operation = OR - ExpectedValues = { 0 0 0 0 } - Comparators = { GREATER GREATER GREATER GREATER } - Values = { 1 } + Operation = "OR" InputSignals = { - // Conditional signals - PXI6259_Status = { - DataSource = DDB1 + PXI6368_Status_3 = { + Alias = PXI6368_Status + DataSource = Th4Bridge + Comparator = "EQUALS" + Value = 3 + } + PXI6368_Status_4 = { + Alias = PXI6368_Status + DataSource = Th4Bridge + Comparator = "EQUALS" + Value = 4 } PXI6528_Status = { DataSource = DDB1 - } - } - OutputSignals = { - PCF_FLT_6259 = { - DataSource = DDB1 - } - } -} -+PXI6368Error03GAM = { // detect Hardware error (status number 3) for PXI6368 boards. - Class = JAConditionalSignalUpdateGAM - Operation = OR - InputSignals = { - PXI6368_0 = { - DataSource = PXI6368_3_DataSource - Comparator = "EQUALS" - Value = 3 - } - PXI6368_1 = { - DataSource = PXI6368_3_DataSource - Comparator = "EQUALS" - Value = 3 - } - } - OutputSignals = { - PCF_FLT_6368_ERRNO_03 = { - DataSource = DDB1 - Default = 0 - Value = 1 - } - } -} -+PXI6368Error04GAM = { // detect No board error (status number 4) for PXI6368 boards. - Class = JAConditionalSignalUpdateGAM - Operation = OR - InputSignals = { - PXI6368_0 = { - DataSource = PXI6368_4_DataSource - Comparator = "EQUALS" - Value = 4 - } - PXI6368_1 = { - DataSource = PXI6368_4_DataSource - Comparator = "EQUALS" - Value = 4 - } - } - OutputSignals = { - PCF_FLT_6368_ERRNO_04 = { - DataSource = DDB1 - Default = 0 - Value = 1 - } - } -} -+PXIErrorGAM = { - Class = JAConditionalSignalUpdateGAM - Operation = OR - Values = { 1 } - InputSignals = { - PCF_FLT_6368_ERRNO_03 = { - DataSource = DDB1 Comparator = "GREATER" Value = 0 } - PCF_FLT_6368_ERRNO_04 = { - DataSource = DDB1 - Comparator = "GREATER" - Value = 0 - } - PCF_FLT_6259 = { + PXI6259_Status = { DataSource = DDB1 Comparator = "GREATER" Value = 0 diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/references_generator.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/references_generator.marte index a3e2306..d8840d6 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/references_generator.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/references_generator.marte @@ -1,48 +1,6 @@ #package jada_gyro.RTApp.Functions -// GAM for trianguler waveform generation. -+CCPSWaveformGAM = { - Class = JATriangleWaveGAM - InputSignals = { - Frequency = { - Alias = CCPS_OUTPUT_FREQ - DataSource = EPICSCAInput - } - Amplitude = { - Alias = CCPS_OUTPUT_AMP - DataSource = EPICSCAInput - } - Offset = { - Alias = CCPS_OUTPUT_OFFS - DataSource = EPICSCAInput - } - PLCSTANDBY = { - Alias = PLC_STANDBY - DataSource = DDB1 - } - } - OutputSignals = { - CCPS_REF = { - DataSource = NI6259_AO - } - } -} -// MCPS, GCPS PV to DDB1 -+GCPSGAM = { - Class = IOGAM - InputSignals = { - GCPS_TRG_CURR_MANUAL = { - DataSource = EPICSCAInput - Type = float32 - } - } - OutputSignals = { - GCPS_TRG_CURR_SET = { - DataSource = DDB1 - Type = float32 - } - } -} +//# MCPS, GCPS PV to DDB1 +MCPSGAM = { Class = IOGAM InputSignals = { @@ -50,17 +8,25 @@ DataSource = EPICSCAInput Type = float32 } + GCPS_TRG_CURR_MANUAL = { + DataSource = EPICSCAInput + Type = float32 + } } OutputSignals = { MCPS_TRG_CURR_SET = { DataSource = DDB1 Type = float32 } + GCPS_TRG_CURR_SET = { + DataSource = DDB1 + Type = float32 + } } } //# Switching AO port source between internal variable and EPICS PV. +ChoiceGAM = { - Class = JASourceChoiseGAM + Class = JASourceChoiceGAM // numberOfPVs = 5 InputSignals = { BPS_REF = { @@ -147,69 +113,3 @@ } } } -// GAM for FHPS ramping up operation. -+FHPSSetpointGAM = { - Class = IOGAM - InputSignals = { - FHPS_AUTO_TAGV = { - DataSource = EPICSCAInput - Type = float32 - } - } - OutputSignals = { - FHPS_TAGV = { - DataSource = DDB1 - Type = float32 - } - } -} -+FHPSRampupGAM = { - Class = JARampupGAM - InputSignals = { - Currspv = { - Alias = FHPS_REF - DataSource = DDB1 - Type = float32 - } - Targetv = { - Alias = FHPS_TAGV - DataSource = DDB1 - Type = float32 - } - Time = { - Alias = FHPS_AUTO_TIME - DataSource = EPICSCAInput - Type = float32 - } - Start = { - Alias = FHPS_AUTO_START - DataSource = EPICSCAInput - Type = uint32 - } - PLC_STANDBY = { - Alias = PLC_STANDBY - DataSource = NI6528_0_DIO - Type = uint32 - } - MANUAL_AUTO = { - Alias = FHPS_MANM - DataSource = EPICSCAInput - Type = uint32 - } - FHPS_PrePro = { - DataSource = DDB1 - Type = float32 - } - } - OutputSignals = { - FHPS_REF = { - DataSource = DDB1 // probably to be direct analog output - Type = float32 - } - //TODO remove as not used - FHPS_AUTO_STAT = { - DataSource = DDB1 - Type = uint32 - } - } -} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/state_management.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/state_management.marte index e431d40..8548a6d 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/state_management.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/state_management.marte @@ -4,6 +4,15 @@ +DDB1 = { Signals = { //# Fast controller state variable + //# - 0: Init + //# - 1: Error + //# - 3: Wait Standby + //# - 4: Wait Ready + //# - 5: Wait Permit + //# - 6: Wait HVON + //# - 7: Wait HVON PREP + //# - 8: Wait HVON SDN + //# - 9: Wait HVON SDN PREP PCF_STATE = { Type = uint32 } @@ -16,12 +25,14 @@ } +Functions = { //# GAM That publish state of the system + //# The values will be updated by messages coming from + //# the statemachine +StateGAM = { Class = ConstantGAM OutputSignals = { PCF_STATE = { DataSource = DDB1 - Default = 0 + Default = @state_none } PCF_FAULT = { DataSource = DDB1 @@ -32,7 +43,7 @@ //# From any state to Error state. +GoErrorGAM = { Class = JAMessageGAM - Operation = OR + Operation = "OR" InputSignals = { GYA_APS_FLT = { DataSource = DDB1 @@ -136,7 +147,7 @@ PLC_SELECT = { DataSource = EPICSCAInput Type = uint32 - Operator = "EQUALS" + Comparator = "EQUALS" Value = 0 } } @@ -177,9 +188,8 @@ Comparator = "EQUALS" Value = 1 } - FHPS_MEAS_ACV = { - DataSource = NI6259_AI - Type = float32 + GY_FHPS_MEAS_ACV = { + DataSource = EPICSCAInput Comparator = "GREATER" Value = 0.0 } @@ -231,15 +241,15 @@ //# GAM in WaitPermit state. Check Permit and States of Operation Modes. +GoWaitReadyFromWaitPermitGAM = { Class = JAMessageGAM - Operation = OR + Operation = "OR" InputSignals = { PLC_STANDBY = { DataSource = DDB1 - Value = 0 + ExpectedValue = 0 } PLC_READY = { DataSource = DDB1 - Value = 0 + ExpectedValue = 0 } } +Event = { @@ -250,20 +260,21 @@ } +GoWaitHVONGAM = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_SYNCMODE = { DataSource = DDB1 - Operator = "EQUALS" + Comparator = "EQUALS" Value = 0 } PREP_MODE = { DataSource = EPICSCAInput - Operator = "EQUALS" + Comparator = "EQUALS" Value = 0 } PLC_PERMIT = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } } @@ -275,19 +286,21 @@ } +GoWaitHVON_PREP_GAM = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_SYNCMODE = { DataSource = DDB1 + Comparator = "EQUALS" Value = 0 } PREP_MODE = { DataSource = EPICSCAInput - Operator = "EQUALS" + Comparator = "EQUALS" Value = 1 } PLC_PERMIT = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } } @@ -299,19 +312,21 @@ } +GoWaitHVON_SDN_GAM = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_SYNCMODE = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } PREP_MODE = { DataSource = EPICSCAInput - Operator = "EQUALS" + Comparator = "EQUALS" Value = 0 } PLC_PERMIT = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } } @@ -323,19 +338,21 @@ } +GoWaitHVON_SDN_PREP_GAM = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_SYNCMODE = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } PREP_MODE = { DataSource = EPICSCAInput - Operator = "EQUALS" + Comparator = "EQUALS" Value = 1 } PLC_PERMIT = { DataSource = DDB1 + Comparator = "EQUALS" Value = 1 } } @@ -348,10 +365,11 @@ //# GAM in WaitHVON_xx states. If PLC_READY is zero, goto WaitStandby. +FromWaitHVONToWaitStandby = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_READY = { DataSource = DDB1 + Comparator = "EQUALS" Value = 0 } } @@ -364,35 +382,36 @@ //# GAM in WaitHVON_xx states. If PLC_PERMIT is zero, goto WaitPermit. +FromWaitHVONToWaitPermit = { Class = JAMessageGAM - Operation = AND + Operation = "AND" InputSignals = { PLC_PERMIT = { DataSource = DDB1 + Comparator = "EQUALS" Value = 0 } APS_HVON = { DataSource = DDB1 - Comparator = EQUALS + Comparator = "EQUALS" Value = 0 } BPS_HVON = { DataSource = DDB1 - Comparator = EQUALS + Comparator = "EQUALS" Value = 0 } MHVPS_HVON = { DataSource = DDB1 - Comparator = EQUALS + Comparator = "EQUALS" Value = 0 } BPS_SWON = { DataSource = DDB1 - Comparator = EQUALS + Comparator = "EQUALS" Value = 0 } APS_SWON = { DataSource = DDB1 - Comparator = EQUALS + Comparator = "EQUALS" Value = 0 } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/thread_data_broker.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/thread_data_broker.marte index a9d35d6..209ea34 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/thread_data_broker.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread1/thread_data_broker.marte @@ -1,192 +1,304 @@ #package jada_gyro.RTApp.Functions -//# GAM used to sync data from Fast thread (th.3) to slow thread (th.1) -+FastStatesSync = { + +//# Synchronise Thread 1 to Thread 3 using SynchTread data source +//# Thread 1 will be executed every @fast_slow_ratio cycles of Thread 3 ++SyncThreadConsumerGAM = { Class = IOGAM InputSignals = { - PXI6528_Status_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PXI6259_Status = { + Samples = @fast_slow_ratio + Frequency = 1 } - GYA_APS_READY_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PXI6528_Status = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - GYA_APS_FLT_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + GYA_APS_READY = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - GYA_BPS_READY_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + GYA_APS_FLT = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - GYA_BPS_FLT_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + GYA_BPS_READY = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - MHVPS_OV_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + GYA_BPS_FLT = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - MHVPS_OC_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + MHVPS_OV = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - MHVPS_FLT_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + MHVPS_OC = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - MHVPS_READY_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + MHVPS_FLT = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - ECPC_MOD_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + MHVPS_READY = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - FAST_TRIP_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + ECPC_MOD = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_ITL_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + FAST_TRIP = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_STANDBY_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_ITL = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_READY_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_STANDBY = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_ON_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_READY = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_PERMIT_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_ON = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_OP_SELECTED_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_PERMIT = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_CC_OP_SELECTED_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_OP_SELECTED = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - PLC_SYNCMODE_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_CC_OP_SELECTED = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - TRIGGER_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + PLC_SYNCMODE = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - BEAM_ON_STAT_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + TRIGGER = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - HVARMED_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + BEAM_ON_STAT = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - HVINJECTION_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + HVARMED = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - RFON_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + HVINJECTION = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - BEAM_ON_TIME_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + RFON = { + DataSource = SynchThread + Samples = @fast_slow_ratio } - RFON_TIME_SAMPLES = { - DataSource = DDB1 - Ranges = { { 0 0 } } + BEAM_ON_TIME = { + DataSource = SynchThread + Samples = @fast_slow_ratio + } + RFON_TIME = { + DataSource = SynchThread + Samples = @fast_slow_ratio + } + SHOT_ID = { + DataSource = SynchThread + Samples = @fast_slow_ratio + } + CRIO_RV1 = { + DataSource = SynchThread + Samples = @fast_slow_ratio + } + CRIO_RV2 = { + DataSource = SynchThread + Samples = @fast_slow_ratio + } + CRIO_RV3 = { + DataSource = SynchThread + Samples = @fast_slow_ratio } } OutputSignals = { + PXI6259_Status = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } PXI6528_Status = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } GYA_APS_READY = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } GYA_APS_FLT = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } GYA_BPS_READY = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } GYA_BPS_FLT = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } MHVPS_OV = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } MHVPS_OC = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } MHVPS_FLT = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } MHVPS_READY = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } ECPC_MOD = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } FAST_TRIP = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } } PLC_ITL = { DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_STANDBY = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_READY = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_ON = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_PERMIT = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_OP_SELECTED = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_CC_OP_SELECTED = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + PLC_SYNCMODE = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + TRIGGER = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + BEAM_ON_STAT = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + HVARMED = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + HVINJECTION = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + RFON = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + ELAPSED_TIME = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + BEAM_ON_TIME = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + SHOT_ID = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + CRIO_RV1 = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + CRIO_RV2 = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + CRIO_RV3 = { + DataSource = DDB1 + Ranges = { { @dec_index, @dec_index } } + } + } +} + ++EPICSThSyncGAM = { + Class = IOGAM + InputSignals = { + BPS_OUT = { + DataSource = DDB1 + } + APS_OUT = { + DataSource = DDB1 + } + MHVPS_OUT = { + DataSource = DDB1 } PLC_STANDBY = { DataSource = DDB1 } - PLC_READY = { + FHPS_PrePro = { DataSource = DDB1 } - PLC_ON = { - DataSource = DDB1 - } - PLC_PERMIT = { - DataSource = DDB1 - } - PLC_OP_SELECTED = { - DataSource = DDB1 - } - PLC_CC_OP_SELECTED = { - DataSource = DDB1 - } - PLC_SYNCMODE = { - DataSource = DDB1 - } - TRIGGER = { - DataSource = DDB1 - } - BEAM_ON_STAT = { - DataSource = DDB1 - } - HVARMED = { - DataSource = DDB1 - } - HVINJECTION = { - DataSource = DDB1 - } - RFON = { - DataSource = DDB1 - } - ELAPSED_TIME = { - DataSource = DDB1 - } - BEAM_ON_TIME = { + PXI_FAULT = { DataSource = DDB1 } } + OutputSignals = { + BPS_OUT = { + DataSource = Th1Bridge + } + APS_OUT = { + DataSource = Th1Bridge + } + MHVPS_OUT = { + DataSource = Th1Bridge + } + PLC_STANDBY = { + DataSource = Th1Bridge + } + FHPS_PrePro = { + DataSource = Th1Bridge + } + PXI_FAULT = { + DataSource = Th1Bridge + } + } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread2/sdn.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread2/sdn.marte index df3ff2d..e4fc45e 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread2/sdn.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread2/sdn.marte @@ -1,5 +1,6 @@ #package jada_gyro.RTApp + +Data = { //# SDN subscriber +SDNCommands = { @@ -28,7 +29,7 @@ } } } - +RealTimeThreadAsyncBridge = { + +Th2Bridge = { Class = RealTimeThreadAsyncBridge NumberOfBuffers = 20 Signals = { @@ -57,10 +58,12 @@ } } +SDNReply = { - Class = SDN::SDNPublisher + Class = SDNPublisher Topic = "SCUJA2ECPC" Interface = "enp35s0f1" CPUs = 0x200 // changed from 0x100 + Address = "192.195.1.1" + Port = 2000 Locked = 1 Signals = { //! unused: SDN header not used @@ -131,7 +134,7 @@ DataSource = SDNCommands NumberOfDimensions = 1 NumberOfElements = 64 - Ranges = { { 0 0 } } + Ranges = { { 0, 0 } } } ESDNTime = { DataSource = SDNCommands @@ -141,7 +144,7 @@ } OutputSignals = { Command = { - DataSource = RealTimeThreadAsyncBridge + DataSource = Th2Bridge } ESDNTime = { DataSource = DDB2 @@ -157,44 +160,44 @@ WaveformPacketID = { DataSource = DDB2 } - GYA_BPS_MESVOLT = { - DataSource = NI6259_AI + GY_BPS_V_MEAS = { + DataSource = Th4Bridge } - GYA_BPS_MESCURR = { - DataSource = NI6259_AI + GY_BPS_I_MEAS = { + DataSource = Th4Bridge } - GYA_APS_MESVOLT = { - DataSource = NI6259_AI + GY_APS_V_MEAS = { + DataSource = Th4Bridge } - GYA_APS_MESCURR = { - DataSource = NI6259_AI + GY_APS_I_MEAS = { + DataSource = Th4Bridge } - GYA_ARC1_MESVOLT = { - DataSource = NI6259_AI + GY_ARC1_V_MEAS = { + DataSource = Th4Bridge } - GYA_ARC2_MESVOLT = { - DataSource = NI6259_AI + GY_ARC2_V_MEAS = { + DataSource = Th4Bridge } - GYA_ARC3_MESVOLT = { - DataSource = NI6259_AI + GY_ARC3_V_MEAS = { + DataSource = Th4Bridge } - GYA_MHVPS_MESVOLT = { - DataSource = NI6259_AI + GY_MHV_V_MEAS = { + DataSource = Th4Bridge } - GYA_MHVPS_MESCURR = { - DataSource = NI6259_AI + GY_MHV_I_MEAS = { + DataSource = Th4Bridge } - GYA_MCPS_CURR_MON = { - DataSource = NI6259_AI + GY_MCPS_CURR_MON = { + DataSource = EPICSCAInput } - GYA_GCPS_CURR_MON = { - DataSource = NI6259_AI + GY_GCPS_CURR_MON = { + DataSource = EPICSCAInput } - GYA_FHPS_MEAS_ACI = { - DataSource = NI6259_AI + GY_FHPS_MEAS_ACI = { + DataSource = EPICSCAInput } - GYA_CCPS_MEAS_DCI = { - DataSource = NI6259_AI + GY_CCPS_MEAS_DCI = { + DataSource = EPICSCAInput } } OutputSignals = { diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte index 0636cd5..f979cd8 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte @@ -1,12 +1,15 @@ #package jada_gyro.RTApp + +Data = { +SynchThread = { Class = RealTimeThreadSynchronisation Timeout = 0xFFFFFFFF Signals = { + PXI6259_Status = { + Type = uint32 + } PXI6528_Status = { - // PXI 6528 Board Status Type = uint32 } GYA_APS_READY = { @@ -39,6 +42,15 @@ FAST_TRIP = { Type = uint8 } + CRIO_RV1 = { + Type = uint8 + } + CRIO_RV2 = { + Type = uint8 + } + CRIO_RV3 = { + Type = uint8 + } PLC_ITL = { Type = uint8 } @@ -84,139 +96,8 @@ RFON_TIME = { Type = uint32 } - } - } - +DDB1 = { - Signals = { - PXI6528_Status_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - GYA_APS_READY_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - GYA_APS_FLT_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - GYA_BPS_READY_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - GYA_BPS_FLT_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - MHVPS_OV_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - MHVPS_OC_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - MHVPS_FLT_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - MHVPS_READY_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - ECPC_MOD_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - FAST_TRIP_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_ITL_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_STANDBY_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_READY_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_ON_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_PERMIT_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_OP_SELECTED_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_CC_OP_SELECTED_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - PLC_SYNCMODE_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - TRIGGER_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - BEAM_ON_STAT_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - HVARMED_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - HVINJECTION_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - RFON_SAMPLES = { - Type = uint8 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - BEAM_ON_TIME_SAMPLES = { + SHOT_ID = { Type = uint32 - NumberOfElements = 20 - NumberOfDimensions = 1 - } - RFON_TIME_SAMPLES = { - Type = uint32 - NumberOfElements = 20 - NumberOfDimensions = 1 } } } @@ -228,6 +109,30 @@ RFON_TIME = { Type = uint32 } + PXI6528_Status = { + Type = uint32 + } + MHVPS_DT = { + Type = uint32 + } + APS_HVON_DT = { + Type = uint32 + } + APS_SWON_DT = { + Type = uint32 + } + BPS_HVON_DT = { + Type = uint32 + } + BPS_SWON_DT = { + Type = uint32 + } + SHOTLEN = { + Type = uint32 + } + SHORT_PULSE_MODE = { + Type = uint32 + } } } } @@ -235,8 +140,13 @@ +SyncThreadProducerGAM = { Class = IOGAM InputSignals = { + PXI6259_Status = { + Alias = Status + DataSource = NI6259_DIO_P0 + } PXI6528_Status = { DataSource = DDB3 + Value = 0 } GYA_APS_READY = { DataSource = DDB3 @@ -268,6 +178,15 @@ FAST_TRIP = { DataSource = DDB3 } + CRIO_RV1 = { + DataSource = DDB3 + } + CRIO_RV2 = { + DataSource = DDB3 + } + CRIO_RV3 = { + DataSource = DDB3 + } PLC_ITL = { DataSource = DDB3 } @@ -313,8 +232,14 @@ RFON_TIME = { DataSource = DDB3 } + SHOT_ID = { + DataSource = DDB3 + } } OutputSignals = { + PXI6259_Status = { + DataSource = SynchThread + } PXI6528_Status = { DataSource = SynchThread } @@ -348,6 +273,15 @@ FAST_TRIP = { DataSource = SynchThread } + CRIO_RV1 = { + DataSource = SynchThread + } + CRIO_RV2 = { + DataSource = SynchThread + } + CRIO_RV3 = { + DataSource = SynchThread + } PLC_ITL = { DataSource = SynchThread } @@ -393,197 +327,8 @@ RFON_TIME = { DataSource = SynchThread } - } - } - //# Synchronise Thread 1 to Thread 3 using SynchTread data source - //# Thread 1 will be executed every 20 cycles of Thread 3 - +SyncThreadConsumerGAM = { - Class = IOGAM - InputSignals = { - PXI6528_Status = { + SHOT_ID = { DataSource = SynchThread - Samples = 20 - Frequency = 1 - } - GYA_APS_READY = { - DataSource = SynchThread - Samples = 20 - } - GYA_APS_FLT = { - DataSource = SynchThread - Samples = 20 - } - GYA_BPS_READY = { - DataSource = SynchThread - Samples = 20 - } - GYA_BPS_FLT = { - DataSource = SynchThread - Samples = 20 - } - MHVPS_OV = { - DataSource = SynchThread - Samples = 20 - } - MHVPS_OC = { - DataSource = SynchThread - Samples = 20 - } - MHVPS_FLT = { - DataSource = SynchThread - Samples = 20 - } - MHVPS_READY = { - DataSource = SynchThread - Samples = 20 - } - ECPC_MOD = { - DataSource = SynchThread - Samples = 20 - } - FAST_TRIP = { - DataSource = SynchThread - Samples = 20 - } - PLC_ITL = { - DataSource = SynchThread - Samples = 20 - } - PLC_STANDBY = { - DataSource = SynchThread - Samples = 20 - } - PLC_READY = { - DataSource = SynchThread - Samples = 20 - } - PLC_ON = { - DataSource = SynchThread - Samples = 20 - } - PLC_PERMIT = { - DataSource = SynchThread - Samples = 20 - } - PLC_OP_SELECTED = { - DataSource = SynchThread - Samples = 20 - } - PLC_CC_OP_SELECTED = { - DataSource = SynchThread - Samples = 20 - } - PLC_SYNCMODE = { - DataSource = SynchThread - Samples = 20 - } - TRIGGER = { - DataSource = SynchThread - Samples = 20 - } - BEAM_ON_STAT = { - DataSource = SynchThread - Samples = 20 - } - HVARMED = { - DataSource = SynchThread - Samples = 20 - } - HVINJECTION = { - DataSource = SynchThread - Samples = 20 - } - RFON = { - DataSource = SynchThread - Samples = 20 - } - BEAM_ON_TIME = { - DataSource = SynchThread - Samples = 20 - } - RFON_TIME = { - DataSource = SynchThread - Samples = 20 - } - } - OutputSignals = { - PXI6528_Status_SAMPLES = { - DataSource = DDB1 - } - GYA_APS_READY_SAMPLES = { - DataSource = DDB1 - } - GYA_APS_FLT_SAMPLES = { - DataSource = DDB1 - } - GYA_BPS_READY_SAMPLES = { - DataSource = DDB1 - } - GYA_BPS_FLT_SAMPLES = { - DataSource = DDB1 - } - MHVPS_OV_SAMPLES = { - DataSource = DDB1 - } - MHVPS_OC_SAMPLES = { - DataSource = DDB1 - } - MHVPS_FLT_SAMPLES = { - DataSource = DDB1 - } - MHVPS_READY_SAMPLES = { - DataSource = DDB1 - } - ECPC_MOD_SAMPLES = { - DataSource = DDB1 - } - FAST_TRIP_SAMPLES = { - DataSource = DDB1 - } - PLC_ITL_SAMPLES = { - DataSource = DDB1 - } - PLC_STANDBY_SAMPLES = { - DataSource = DDB1 - } - PLC_READY_SAMPLES = { - DataSource = DDB1 - } - PLC_ON_SAMPLES = { - DataSource = DDB1 - } - PLC_PERMIT_SAMPLES = { - DataSource = DDB1 - } - PLC_OP_SELECTED_SAMPLES = { - DataSource = DDB1 - } - PLC_CC_OP_SELECTED_SAMPLES = { - DataSource = DDB1 - } - PLC_SYNCMODE_SAMPLES = { - DataSource = DDB1 - } - TRIGGER_SAMPLES = { - DataSource = DDB1 - } - BEAM_ON_STAT_SAMPLES = { - DataSource = DDB1 - } - HVARMED_SAMPLES = { - DataSource = DDB1 - } - HVINJECTION_SAMPLES = { - DataSource = DDB1 - } - RFON_SAMPLES = { - DataSource = DDB1 - } - BEAM_ON_TIME_SAMPLES = { - DataSource = DDB1 - } - RFON_TIME_SAMPLES = { - DataSource = DDB1 } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/epics.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/epics.marte index 8d7d3ad..86cfb05 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/epics.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/epics.marte @@ -30,31 +30,31 @@ DataSource = EPICSCAInput Type = uint32 } + SHORT_PULSE_MODE = { + DataSource = EPICSCAInput + } } OutputSignals = { 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 + } + SHORT_PULSE_MODE = { + DataSource = DDB3 } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/hvon_functions.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/hvon_functions.marte index bb652e2..c9467b2 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/hvon_functions.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/hvon_functions.marte @@ -2,42 +2,42 @@ +FastStopRequestGAM = { Class = JAConditionalSignalUpdateGAM - Operation = OR + Operation = "OR" InputSignals = { GYA_APS_FLT = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } GYA_BPS_FLT = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } MHVPS_OV = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } MHVPS_OC = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } MHVPS_FLT = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } MIS_ITL = { DataSource = EPICSCAInput Type = uint32 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } PLC_ITL = { DataSource = DDB3 - Comparators = EQUALS + Comparator = "EQUALS" Value = 1 } } @@ -78,13 +78,13 @@ DataSource = EPICSCAInput } RFON = { - DataSource = RealTimeThreadAsyncBridge + DataSource = Th2Bridge } Time = { - DataSource = RealTimeThreadAsyncBridge + DataSource = Th2Bridge } HVInjection = { - DataSource = RealTimeThreadAsyncBridge + DataSource = Th2Bridge } } OutputSignals = { diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/pxi_io_gams.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/pxi_io_gams.marte index b55405f..0b47507 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/pxi_io_gams.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/pxi_io_gams.marte @@ -49,20 +49,14 @@ DataSource = DDB3 Type = uint8 } - //! implicit: placeholder for spare - NONE_DI11 = { - DataSource = DDB3 - Type = uint8 + CRIO_RV1 = { + DataSource = DDB3 } - //! implicit: placeholder for spare - NONE_DI12 = { - DataSource = DDB3 - Type = uint8 + CRIO_RV2 = { + DataSource = DDB3 } - //! implicit: placeholder for spare - NONE_DI13 = { - DataSource = DDB3 - Type = uint8 + CRIO_RV3 = { + DataSource = DDB3 } PLC_ITL = { DataSource = DDB3 diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/rt_statemachines.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/rt_statemachines.marte index 1108158..5f2ff85 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/rt_statemachines.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/rt_statemachines.marte @@ -1,5 +1,6 @@ #package jada_gyro.RTApp.Functions + +GAMRealTimeStateMachine = { Class = JARTStateMachineGAM ConditionTrigger = 1 @@ -47,8 +48,7 @@ DataSource = DDB3 } SHORT_PULSE_MODE = { - DataSource = EPICSCAInput - Type = uint32 + DataSource = DDB3 } MHVPS_MODSW = { DataSource = DDB3 @@ -57,7 +57,6 @@ DO_REV6 = { DataSource = DDB3 } - } OutputSignals = { RTSMValue = { @@ -78,16 +77,16 @@ DataSource = DDB3 } BeamONTime = { + Alias = BEAM_ON_TIME DataSource = DDB3 - Type = uint32 } RFONTime = { + Alias = RFON_TIME DataSource = DDB3 Type = uint32 } SHOT_ID = { DataSource = DDB3 - Type = uint32 } APS_HVON = { DataSource = DDB3 @@ -158,7 +157,7 @@ DataSource = DDB3 } Command = { - DataSource = RealTimeThreadAsyncBridge + DataSource = Th2Bridge Type = uint16 } } @@ -168,8 +167,9 @@ Trigger = 1 } BeamON = { + Alias = BEAM_ON_STAT DataSource = DDB3 - Type = uint32 + Type = uint8 } HVARMED = { DataSource = DDB3 @@ -181,16 +181,17 @@ DataSource = DDB3 } BeamONTime = { + Alias = BEAM_ON_TIME DataSource = DDB3 Type = uint32 } RFONTime = { + Alias = RFON_TIME DataSource = DDB3 Type = uint32 } SHOT_ID = { DataSource = DDB3 - Type = uint32 } } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte new file mode 100644 index 0000000..d5c8093 --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte @@ -0,0 +1,577 @@ +#package jada_gyro.RTApp + + ++Data = { + +FastADC = { + Class = NI6368ADC + // The divisor is computed on BaseSampleClockFrequency. + SamplingFrequency = @sampling_freq + DeviceName = "/dev/pxie-6368" + IsMultiplexed = 0 // Default is 0 for 6368. Set to 1 if using 6363. + BoardId = 0 // Mandatory + ExecutionMode = "RealTimeThread" // Optional (default is IndepenentThread). Possible values:IndependentThread, RealTimeThread + Calibrate = 1 // Optional (default is 0). If disabled the signals show raw acquired value (signal type must be int16). If enabled the samples already converted accordingly to the declared InputRange. In this case the signal type must be float32 + + Signals = { + Status = { + Type = uint32 + NumberOfElements = @slow_clock + } + GY_APS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_APS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC1_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC2_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC3_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_RF_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + } + } + +DDB4 = { + Class = GAMDataSource + Signals = { + PXI6368_Status = { + Type = uint32 + NumberOfElements = @slow_clock + } + GY_APS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_APS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC1_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC2_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC3_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_RF_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + } + } + +FastAnalogDAN = { + Class = DANSource + NumberOfBuffers = 10 + CPUMask = 15 + StackSize = 10000000 + DanBufferMultiplier = 4 + StoreOnTrigger = 0 + ICProgName = @app_name + Signals = { + GY_APS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_APS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_BPS_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_MHV_I_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC1_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC2_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_ARC3_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + GY_RF_V_MEAS = { + Type = float32 + NumberOfElements = @slow_clock + } + } + } + +AnalogEpicsOutput = { + Class = EPICSCAOutput + Signals = { + PXI6368_Status = { + Type = uint32 + PVName = (@rfid .. "-HWCF:6368-0-STATUS") + } + GY_APS_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-PA1F:PSU3000-ET") + } + GY_APS_I_MEAS = { + Type = float32 + PVName = (@rfid .. "-PA1F:PSU3000-IT") + } + GY_BPS_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-PA1F:PSU2000-ET") + } + GY_BPS_I_MEAS = { + Type = float32 + PVName = (@rfid .. "-PA1F:PSU2000-IT") + } + GY_MHV_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-PMF:PSU0000-ET-GA") + } + GY_MHV_I_MEAS = { + Type = float32 + PVName = (@rfid .. "-PMF:PSU0000-IT-GA") + } + GY_ARC1_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-GAF:MOE2810-ET") + } + GY_ARC2_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-GAF:MOE2820-ET") + } + GY_ARC3_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-GAF:MOE2830-ET") + } + GY_RF_V_MEAS = { + Type = float32 + PVName = (@rfid .. "-GAF:MRR2910-ET") + } + } + } + +Th4Bridge = { + Class = RealTimeThreadAsyncBridge + NumberOfBuffers = 20 + Signals = { + PXI6368_Status = { + Type = uint32 + } + GY_APS_V_MEAS = { + Type = float32 + } + GY_APS_I_MEAS = { + Type = float32 + } + GY_BPS_V_MEAS = { + Type = float32 + } + GY_BPS_I_MEAS = { + Type = float32 + } + GY_MHV_V_MEAS = { + Type = float32 + } + GY_MHV_I_MEAS = { + Type = float32 + } + GY_ARC1_V_MEAS = { + Type = float32 + } + GY_ARC2_V_MEAS = { + Type = float32 + } + GY_ARC3_V_MEAS = { + Type = float32 + } + GY_RF_V_MEAS = { + Type = float32 + } + } + } +} + ++Functions = { + +ReadADC = { + Class = IOGAM + InputSignals = { + Status = { + DataSource = FastADC + Frequency = 1 + } + GY_APS_V_MEAS = { + DataSource = FastADC + } + GY_APS_I_MEAS = { + DataSource = FastADC + } + GY_BPS_V_MEAS = { + DataSource = FastADC + } + GY_BPS_I_MEAS = { + DataSource = FastADC + } + GY_MHV_V_MEAS = { + DataSource = FastADC + } + GY_MHV_I_MEAS = { + DataSource = FastADC + } + GY_ARC1_V_MEAS = { + DataSource = FastADC + } + GY_ARC2_V_MEAS = { + DataSource = FastADC + } + GY_ARC3_V_MEAS = { + DataSource = FastADC + } + GY_RF_V_MEAS = { + DataSource = FastADC + } + } + OutputSignals = { + PXI6368_Status = { + DataSource = DDB4 + } + GY_APS_V_MEAS = { + DataSource = DDB4 + } + GY_APS_I_MEAS = { + DataSource = DDB4 + } + GY_BPS_V_MEAS = { + DataSource = DDB4 + } + GY_BPS_I_MEAS = { + DataSource = DDB4 + } + GY_MHV_V_MEAS = { + DataSource = DDB4 + } + GY_MHV_I_MEAS = { + DataSource = DDB4 + } + GY_ARC1_V_MEAS = { + DataSource = DDB4 + } + GY_ARC2_V_MEAS = { + DataSource = DDB4 + } + GY_ARC3_V_MEAS = { + DataSource = DDB4 + } + GY_RF_V_MEAS = { + DataSource = DDB4 + } + } + } + +PushADCtoDAN = { + Class = IOGAM + InputSignals = { + GY_APS_V_MEAS = { + DataSource = DDB4 + } + GY_APS_I_MEAS = { + DataSource = DDB4 + } + GY_BPS_V_MEAS = { + DataSource = DDB4 + } + GY_BPS_I_MEAS = { + DataSource = DDB4 + } + GY_MHV_V_MEAS = { + DataSource = DDB4 + } + GY_MHV_I_MEAS = { + DataSource = DDB4 + } + GY_ARC1_V_MEAS = { + DataSource = DDB4 + } + GY_ARC2_V_MEAS = { + DataSource = DDB4 + } + GY_ARC3_V_MEAS = { + DataSource = DDB4 + } + GY_RF_V_MEAS = { + DataSource = DDB4 + } + } + OutputSignals = { + GY_APS_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_APS_I_MEAS = { + DataSource = FastAnalogDAN + } + GY_BPS_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_BPS_I_MEAS = { + DataSource = FastAnalogDAN + } + GY_MHV_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_MHV_I_MEAS = { + DataSource = FastAnalogDAN + } + GY_ARC1_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_ARC2_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_ARC3_V_MEAS = { + DataSource = FastAnalogDAN + } + GY_RF_V_MEAS = { + DataSource = FastAnalogDAN + } + } + } + +PushADCtoEpics = { + Class = IOGAM + InputSignals = { + PXI6368_Status_Async = { + Alias = PXI6368_Status + DataSource = DDB4 + Range = { { 0, 0 } } + } + PXI6368_Status = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_APS_V_MEAS_Async = { + Alias = GY_APS_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_APS_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_APS_I_MEAS_Async = { + Alias = GY_APS_I_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_APS_I_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_BPS_V_MEAS_Async = { + Alias = GY_BPS_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_BPS_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_BPS_I_MEAS_Async = { + Alias = GY_BPS_I_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_BPS_I_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_MHV_V_MEAS_Async = { + Alias = GY_MHV_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_MHV_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_MHV_I_MEAS_Async = { + Alias = GY_MHV_I_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_MHV_I_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC1_V_MEAS_Async = { + Alias = GY_ARC1_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC1_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC2_V_MEAS_Async = { + Alias = GY_ARC2_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC2_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC3_V_MEAS_Async = { + Alias = GY_ARC3_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_ARC3_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_RF_V_MEAS_Async = { + Alias = GY_RF_V_MEAS + DataSource = DDB4 + Range = { { 0, 0 } } + } + GY_RF_V_MEAS = { + DataSource = DDB4 + Range = { { 0, 0 } } + } + } + OutputSignals = { + PXI6368_Status_Async = { + Alias = PXI6368_Status + DataSource = Th4Bridge + } + PXI6368_Status = { + DataSource = AnalogEpicsOutput + } + GY_APS_V_MEAS_Async = { + Alias = GY_APS_V_MEAS + DataSource = Th4Bridge + } + GY_APS_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_APS_I_MEAS_Async = { + Alias = GY_APS_I_MEAS + DataSource = Th4Bridge + } + GY_APS_I_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_BPS_V_MEAS_Async = { + Alias = GY_BPS_V_MEAS + DataSource = Th4Bridge + } + GY_BPS_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_BPS_I_MEAS_Async = { + Alias = GY_BPS_I_MEAS + DataSource = Th4Bridge + } + GY_BPS_I_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_MHV_V_MEAS_Async = { + Alias = GY_MHV_V_MEAS + DataSource = Th4Bridge + } + GY_MHV_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_MHV_I_MEAS_Async = { + Alias = GY_MHV_I_MEAS + DataSource = Th4Bridge + } + GY_MHV_I_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_ARC1_V_MEAS_Async = { + Alias = GY_ARC1_V_MEAS + DataSource = Th4Bridge + } + GY_ARC1_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_ARC2_V_MEAS_Async = { + Alias = GY_ARC2_V_MEAS + DataSource = Th4Bridge + } + GY_ARC2_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_ARC3_V_MEAS_Async = { + Alias = GY_ARC3_V_MEAS + DataSource = Th4Bridge + } + GY_ARC3_V_MEAS = { + DataSource = AnalogEpicsOutput + } + GY_RF_V_MEAS_Async = { + Alias = GY_RF_V_MEAS + DataSource = Th4Bridge + } + GY_RF_V_MEAS = { + DataSource = AnalogEpicsOutput + } + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte new file mode 100644 index 0000000..fc0d25d --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte @@ -0,0 +1,376 @@ +#package jada_gyro.RTApp + + ++Data = { + + +DANDIODataSource = { + Class = DANSource + NumberOfBuffers = 10 + CPUMask = 15 + StackSize = 10000000 + DanBufferMultiplier = 4 + StoreOnTrigger = 0 + ICProgName = @app_name + Signals = { + PXI6528_Status_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint32 + } + GYA_APS_READY_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint32 + } + GYA_APS_FLT_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + GYA_BPS_READY_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + GYA_BPS_FLT_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + MHVPS_OV_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + MHVPS_OC_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + MHVPS_FLT_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + MHVPS_READY_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + ECPC_MOD_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + FAST_TRIP_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + CRIO_RV1_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + CRIO_RV2_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + CRIO_RV3_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_ITL_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_STANDBY_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_READY_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_ON_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_PERMIT_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_OP_SELECTED_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_CC_OP_SELECTED_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + PLC_SYNCMODE_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + TRIGGER_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + BEAM_ON_STAT_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + HVARMED_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + HVINJECTION_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + RFON_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint8 + } + BEAM_ON_TIME_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint32 + } + RFON_TIME_SAMPLES = { + SamplingFrequency = @fast_clock + NumberOfElements = @dan_ratio + Type = uint32 + } + } + } +} + ++Functions = { + +DANDIOPublisherGAM = { + Class = IOGAM + InputSignals = { + PXI6528_Status = { + DataSource = SynchThread + Samples = @dan_ratio + Frequency = 1 + } + GYA_APS_READY = { + DataSource = SynchThread + Samples = @dan_ratio + } + GYA_APS_FLT = { + DataSource = SynchThread + Samples = @dan_ratio + } + GYA_BPS_READY = { + DataSource = SynchThread + Samples = @dan_ratio + } + GYA_BPS_FLT = { + DataSource = SynchThread + Samples = @dan_ratio + } + MHVPS_OV = { + DataSource = SynchThread + Samples = @dan_ratio + } + MHVPS_OC = { + DataSource = SynchThread + Samples = @dan_ratio + } + MHVPS_FLT = { + DataSource = SynchThread + Samples = @dan_ratio + } + MHVPS_READY = { + DataSource = SynchThread + Samples = @dan_ratio + } + ECPC_MOD = { + DataSource = SynchThread + Samples = @dan_ratio + } + FAST_TRIP = { + DataSource = SynchThread + Samples = @dan_ratio + } + CRIO_RV1 = { + DataSource = SynchThread + Samples = @dan_ratio + } + CRIO_RV2 = { + DataSource = SynchThread + Samples = @dan_ratio + } + CRIO_RV3 = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_ITL = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_STANDBY = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_READY = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_ON = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_PERMIT = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_OP_SELECTED = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_CC_OP_SELECTED = { + DataSource = SynchThread + Samples = @dan_ratio + } + PLC_SYNCMODE = { + DataSource = SynchThread + Samples = @dan_ratio + } + TRIGGER = { + DataSource = SynchThread + Samples = @dan_ratio + } + BEAM_ON_STAT = { + DataSource = SynchThread + Samples = @dan_ratio + } + HVARMED = { + DataSource = SynchThread + Samples = @dan_ratio + } + HVINJECTION = { + DataSource = SynchThread + Samples = @dan_ratio + } + RFON = { + DataSource = SynchThread + Samples = @dan_ratio + } + BEAM_ON_TIME = { + DataSource = SynchThread + Samples = @dan_ratio + } + RFON_TIME = { + DataSource = SynchThread + Samples = @dan_ratio + } + } + OutputSignals = { + PXI6528_Status_SAMPLES = { + DataSource = DANDIODataSource + } + GYA_APS_READY_SAMPLES = { + DataSource = DANDIODataSource + } + GYA_APS_FLT_SAMPLES = { + DataSource = DANDIODataSource + } + GYA_BPS_READY_SAMPLES = { + DataSource = DANDIODataSource + } + GYA_BPS_FLT_SAMPLES = { + DataSource = DANDIODataSource + } + MHVPS_OV_SAMPLES = { + DataSource = DANDIODataSource + } + MHVPS_OC_SAMPLES = { + DataSource = DANDIODataSource + } + MHVPS_FLT_SAMPLES = { + DataSource = DANDIODataSource + } + MHVPS_READY_SAMPLES = { + DataSource = DANDIODataSource + } + ECPC_MOD_SAMPLES = { + DataSource = DANDIODataSource + } + FAST_TRIP_SAMPLES = { + DataSource = DANDIODataSource + } + CRIO_RV1_SAMPLES = { + DataSource = DANDIODataSource + } + CRIO_RV2_SAMPLES = { + DataSource = DANDIODataSource + } + CRIO_RV3_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_ITL_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_STANDBY_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_READY_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_ON_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_PERMIT_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_OP_SELECTED_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_CC_OP_SELECTED_SAMPLES = { + DataSource = DANDIODataSource + } + PLC_SYNCMODE_SAMPLES = { + DataSource = DANDIODataSource + } + TRIGGER_SAMPLES = { + DataSource = DANDIODataSource + } + BEAM_ON_STAT_SAMPLES = { + DataSource = DANDIODataSource + } + HVARMED_SAMPLES = { + DataSource = DANDIODataSource + } + HVINJECTION_SAMPLES = { + DataSource = DANDIODataSource + } + RFON_SAMPLES = { + DataSource = DANDIODataSource + } + BEAM_ON_TIME_SAMPLES = { + DataSource = DANDIODataSource + } + RFON_TIME_SAMPLES = { + DataSource = DANDIODataSource + } + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/ccps.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/ccps.marte new file mode 100644 index 0000000..03cc14c --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/ccps.marte @@ -0,0 +1,42 @@ +#package jada_gyro.RTApp + + ++Functions = { + //# GAM for trianguler waveform generation. + +CCPSWaveformGAM = { + Class = JATriangleWaveGAM + InputSignals = { + Frequency = { + Alias = CCPS_OUTPUT_FREQ + DataSource = EPICSCAInput + } + Amplitude = { + Alias = CCPS_OUTPUT_AMP + DataSource = EPICSCAInput + } + Offset = { + Alias = CCPS_OUTPUT_OFFS + DataSource = EPICSCAInput + } + PLCSTANDBY = { + Alias = PLC_STANDBY + DataSource = Th1Bridge + } + } + OutputSignals = { + CCPS_REF = { + DataSource = DDB6 + } + } + } +} + ++Data = { + +DDB6 = { + Signals = { + CCPS_REF = { + Type = float32 + } + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/fhps.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/fhps.marte new file mode 100644 index 0000000..57d9c86 --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/fhps.marte @@ -0,0 +1,77 @@ +#package jada_gyro.RTApp + + ++Functions = { + + //# Flat FHPS Setpoint. + +FHPSSetpointGAM = { + Class = IOGAM + InputSignals = { + FHPS_AUTO_TAGV = { + DataSource = EPICSCAInput + Type = float32 + } + } + OutputSignals = { + FHPS_TAGV = { + DataSource = DDB6 + } + } + } + + //# Filament heating rampup reference generator + +FHPSRampupGAM = { + Class = JARampupGAM + InputSignals = { + Targetv = { + Alias = FHPS_TAGV + DataSource = DDB6 + } + Time = { + Alias = FHPS_AUTO_TIME + DataSource = EPICSCAInput + Type = float32 + } + Start = { + Alias = FHPS_AUTO_START + DataSource = EPICSCAInput + Type = uint32 + } + PLC_STANDBY = { + Alias = PLC_STANDBY + DataSource = Th1Bridge + } + MANUAL_AUTO = { + Alias = FHPS_MANM + DataSource = EPICSCAInput + Type = uint32 + } + FHPS_PrePro = { + DataSource = Th1Bridge + } + } + OutputSignals = { + FHPS_REF = { + DataSource = DDB6 // probably to be direct analog output + } + FHPS_AUTO_STAT = { + DataSource = DDB6 + } + } + } +} ++Data = { + +DDB6 = { + Signals = { + FHPS_REF = { + Type = float32 + } + FHPS_TAGV = { + Type = float32 + } + FHPS_AUTO_STAT = { + Type = uint32 + } + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/synch.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/synch.marte new file mode 100644 index 0000000..b067ec5 --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread6/synch.marte @@ -0,0 +1,81 @@ +#package jada_gyro.RTApp + + ++Data = { + +WGAsyncBridge = { + Class = RealTimeThreadAsyncBridge + NumberOfBuffers = 20 + Signals = { + CCPS_REF = { + Type = float32 + } + FHPS_REF = { + Type = float32 + } + FHPS_AUTO_STAT = { + Type = uint32 + } + } + } + +NI6259_AO = { + Class = NI6259DAC + DeviceName = "/dev/pxi6259" // Mandatory + BoardId = 0 // Mandatory + SamplingFrequency = @wg_clock + Signals = { + CCPS_REF = { + Type = float32 // Mandatory. Only type that is supported. + ChannelId = 0 // Mandatory. The channel number. + OutputPolarity = "Bipolar" // Optional. Possible values: Bipolar, Unipolar. Default value Unipolar. + } + FHPS_REF = { + Type = float32 + ChannelId = 1 + OutputPolarity = "Bipolar" + } + } + } +} ++Functions = { + +WGProducerGAM = { + Class = IOGAM + InputSignals = { + CCPS_REF = { + DataSource = DDB6 + } + CCPS_REF_OUT = { + Alias = CCPS_REF + DataSource = DDB6 + } + FHPS_REF = { + DataSource = DDB6 + } + FHPS_REF_OUT = { + Alias = FHPS_REF + DataSource = DDB6 + } + FHPS_AUTO_STAT = { + Type = uint32 + } + } + OutputSignals = { + CCPS_REF = { + DataSource = WGAsyncBridge + } + CCPS_REF_OUT = { + Alias = CCPS_REF + DataSource = NI6259_AO + } + FHPS_REF = { + DataSource = WGAsyncBridge + } + FHPS_REF_OUT = { + Alias = FHPS_REF + DataSource = NI6259_AO + } + FHPS_AUTO_STAT = { + DataSource = WGAsyncBridge + } + } + } +} diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/timers.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/timers.marte index 8e4bc4e..4720892 100644 --- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/timers.marte +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/timers.marte @@ -6,7 +6,7 @@ Class = LinuxTimer SleepNature = "Busy" SleepPercentage = 40 - ExecutionMode = RealTimeThread + ExecutionMode = "RealTimeThread" CPUMask = 0x200 Signals = { Counter = { @@ -22,7 +22,7 @@ Class = LinuxTimer SleepNature = "Busy" SleepPercentage = 40 - ExecutionMode = RealTimeThread + ExecutionMode = "RealTimeThread" CPUMask = 0x400 Signals = { Counter = { @@ -33,6 +33,22 @@ } } } + //# Fast Timer for thread 3 (RTStateMachineGAM execution cycle.) + +WGTimer = { + Class = LinuxTimer + SleepNature = "Busy" + SleepPercentage = 40 + ExecutionMode = "RealTimeThread" + CPUMask = 0x700 + Signals = { + Counter = { + Type = uint32 + } + Time = { + Type = uint32 + } + } + } // Add signals to existing ddb +DDB2 = { Signals = { @@ -54,6 +70,16 @@ } } } + +DDB6 = { + Signals = { + Time = { + Type = uint32 + } + Counter = { + Type = uint32 + } + } + } } +Functions = { //# Timer for SDN thread. @@ -65,7 +91,7 @@ } Counter = { DataSource = TimerSDN - Frequency = 1000 // operation:1k(=1ms cyc), debug:10 + Frequency = @slow_clock } } OutputSignals = { @@ -86,8 +112,7 @@ } Counter = { DataSource = FastTimer - Frequency = 200000 // operation:10k(=100us cyc) - // Frequency = 100000 //operation:100k(=10us cyc) + Frequency = @fast_clock } } OutputSignals = { @@ -99,4 +124,24 @@ } } } + +WGTimerGAM = { + Class = IOGAM + InputSignals = { + Time = { + DataSource = WGTimer + } + Counter = { + DataSource = WGTimer + Frequency = @wg_clock + } + } + OutputSignals = { + Time = { + DataSource = DDB6 + } + Counter = { + DataSource = DDB6 + } + } + } } diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte new file mode 100644 index 0000000..924324b --- /dev/null +++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte @@ -0,0 +1,43 @@ +#package jada_gyro + + +//# Gyrotron ID +#var rfid: string = "EC-GN-P01" +//# Fast Clock +#var fast_clock: uint32 = 20000 // Hz +//# Slow Clock +#var slow_clock: uint32 = 1000 // Hz +//# WF Generation Clock +#var wg_clock: uint32 = 1000 // Hz +//# ADC Clock +#var sampling_freq: uint32 = 1000000 // Hz +//# App name +#var app_name: string = "JADA_RF01App" + +//# Ratio between fast and slow +#let fast_slow_ratio: uint32 = (@fast_clock / @slow_clock) + +#var dan_ratio: uint32 = 1000 + +// Constants for state values +#let state_error: uint32 = 1 +#let state_disabled: uint32 = 2 +#let state_standby: uint32 = 3 +#let state_ready: uint32 = 4 +#let state_permit: uint32 = 5 +#let state_hvon: uint32 = 6 +#let state_hvon_prep: uint32 = 7 +#let state_hvon_sdn: uint32 = 8 +#let state_hvon_sdn_prep: uint32 = 9 +#let state_none: uint32 = 0 + +//# decimation index for sync gam +#let dec_index: int = (@fast_slow_ratio - 1) + +// CPUS pinning +#var cpus_epics: uint = 0x1 +#var cpus_sdn: uint = 0x2 +#var cpus_rt: uint = 0x4 +#var cpus_adc: uint = 0x8 +#var cpus_dan: uint = 0x10 +#var cpus_wg: uint = 0x20