| SourceCode/Bond/Servo/CEqModeStep.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEqStatusStep.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEqStatusStep.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEquipment.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEquipment.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CMaster.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/Servo.vcxproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/Servo.vcxproj.filters | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/Servo/CEqModeStep.cpp
@@ -20,11 +20,14 @@ CStep::onReadData(); DWordContainer dc; m_pCclink->ReadDWordData(m_station, DeviceType::W, m_nModeDev, 1, dc); if (0 == m_pCclink->ReadDWordData(m_station, DeviceType::W, m_nModeDev, 1, dc) && dc.size() >= 1) { m_nMode = dc.at(0); std::string strTemp; LOGI("<CEqModeStep> Equipment Mode Changed<%s>\n", getModeDescription(strTemp).c_str()); } return 0; } @@ -58,7 +61,6 @@ 4 : Cold Run Mode 5 : ETC." */ std::string& CEqModeStep::getModeDescription(std::string& strDescription) { switch (m_nMode) { SourceCode/Bond/Servo/CEqStatusStep.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,122 @@ #include "stdafx.h" #include "CEqStatusStep.h" #include "Log.h" #include "ToolUnits.h" namespace SERVO { CEqStatusStep::CEqStatusStep() : CStep() { m_nStatusDev = 0; for (int i = 0; i < STATUS_MAX; i++) { m_nStatus[i] = 7; m_nReasonCode[i] = 0; } } CEqStatusStep::~CEqStatusStep() { } int CEqStatusStep::onReadData() { CStep::onReadData(); char szBuffer[64]; int nRet = m_pCclink->ReadData2(m_station, DeviceType::W, m_nStatusDev, 64, szBuffer); if (0 == nRet) { unsigned int unitId = (unsigned int)CToolUnits::toInt16(&szBuffer[0]); if (unitId < STATUS_MAX) { if (unitId == 0) { m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4]); m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4 + 2]); } else { m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4]); m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4 + 2]); } for (int i = 0; i < 64; i++) { TRACE("bbb %d, %x\n", i, szBuffer[i]); } TRACE("cccc %d %d %d\n", unitId, m_nStatus[unitId], m_nReasonCode[unitId]); std::string strTemp; LOGI("<CEqStatusStep> Equipment Status Changed<Unit:%d, %s, ReasonCode=%d>\n", unitId, getStatusDescription(unitId, strTemp).c_str(), m_nReasonCode[unitId]); } } return 0; } int CEqStatusStep::onComplete() { CStep::onComplete(); LOGI("<CEqStatusStep> onComplete."); return 0; } int CEqStatusStep::onTimeout() { CStep::onTimeout(); LOGI("<CEqStatusStep> onTimeout."); return 0; } void CEqStatusStep::setStatusDev(int nDev) { m_nStatusDev = nDev; } /* Lower (1byte, 0~7) : Status 1 : PM 2 : Down(BM) 3 : Pause 4 : Idle 5: Run 6: Job Change 7 : ETC */ std::string& CEqStatusStep::getStatusDescription(unsigned int unid, std::string& strDescription) { if (unid < STATUS_MAX) { switch (m_nStatus[unid]) { case 1: strDescription = _T("PM"); break; case 2: strDescription = _T("Down(BM)"); break; case 3: strDescription = _T("Pause"); break; case 4: strDescription = _T("Idle"); break; case 5: strDescription = _T("Run"); break; case 6: strDescription = _T("Job Change"); break; case 7: strDescription = _T("ETC"); break; default: strDescription = _T(""); break; } } return strDescription; } } SourceCode/Bond/Servo/CEqStatusStep.h
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ #pragma once #include "CStep.h" namespace SERVO { #define UNIT_MAX 6 #define STATUS_MAX (UNIT_MAX + 1) class CEqStatusStep : public CStep { public: CEqStatusStep(); ~CEqStatusStep(); public: virtual int onReadData(); virtual int onComplete(); virtual int onTimeout(); void setStatusDev(int nDev); std::string& getStatusDescription(unsigned int unid, std::string& strDescription); private: int m_nStatusDev; int m_nStatus[STATUS_MAX]; int m_nReasonCode[STATUS_MAX]; }; } SourceCode/Bond/Servo/CEquipment.cpp
@@ -240,11 +240,20 @@ // 以䏿 ¹æ®ä¿¡å·åæµç¨å¤ç CStep* pStep; // Equipment Mode Change Report index = 0x360; bFlag = isBitOn(pszData, size, index); CStep* pStep = getStep(0x360); 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); } SourceCode/Bond/Servo/CEquipment.h
@@ -2,6 +2,7 @@ #include "Log.h" #include "CCLinkIEControl.h" #include "CEqModeStep.h" #include "CEqStatusStep.h" #include <map> SourceCode/Bond/Servo/CMaster.cpp
@@ -81,6 +81,14 @@ delete pStep; } } { CEqStatusStep* pStep = new CEqStatusStep(); pStep->setWriteSignalDev(0x31); pStep->setStatusDev(0x4a68); if (pEquipment->addStep(0x361, pStep) != 0) { delete pStep; } } pEquipment->init(); SourceCode/Bond/Servo/Servo.vcxproj
@@ -201,6 +201,7 @@ <ClInclude Include="CCLinkPerformance\CCLinkIEControl.h" /> <ClInclude Include="CCLinkPerformance\PerformanceMelsec.h" /> <ClInclude Include="CEqModeStep.h" /> <ClInclude Include="CEqStatusStep.h" /> <ClInclude Include="CStep.h" /> <ClInclude Include="DevicePropertyDlg.h" /> <ClInclude Include="CEFEM.h" /> @@ -233,6 +234,7 @@ <ClCompile Include="CCLinkPerformance\CCLinkIEControl.cpp" /> <ClCompile Include="CCLinkPerformance\PerformanceMelsec.cpp" /> <ClCompile Include="CEqModeStep.cpp" /> <ClCompile Include="CEqStatusStep.cpp" /> <ClCompile Include="CStep.cpp" /> <ClCompile Include="DevicePropertyDlg.cpp" /> <ClCompile Include="CEFEM.cpp" /> SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -38,6 +38,7 @@ <ClCompile Include="DevicePropertyDlg.cpp" /> <ClCompile Include="CStep.cpp" /> <ClCompile Include="CEqModeStep.cpp" /> <ClCompile Include="CEqStatusStep.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="AlarmManager.h" /> @@ -74,6 +75,7 @@ <ClInclude Include="DevicePropertyDlg.h" /> <ClInclude Include="CStep.h" /> <ClInclude Include="CEqModeStep.h" /> <ClInclude Include="CEqStatusStep.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="Servo.rc" />