2249 lines
75 KiB
Plaintext
2249 lines
75 KiB
Plaintext
/**
|
|
*
|
|
* Project : ISTTOK slow Control
|
|
*
|
|
* File : $Id$
|
|
* Description : Pulse Sequence State Machine
|
|
*
|
|
* Author(s) : Bernardo Carvalho (IPFN-IST)
|
|
* : Paulo Fortuna Carvalho (IPFN-IST)
|
|
* Copyright (c) : (IPFN-IST)
|
|
*
|
|
* Created 5-Mar-2013
|
|
* Revised 01-07-2019
|
|
*
|
|
* SVN keywords
|
|
* $Date$
|
|
* $Revision$
|
|
* $URL$
|
|
*
|
|
**/
|
|
|
|
program IsttokSeqExec
|
|
/*Relays and INPUT (Valleman Board) have negative Logic!*/
|
|
short RELAY_ON = 0;
|
|
short RELAY_OFF= 1;
|
|
short PCF_INPUT_ON = 0;
|
|
short PCF_INPUT_OFF= 1;
|
|
|
|
short STRST_NonStarting = 0;
|
|
short STRST_Starting1 = 1;
|
|
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 CLEAN_NonCleaning = 0;
|
|
short CLEAN_Cleaning1 = 1;
|
|
short CLEAN_Cleaning2 = 2;
|
|
short CLEAN_Cleaning3 = 3;
|
|
short CLEAN_Cleaning4 = 4;
|
|
short CLEAN_Cleaning5 = 5;
|
|
short WSHOT_NonShoting = 0;
|
|
short WSHOT_Shoting0 = 0;
|
|
short WSHOT_Shoting1 = 1;
|
|
short WSHOT_Shoting2 = 2;
|
|
short WSHOT_Shoting3 = 3;
|
|
short WSHOT_Shoting4 = 4;
|
|
short WSHOT_Shoting5 = 5;
|
|
short WSHOT_Shoting6 = 6;
|
|
short WSHOT_Shoting7 = 7;
|
|
short WSHOT_Shoting8 = 8;
|
|
short WSHOT_Shoting9 = 9;
|
|
short WSHOT_Shoting10 = 10;
|
|
short WSHOT_Shoting11 = 11;
|
|
short WSHOT_Shoting12 = 12;
|
|
short POS_Stopped;
|
|
short POS_Starting;
|
|
short POS_Process;
|
|
short POS_Clean;
|
|
short POS_WaitShot;
|
|
short POS_Stopping;
|
|
short POS_Emergency;
|
|
short ON=1;
|
|
short OFF=0;
|
|
short START=1;
|
|
short STOP=0;
|
|
short CLEAN=0;
|
|
short SHOT=1;
|
|
short NO_ALARM=0;
|
|
short MINOR=1;
|
|
short MAJOR=2;
|
|
short INVALID=3;
|
|
|
|
short IsttokOPSTATE;
|
|
assign IsttokOPSTATE to "ISTTOK:central:OPSTATE";
|
|
monitor IsttokOPSTATE;
|
|
|
|
short IsttokOPREQ;
|
|
assign IsttokOPREQ to "ISTTOK:central:OPREQ";
|
|
monitor IsttokOPREQ;
|
|
|
|
short IsttokProcMode;
|
|
assign IsttokProcMode to "ISTTOK:central:PROCESS-MODE";
|
|
monitor IsttokProcMode;
|
|
|
|
short IsttokProcReq;
|
|
assign IsttokProcReq to "ISTTOK:central:PROCESS-REQ";
|
|
monitor IsttokProcReq;
|
|
|
|
short IsttokSTARTINGSTATE;
|
|
assign IsttokSTARTINGSTATE to "ISTTOK:central:STARTINGSTATE";
|
|
monitor IsttokSTARTINGSTATE;
|
|
|
|
short IsttokSTOPPINGSTATE;
|
|
assign IsttokSTOPPINGSTATE to "ISTTOK:central:STOPPINGSTATE";
|
|
monitor IsttokSTOPPINGSTATE;
|
|
|
|
short IsttokCLEANINGSTATE;
|
|
assign IsttokCLEANINGSTATE to "ISTTOK:central:CLEANINGSTATE";
|
|
monitor IsttokCLEANINGSTATE;
|
|
|
|
short IsttokCLEANINGMASTATE;
|
|
assign IsttokCLEANINGMASTATE to "ISTTOK:central:CLEANINGMASTATE";
|
|
monitor IsttokCLEANINGMASTATE;
|
|
|
|
short IsttokCLEANINGINOUTSTATE;
|
|
assign IsttokCLEANINGINOUTSTATE to "ISTTOK:central:CLEANINGINOUTSTATE";
|
|
monitor IsttokCLEANINGINOUTSTATE;
|
|
|
|
short IsttokCLEANINGINOUTSTATE0;
|
|
assign IsttokCLEANINGINOUTSTATE0 to "ISTTOK:central:CLEANINGINOUTSTATE0";
|
|
monitor IsttokCLEANINGINOUTSTATE0;
|
|
|
|
short IsttokCLEANINGINOUTSTATE1;
|
|
assign IsttokCLEANINGINOUTSTATE1 to "ISTTOK:central:CLEANINGINOUTSTATE1";
|
|
monitor IsttokCLEANINGINOUTSTATE1;
|
|
|
|
short IsttokCLEANINGINOUTSTATE2;
|
|
assign IsttokCLEANINGINOUTSTATE2 to "ISTTOK:central:CLEANINGINOUTSTATE2";
|
|
monitor IsttokCLEANINGINOUTSTATE2;
|
|
|
|
short IsttokCLEANINGINOUTSTATE3;
|
|
assign IsttokCLEANINGINOUTSTATE3 to "ISTTOK:central:CLEANINGINOUTSTATE3";
|
|
monitor IsttokCLEANINGINOUTSTATE3;
|
|
|
|
short IsttokCLEANINGINOUTSTATE4;
|
|
assign IsttokCLEANINGINOUTSTATE4 to "ISTTOK:central:CLEANINGINOUTSTATE4";
|
|
monitor IsttokCLEANINGINOUTSTATE4;
|
|
|
|
short IsttokCLEANINGINOUTSTATE5;
|
|
assign IsttokCLEANINGINOUTSTATE5 to "ISTTOK:central:CLEANINGINOUTSTATE5";
|
|
monitor IsttokCLEANINGINOUTSTATE5;
|
|
|
|
short IsttokWSHOTINGSTATE;
|
|
assign IsttokWSHOTINGSTATE to "ISTTOK:central:WSHOTINGSTATE";
|
|
monitor IsttokWSHOTINGSTATE;
|
|
|
|
short IsttokRotatoryPump;
|
|
assign IsttokRotatoryPump to "ISTTOK:central:RotatoryPump";
|
|
monitor IsttokRotatoryPump;
|
|
|
|
short IsttokRotatoryValve;
|
|
assign IsttokRotatoryValve to "ISTTOK:central:RotatoryValve";
|
|
monitor IsttokRotatoryValve;
|
|
|
|
short IsttokRotatoryPump2;
|
|
assign IsttokRotatoryPump2 to "ISTTOK:central:RotatoryPump2";
|
|
monitor IsttokRotatoryPump2;
|
|
|
|
short IsttokRotatoryValve2;
|
|
assign IsttokRotatoryValve2 to "ISTTOK:central:RotatoryValve2";
|
|
monitor IsttokRotatoryValve2;
|
|
|
|
short IsttokTMPControllerOff;
|
|
assign IsttokTMPControllerOff to "ISTTOK:central:TMPControllerOff";
|
|
monitor IsttokTMPControllerOff;
|
|
|
|
short IsttokTMPControllerOn;
|
|
assign IsttokTMPControllerOn to "ISTTOK:central:TMPControllerOn";
|
|
monitor IsttokTMPControllerOn;
|
|
|
|
short IsttokTMPMotorOff;
|
|
assign IsttokTMPMotorOff to "ISTTOK:central:TMPMotorOff";
|
|
monitor IsttokTMPMotorOff;
|
|
|
|
short IsttokTMPMotorOn;
|
|
assign IsttokTMPMotorOn to "ISTTOK:central:TMPMotorOn";
|
|
monitor IsttokTMPMotorOn;
|
|
|
|
short IsttokTMP2MotorOnOff;
|
|
assign IsttokTMP2MotorOnOff to "ISTTOK:central:TMP2MotorOnOff";
|
|
monitor IsttokTMP2MotorOnOff;
|
|
|
|
short IsttokTurbo_NormalOperation;
|
|
assign IsttokTurbo_NormalOperation to "ISTTOK:central:Turbo_NormalOperation";
|
|
monitor IsttokTurbo_NormalOperation;
|
|
|
|
short IsttokTurbo_PW_Ind;
|
|
assign IsttokTurbo_PW_Ind to "ISTTOK:central:Turbo_PW_Ind";
|
|
monitor IsttokTurbo_PW_Ind;
|
|
|
|
short IsttokTurbo_Emergency;
|
|
assign IsttokTurbo_Emergency to "ISTTOK:central:Turbo_Emergency";
|
|
monitor IsttokTurbo_Emergency;
|
|
|
|
short IsttokTMPManualValve;
|
|
assign IsttokTMPManualValve to "ISTTOK:central:TMPManualValve";
|
|
monitor IsttokTMPManualValve;
|
|
|
|
short IsttokTurbo2_Emergency;
|
|
assign IsttokTurbo2_Emergency to "ISTTOK:central:Turbo2_Emergency";
|
|
monitor IsttokTurbo2_Emergency;
|
|
|
|
float IsttokPressure_Primary1;
|
|
/* assign IsttokPressure_Primary1 to "ISTTOK:vacuum:Pressure_Primary1"; */
|
|
assign IsttokPressure_Primary1 to "ISTTOK:central:RPump1-Pressure";
|
|
monitor IsttokPressure_Primary1;
|
|
|
|
float IsttokPressure_Primary2;
|
|
/* assign IsttokPressure_Primary2 to "ISTTOK:vacuum:Pressure_Primary2"; */
|
|
assign IsttokPressure_Primary2 to "ISTTOK:central:RPump2-Pressure";
|
|
monitor IsttokPressure_Primary2;
|
|
|
|
float IsttokPressure_PrimaryCondition;
|
|
assign IsttokPressure_PrimaryCondition to "ISTTOK:central:Pressure_PrimaryCondition";
|
|
monitor IsttokPressure_PrimaryCondition;
|
|
|
|
float IsttokPressure_Primary2Condition;
|
|
assign IsttokPressure_Primary2Condition to "ISTTOK:central:Pressure_Primary2Condition";
|
|
monitor IsttokPressure_Primary2Condition;
|
|
|
|
short IsttokBypass_Condition;
|
|
assign IsttokBypass_Condition to "ISTTOK:central:Bypass_Condition";
|
|
monitor IsttokBypass_Condition;
|
|
|
|
short IsttokShotBuzzerOnOff;
|
|
assign IsttokShotBuzzerOnOff to "ISTTOK:central:BuzzerOnOff";
|
|
monitor IsttokShotBuzzerOnOff;
|
|
|
|
short IsttokShotLightsOnOff;
|
|
assign IsttokShotLightsOnOff to "ISTTOK:central:LightsOnOff";
|
|
monitor IsttokShotLightsOnOff;
|
|
|
|
short IsttokShotGISValvesOnOff;
|
|
assign IsttokShotGISValvesOnOff to "ISTTOK:central:GISValvesOnOff";
|
|
monitor IsttokShotGISValvesOnOff;
|
|
|
|
short IsttokShotFilamentOnOff;
|
|
assign IsttokShotFilamentOnOff to "ISTTOK:central:FilamentOnOff";
|
|
monitor IsttokShotFilamentOnOff;
|
|
|
|
short IsttokShotCapBankChargeOnOff;
|
|
assign IsttokShotCapBankChargeOnOff to "ISTTOK:central:CapBankChargeOnOff";
|
|
monitor IsttokShotCapBankChargeOnOff;
|
|
|
|
short IsttokShotCapBankDischargeOnOff;
|
|
assign IsttokShotCapBankDischargeOnOff to "ISTTOK:central:CapBankDischargeOnOff";
|
|
monitor IsttokShotCapBankDischargeOnOff;
|
|
|
|
short IsttokShotToroidalCleanContactorOnOff;
|
|
assign IsttokShotToroidalCleanContactorOnOff to "ISTTOK:central:ToroidalCleanContactorOnOff";
|
|
monitor IsttokShotToroidalCleanContactorOnOff;
|
|
|
|
short IsttokShotToroidalCleanBreakerOnOff;
|
|
assign IsttokShotToroidalCleanBreakerOnOff to "ISTTOK:central:ToroidalCleanBreakerOnOff";
|
|
monitor IsttokShotToroidalCleanBreakerOnOff;
|
|
|
|
short IsttokShotToroidalShotTriggerOnOff;
|
|
assign IsttokShotToroidalShotTriggerOnOff to "ISTTOK:central:ToroidalShotTriggerOnOff";
|
|
monitor IsttokShotToroidalShotTriggerOnOff;
|
|
|
|
short IsttokShotToroidalShotEnableOnOff;
|
|
assign IsttokShotToroidalShotEnableOnOff to "ISTTOK:central:ToroidalShotEnableOnOff";
|
|
monitor IsttokShotToroidalShotEnableOnOff;
|
|
|
|
short IsttokShotPrimaryCleanContactorOnOff;
|
|
assign IsttokShotPrimaryCleanContactorOnOff to "ISTTOK:central:PrimaryCleanContactorOnOff";
|
|
monitor IsttokShotPrimaryCleanContactorOnOff;
|
|
|
|
short IsttokShotPrimaryCleanBreakerOnOff;
|
|
assign IsttokShotPrimaryCleanBreakerOnOff to "ISTTOK:central:PrimaryCleanBreakerOnOff";
|
|
monitor IsttokShotPrimaryCleanBreakerOnOff;
|
|
|
|
short IsttokShotCountdown;
|
|
assign IsttokShotCountdown to "ISTTOK:central:COUNTDOWN";
|
|
monitor IsttokShotCountdown;
|
|
|
|
string IsttokShotCountdownStart;
|
|
assign IsttokShotCountdownStart to "ISTTOK:central:COUNTDOWN.SCAN";
|
|
monitor IsttokShotCountdownStart;
|
|
|
|
short IsttokEmergencyOnOff;
|
|
assign IsttokEmergencyOnOff to "ISTTOK:central:EmergencyOnOff";
|
|
monitor IsttokEmergencyOnOff;
|
|
|
|
short IsttokTimingTriggerSignal;
|
|
assign IsttokTimingTriggerSignal to "ISTTOK:central:TimingTriggerSignal";
|
|
monitor IsttokTimingTriggerSignal;
|
|
|
|
string tmp1_stat;
|
|
|
|
/* Trace message record limited to 40 characters */
|
|
string msg;
|
|
assign msg to "ISTTOK:central:TraceMessage.VAL";
|
|
monitor msg;
|
|
ss PulseSequence {
|
|
state init {
|
|
entry {
|
|
strcpy(msg, "INIT: Sequence Entry");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
|
|
POS_Stopped =0;
|
|
POS_Starting=1;
|
|
POS_Process =2;
|
|
POS_Clean =3;
|
|
POS_WaitShot=4;
|
|
POS_Stopping=5;
|
|
POS_Emergency=6;
|
|
|
|
strcpy(msg, "Initializing...");
|
|
|
|
IsttokBypass_Condition = 1;
|
|
pvPut(IsttokBypass_Condition);
|
|
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
|
|
IsttokShotCountdown = 160;
|
|
pvPut(IsttokShotCountdown);
|
|
|
|
IsttokProcMode = OFF; // UPON POWER-DOWN OR FAILURE PREVENT TO ENTER WAITSHOT ON POWER-UP!
|
|
pvPut(IsttokProcMode);
|
|
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
|
|
IsttokShotPrimaryCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanBreakerOnOff);
|
|
|
|
IsttokShotBuzzerOnOff = 0;
|
|
pvPut(IsttokShotBuzzerOnOff);
|
|
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
|
|
IsttokShotLightsOnOff = 1;
|
|
pvPut(IsttokShotLightsOnOff);
|
|
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
|
|
IsttokShotToroidalShotTriggerOnOff= 0;
|
|
pvPut(IsttokShotToroidalShotTriggerOnOff);
|
|
|
|
IsttokShotToroidalShotEnableOnOff = 0;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
|
|
IsttokTMP2MotorOnOff = 0;
|
|
pvPut(IsttokTMP2MotorOnOff);
|
|
|
|
IsttokTMPControllerOff = 0;
|
|
pvPut(IsttokTMPControllerOff);
|
|
|
|
IsttokTMPControllerOn = 0;
|
|
pvPut(IsttokTMPControllerOn);
|
|
|
|
IsttokTMPMotorOff = 0;
|
|
pvPut(IsttokTMPMotorOff);
|
|
|
|
IsttokTMPMotorOn = 0;
|
|
pvPut(IsttokTMPMotorOn);
|
|
|
|
// CHECK PRIMARY PRESSURES AND PREVENT STARTING IF REQUIRED
|
|
if( (IsttokPressure_Primary1 >= IsttokPressure_PrimaryCondition) && (IsttokPressure_Primary2 >= IsttokPressure_Primary2Condition) ){
|
|
IsttokOPREQ = STOP;
|
|
pvPut(IsttokOPREQ);
|
|
}
|
|
|
|
if ((IsttokTurbo_PW_Ind == PCF_INPUT_OFF)) {
|
|
strcpy(msg, "TMP1 Controller is OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
}else{
|
|
strcpy(msg, "TMP1 Controller is ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
}
|
|
}
|
|
when (delay(5)) {
|
|
strcpy(msg, "Initialization... DONE.");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
printf("Entry delay over\n");
|
|
} state Stopped
|
|
}
|
|
/*State Set Emergency*/
|
|
state Emergency {
|
|
when (delay(1.0) && (IsttokEmergencyOnOff == 0) && ((IsttokOPSTATE == POS_WaitShot) || (IsttokOPSTATE == POS_Clean)) ){
|
|
IsttokOPSTATE = POS_Emergency;
|
|
pvPut(IsttokOPSTATE);
|
|
strcpy(msg, "EMERGENCY: State Entry");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Disable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 0;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
IsttokEmergencyOnOff = 1;
|
|
pvPut(IsttokEmergencyOnOff );
|
|
if ((IsttokShotCapBankChargeOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
}
|
|
if ((IsttokShotCapBankDischargeOnOff == 1)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Discharge ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
}
|
|
if ((IsttokShotGISValvesOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if ((IsttokShotFilamentOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
/* Pulse state change to Process */
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokProcReq = STOP;
|
|
pvPut(IsttokProcReq);
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Process
|
|
when (delay(1.0) && (IsttokEmergencyOnOff == 0) && (IsttokOPSTATE == POS_Process)){
|
|
IsttokOPSTATE = POS_Emergency;
|
|
pvPut(IsttokOPSTATE);
|
|
strcpy(msg, "State to Emergency");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokEmergencyOnOff = 1;
|
|
pvPut(IsttokEmergencyOnOff );
|
|
if ((IsttokShotCapBankChargeOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
}
|
|
if ((IsttokShotCapBankDischargeOnOff == 1)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Discharge ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
}
|
|
if ((IsttokShotGISValvesOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if ((IsttokShotFilamentOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
/* Pulse state change to Process */
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Process
|
|
when (delay(1.0) && (IsttokEmergencyOnOff == 0) && (IsttokOPSTATE == POS_Starting)){
|
|
IsttokOPSTATE = POS_Emergency;
|
|
pvPut(IsttokOPSTATE);
|
|
strcpy(msg, "State to Emergency");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokEmergencyOnOff = 1;
|
|
pvPut(IsttokEmergencyOnOff );
|
|
if ((IsttokShotCapBankChargeOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
}
|
|
if ((IsttokShotCapBankDischargeOnOff == 1)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Discharge ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
}
|
|
if ((IsttokShotGISValvesOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if ((IsttokShotFilamentOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
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
|
|
when (delay(1.0) && (IsttokEmergencyOnOff == 0) && (IsttokOPSTATE == POS_Stopping)){
|
|
IsttokOPSTATE = POS_Emergency;
|
|
pvPut(IsttokOPSTATE);
|
|
strcpy(msg, "State to Emergency");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokEmergencyOnOff = 1;
|
|
pvPut(IsttokEmergencyOnOff );
|
|
if ((IsttokShotCapBankChargeOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
}
|
|
if ((IsttokShotCapBankDischargeOnOff == 1)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Discharge ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
}
|
|
if ((IsttokShotGISValvesOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if ((IsttokShotFilamentOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
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
|
|
when (delay(1.0) && (IsttokEmergencyOnOff == 0) && (IsttokOPSTATE == POS_Stopped)){
|
|
IsttokOPSTATE = POS_Emergency;
|
|
pvPut(IsttokOPSTATE);
|
|
strcpy(msg, "State to Emergency");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokEmergencyOnOff = 1;
|
|
pvPut(IsttokEmergencyOnOff );
|
|
if ((IsttokShotCapBankChargeOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Charge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
}
|
|
if ((IsttokShotCapBankDischargeOnOff == 1)) {
|
|
strcpy(msg, "EMERGENCY: CAPBANK Discharge ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
}
|
|
if ((IsttokShotGISValvesOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if ((IsttokShotFilamentOnOff == 0)) {
|
|
strcpy(msg, "EMERGENCY: Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
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
|
|
}
|
|
/* State Set Stopped */
|
|
state Stopped {
|
|
when ((IsttokOPREQ == START) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Starting");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Starting */
|
|
IsttokOPSTATE = POS_Starting;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Starting
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from Stopped");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_Stopped;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
}
|
|
/* State Set Starting */
|
|
state Starting {
|
|
when ((IsttokOPREQ == STOP) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Stopping");
|
|
pvPut(msg);
|
|
errlogSevPrintf(MINOR, "%s\n",msg);
|
|
/* Pulse state change to Stopping */
|
|
IsttokOPSTATE = POS_Stopping;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Stopping
|
|
when ((IsttokSTARTINGSTATE == STRST_Starting5) ) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Disable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 1;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
/* Pulse state change to Process*/
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Process
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from Starting");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_Starting;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
}
|
|
/* State Set Process */
|
|
state Process {
|
|
when ((IsttokOPREQ == STOP) && (IsttokTMPManualValve == OFF) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Stopping");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Disable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 0;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
/* Pulse state change to Stopping */
|
|
IsttokOPSTATE = POS_Stopping;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Stopping
|
|
when ((IsttokProcReq==START) && (IsttokProcMode==CLEAN) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Clean");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Disable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 0;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
/* Pulse state change to Clean */
|
|
IsttokOPSTATE = POS_Clean;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Clean
|
|
when ((IsttokProcReq==START) && (IsttokProcMode==SHOT) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to WaitShot");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Enable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 1;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
/* Pulse state change to WaitShot */
|
|
IsttokOPSTATE = POS_WaitShot;
|
|
pvPut(IsttokOPSTATE);
|
|
} state WaitShot
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
strcpy(msg, "Toroidal Shot Disable");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotEnableOnOff = 0;
|
|
pvPut(IsttokShotToroidalShotEnableOnOff);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
}
|
|
/* State Set Clean */
|
|
state Clean {
|
|
when (( (IsttokOPREQ == STOP) || (IsttokProcReq==STOP)) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/*Just to be sure*/
|
|
IsttokProcReq = STOP;
|
|
pvPut(IsttokProcReq);
|
|
/*Clear Manual Clean States*/
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
/* Pulse state change to Process */
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Process
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from Clean");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_Clean;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
|
|
}
|
|
/* State Set WaitShot */
|
|
state WaitShot {
|
|
when ( ((IsttokOPREQ==STOP) || (IsttokProcReq==STOP) ) && (IsttokEmergencyOnOff == 1) ) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/*Just to be sure*/
|
|
IsttokProcReq = STOP;
|
|
pvPut(IsttokProcReq);
|
|
/* Pulse state change to Process */
|
|
IsttokOPSTATE = POS_Process;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Process
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from WaitShot");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_WaitShot;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
}
|
|
/* State Set Stopping */
|
|
state Stopping {
|
|
when ((IsttokSTOPPINGSTATE == STPST_Stopping5) && (IsttokEmergencyOnOff == 1)) {
|
|
strcpy(msg, "State to Stopped");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Stopped*/
|
|
IsttokOPSTATE = POS_Stopped;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Stopped
|
|
when((IsttokEmergencyOnOff == 0)){
|
|
strcpy(msg, "Emergency from Stopping");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
/* Pulse state change to Emergency*/
|
|
IsttokOPSTATE = POS_Stopping;
|
|
pvPut(IsttokOPSTATE);
|
|
} state Emergency
|
|
}
|
|
}
|
|
ss StartingSequence {
|
|
state NonStarting {
|
|
entry {
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
}
|
|
when (IsttokOPSTATE == POS_Starting) {
|
|
strcpy(msg, "Rotary Pump1 ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryPump = RELAY_ON;
|
|
pvPut(IsttokRotatoryPump);
|
|
strcpy(msg, "Rotary Pump2 ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryPump2 = RELAY_ON;
|
|
pvPut(IsttokRotatoryPump2);
|
|
IsttokSTARTINGSTATE = STRST_Starting1;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state Starting1
|
|
}
|
|
state Starting1 {
|
|
when (IsttokOPSTATE != POS_Starting ) {
|
|
strcpy(msg, "Starting1 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state NonStarting
|
|
when (delay(5.0)) {
|
|
strcpy(msg, "Rotary Valve1 OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryValve = RELAY_ON;
|
|
pvPut(IsttokRotatoryValve);
|
|
strcpy(msg, "Rotary Valve2 OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryValve2 = RELAY_ON;
|
|
pvPut(IsttokRotatoryValve2);
|
|
IsttokSTARTINGSTATE = STRST_Starting2;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state Starting2
|
|
}
|
|
state Starting2 {
|
|
when (IsttokOPSTATE != POS_Starting ) {
|
|
strcpy(msg, "Starting2 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state NonStarting
|
|
when (IsttokTMPManualValve == ON) {
|
|
strcpy(msg, "Manual Valve Checked");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_Starting3;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state Starting3
|
|
}
|
|
state Starting3 {
|
|
when (IsttokOPSTATE != POS_Starting) {
|
|
strcpy(msg, "Starting3 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state NonStarting
|
|
when (((IsttokPressure_Primary1 < IsttokPressure_PrimaryCondition) && (IsttokPressure_Primary2 < IsttokPressure_Primary2Condition)) ) {
|
|
|
|
printf("Primary1 Pressure=%f\n",IsttokPressure_Primary1);
|
|
printf("Primary2 Pressure=%f\n",IsttokPressure_Primary2);
|
|
|
|
if(IsttokPressure_Primary1 < IsttokPressure_PrimaryCondition){
|
|
strcpy(msg, "TMP1 MotorOn ON" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokTMPMotorOn = ON;
|
|
pvPut(IsttokTMPMotorOn);
|
|
}
|
|
if(IsttokPressure_Primary2 < IsttokPressure_Primary2Condition){
|
|
strcpy(msg, "TMP2 MotorOnOff ON" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokTMP2MotorOnOff = ON;
|
|
pvPut(IsttokTMP2MotorOnOff);
|
|
}
|
|
|
|
if(IsttokTurbo_NormalOperation == PCF_INPUT_ON){
|
|
sprintf(tmp1_stat, "ON");
|
|
}else{
|
|
sprintf(tmp1_stat, "OFF");
|
|
}
|
|
|
|
sprintf(msg, "TMPNO = [1:%s]", tmp1_stat);
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_Starting4;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state Starting4
|
|
}
|
|
state Starting4 {
|
|
when ((IsttokOPSTATE != POS_Starting )) {
|
|
strcpy(msg, "Starting4 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state NonStarting
|
|
when ( (IsttokBypass_Condition == 0) || ( (IsttokTurbo_NormalOperation == PCF_INPUT_ON) ) ) {
|
|
if(IsttokTurbo_NormalOperation == PCF_INPUT_ON){
|
|
strcpy(msg, "TMP1 operating Normal");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
}
|
|
IsttokSTARTINGSTATE = STRST_Starting5;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state Starting5
|
|
}
|
|
state Starting5 {
|
|
when ((IsttokOPSTATE != POS_Starting )) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTARTINGSTATE = STRST_NonStarting;
|
|
pvPut(IsttokSTARTINGSTATE);
|
|
} state NonStarting
|
|
}
|
|
}
|
|
ss StoppingSequence {
|
|
state NonStopping {
|
|
entry {
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
}
|
|
when (IsttokOPSTATE == POS_Stopping) {
|
|
strcpy(msg, "Rotary Valve1 CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryValve = RELAY_OFF;
|
|
pvPut(IsttokRotatoryValve);
|
|
strcpy(msg, "Rotary Valve2 CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryValve2 = RELAY_OFF;
|
|
pvPut(IsttokRotatoryValve2);
|
|
IsttokSTOPPINGSTATE = STPST_Stopping1;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state Stopping1
|
|
}
|
|
state Stopping1 {
|
|
when (IsttokOPSTATE != POS_Stopping ) {
|
|
strcpy(msg, "Stopping1 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state NonStopping
|
|
when (delay(2.0)) {
|
|
strcpy(msg, "Stopping2 In");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_Stopping2;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state Stopping2
|
|
}
|
|
state Stopping2 {
|
|
when (IsttokOPSTATE != POS_Stopping ) {
|
|
strcpy(msg, "Stopping2 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state NonStopping
|
|
when (IsttokTMPManualValve == OFF && delay(1.0)) {
|
|
strcpy(msg, "Stopping3 In");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_Stopping3;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state Stopping3
|
|
}
|
|
state Stopping3 {
|
|
when (IsttokOPSTATE != POS_Stopping ) {
|
|
strcpy(msg, "Stopping3 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state NonStopping
|
|
when (delay(5.0)) {
|
|
strcpy(msg, "Stopping4 In");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_Stopping4;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state Stopping4
|
|
}
|
|
state Stopping4 {
|
|
when ((IsttokOPSTATE != POS_Stopping )) {
|
|
strcpy(msg, "Stopping4 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state NonStopping
|
|
when (delay(5.0)) {
|
|
strcpy(msg, "Rotary Pump1 OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryPump = RELAY_OFF;
|
|
pvPut(IsttokRotatoryPump);
|
|
strcpy(msg, "Rotary Pump2 OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokRotatoryPump2 = RELAY_OFF;
|
|
pvPut(IsttokRotatoryPump2);
|
|
IsttokSTOPPINGSTATE = STPST_Stopping5;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state Stopping5
|
|
}
|
|
state Stopping5 {
|
|
when ((IsttokOPSTATE != POS_Stopping )) {
|
|
strcpy(msg, "State to Stopped");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokSTOPPINGSTATE = STPST_NonStopping;
|
|
pvPut(IsttokSTOPPINGSTATE);
|
|
} state NonStopping
|
|
}
|
|
}
|
|
ss CleaningSequence {
|
|
state NonCleaning {
|
|
entry {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
|
|
if (IsttokShotGISValvesOnOff == 0){
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
}
|
|
if (IsttokShotFilamentOnOff == 0){
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
}
|
|
if (IsttokShotPrimaryCleanContactorOnOff == 0){
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
}
|
|
if (IsttokShotToroidalCleanBreakerOnOff == 0){
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
}
|
|
if (IsttokShotToroidalCleanContactorOnOff == 0){
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
}
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
}
|
|
when (IsttokCLEANINGMASTATE == 1 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "NonCleaning");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "NonCleaning");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
state Cleaning1 {
|
|
when (delay(1.0) && (IsttokOPSTATE != POS_Clean )) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGINOUTSTATE = 0;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state NonCleaning
|
|
when (delay(2.0) && IsttokCLEANINGMASTATE == 1 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "NonCleaning");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "NonCleaning");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
state Cleaning2 {
|
|
when (delay(1.0) && (IsttokOPSTATE != POS_Clean )) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGINOUTSTATE = 0;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning1
|
|
when (delay(2.0) && IsttokCLEANINGMASTATE == 1 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "NonCleaning");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
state Cleaning3 {
|
|
when (delay(1.0) && (IsttokOPSTATE != POS_Clean )) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 0;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning2
|
|
when (delay(2.0) && IsttokCLEANINGMASTATE == 1 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
state Cleaning4 {
|
|
when (delay(1.0) && (IsttokOPSTATE != POS_Clean )) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 0;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning3
|
|
when (delay(2.0) && IsttokCLEANINGMASTATE == 1 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE == 1) {
|
|
strcpy(msg, "Toroidal-CT ON" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 1;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
state Cleaning5 {
|
|
when (delay(1.0) && (IsttokOPSTATE != POS_Clean )) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGINOUTSTATE = 0;
|
|
pvPut(IsttokCLEANINGINOUTSTATE);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == 1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE0 == -1) {
|
|
strcpy(msg, "State to Process");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokCLEANINGSTATE = CLEAN_NonCleaning;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE0 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE0);
|
|
} state NonCleaning
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == 1) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE1 == -1) {
|
|
strcpy(msg, "GIS Valves CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning1;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE1 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE1);
|
|
} state Cleaning1
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == 1) {
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE2 == -1) {
|
|
strcpy(msg, "Filament OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning2;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE2 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE2);
|
|
} state Cleaning2
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == 1) {
|
|
strcpy(msg, "Primary-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE3 == -1) {
|
|
strcpy(msg, "Primary-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotPrimaryCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotPrimaryCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning3;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE3 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE3);
|
|
} state Cleaning3
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == 1) {
|
|
strcpy(msg, "Toroidal-BK CLOSE");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE4 == -1) {
|
|
strcpy(msg, "Toroidal-BK OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanBreakerOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanBreakerOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning4;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE4 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE4);
|
|
} state Cleaning4
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == 1) {
|
|
strcpy(msg, "Toroidal-CT ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 0;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = 2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
when (IsttokCLEANINGMASTATE == 0 && IsttokOPSTATE == POS_Clean && IsttokCLEANINGINOUTSTATE5 == -1) {
|
|
strcpy(msg, "Toroidal-CT OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalCleanContactorOnOff = 1;
|
|
pvPut(IsttokShotToroidalCleanContactorOnOff);
|
|
IsttokCLEANINGSTATE = CLEAN_Cleaning5;
|
|
pvPut(IsttokCLEANINGSTATE);
|
|
IsttokCLEANINGINOUTSTATE5 = -2;
|
|
pvPut(IsttokCLEANINGINOUTSTATE5);
|
|
} state Cleaning5
|
|
}
|
|
}
|
|
ss ShotingSequence {
|
|
state NonShoting {
|
|
entry {
|
|
strcpy(msg, "Waiting for Trigger...");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
strcpy(IsttokShotCountdownStart, "Passive");
|
|
pvPut(IsttokShotCountdownStart);
|
|
IsttokShotCountdown = 160;
|
|
pvPut(IsttokShotCountdown);
|
|
}
|
|
when( (IsttokOPSTATE == POS_WaitShot) && (IsttokTimingTriggerSignal == 0) && (IsttokShotCountdown >= 160)){
|
|
strcpy(msg, "Initiating...");
|
|
pvPut(msg);
|
|
IsttokShotCountdown = -70;
|
|
pvPut(IsttokShotCountdown);
|
|
strcpy(IsttokShotCountdownStart, "1 second");
|
|
pvPut(IsttokShotCountdownStart);
|
|
} state Shoting0
|
|
}
|
|
state Shoting0 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting0 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when ((IsttokOPSTATE == POS_WaitShot) && (IsttokShotCountdown == -61)) {
|
|
strcpy(msg, "Buzzer 1-Sound");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotBuzzerOnOff = 1;
|
|
pvPut(IsttokShotBuzzerOnOff);
|
|
strcpy(msg, "CAPBANK Discharge OFF");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankDischargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
strcpy(msg, "Lights ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotLightsOnOff = 0;
|
|
pvPut(IsttokShotLightsOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting1;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting1
|
|
}
|
|
state Shoting1 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting1 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -60) {
|
|
strcpy(msg, "GIS Valves OPEN");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotGISValvesOnOff = 0;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting2;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting2
|
|
}
|
|
state Shoting2 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting2 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -59) {
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting3;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting3
|
|
}
|
|
state Shoting3 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting3 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -46) {
|
|
strcpy(msg, "CAPBANK Charge ON" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotCapBankChargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting4;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting4
|
|
}
|
|
state Shoting4 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting4 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -16) {
|
|
strcpy(msg, "CAPBANK Charge OFF" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotCapBankChargeOnOff = 1;
|
|
pvPut(IsttokShotCapBankChargeOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting5;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting5
|
|
}
|
|
state Shoting5 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting5 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -11) {
|
|
strcpy(msg, "Buzzer 2-Sound" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotBuzzerOnOff = 1;
|
|
pvPut(IsttokShotBuzzerOnOff);
|
|
strcpy(msg, "Filament ON");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotFilamentOnOff = 0;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting6;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting6
|
|
}
|
|
state Shoting6 {
|
|
when ((IsttokOPSTATE != POS_WaitShot) && (IsttokShotCountdown == 160)) {
|
|
strcpy(msg, "Shoting6 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -4) {
|
|
strcpy(msg, "Toroidal Shot Trigger");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokShotToroidalShotTriggerOnOff = 1;
|
|
pvPut(IsttokShotToroidalShotTriggerOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting7;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting7
|
|
}
|
|
state Shoting7 {
|
|
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
|
|
strcpy(msg, "Shoting7 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == -2) {
|
|
strcpy(msg, "Ready for SHOT" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting8;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting8
|
|
}
|
|
state Shoting8 {
|
|
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
|
|
strcpy(msg, "Shoting8 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == 0) {
|
|
strcpy(msg, "CAPBANK Discharge ON" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotCapBankDischargeOnOff = 0;
|
|
pvPut(IsttokShotCapBankDischargeOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_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 = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == 1) {
|
|
strcpy(msg, "GIS Valves CLOSE" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotGISValvesOnOff = 1;
|
|
pvPut(IsttokShotGISValvesOnOff);
|
|
strcpy(msg, "Filament OFF" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotFilamentOnOff = 1;
|
|
pvPut(IsttokShotFilamentOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting10;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting10
|
|
}
|
|
state Shoting10 {
|
|
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
|
|
strcpy(msg, "Shoting10 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n",msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == 2) {
|
|
strcpy(msg, "Lights OFF and Recovering..." );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokShotLightsOnOff = 1;
|
|
pvPut(IsttokShotLightsOnOff);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting11;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting11
|
|
}
|
|
state Shoting11 {
|
|
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
|
|
strcpy(msg, "Shoting11 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown == 159) {
|
|
strcpy(msg, "Toroidal Field Recovered" );
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_Shoting12;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state Shoting12
|
|
}
|
|
state Shoting12 {
|
|
when ((IsttokOPSTATE != POS_WaitShot ) && (IsttokShotCountdown == 160) ) {
|
|
strcpy(msg, "Shoting12 Out");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
IsttokWSHOTINGSTATE = WSHOT_NonShoting;
|
|
pvPut(IsttokWSHOTINGSTATE);
|
|
} state NonShoting
|
|
when (IsttokShotCountdown >= 160) {
|
|
strcpy(msg, "Terminated");
|
|
pvPut(msg);
|
|
errlogSevPrintf(NO_ALARM, "%s\n", msg);
|
|
strcpy(IsttokShotCountdownStart, "Passive");
|
|
pvPut(IsttokShotCountdownStart);
|
|
IsttokShotCountdown = 160;
|
|
pvPut(IsttokShotCountdown);
|
|
} state NonShoting
|
|
}
|
|
}
|