diff --git a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db index 13b1ea4..fac672b 100644 --- a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db +++ b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db @@ -151,8 +151,8 @@ record(bi , "$(P)$(R)TMPump2-Acceleration") { #################################### record(bi , "$(P)$(R)TTSystem-tzero" ) { field(DESC,"Trigger control 60s before shot") -# field(INP, "$(P)$(R)PCF8574:57:REGISTER:READ.B7") - field(VAL,"1") + field(INP, "$(P)$(R)PCF8574:57:REGISTER:READ.B7") +# field(VAL,"1") field(ZNAM, "OFF" ) field(ONAM, "ON" ) } @@ -306,7 +306,6 @@ record(bo, "$(P)$(R)Lab-WarningLight" ) { ############################## record(bo, "$(P)$(R)Clean-TorContactor" ) { # field(DESC," Contactor 220V do transformador para a fonte de campo toroidal das descargas de limpeza (500 A) ") -# record(bo, "$(P)$(R)ToroidalCleanContactorOnOff" ) { field( OUT, "$(P)$(R)PCF8574:60:REGISTER.B7 PP" ) field( ZNAM, "On" ) field( ONAM, "Off" ) @@ -324,7 +323,6 @@ record(bo, "$(P)$(R)Clean-TorContactor" ) { ############################ record(bo, "$(P)$(R)Clean-TorPneuBreaker" ) { ## field(DESC," Interruptor de ar comprimido do transformador para a fonte de campo toroidal das descargas de limpeza (500 A)") -#record(bo, "$(P)$(R)ToroidalCleanBreakerOnOff" ) { field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B0 PP" ) field( ZNAM, "On" ) field( ONAM, "Off" ) @@ -333,7 +331,6 @@ record(bo, "$(P)$(R)Clean-TorPneuBreaker" ) { record(bo, "$(P)$(R)Shot-TorPSDisable" ) { # field(DESC," É desligado na emergência e em qualquer estado que não seja Process ou Wait Shot.") -# record(bo, "$(P)$(R)ToroidalShotEnableOnOff" ) { field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B1 PP" ) field( ZNAM, "Off" ) field( ONAM, "On" ) @@ -342,17 +339,14 @@ record(bo, "$(P)$(R)Shot-TorPSDisable" ) { record(bo, "$(P)$(R)Shot-TorPSTrigger" ) { field(DESC," Trigger da FRAEP") -# record(bo, "$(P)$(R)ToroidalShotTriggerOnOff" ) { field( ZNAM, "Off" ) field( ONAM, "Pulse" ) field( HIGH, "2.5") field( FLNK, "$(P)$(R)Shot-TorPSTriggerInv" ) field(VAL,"0") -# field( FLNK, "$(P)$(R)ToroidalShotTriggerOnOffInv" ) } record(calcout, "$(P)$(R)Shot-TorPSTriggerInv" ) { # field(DESC," $(R)") -#record(calcout, "$(P)$(R)ToroidalShotTriggerOnOffInv" ) { field( INPA, "$(P)$(R)ToroidalShotTriggerOnOff NPP MS" ) field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B2 PP MS" ) field( OOPT, "On Change" ) diff --git a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKstates.db b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKstates.db index 02bf442..9cc8eef 100644 --- a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKstates.db +++ b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKstates.db @@ -195,23 +195,6 @@ record(mbbi, "$(P)$(R)STARTINGSTATE") { field(VAL, "0") } -#record(mbbi, "$(P)$(R)STOPPINGSTATE") { -# field(DESC, "Stopping State Sequence") -# field(ZRVL, "0") -# field(ONVL, "1") -# field(TWVL, "2") -# field(THVL, "3") -# field(FRVL, "4") -# field(FVVL, "5") -# field(ZRST, "NonStopped") -# field(ONST, "Stopping1") -# field(TWST, "Stopping2") -# field(THST, "Stopping3") -# field(FRST, "Stopping4") -# field(FVST, "Stopping5") -# field(VAL, "0") -#} - record(mbbi, "$(P)$(R)CLEANINGSTATE") { field(DESC, "Cleaning State Sequence") field(ZRVL, "0") @@ -230,7 +213,7 @@ record(mbbi, "$(P)$(R)CLEANINGSTATE") { } record(mbbi, "$(P)$(R)WSHOTINGSTATE") { - field(DESC, "Shooting State Sequence") + field(DESC, "Plasma Shot State Sequence") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") @@ -243,8 +226,10 @@ record(mbbi, "$(P)$(R)WSHOTINGSTATE") { field(NIVL, "9") field(TEVL, "10") field(ELVL, "11") + field(TLVL, "12") + field(TTVL, "13") field(ZRST, "NonShooting") - field(ONST, "Shooting1") + field(ONST, "ShotWTrig") field(TWST, "Shooting2") field(THST, "Shooting3") field(FRST, "Shooting4") @@ -255,6 +240,8 @@ record(mbbi, "$(P)$(R)WSHOTINGSTATE") { field(NIST, "Shooting9") field(TEST, "Shooting10") field(ELST, "Shooting11") + field(TVST, "Shooting12") + field(TTST, "ShotEnd") field(VAL, "0") } diff --git a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt index 301f5d1..872e569 100644 --- a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt +++ b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt @@ -30,14 +30,7 @@ short STRST_Starting2 = 2; short STRST_Starting3 = 3; short STRST_Starting4 = 4; short STRST_Starting5 = 5; -/* -short STPST_NonStopping = 0; -short STPST_Stopping1 = 1; -short STPST_Stopping2 = 2; -short STPST_Stopping3 = 3; -short STPST_Stopping4 = 4; -short STPST_Stopping5 = 5; -*/ + short CLNST_NonCleaning = 0; short CLNST_Cleaning1 = 1; short CLNST_Cleaning2 = 2; @@ -47,7 +40,6 @@ short CLNST_Cleaning5 = 5; short WSHTST_NonShoting = 0; short WSHTST_WaitTrg = 1; -//short WSHTST_Shoting1 = 1; short WSHTST_Shoting2 = 2; short WSHTST_Shoting3 = 3; short WSHTST_Shoting4 = 4; @@ -59,7 +51,7 @@ short WSHTST_Shoting9 = 9; short WSHTST_Shoting10 = 10; short WSHTST_Shoting11 = 11; short WSHTST_Shoting12 = 12; -short WSHTST_Shoting13 = 13; +short WSHTST_ShotEnd = 13; short POS_Stopped =0; short POS_Starting=1; @@ -282,15 +274,15 @@ ss PulseSequence { IsttokShotClean_TorContactor = PCF_RELAY_OFF; pvPut(IsttokShotClean_TorContactor); - IsttokShotShot_TorPSTrigger= PCF_RELAY_OFF; - pvPut(IsttokShotShot_TorPSTrigger); - IsttokShotShot_TorPSDisable = PCF_RELAY_OFF; pvPut(IsttokShotShot_TorPSDisable); IsttokTMPump2_Motor = PCF_RELAY_OFF; pvPut(IsttokTMPump2_Motor); + IsttokShotShot_TorPSTrigger= OFF; + pvPut(IsttokShotShot_TorPSTrigger); + IsttokTMPump1_ControllerOff = OFF; pvPut(IsttokTMPump1_ControllerOff); @@ -470,16 +462,14 @@ ss PulseSequence { strcpy(msg, "State to Process"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - /*Just to be sure + /*Just to be sure */ IsttokProcReq = STOP; pvPut(IsttokProcReq); - */ - /* Pulse state change to Process */ IsttokOPSTATE = POS_Process; pvPut(IsttokOPSTATE); } state Process - when((IsttokEmergency == ON)){ + when(IsttokEmergency == ON){ strcpy(msg, "Emergency from Clean"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); @@ -542,7 +532,7 @@ ss PulseSequence { /*State Emergency*/ state Emergency { - when (delay(1.0) && (IsttokEmergency == OFF) && ((IsttokOPSTATE == POS_WaitShot) || (IsttokOPSTATE==POS_Clean)) ){ + entry { strcpy(msg, "Toroidal Shot Disable"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); @@ -572,6 +562,8 @@ ss PulseSequence { errlogSevPrintf(NO_ALARM, "%s\n",msg); IsttokShotVVessel_Filament = PCF_RELAY_OFF; pvPut(IsttokShotVVessel_Filament); + } + when (delay(1.0) && (IsttokEmergency == OFF) && ((IsttokOPSTATE == POS_WaitShot) || (IsttokOPSTATE==POS_Clean)) ){ /* Pulse state change to Process */ strcpy(msg, "State to Process"); @@ -584,30 +576,6 @@ ss PulseSequence { } state Process when (delay(1.0) && (IsttokEmergency == OFF) && (IsttokOPSTATE == POS_Process)){ - strcpy(msg, "EMERGENCY: CAPBANK Charge OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Charge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Charge); - - strcpy(msg, "EMERGENCY: CAPBANK Discharge ON"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Discharge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Discharge); - - strcpy(msg, "EMERGENCY: GIS Valves CLOSE"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotGasIS_Valves = PCF_RELAY_OFF; - pvPut(IsttokShotGasIS_Valves); - - strcpy(msg, "EMERGENCY: Filament OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotVVessel_Filament = PCF_RELAY_OFF; - pvPut(IsttokShotVVessel_Filament); - /* Pulse state change to Process */ strcpy(msg, "State to Process"); pvPut(msg); @@ -617,32 +585,6 @@ ss PulseSequence { } state Process when (delay(1.0) && (IsttokEmergency == OFF) && (IsttokOPSTATE == POS_Starting)){ - strcpy(msg, "EMERGENCY: CAPBANK Charge OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Charge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Charge); - - - strcpy(msg, "EMERGENCY: CAPBANK Discharge ON"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Discharge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Discharge); - - - strcpy(msg, "EMERGENCY: GIS Valves CLOSE"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotGasIS_Valves = PCF_RELAY_OFF; - pvPut(IsttokShotGasIS_Valves); - - strcpy(msg, "EMERGENCY: Filament OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotVVessel_Filament = PCF_RELAY_OFF; - pvPut(IsttokShotVVessel_Filament); - strcpy(msg, "State to Stopped"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); @@ -654,47 +596,17 @@ ss PulseSequence { } state Stopped when (delay(1.0) && (IsttokEmergency == OFF) && (IsttokOPSTATE == POS_Stopped)){ - IsttokOPSTATE = POS_Emergency; - pvPut(IsttokOPSTATE); - strcpy(msg, "State to Emergency"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - - strcpy(msg, "EMERGENCY: CAPBANK Charge OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Charge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Charge); - - strcpy(msg, "EMERGENCY: CAPBANK Discharge ON"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotCapBank_Discharge = PCF_RELAY_OFF; - pvPut(IsttokShotCapBank_Discharge); - - strcpy(msg, "EMERGENCY: GIS Valves CLOSE"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotGasIS_Valves = PCF_RELAY_OFF; - pvPut(IsttokShotGasIS_Valves); - - strcpy(msg, "EMERGENCY: Filament OFF"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotVVessel_Filament = PCF_RELAY_OFF; - pvPut(IsttokShotVVessel_Filament); strcpy(msg, "State to Stopped"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokOPREQ = STOP; - pvPut(IsttokOPREQ); /* Pulse state change to Stopped */ IsttokOPSTATE = POS_Stopped; pvPut(IsttokOPSTATE); } state Stopped } } + ss StartingSequence { state NonStarting { entry { @@ -829,8 +741,6 @@ ss StartingSequence { ss CleaningSequence{ state NonCleaning{ entry{ - strcpy(msg, "State to Process"); - pvPut(msg); strcpy(msg, "GIS Valves CLOSE"); pvPut(msg); IsttokShotGasIS_Valves = PCF_RELAY_OFF; @@ -862,7 +772,7 @@ ss CleaningSequence{ errlogSevPrintf(NO_ALARM, "%s\n",msg); } - when(delay(1.0) && IsttokCLEANINGMANMODE == 0 && IsttokOPSTATE == POS_Clean){ + when(delay(1.0) && IsttokCLEANINGMANMODE == 1 && IsttokOPSTATE == POS_Clean){ strcpy(msg, "Initiating Auto Cleaning..."); pvPut(msg); strcpy(msg, "GIS Valves OPEN"); @@ -986,12 +896,12 @@ ss ShotSequence { strcpy(msg, "Waiting for Trigger..."); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - strcpy(msg, "Initiating..."); - pvPut(msg); IsttokShotCountdown = 0; pvPut(IsttokShotCountdown); strcpy(IsttokShotCountdownScan, "1 second"); pvPut(IsttokShotCountdownScan); + IsttokWSHOTINGSTATE = WSHTST_WaitTrg; + pvPut(IsttokWSHOTINGSTATE); } state ShotWaitTrg } state ShotWaitTrg { @@ -1037,7 +947,7 @@ ss ShotSequence { strcpy(msg, "Lights ON"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotLab_WarningLight = 0; + IsttokShotLab_WarningLight = PCF_RELAY_ON; pvPut(IsttokShotLab_WarningLight); IsttokWSHOTINGSTATE = WSHTST_Shoting3; pvPut(IsttokWSHOTINGSTATE); @@ -1091,13 +1001,6 @@ ss ShotSequence { } state Shoting6 } state Shoting6 { - when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) { - strcpy(msg, "Shoting6 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == -16) { strcpy(msg, "CAPBANK Charge OFF" ); pvPut(msg); @@ -1109,13 +1012,6 @@ ss ShotSequence { } state Shoting7 } state Shoting7 { - when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) { - strcpy(msg, "Shoting7 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == -11) { strcpy(msg, "Buzzer 2-Sound" ); pvPut(msg); @@ -1132,6 +1028,7 @@ ss ShotSequence { } state Shoting8 } state Shoting8 { +/* when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) { strcpy(msg, "Shoting8 Out"); pvPut(msg); @@ -1139,24 +1036,19 @@ ss ShotSequence { IsttokWSHOTINGSTATE = WSHTST_NonShoting; pvPut(IsttokWSHOTINGSTATE); } state NonShoting +*/ when (IsttokShotCountdown == -4) { - strcpy(msg, "Toroidal Shot Trigger"); + strcpy(msg, "Toroidal PS Trigger"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokShotShot_TorPSTrigger = 1; +// PS Trigger Pulse + IsttokShotShot_TorPSTrigger = ON; pvPut(IsttokShotShot_TorPSTrigger); IsttokWSHOTINGSTATE = WSHTST_Shoting9; pvPut(IsttokWSHOTINGSTATE); } state Shoting9 } state Shoting9 { - when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) { - strcpy(msg, "Shoting9 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == -2) { strcpy(msg, "Ready for SHOT" ); pvPut(msg); @@ -1166,15 +1058,8 @@ ss ShotSequence { } state Shoting10 } state Shoting10 { - when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) { - strcpy(msg, "Shoting8 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == 0) { - strcpy(msg, "CAPBANK CrowBar Open" ); + strcpy(msg, "CAPBANK CrowBar Close" ); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n", msg); IsttokShotCapBank_Discharge = PCF_RELAY_OFF; @@ -1184,13 +1069,6 @@ ss ShotSequence { } state Shoting11 } state Shoting11 { - when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) { - strcpy(msg, "Shoting11 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == 1) { strcpy(msg, "GIS Valves CLOSE" ); pvPut(msg); @@ -1207,24 +1085,18 @@ ss ShotSequence { } state Shoting12 } state Shoting12 { - when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) { - strcpy(msg, "Shoting12 Out"); - pvPut(msg); - errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokWSHOTINGSTATE = WSHTST_NonShoting; - pvPut(IsttokWSHOTINGSTATE); - } state NonShoting when (IsttokShotCountdown == 2) { strcpy(msg, "Lights OFF and Recovering..." ); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n", msg); - IsttokShotLab_WarningLight = 1; + IsttokShotLab_WarningLight = PCF_RELAY_OFF; pvPut(IsttokShotLab_WarningLight); - IsttokWSHOTINGSTATE = WSHTST_Shoting13; + IsttokWSHOTINGSTATE = WSHTST_ShotEnd; pvPut(IsttokWSHOTINGSTATE); - } state Shoting13 + } state ShotEnd } - state Shoting13 { + state ShotEnd { +/* when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) { strcpy(msg, "Shoting13 Out"); pvPut(msg); @@ -1232,14 +1104,18 @@ ss ShotSequence { IsttokWSHOTINGSTATE = WSHTST_NonShoting; pvPut(IsttokWSHOTINGSTATE); } state NonShoting +*/ when (IsttokShotCountdown > 160) { strcpy(msg, "Terminated"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n", msg); - IsttokShotCountdown = 0; - pvPut(IsttokShotCountdown); +// IsttokShotCountdown = 0; +// pvPut(IsttokShotCountdown); + IsttokWSHOTINGSTATE = WSHTST_WaitTrg; + pvPut(IsttokWSHOTINGSTATE); } state ShotWaitTrg } +} /* when (IsttokShotCountdown > 159) { strcpy(msg, "Toroidal Field Recovered" ); pvPut(msg); @@ -1261,10 +1137,9 @@ ss ShotSequence { errlogSevPrintf(NO_ALARM, "%s\n", msg); // strcpy(IsttokShotCountdownScan, "Passive"); // pvPut(IsttokShotCountdownScan); - IsttokShotCountdown = 0; - pvPut(IsttokShotCountdown); +// IsttokShotCountdown = 0; +// pvPut(IsttokShotCountdown); } state ShotWaitTrg } */ -} diff --git a/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/save/iocISTTOKrpi.sav b/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/save/iocISTTOKrpi.sav index 04fa6e8..7603bad 100644 --- a/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/save/iocISTTOKrpi.sav +++ b/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/save/iocISTTOKrpi.sav @@ -1,4 +1,4 @@ -# autosave R5.3 Automatically generated - DO NOT MODIFY - 191203-182102 +# autosave R5.3 Automatically generated - DO NOT MODIFY - 191205-170936 ISTTOK:central:PULSE-NUMBER.VAL 0 ISTTOK:central:PROCESS-MODE.VAL 1 ISTTOK:central:TMPump1-ManualValve.VAL 1