From 1ea724d777948a9e70ba30a06d3db28641d61d0c Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 21 二月 2025 17:43:57 +0800
Subject: [PATCH] 1.添加警告CEqAlarmStep
---
SourceCode/Bond/Servo/Servo.vcxproj | 2
SourceCode/Bond/Servo/Servo.vcxproj.filters | 2
SourceCode/Bond/Servo/CEqAlarmStep.h | 29 +++++++++
SourceCode/Bond/Servo/CEqAlarmStep.cpp | 67 ++++++++++++++++++++++
SourceCode/Bond/Servo/CEquipment.cpp | 24 +++----
SourceCode/Bond/Servo/CMaster.cpp | 42 +++++++++++++
SourceCode/Bond/Servo/CEquipment.h | 1
7 files changed, 152 insertions(+), 15 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEqAlarmStep.cpp b/SourceCode/Bond/Servo/CEqAlarmStep.cpp
new file mode 100644
index 0000000..9d2b593
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqAlarmStep.cpp
@@ -0,0 +1,67 @@
+#include "stdafx.h"
+#include "CEqAlarmStep.h"
+#include "Log.h"
+#include "ToolUnits.h"
+
+
+namespace SERVO {
+ CEqAlarmStep::CEqAlarmStep() : CStep()
+ {
+ m_nAlarmDev = 0;
+ m_nAlarmState = 0;
+ m_nUnitId = 0;
+ m_nAlarmLevel = 0;
+ m_nAlarmCode = 0;
+ m_nAlarmId = 0;
+ }
+
+ CEqAlarmStep::~CEqAlarmStep()
+ {
+
+ }
+ int CEqAlarmStep::onReadData()
+ {
+ CStep::onReadData();
+
+ char szBuffer[64];
+ int nRet = m_pCclink->ReadData2(m_station, DeviceType::W,
+ m_nAlarmDev, 64, szBuffer);
+ if (0 == nRet) {
+ m_nAlarmState = (unsigned int)CToolUnits::toInt16(&szBuffer[0]);
+ m_nUnitId = (unsigned int)CToolUnits::toInt16(&szBuffer[2]);
+ m_nAlarmId = (unsigned int)CToolUnits::toInt16(&szBuffer[4]);
+ m_nAlarmCode = (unsigned int)CToolUnits::toInt16(&szBuffer[6]);
+ m_nAlarmLevel = (unsigned int)CToolUnits::toInt16(&szBuffer[8]);
+
+ LOGI("<CEqAlarmStep> Equipment Alarm state Changed<State:%d, Unit:%d, Level:%d, Code:%d, ID:%d>\n",
+ m_nAlarmState, m_nUnitId, m_nAlarmLevel, m_nAlarmCode, m_nAlarmId,
+ m_strText.c_str(), m_strDescription.c_str());
+ }
+
+
+ return 0;
+ }
+
+ int CEqAlarmStep::onComplete()
+ {
+ CStep::onComplete();
+ LOGI("<CEqAlarmStep> onComplete.");
+
+ return 0;
+ }
+
+ int CEqAlarmStep::onTimeout()
+ {
+ CStep::onTimeout();
+ LOGI("<CEqAlarmStep> onTimeout.");
+
+ return 0;
+ }
+
+ void CEqAlarmStep::setAlarmDev(int nDev)
+ {
+ m_nAlarmDev = nDev;
+ }
+
+
+}
diff --git a/SourceCode/Bond/Servo/CEqAlarmStep.h b/SourceCode/Bond/Servo/CEqAlarmStep.h
new file mode 100644
index 0000000..45510bf
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqAlarmStep.h
@@ -0,0 +1,29 @@
+#pragma once
+#include "CStep.h"
+
+
+namespace SERVO {
+ class CEqAlarmStep : public CStep
+ {
+ public:
+ CEqAlarmStep();
+ ~CEqAlarmStep();
+
+ public:
+ virtual int onReadData();
+ virtual int onComplete();
+ virtual int onTimeout();
+ void setAlarmDev(int nDev);
+
+ private:
+ int m_nAlarmDev;
+ int m_nAlarmState;
+ int m_nUnitId;
+ int m_nAlarmLevel;
+ int m_nAlarmCode;
+ int m_nAlarmId;
+ std::string m_strText;
+ std::string m_strDescription;
+ };
+}
+
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index d3bc8da..82c261e 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -242,20 +242,16 @@
// 以下根据信号做流程处理
CStep* pStep;
- // Equipment Mode Change Report
- index = 0x360;
- bFlag = isBitOn(pszData, size, index);
- pStep = getStep(index);
- if (pStep != nullptr) {
- pStep->onSignal(bFlag);
- }
-
- // Equipment Status Change Report
- index = 0x361;
- bFlag = isBitOn(pszData, size, index);
- pStep = getStep(index);
- if (pStep != nullptr) {
- pStep->onSignal(bFlag);
+ // Equipment Mode Change Report(0x360)
+ // Equipment Status Change Report(0x361)
+ // Equipment Alarm Change Report(0x362 ~ 0x366)
+ for (int i = 0; i < 7; i++) {
+ index = 0x360 + i;;
+ bFlag = isBitOn(pszData, size, index);
+ pStep = getStep(index);
+ if (pStep != nullptr) {
+ pStep->onSignal(bFlag);
+ }
}
}
diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index c10084a..2bdbc4d 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -3,6 +3,7 @@
#include "CCLinkIEControl.h"
#include "CEqModeStep.h"
#include "CEqStatusStep.h"
+#include "CEqAlarmStep.h"
#include <map>
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 248d0dc..5e0cb50 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -89,7 +89,47 @@
delete pStep;
}
}
-
+ {
+ CEqAlarmStep* pStep = new CEqAlarmStep();
+ pStep->setWriteSignalDev(0x32);
+ pStep->setAlarmDev(0x4c1d);
+ if (pEquipment->addStep(0x362, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ {
+ CEqAlarmStep* pStep = new CEqAlarmStep();
+ pStep->setWriteSignalDev(0x33);
+ pStep->setAlarmDev(0x4c4a);
+ if (pEquipment->addStep(0x363, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ {
+ CEqAlarmStep* pStep = new CEqAlarmStep();
+ pStep->setWriteSignalDev(0x34);
+ pStep->setAlarmDev(0x4c77);
+ if (pEquipment->addStep(0x364, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ {
+ CEqAlarmStep* pStep = new CEqAlarmStep();
+ pStep->setWriteSignalDev(0x35);
+ pStep->setAlarmDev(0x4ca4);
+ if (pEquipment->addStep(0x365, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ {
+ CEqAlarmStep* pStep = new CEqAlarmStep();
+ pStep->setWriteSignalDev(0x36);
+ pStep->setAlarmDev(0x4cd1);
+ if (pEquipment->addStep(0x366, pStep) != 0) {
+ delete pStep;
+ }
+ }
+
pEquipment->init();
LOGE("已添加“EFEM(ROBOT)”.");
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index a607a04..352aab2 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -200,6 +200,7 @@
<ClInclude Include="CBonder.h" />
<ClInclude Include="CCLinkPerformance\CCLinkIEControl.h" />
<ClInclude Include="CCLinkPerformance\PerformanceMelsec.h" />
+ <ClInclude Include="CEqAlarmStep.h" />
<ClInclude Include="CEqModeStep.h" />
<ClInclude Include="CEqStatusStep.h" />
<ClInclude Include="CStep.h" />
@@ -233,6 +234,7 @@
<ClCompile Include="CBonder.cpp" />
<ClCompile Include="CCLinkPerformance\CCLinkIEControl.cpp" />
<ClCompile Include="CCLinkPerformance\PerformanceMelsec.cpp" />
+ <ClCompile Include="CEqAlarmStep.cpp" />
<ClCompile Include="CEqModeStep.cpp" />
<ClCompile Include="CEqStatusStep.cpp" />
<ClCompile Include="CStep.cpp" />
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index ae2ad88..842dad9 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -39,6 +39,7 @@
<ClCompile Include="CStep.cpp" />
<ClCompile Include="CEqModeStep.cpp" />
<ClCompile Include="CEqStatusStep.cpp" />
+ <ClCompile Include="CEqAlarmStep.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="AlarmManager.h" />
@@ -76,6 +77,7 @@
<ClInclude Include="CStep.h" />
<ClInclude Include="CEqModeStep.h" />
<ClInclude Include="CEqStatusStep.h" />
+ <ClInclude Include="CEqAlarmStep.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Servo.rc" />
--
Gitblit v1.9.3