Checking relay output

This commit is contained in:
Bernardo Carvalho
2021-12-09 15:07:43 +00:00
parent 2eeafe3581
commit 3813c99704
6 changed files with 225 additions and 140 deletions

View File

@@ -228,9 +228,9 @@ record(calc, "$(P)$(R)Emergency" ) {
###############
###############
#############################
# ROTARY1 PUMP #
#############################
###################################
# ROTARY1 PUMP Relay 5 NC #
###################################
record( bo, "$(P)$(R)RPump1-Motor" ) {
field(DESC,"Power to Rotatory Pump 1. Relay 5")
field(OUT, "$(P)$(R)PCF8574:60:REGISTER.B0 PP" )
@@ -240,9 +240,9 @@ record( bo, "$(P)$(R)RPump1-Motor" ) {
field(ZSV,"MINOR")
}
#############################
# ROTARY1 VALVE #
#############################
####################################
# ROTARY1 VALVE Relay 4 NC #
####################################
record( bo, "$(P)$(R)RPump1-Valve" ) {
field(DESC,"Abre a valvula da bomba rot. Relay 4")
field(OUT, "$(P)$(R)PCF8574:60:REGISTER.B1 PP" )

View File

@@ -54,9 +54,10 @@ record( mbbiDirect, "$(P)$(R)PCF8574:57:REGISTER:READ" ) {
field(FLNK, "$(P)$(R)PCF8574:57:REGISTER:READ:FNOUT")
}
#####################################################
# ### Read/Write pcf8574 address 0x3c=60 register ### #
###################################################
################################################################
# ### Read/Write pcf8574 address 0x3c=60 register #
# I2C power up with output at 1 (Relay coils are de-energized)#
################################################################
record( mbboDirect, "$(P)$(R)PCF8574:60:REGISTER") {
field( DTYP, "stream")
field( OUT, "@pcf8574.proto wReg(60) $(BUS)")

View File

@@ -21,6 +21,7 @@ record(mbbi, "$(P)$(R)OPSTATE") {
field(FRVL, "4")
field(FVVL, "5")
field(SXVL, "6")
field(SVVL, "7")
field(ZRST, "Stopped")
field(ONST, "Starting")
field(TWST, "Idle")
@@ -28,6 +29,7 @@ record(mbbi, "$(P)$(R)OPSTATE") {
field(FRST, "WaitShot")
field(FVST, "Stopping")
field(SXST, "Emergency")
field(SVST, "UPSEmergency")
field(VAL, "0")
}
record(mbbo, "$(P)$(R)LASTOPSTATE") {
@@ -40,6 +42,7 @@ record(mbbo, "$(P)$(R)LASTOPSTATE") {
field(FRVL, "4")
field(FVVL, "5")
field(SXVL, "6")
field(SVVL, "7")
field(ZRST, "Stopped")
field(ONST, "Starting")
field(TWST, "Idle")
@@ -47,6 +50,7 @@ record(mbbo, "$(P)$(R)LASTOPSTATE") {
field(FRST, "WaitShot")
field(FVST, "Stopping")
field(SXST, "Emergency")
field(SVST, "UPSEmergency")
# field(VAL, "0")
}

View File

@@ -44,17 +44,17 @@ short CLNST_Cleaning5 = 5;
short WSHTST_NonShoting = 0;
short WSHTST_WaitTrg = 1;
short WSHTST_Shoting2 = 2;
short WSHTST_Shoting3 = 3;
short WSHTST_Shoting4 = 4;
short WSHTST_Shoting5 = 5;
short WSHTST_Shoting6 = 6;
short WSHTST_Shoting7 = 7;
short WSHTST_Shoting8 = 8;
short WSHTST_Shoting9 = 9;
short WSHTST_Shoting10 = 10;
short WSHTST_Shoting11 = 11;
short WSHTST_Shoting12 = 12;
short WSHTST_Shooting2 = 2;
short WSHTST_Shooting3 = 3;
short WSHTST_Shooting4 = 4;
short WSHTST_Shooting5 = 5;
short WSHTST_Shooting6 = 6;
short WSHTST_Shooting7 = 7;
short WSHTST_Shooting8 = 8;
short WSHTST_Shooting9 = 9;
short WSHTST_Shooting10 = 10;
short WSHTST_Shooting11 = 11;
short WSHTST_Shooting12 = 12;
short WSHTST_ShotEnd = 13;
short STPST_NonStopping = 0;
@@ -71,6 +71,7 @@ short POS_Clean =3;
short POS_WaitShot=4;
short POS_Stopping=5;
short POS_Emergency=6;
short POS_UPSEmergency=7;
short ON=1;
short OFF=0;
@@ -263,7 +264,7 @@ assign sendMail to "ISTTOK:central:sendmail";
/* Main Pulse State Set */
ss PulseSequence {
state init {
entry {
entry {
strcpy(msg, "INIT: Sequence Entry");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
@@ -338,7 +339,7 @@ ss PulseSequence {
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
}
}
}
when (delay(5) && IsttokOPREQ == STOP) {
strcpy(msg, "State to Stopping");
pvPut(msg);
@@ -351,7 +352,7 @@ ss PulseSequence {
strcpy(msg, "State to Starting");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
/* State change to Starting */
/* State change to Starting */
// IsttokOPSTATE = POS_Starting;
// pvPut(IsttokOPSTATE);
} state Starting
@@ -359,10 +360,10 @@ ss PulseSequence {
/*********** State Stopped ****************** */
state Stopped {
entry{
entry{
IsttokLastOPSTATE = POS_Stopped;
pvPut(IsttokLastOPSTATE);
}
}
when(IsttokEmergency == ON){
strcpy(msg, "Emergency from Stopped");
pvPut(msg);
@@ -382,10 +383,10 @@ ss PulseSequence {
/******** State Starting ***********************/
state Starting {
entry{
entry{
IsttokOPSTATE = POS_Starting;
pvPut(IsttokOPSTATE);
}
}
when(IsttokEmergency == ON) {
strcpy(msg, "Emergency from Starting");
pvPut(msg);
@@ -409,7 +410,7 @@ ss PulseSequence {
/********** State Idle ****************************/
state Idle {
entry{
entry{
IsttokOPSTATE = POS_Idle;
pvPut(IsttokOPSTATE);
IsttokLastOPSTATE = POS_Idle;
@@ -418,17 +419,17 @@ ss PulseSequence {
pvPut(IsttokShotShot_TorPSDisable);
IsttokProcReq = STOP;
pvPut(IsttokProcReq);
}
when (IsttokupsBatteryON == ON) {
}
when (IsttokupsBatteryON == ON) {
strcpy(msg, "Power Emergency, go to Stopping");
pvPut(msg);
errlogSevPrintf(MAJOR, "%s\n",msg);
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
/* State change to Stopping */
IsttokOPSTATE = POS_Stopping;
/* State change to Stopping */
IsttokOPSTATE = POS_UPSEmergency;
pvPut(IsttokOPSTATE);
} state Stopping
} state Stopping
when(IsttokEmergency == ON){
strcpy(msg, "Emergency from Idle");
@@ -439,12 +440,12 @@ ss PulseSequence {
when ( pvStatus(IsttokRPump1_Pressure) != pvStatOK || pvStatus(IsttokTMPump1_Emergency) != pvStatOK ) {
//when ( pvStatus(IsttokRPump1_Pressure) != pvStatOK || pvStatus(IsttokRPump2_Pressure) != pvStatOK ||
// pvStatus(IsttokTMPump1_Emergency) != pvStatOK || pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
// pvStatus(IsttokTMPump1_Emergency) != pvStatOK || pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
/* Vacuum emergency: Pulse state change to Stopping */
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
//strcpy(sendMail, "Vacuum Emergency while Idle");
sprintf(sendMail, "Rpump1:%1.1e TMP1:%d",IsttokRPump1_Pressure,IsttokTMPump1_Emergency);
sprintf(sendMail, "Rpump1:%1.1e TMP1:%d",IsttokRPump1_Pressure,IsttokTMPump1_Emergency);
pvPut(sendMail);
} state Stopping
@@ -474,10 +475,10 @@ ss PulseSequence {
/******* State Clean ***************************/
state Clean {
entry{
entry{
IsttokOPSTATE = POS_Clean;
pvPut(IsttokOPSTATE);
}
}
when ((IsttokProcReq==STOP) && (CLEANINGSTATE == CLNST_NonCleaning)) {
strcpy(msg, "State to Idle From Clean");
pvPut(msg);
@@ -488,7 +489,7 @@ ss PulseSequence {
when ( pvStatus(IsttokTMPump1_Emergency) != pvStatOK) {
//when ( pvStatus(IsttokTMPump1_Emergency) != pvStatOK ||
// pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
// pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
/* Vacuum emergency: Pulse state change to Stopping */
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
@@ -507,7 +508,7 @@ ss PulseSequence {
/******** State WaitShot *************************/
state WaitShot {
entry{
entry{
strcpy(msg, "Toroidal Shot Enable");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
@@ -515,17 +516,18 @@ ss PulseSequence {
pvPut(IsttokShotShot_TorPSDisable);
IsttokOPSTATE = POS_WaitShot;
pvPut(IsttokOPSTATE);
}
when (IsttokupsBatteryON == ON) {
strcpy(msg, "Power Emergency, go to Stopping");
}
when (IsttokupsBatteryON == ON) {
strcpy(msg, "Power Emergency, go to UPSEmergency");
pvPut(msg);
errlogSevPrintf(MAJOR, "%s\n",msg);
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
/* State change to Stopping */
IsttokOPSTATE = POS_Stopping;
/* State change to UPSEmergency */
IsttokOPSTATE = POS_UPSEmergency;
pvPut(IsttokOPSTATE);
} state Stopping
} state UpsEmergency
when(IsttokEmergency == ON){
strcpy(msg, "Emergency from WaitShot");
pvPut(msg);
@@ -540,11 +542,11 @@ ss PulseSequence {
when (IsttokOPREQ == STOP) {
/* Pulse state change to Stopping */
} state Stopping
} state Stopping
when ( pvStatus(IsttokTMPump1_Emergency) != pvStatOK) {
//when ( pvStatus(IsttokTMPump1_Emergency) != pvStatOK ||
// pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
// pvStatus(IsttokTMPump2_Emergency) != pvStatOK) {
/* Vacuum emergency: Pulse state change to Stopping */
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
@@ -556,8 +558,23 @@ ss PulseSequence {
/* ************** State Stopping *********** */
state Stopping {
entry{
entry{
/*Just to be sure */
IsttokShotShot_TorPSDisable = PCF_RELAY_OFF;
pvPut(IsttokShotShot_TorPSDisable);
IsttokShotCapBank_Charge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Charge);
IsttokShotCapBank_Discharge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Discharge);
IsttokShotGasIS_Valves = PCF_RELAY_OFF;
pvPut(IsttokShotGasIS_Valves);
IsttokShotVVessel_Filament = PCF_RELAY_OFF;
pvPut(IsttokShotVVessel_Filament);
IsttokProcReq = STOP;
pvPut(IsttokProcReq);
@@ -565,16 +582,16 @@ ss PulseSequence {
pvPut(IsttokOPSTATE);
IsttokLastOPSTATE = POS_Stopping;
pvPut(IsttokLastOPSTATE);
}
}
when ((IsttokOPREQ == START) && (IsttokupsBatteryON != ON) ) {
when ((IsttokOPREQ == START) && (IsttokupsBatteryON != ON) ) {
strcpy(msg, "State to Starting");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
/* State change to Starting */
/* State change to Starting */
IsttokOPSTATE = POS_Starting;
pvPut(IsttokOPSTATE);
} state Starting
} state Starting
when (STOPPINGSTATE == STPST_StoppingEnd) {
IsttokOPSTATE = POS_Stopped;
@@ -584,7 +601,7 @@ ss PulseSequence {
/*State Emergency*/
state Emergency {
entry {
entry {
strcpy(msg, "Emergency Toroidal Shot Disable");
pvPut(msg);
errlogSevPrintf(MAJOR, "%s\n",msg);
@@ -614,7 +631,7 @@ ss PulseSequence {
errlogSevPrintf(MAJOR, "%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 Idle */
strcpy(msg, "State to Idle");
@@ -655,15 +672,78 @@ ss PulseSequence {
pvPut(IsttokOPSTATE);
} state Stopped
}
/*State UpsEmergency*/
state UpsEmergency {
entry {
strcpy(msg, "Emergency Toroidal Shot Disable");
errlogSevPrintf(MAJOR, "%s\n",msg);
IsttokShotShot_TorPSDisable = PCF_RELAY_OFF;
pvPut(IsttokShotShot_TorPSDisable);
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotCapBank_Charge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Charge);
strcpy(msg, "EMERGENCY: CAPBANK CrowBar Close");
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotCapBank_Discharge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Discharge);
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotGasIS_Valves = PCF_RELAY_OFF;
pvPut(IsttokShotGasIS_Valves);
strcpy(msg, "UPS EMERGENCY: Filament OFF");
pvPut(msg);
errlogSevPrintf(MAJOR, "%s\n",msg);
IsttokShotVVessel_Filament = PCF_RELAY_OFF;
pvPut(IsttokShotVVessel_Filament);
}
when (IsttokupsBatteryON == ON) {
/* Pulse state change to Stopping */
strcpy(msg, "State to Stopping");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokProcReq = STOP;
pvPut(IsttokProcReq);
IsttokOPSTATE = POS_Stopping;
pvPut(IsttokOPSTATE);
} state Stopping
when (delay(6.0) && (IsttokupsBatteryON == OFF) && (IsttokOPSTATE == POS_Idle)){
/* Pulse state change to Idle */
strcpy(msg, "State to Idle");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokOPSTATE = POS_Idle;
pvPut(IsttokOPSTATE);
} state Idle
/*
when (delay(6.0) && (IsttokupsBatteryON == OFF) &&
((IsttokOPSTATE == POS_Starting)) || (IsttokOPSTATE == POS_Stopping)){
// TODO Check these 2 transictions
strcpy(msg, "State to Stopping");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokOPREQ = STOP;
pvPut(IsttokOPREQ);
// Pulse state change to Stopping
IsttokOPSTATE = POS_Stopping;
pvPut(IsttokOPSTATE);
} state Stopping
*/
}
}
/* Starting State Set */
/*********** Starting SUB-State Set ************/
ss StartingSequence {
state NonStarting {
entry {
entry {
STARTINGSTATE = STRST_NonStarting;
pvPut(STARTINGSTATE);
}
}
when (IsttokOPSTATE == POS_Starting) {
strcpy(msg, "Rotary Pump1 ON");
pvPut(msg);
@@ -737,7 +817,7 @@ ss StartingSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
// IsttokTMPump2_Motor = PCF_RELAY_ON;
// pvPut(IsttokTMPump2_Motor);
STARTINGSTATE = STRST_Starting4;
STARTINGSTATE = STRST_Starting4;
pvPut(STARTINGSTATE);
} state Starting4
}
@@ -767,7 +847,7 @@ ss StartingSequence {
ss CleaningSequence{
state NonCleaning{
entry{
entry{
strcpy(msg, "GIS Valves CLOSE");
pvPut(msg);
IsttokShotGasIS_Valves = PCF_RELAY_OFF;
@@ -798,7 +878,7 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
}
}
when(delay(1.0) && CLEANINGMANMODE == 1 && IsttokOPSTATE == POS_Clean){
strcpy(msg, "Initiating Auto Cleaning...");
pvPut(msg);
@@ -807,8 +887,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotGasIS_Valves = PCF_RELAY_ON;
pvPut(IsttokShotGasIS_Valves);
CLEANINGSTATE = CLNST_Cleaning1;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning1;
pvPut(CLEANINGSTATE);
} state Cleaning1
}
state Cleaning1 {
@@ -827,8 +907,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotVVessel_Filament = PCF_RELAY_ON;
pvPut(IsttokShotVVessel_Filament);
CLEANINGSTATE = CLNST_Cleaning2;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning2;
pvPut(CLEANINGSTATE);
} state Cleaning2
}
state Cleaning2{
@@ -839,8 +919,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotVVessel_Filament = PCF_RELAY_OFF;
pvPut(IsttokShotVVessel_Filament);
CLEANINGSTATE = CLNST_Cleaning1;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning1;
pvPut(CLEANINGSTATE);
} state Cleaning1
when (delay(2.0) && CLEANINGMANMODE == 1 && IsttokOPSTATE == POS_Clean) {
strcpy(msg, "Primary-CT ON");
@@ -848,8 +928,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotClean_PrimContactor = PCF_RELAY_ON;
pvPut(IsttokShotClean_PrimContactor);
CLEANINGSTATE = CLNST_Cleaning3;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning3;
pvPut(CLEANINGSTATE);
} state Cleaning3
}
state Cleaning3{
@@ -859,8 +939,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotClean_PrimContactor = PCF_RELAY_OFF;
pvPut(IsttokShotClean_PrimContactor);
CLEANINGSTATE = CLNST_Cleaning2;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning2;
pvPut(CLEANINGSTATE);
} state Cleaning2
when(delay(2.0) && CLEANINGMANMODE == 1 && IsttokOPSTATE == POS_Clean){
strcpy(msg, "Toroidal-BK CLOSE");
@@ -868,8 +948,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotClean_TorPneuBreaker = PCF_RELAY_ON;
pvPut(IsttokShotClean_TorPneuBreaker);
CLEANINGSTATE = CLNST_Cleaning4;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning4;
pvPut(CLEANINGSTATE);
} state Cleaning4
}
@@ -880,8 +960,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotClean_TorPneuBreaker = PCF_RELAY_OFF;
pvPut(IsttokShotClean_TorPneuBreaker);
CLEANINGSTATE = CLNST_Cleaning3;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning3;
pvPut(CLEANINGSTATE);
} state Cleaning3
when (delay(2.0) && CLEANINGMANMODE == 1 && IsttokOPSTATE == POS_Clean){
strcpy(msg, "Toroidal-CT ON");
@@ -889,8 +969,8 @@ ss CleaningSequence{
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotClean_TorContactor = PCF_RELAY_ON;
pvPut(IsttokShotClean_TorContactor);
CLEANINGSTATE = CLNST_Cleaning5;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning5;
pvPut(CLEANINGSTATE);
} state Cleaning5
}
@@ -906,8 +986,8 @@ ss CleaningSequence{
/* Close GIS to let Pressure down */
IsttokShotGasIS_Valves = PCF_RELAY_OFF;
pvPut(IsttokShotGasIS_Valves);
CLEANINGSTATE = CLNST_Cleaning4;
pvPut(CLEANINGSTATE);
CLEANINGSTATE = CLNST_Cleaning4;
pvPut(CLEANINGSTATE);
} state Cleaning4
/*
when (pvSeverity(IsttokVVesselTemperature) >= pvSevrMAJOR) {
@@ -924,12 +1004,12 @@ ss CleaningSequence{
ss ShotSequence {
state NonShoting {
entry {
entry {
WSHOTINGSTATE = WSHTST_NonShoting;
pvPut(WSHOTINGSTATE);
strcpy(IsttokShotCountdownScan, "Passive");
pvPut(IsttokShotCountdownScan);
}
}
when( IsttokOPSTATE == POS_WaitShot ){
//strcpy(msg, "Waiting for Trigger...");
// pvPut(msg);
@@ -960,15 +1040,15 @@ ss ShotSequence {
pvPut(msg);
IsttokShotCountdown = -70;
pvPut(IsttokShotCountdown);
WSHOTINGSTATE = WSHTST_Shoting2;
WSHOTINGSTATE = WSHTST_Shooting2;
pvPut(WSHOTINGSTATE);
PulseNumber +=1;
pvPut(PulseNumber);
} state Shoting2
} state Shooting2
}
state Shoting2 {
state Shooting2 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting 2 Out");
strcpy(msg, "Shooting 2 Out");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
} state ShotWaitTrg
@@ -988,13 +1068,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotLab_WarningLight = PCF_RELAY_ON;
pvPut(IsttokShotLab_WarningLight);
WSHOTINGSTATE = WSHTST_Shoting3;
WSHOTINGSTATE = WSHTST_Shooting3;
pvPut(WSHOTINGSTATE);
} state Shoting3
} state Shooting3
}
state Shoting3 {
state Shooting3 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting3 Out");
strcpy(msg, "Shooting3 Out");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
} state ShotWaitTrg
@@ -1004,26 +1084,26 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotGasIS_Valves = PCF_RELAY_ON;
pvPut(IsttokShotGasIS_Valves);
WSHOTINGSTATE = WSHTST_Shoting4;
WSHOTINGSTATE = WSHTST_Shooting4;
pvPut(WSHOTINGSTATE);
} state Shoting4
} state Shooting4
}
state Shoting4 {
state Shooting4 {
when (IsttokOPSTATE != POS_WaitShot ) {
strcpy(msg, "Shoting4 Out");
strcpy(msg, "Shooting4 Out");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
pvPut(WSHOTINGSTATE);
} state NonShoting
when (IsttokShotCountdown == -59) {
WSHOTINGSTATE = WSHTST_Shoting5;
WSHOTINGSTATE = WSHTST_Shooting5;
pvPut(WSHOTINGSTATE);
} state Shoting5
} state Shooting5
}
state Shoting5 {
state Shooting5 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting5 Out");
strcpy(msg, "Shooting5 Out");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1035,13 +1115,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotCapBank_Charge = PCF_RELAY_ON;
pvPut(IsttokShotCapBank_Charge);
WSHOTINGSTATE = WSHTST_Shoting6;
WSHOTINGSTATE = WSHTST_Shooting6;
pvPut(WSHOTINGSTATE);
} state Shoting6
} state Shooting6
}
state Shoting6 {
state Shooting6 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting6 Out");
strcpy(msg, "Shooting6 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1053,13 +1133,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n", msg);
IsttokShotCapBank_Charge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Charge);
WSHOTINGSTATE = WSHTST_Shoting7;
WSHOTINGSTATE = WSHTST_Shooting7;
pvPut(WSHOTINGSTATE);
} state Shoting7
} state Shooting7
}
state Shoting7 {
state Shooting7 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting7 Out");
strcpy(msg, "Shooting7 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1076,13 +1156,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokShotVVessel_Filament = PCF_RELAY_ON;
pvPut(IsttokShotVVessel_Filament);
WSHOTINGSTATE = WSHTST_Shoting8;
WSHOTINGSTATE = WSHTST_Shooting8;
pvPut(WSHOTINGSTATE);
} state Shoting8
} state Shooting8
}
state Shoting8 {
state Shooting8 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting8 Out");
strcpy(msg, "Shooting8 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1095,13 +1175,13 @@ ss ShotSequence {
// PS Trigger Pulse
IsttokShotShot_TorPSTrigger = ON;
pvPut(IsttokShotShot_TorPSTrigger);
WSHOTINGSTATE = WSHTST_Shoting9;
WSHOTINGSTATE = WSHTST_Shooting9;
pvPut(WSHOTINGSTATE);
} state Shoting9
} state Shooting9
}
state Shoting9 {
state Shooting9 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting9 Out");
strcpy(msg, "Shooting9 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1111,13 +1191,13 @@ ss ShotSequence {
strcpy(msg, "Ready for SHOT" );
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n", msg);
WSHOTINGSTATE = WSHTST_Shoting10;
WSHOTINGSTATE = WSHTST_Shooting10;
pvPut(WSHOTINGSTATE);
} state Shoting10
} state Shooting10
}
state Shoting10 {
state Shooting10 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting10 Out");
strcpy(msg, "Shooting10 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1129,13 +1209,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n", msg);
IsttokShotCapBank_Discharge = PCF_RELAY_OFF;
pvPut(IsttokShotCapBank_Discharge);
WSHOTINGSTATE = WSHTST_Shoting11;
WSHOTINGSTATE = WSHTST_Shooting11;
pvPut(WSHOTINGSTATE);
} state Shoting11
} state Shooting11
}
state Shoting11 {
state Shooting11 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting11 Out");
strcpy(msg, "Shooting11 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1152,13 +1232,13 @@ ss ShotSequence {
errlogSevPrintf(NO_ALARM, "%s\n", msg);
IsttokShotVVessel_Filament = 1;
pvPut(IsttokShotVVessel_Filament);
WSHOTINGSTATE = WSHTST_Shoting12;
WSHOTINGSTATE = WSHTST_Shooting12;
pvPut(WSHOTINGSTATE);
} state Shoting12
} state Shooting12
}
state Shoting12 {
state Shooting12 {
when (IsttokOPSTATE != POS_WaitShot) {
strcpy(msg, "Shoting6 Out");
strcpy(msg, "Shooting6 Out");
pvPut(msg);
errlogSevPrintf(MINOR, "%s\n",msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1185,10 +1265,10 @@ ss ShotSequence {
}
}
/* Stopping State Set */
/* Stopping Sub-State Set */
ss StoppingSequence {
state NonStopping {
entry {
entry {
STOPPINGSTATE = STPST_NonStopping;
pvPut(STOPPINGSTATE);
}
@@ -1197,10 +1277,10 @@ ss StoppingSequence {
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokTMPump1_MotorOff = ON;
IsttokTMPump1_MotorOff = ON;
pvPut(IsttokTMPump1_MotorOff);
// IsttokTMPump2_Motor = PCF_RELAY_OFF;
// IsttokTMPump2_Motor = PCF_RELAY_OFF;
// pvPut(IsttokTMPump2_Motor);
STOPPINGSTATE = STPST_Stopping1;
pvPut(STOPPINGSTATE);
@@ -1214,7 +1294,7 @@ ss StoppingSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
STOPPINGSTATE = STPST_Stopping2;
pvPut(STOPPINGSTATE);
} state Stopping2
} state Stopping2
}
state Stopping2 {
when (IsttokOPSTATE != POS_Stopping ) {
@@ -1237,7 +1317,7 @@ ss StoppingSequence {
state Stopping3 {
when (IsttokOPSTATE != POS_Stopping ) {
} state NonStopping
when (delay(5)) {
when (delay(5)) {
IsttokRPump1_Valve = PCF_RELAY_ON;
pvPut(IsttokRPump1_Valve);
strcpy(msg, "Rotary Valves 1 & 2 CLOSE");
@@ -1247,7 +1327,7 @@ ss StoppingSequence {
pvPut(IsttokRPump2_Valve);
STOPPINGSTATE = STPST_StoppingEnd;
pvPut(STOPPINGSTATE);
} state StoppingEnd
} state StoppingEnd
}
state StoppingEnd {
when (IsttokOPSTATE != POS_Stopping ) { } state NonStopping
@@ -1260,12 +1340,12 @@ ss StoppingSequence {
strcpy(msg, "Toroidal Field Recovered" );
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n", msg);
WSHOTINGSTATE = WSHTST_Shoting12;
WSHOTINGSTATE = WSHTST_Shooting12;
pvPut(WSHOTINGSTATE);
} state Shoting12
state Shoting12 {
} state Shooting12
state Shooting12 {
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
strcpy(msg, "Shoting12 Out");
strcpy(msg, "Shooting12 Out");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n", msg);
WSHOTINGSTATE = WSHTST_NonShoting;
@@ -1284,7 +1364,7 @@ ss StoppingSequence {
entry{
entry{
IsttokRPump1_Motor = PCF_RELAY_ON;
pvPut(IsttokRPump1_Motor);
strcpy(msg, "Rotary Pumps 1/2 OFF");
@@ -1294,7 +1374,7 @@ ss StoppingSequence {
pvPut(IsttokRPump2_Motor);
//IsttokLastOPSTATE = POS_Idle;
//pvPut(IsttokLastOPSTATE);
}
}
// } state Stopping
*/

View File

@@ -1,4 +1,4 @@
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211129-172335
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211209-150038
ISTTOK:central:PULSE-NUMBER.VAL 0
ISTTOK:central:LogMessage.VAL
ISTTOK:central:LASTOPSTATE.VAL 5

View File

@@ -19,7 +19,7 @@ SNCSEQ=$(SUPPORT)/seq-2-2
#
# SEQ is required for testIPServer
#SNCSEQ=$(SUPPORT)/seq-2-2-5
SNCSEQ=
#SNCSEQ=
## For sCalcout support in asynOctet - applications include asynCalc.dbd
#CALC=$(SUPPORT)/calc-3-7-3
@@ -30,5 +30,5 @@ PCRE=
#SSCAN=$(SUPPORT)/sscan-2-11-3
# EPICS_BASE 3.14.6 or later is required
EPICS_BASE=/home/pi/EPICS/epics-base
EPICS_BASE=/home/pi/Apps/epics7/epics-base