Browse Source

OP中增加alarmNode标识报alarm的结点

shishenghui 3 days ago
parent
commit
06d1474004

+ 8 - 1
TIN001-PLC/Jet_Furance_PMC/Jet_Furance_PMC/Jet_Furance_PMC/FurancePMC/OP.cpp

@@ -213,6 +213,7 @@ void OperatorNode::doSimpleOperation()
 		char* err = EV->parseErrCode(ALARM_OP_STATUS, "name=%s;expect=Init;real=%s", name, describeOperatorStatus(status));
 		strcpy (OP->alarmText ,err);
 		status = OperatorStatusEnum::ALARM;
+		
 		//EV->postAlarmLog(alarmText); called by alarm deal method
 		return;
 	}
@@ -484,6 +485,9 @@ void OperatorNode::Do()
 	}
 	OP->currentRoot = this;
 	doOperation();
+	if (this->status == OperatorStatusEnum::ALARM) {
+		OP->alarmNode = this;
+	}
 }
 
 void OperatorNode::monitor()
@@ -755,7 +759,9 @@ OperatorNode* COP::select(const char* name)
 OperatorStatus& COP::monitor() {
 	static OperatorStatus returnStatus = OperatorStatusEnum::ALARM;
 	return returnStatus = monitor_a();
-
+	if (returnStatus == OperatorStatusEnum::SUCCESS) {
+		alarmNode = NULL;
+	}
 }
 OperatorStatusEnum COP::monitor_a()
 {
@@ -784,6 +790,7 @@ OperatorStatusEnum COP::monitor_a()
 		}
 		else if (op->status == OperatorStatusEnum::ALARM) {
 			result = OperatorStatusEnum::ALARM;
+			OP->alarmNode = op;
 			//abort停止所有动作,但alarm只停止当前动作,其他动作正常进行
 			//break;
 		}

+ 1 - 0
TIN001-PLC/Jet_Furance_PMC/Jet_Furance_PMC/Jet_Furance_PMC/FurancePMC/OP.h

@@ -96,6 +96,7 @@ class COP{
     public:
         OperatorNode* current=NULL;
         OperatorNode* currentRoot=NULL;
+        OperatorNode* alarmNode = NULL;
         PMCBOOL isAborted=FALSE;
         char  alarmText[MAX_CONTEXT_LEN];
     public: