From be0d56bd2f7ad9686a58ef322ae9029420074ded Mon Sep 17 00:00:00 2001 From: Bernardo Carvalho Date: Mon, 31 Jan 2022 16:29:37 +0000 Subject: [PATCH] Added second SEEEDUINO Relay Board Signed-off-by: Bernardo Carvalho --- .../ISTTOKrpiApp/Db/ISTTOKmachineControl.db | 129 ++++++++++-------- .../ISTTOKrpiApp/src/IsttokSeqExec.stt | 40 +++--- .../ISTTOKrpi/iocBoot/iocISTTOKrpi/st.cmd | 1 + 3 files changed, 94 insertions(+), 76 deletions(-) diff --git a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db index d705ea7..7634e06 100644 --- a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db +++ b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKmachineControl.db @@ -28,14 +28,16 @@ record(bo, "$(P)$(R)TMPump1-ControllerOn" ) { field(ONAM, "Pulse" ) field(HIGH, "2.5") # Disabled until further notice -# field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" ) + field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" ) field(VAL,"0") } record(calcout, "$(P)$(R)TMPump1-ControllerOnInv") { field(INPA, "$(P)$(R)TMPump1-ControllerOn NPP MS") - field(OUT, "$(P)$(R)PCF8574:56:REGISTER.B0 PP MS") +# Disabled until further notice +# field(OUT, "$(P)$(R)PCF8574:56:REGISTER.B0 PP MS") field(OOPT, "On Change") field(CALC, "A?0:1") + field(VAL,"1") } record(bo, "$(P)$(R)TMPump1-ControllerOff" ) { @@ -45,15 +47,17 @@ record(bo, "$(P)$(R)TMPump1-ControllerOff" ) { field(ONAM, "Pulse" ) field(HIGH, "2.5") # Disabled until further notice -# field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" ) + field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" ) field(VAL,"0") } record(calcout, "$(P)$(R)TMPump1-ControllerOffInv") { field(INPA, "$(P)$(R)TMPump1-ControllerOff NPP MS" ) - field(OUT, "$(P)$(R)PCF8574:56:REGISTER.B1 PP MS") +# Disabled until further notice +# field(OUT, "$(P)$(R)PCF8574:56:REGISTER.B1 PP MS") field(OOPT, "On Change") field(CALC, "A?0:1") + field(VAL,"1") } record(bo, "$(P)$(R)TMPump1-MotorOn" ) { @@ -176,24 +180,6 @@ record(bo, "$(P)$(R)TMPump2-Motor" ) { field( ONAM, "OFF") } -############################## -# BUZZER ON/OFF # -############################## -record(bo, "$(P)$(R)Buzzer" ) { - field(DESC," Lab Buzzer ") - field(ZNAM, "Off" ) - field(ONAM, "Pulse" ) - field(HIGH, "2.5") - field(FLNK, "$(P)$(R)BuzzerInv" ) - field(VAL, "0") -} -record(calcout, "$(P)$(R)BuzzerInv" ) { - field(INPA, "$(P)$(R)Buzzer NPP MS" ) - field(OUT, "$(P)$(R)PCF8574:57:REGISTER.B3 PP MS" ) - field(OOPT, "On Change" ) - field(CALC, "A?0:1" ) -} - ############################## # EMERGENCY MODE # ############################## @@ -306,17 +292,6 @@ record(bo, "$(P)$(R)Lab-WarningLight" ) { ############ #$(P)$(R)PCF8574:60:REGISTER:READ.B6 -############################## -# TOR CLEAN CONTACTOR ON/OFF # -############################## -record(bo, "$(P)$(R)Clean-TorContactor" ) { -# field(DESC," Contactor 220V do transformador para a fonte de campo toroidal das descargas de limpeza (500 A) ") - field( OUT, "$(P)$(R)PCF8574:60:REGISTER.B7 PP" ) - field( ZNAM, "On" ) - field( ONAM, "Off" ) - field(VAL,"1") -} - ############### ############### # REGISTER 61 # @@ -348,31 +323,6 @@ record(calcout, "$(P)$(R)Shot-TorPSTriggerInv" ) { } ############################################################ -####################################### -# CAP BANK CHARGE ON/OFF # -####################################### -record(bo, "$(P)$(R)CapBank-Charge" ) { -## field(DESC," Contactor 220V do circuito de carga do banco de condensadores p/ SHOT (ELCO) ") -#record(bo, "$(P)$(R)CapBankChargeOnOff" ) { - field(OUT, "$(P)$(R)PCF8574:61:REGISTER.B3 PP" ) - field(ZNAM, "On" ) - field(ONAM, "Off" ) - field(VAL,"1") -} - -######################################## -# PRIMARY CLEAN CONTACTOR ON/OFF # -######################################## -record(bo, "$(P)$(R)Clean-PrimContactor" ) { -# field(DESC," Contactor 220V do para o primário das descargas de limpeza ") -# record(bo, "$(P)$(R)PrimaryCleanContactorOnOff" ) { - field(OUT, "$(P)$(R)PCF8574:61:REGISTER.B4 PP MS" ) - field(ZNAM, "On" ) - field(ONAM, "Off" ) - field(VAL,"1") -} - - ################################## # GIS VALVES ON/OFF # ################################## @@ -412,7 +362,7 @@ record(bo, "$(P)$(R)TMPump1-ManualValve"){ field( ONAM, "Open") } -### SEEED 4 RELAY BOARD +### SEEED 4-RELAY I2C BOARDS ADDR 0x11 & 0x12 # # @@ -463,5 +413,66 @@ record(bo, "$(P)$(R)Clean-TorPneuBreaker" ) { field(VAL,"0") field(OSV,"MAJOR") } +###################################### +# PRIMARY CLEAN CONTACTOR ON/OFF # +###################################### +record(bo, "$(P)$(R)Clean-PrimContactor") { + field(DESC,"220V Contactor for Clean Primary") + field(OUT,"$(P)$(R)SEEED4RELAY:18:REGISTER.B0 PP") + field(ZNAM,"OFF") + field(ONAM, "ON") + field(VAL,"0") + field(OSV,"MINOR") +} +###################################### +# TOR CLEAN CONTACTOR ON/OFF # +###################################### +record(bo, "$(P)$(R)Clean-TorContactor" ) { + field(DESC,"220V Contactor for Clean Toroidal PS") +# field(DESC," Contactor 220V do transformador para a fonte de campo toroidal das descargas de limpeza (500 A) ") + field(OUT,"$(P)$(R)SEEED4RELAY:18:REGISTER.B1 PP") + field(ZNAM,"OFF") + field(ONAM, "ON") + field(VAL, "0") + field(OSV,"MINOR") +} +####################################### +# CAP BANK CHARGE ON/OFF # +####################################### +record(bo, "$(P)$(R)CapBank-Charge" ) { + field(DESC,"220V Contactor for ELCO Charger") +## field(DESC," Contactor 220V do circuito de carga do banco de condensadores p/ SHOT (ELCO) ") + field(OUT,"$(P)$(R)SEEED4RELAY:18:REGISTER.B2 PP") + field(ZNAM,"OFF") + field(ONAM, "ON") + field(VAL, "0") + field(OSV,"MINOR") +} + +############################## +# BUZZER ON/OFF # +############################## +record(bo, "$(P)$(R)Buzzer" ) { + field(DESC," Lab Buzzer ") + field(OUT,"$(P)$(R)SEEED4RELAY:18:REGISTER.B3 PP") + field(ZNAM,"OFF") + field(ONAM, "Pulse") + field(HIGH, "2.5") + field(VAL, "0") + field(OSV,"MINOR") +} + +# field(ZNAM, "Off" ) +# field(ONAM, "Pulse" ) +# field(HIGH, "2.5") +# field(FLNK, "$(P)$(R)BuzzerInv" ) +# field(VAL, "0") +#} +#record(calcout, "$(P)$(R)BuzzerInv" ) { +# field(INPA, "$(P)$(R)Buzzer NPP MS" ) +# field(OUT, "$(P)$(R)PCF8574:57:REGISTER.B3 PP MS" ) +# field(OOPT, "On Change" ) +# field(CALC, "A?0:1" ) +#} diff --git a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt index 0da37e1..a6a617f 100644 --- a/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt +++ b/epics/iocs/ISTTOKrpi/ISTTOKrpiApp/src/IsttokSeqExec.stt @@ -29,6 +29,7 @@ short PCF_INPUT_OFF= 1; short PCF_PULSE_ON = 1; short SEEED_RELAY_OFF= 0; short SEEED_RELAY_ON = 1; +short SEEED_RELAY_PULSE = 1; short STRST_NonStarting = 0; short STRST_Starting1 = 1; @@ -179,6 +180,10 @@ assign IsttokTMPump2_Emergency to "ISTTOK:central:TMPump2-Emergency"; monitor IsttokTMPump2_Emergency; */ +float IsttokTMPump1_Pressure; +assign IsttokTMPump1_Pressure to "ISTTOK:central:TMPump1-PressureAdmission"; +monitor IsttokTMPump1_Pressure; + float IsttokRPump1_Pressure; /*assign IsttokRPump1_Pressure to "ISTTOK:vacuum:RPump1-Pressure";*/ assign IsttokRPump1_Pressure to "ISTTOK:central:RPump1-Pressure"; @@ -286,16 +291,16 @@ ss PulseSequence { // IsttokProcMode = OFF; // UPON POWER-DOWN OR FAILURE PREVENT TO ENTER WAITSHOT ON POWER-UP! // pvPut(IsttokProcMode); - IsttokClean_PrimContactor = PCF_RELAY_OFF; + IsttokClean_PrimContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_PrimContactor); IsttokClean_PrimPneuBreaker = SEEED_RELAY_OFF; pvPut(IsttokClean_PrimPneuBreaker); - IsttokBuzzer = PCF_RELAY_OFF; + IsttokBuzzer = SEEED_RELAY_OFF; pvPut(IsttokBuzzer); - IsttokCapBank_Charge = PCF_RELAY_OFF; + IsttokCapBank_Charge = SEEED_RELAY_OFF; pvPut(IsttokCapBank_Charge); IsttokCapBank_Discharge = SEEED_RELAY_OFF; @@ -313,7 +318,7 @@ ss PulseSequence { IsttokClean_TorPneuBreaker = SEEED_RELAY_OFF; pvPut(IsttokClean_TorPneuBreaker); - IsttokClean_TorContactor = PCF_RELAY_OFF; + IsttokClean_TorContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_TorContactor); Isttok_TorPSDisable = PCF_RELAY_OFF; @@ -461,7 +466,8 @@ ss PulseSequence { strcpy(msg, "State Idle to Stopping"); pvPut(msg); errlogSevPrintf(MINOR, "%s\n", msg); - sprintf(sendMail, "Rpump1 Pressure:%1.1e TMP1 Pressure:%d",IsttokRPump1_Pressure,IsttokTMPump1_Emergency); + sprintf(sendMail, "Rpump1 Pressure:%1.1e TMP1 Emergency:%d TMP1 Adm. Pressure:%4.2e", + IsttokRPump1_Pressure, IsttokTMPump1_Emergency, IsttokTMPump1_Pressure); pvPut(sendMail); } state Stopping @@ -594,7 +600,7 @@ ss PulseSequence { Isttok_TorPSDisable = PCF_RELAY_OFF; pvPut(Isttok_TorPSDisable); - IsttokCapBank_Charge = PCF_RELAY_OFF; + IsttokCapBank_Charge = SEEED_RELAY_OFF; pvPut(IsttokCapBank_Charge); IsttokCapBank_Discharge = SEEED_RELAY_OFF; @@ -641,7 +647,7 @@ ss PulseSequence { strcpy(msg, "EMERGENCY: CAPBANK Charge OFF"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokCapBank_Charge = PCF_RELAY_OFF; + IsttokCapBank_Charge = SEEED_RELAY_OFF; pvPut(IsttokCapBank_Charge); strcpy(msg, "EMERGENCY: CAPBANK CrowBar Close"); @@ -895,7 +901,7 @@ ss CleaningSequence{ strcpy(msg, "Primary_CT OFF"); pvPut(msg); - IsttokClean_PrimContactor = PCF_RELAY_OFF; + IsttokClean_PrimContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_PrimContactor); strcpy(msg, "Toroidal_BK OPEN"); @@ -905,7 +911,7 @@ ss CleaningSequence{ strcpy(msg, "Toroidal_CT OFF"); pvPut(msg); - IsttokClean_TorContactor = PCF_RELAY_OFF; + IsttokClean_TorContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_TorContactor); strcpy(msg, "Prim_Pneu_Breaker OFF"); @@ -971,7 +977,7 @@ ss CleaningSequence{ strcpy(msg, "Primary-CT ON"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokClean_PrimContactor = PCF_RELAY_ON; + IsttokClean_PrimContactor = SEEED_RELAY_ON; pvPut(IsttokClean_PrimContactor); CLEANINGSTATE = CLNST_Cleaning3; pvPut(CLEANINGSTATE); @@ -982,7 +988,7 @@ ss CleaningSequence{ strcpy(msg, "Primary-CT OFF"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokClean_PrimContactor = PCF_RELAY_OFF; + IsttokClean_PrimContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_PrimContactor); CLEANINGSTATE = CLNST_Cleaning2; pvPut(CLEANINGSTATE); @@ -1012,7 +1018,7 @@ ss CleaningSequence{ strcpy(msg, "Toroidal-CT ON"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokClean_TorContactor = PCF_RELAY_ON; + IsttokClean_TorContactor = SEEED_RELAY_ON; pvPut(IsttokClean_TorContactor); CLEANINGSTATE = CLNST_Cleaning5; pvPut(CLEANINGSTATE); @@ -1026,7 +1032,7 @@ ss CleaningSequence{ strcpy(msg, "Toroidal-CT OFF"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokClean_TorContactor = PCF_RELAY_OFF; + IsttokClean_TorContactor = SEEED_RELAY_OFF; pvPut(IsttokClean_TorContactor); /* Close GIS to let Pressure down */ IsttokGasIS_Valves = SEEED_RELAY_OFF; @@ -1107,7 +1113,7 @@ ss ShotSequence { strcpy(msg, "Buzzer 1-Sound"); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokBuzzer = 1; + IsttokBuzzer = SEEED_RELAY_PULSE; pvPut(IsttokBuzzer); strcpy(msg, "CAPBANK Crowbar Open"); pvPut(msg); @@ -1164,7 +1170,7 @@ ss ShotSequence { strcpy(msg, "CAPBANK Charge ON" ); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n",msg); - IsttokCapBank_Charge = PCF_RELAY_ON; + IsttokCapBank_Charge = SEEED_RELAY_ON; pvPut(IsttokCapBank_Charge); WSHOTINGSTATE = WSHTST_Shooting6; pvPut(WSHOTINGSTATE); @@ -1182,7 +1188,7 @@ ss ShotSequence { strcpy(msg, "CAPBANK Charge OFF" ); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n", msg); - IsttokCapBank_Charge = PCF_RELAY_OFF; + IsttokCapBank_Charge = SEEED_RELAY_OFF; pvPut(IsttokCapBank_Charge); WSHOTINGSTATE = WSHTST_Shooting7; pvPut(WSHOTINGSTATE); @@ -1200,7 +1206,7 @@ ss ShotSequence { strcpy(msg, "Buzzer 2-Sound" ); pvPut(msg); errlogSevPrintf(NO_ALARM, "%s\n", msg); - IsttokBuzzer = 1; + IsttokBuzzer = SEEED_RELAY_PULSE; pvPut(IsttokBuzzer); strcpy(msg, "Filament ON"); pvPut(msg); diff --git a/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/st.cmd b/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/st.cmd index 036fd57..a12a0a8 100755 --- a/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/st.cmd +++ b/epics/iocs/ISTTOKrpi/iocBoot/iocISTTOKrpi/st.cmd @@ -26,6 +26,7 @@ dbLoadRecords("db/ISTTOKtda8444.db","P=ISTTOK:,R=central:,BUS=I2C") dbLoadRecords("db/ISTTOKmachineControl.db","P=ISTTOK:,R=central:") ## SEEED RELAY BOARD dbLoadRecords("db/seeed4relay.db","P=ISTTOK:,R=central:,A=17") +dbLoadRecords("db/seeed4relay.db","P=ISTTOK:,R=central:,A=18") ## Load Serial drivers #drvAsynSerialPortConfigure("RS0","/dev/ttyAMA0")