| SourceCode/Bond/Servo/CCLinkPerformance/PerformanceMelsec.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEqModeStep.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEqModeStep.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEquipment.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEquipment.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CMaster.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CStep.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CStep.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/Servo.vcxproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/Servo.vcxproj.filters | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/Servo/CCLinkPerformance/PerformanceMelsec.h
@@ -203,6 +203,12 @@ // èªå®ä¹æé 彿°ï¼è¦çé»è®¤å¼ explicit StationIdentifier(const short net, const short st) : nNetNo(net), nStNo(st) {} StationIdentifier() { nNetNo = 0; nStNo = 255; } // å°âç½ç»å·âåâç«ç¹å·âç»åæä¸ä¸ªæç»ç¼ç short StationIdentifier::toNetworkStationCode() const { return static_cast<short>(nStNo | ((nNetNo << 8) & 0xFF00)); SourceCode/Bond/Servo/CEqModeStep.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,90 @@ #include "stdafx.h" #include "CEqModeStep.h" #include "Log.h" namespace SERVO { CEqModeStep::CEqModeStep() : CStep() { m_nModeDev = 0; m_nMode = 0; } CEqModeStep::~CEqModeStep() { } int CEqModeStep::onReadData() { CStep::onReadData(); DWordContainer dc; m_pCclink->ReadDWordData(m_station, DeviceType::W, m_nModeDev, 1, dc); m_nMode = dc.at(0); std::string strTemp; LOGI("<CEqModeStep> Equipment Mode Changed<%s>\n", getModeDescription(strTemp).c_str()); return 0; } int CEqModeStep::onComplete() { CStep::onComplete(); LOGI("<CEqModeStep> onComplete."); return 0; } int CEqModeStep::onTimeout() { CStep::onTimeout(); LOGI("<CEqModeStep> onTimeout."); return 0; } void CEqModeStep::setModeDev(int nDev) { m_nModeDev = nDev; } /* 0: No Equipment Mode exist 1: Normal Mode 2 : Recovery(Force Clean Out) Mode 3 : Skip Mode 4 : Cold Run Mode 5 : ETC." */ std::string& CEqModeStep::getModeDescription(std::string& strDescription) { switch (m_nMode) { case 0: strDescription = _T("No Equipment Mode exist"); break; case 1: strDescription = _T("Normal Mode"); break; case 2: strDescription = _T("Recovery(Force Clean Out) Mode"); break; case 3: strDescription = _T("Skip Mode"); break; case 4: strDescription = _T("Cold Run Mode"); break; case 5: strDescription = _T("ETC."); break; default: strDescription = _T(""); break; } return strDescription; } } SourceCode/Bond/Servo/CEqModeStep.h
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ #pragma once #include "CStep.h" namespace SERVO { class CEqModeStep : public CStep { public: CEqModeStep(); ~CEqModeStep(); public: virtual int onReadData(); virtual int onComplete(); virtual int onTimeout(); void setModeDev(int nDev); std::string& getModeDescription(std::string& strDescription); private: int m_nModeDev; int m_nMode; }; } SourceCode/Bond/Servo/CEquipment.cpp
@@ -67,12 +67,8 @@ void CEquipment::init() { CStep* pStep = new CStep(); if (addStep(0x360, pStep) == 0) { pStep->init(); } else { delete pStep; for (auto item : m_mapStep) { item.second->init(); } } SourceCode/Bond/Servo/CEquipment.h
@@ -1,7 +1,7 @@ #pragma once #include "Log.h" #include "CCLinkIEControl.h" #include "CStep.h" #include "CEqModeStep.h" #include <map> SourceCode/Bond/Servo/CMaster.cpp
@@ -71,6 +71,18 @@ pEquipment->setStation(0, 255); addEquipment(pEquipment); // æ·»å step { CEqModeStep* pStep = new CEqModeStep(); pStep->setWriteSignalDev(0x30); pStep->setModeDev(0x4a8c); if (pEquipment->addStep(0x360, pStep) != 0) { delete pStep; } } pEquipment->init(); LOGE("已添å âEFEM(ROBOT)â."); } SourceCode/Bond/Servo/CStep.cpp
@@ -7,8 +7,8 @@ unsigned __stdcall StepWorkThreadFunction(LPVOID lpParam) { CStep* pScale = (CStep*)lpParam; return pScale->WorkingProc(); CStep* pStep = (CStep*)lpParam; return pStep->WorkingProc(); } CStep::CStep() @@ -20,6 +20,7 @@ m_hSignalOff = ::CreateEvent(NULL, TRUE, FALSE, NULL); m_nCurStep = 0; m_pCclink = nullptr; m_nWriteSignalDev = 0; InitializeCriticalSection(&m_criticalSection); } @@ -39,6 +40,11 @@ void CStep::setCcLink(CCCLinkIEControl* pCcLink) { m_pCclink = pCcLink; } void CStep::setWriteSignalDev(int dev) { m_nWriteSignalDev = dev; } void CStep::init() @@ -86,23 +92,20 @@ // 1.è¯»åæ°æ® nextStep(); ASSERT(m_pCclink); StationIdentifier station(0, 255); DWordContainer dc; m_pCclink->ReadDWordData(station, DeviceType::W, 0x4a8c, 1, dc); int nState = dc.at(0); TRACE(">> nState:%d\n", nState); onReadData(); // 2.ç»å¯¹æ¹åON nextStep(); m_pCclink->SetBitDevice(station, DeviceType::B, 0x30); m_pCclink->SetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev); // 3.çå¾ å¯¹æ¹OFF nextStep(); int nStep3Ret = ::WaitForSingleObject(m_hSignalOff, TIMEOUT * 1000); if (nStep3Ret == WAIT_TIMEOUT) { timeout(); m_pCclink->ResetBitDevice(station, DeviceType::B, 0x30); m_pCclink->ResetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev); onTimeout(); goto RESET; } ResetEvent(m_hSignalOff); @@ -110,18 +113,12 @@ // 4.ç»å¯¹æ¹åOFF nextStep(); m_pCclink->ResetBitDevice(station, DeviceType::B, 0x30); TRACE("m_nCurStep:%d\n", m_nCurStep); // 5.对æ¥CIMç nextStep(); TRACE("m_nCurStep:%d\n", m_nCurStep); m_pCclink->ResetBitDevice(m_station, DeviceType::B, m_nWriteSignalDev); // 6.宿 nextStep(); TRACE("m_nCurStep:%d\n", m_nCurStep); onComplete(); } } @@ -147,6 +144,21 @@ Unlock(); } int CStep::onReadData() { return 0; } int CStep::onComplete() { return 0; } int CStep::onTimeout() { return 0; } void CStep::resetStep() { Lock(); @@ -159,11 +171,6 @@ Lock(); m_nCurStep++; Unlock(); } void CStep::timeout() { TRACE(">>>>>>>>>>>>>>>> timeout:%d\n", m_nCurStep); } } SourceCode/Bond/Servo/CStep.h
@@ -12,18 +12,22 @@ public: unsigned WorkingProc(); void setCcLink(CCCLinkIEControl* pCcLink); virtual void setWriteSignalDev(int dev); virtual void init(); virtual void CStep::term(); virtual void onSignal(BOOL bSignal); virtual int onReadData(); virtual int onComplete(); virtual int onTimeout(); protected: inline void Lock() { EnterCriticalSection(&m_criticalSection); } inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } inline void nextStep(); inline void resetStep(); void timeout(); private: protected: StationIdentifier m_station; CCCLinkIEControl* m_pCclink; CRITICAL_SECTION m_criticalSection; std::string strName; @@ -33,6 +37,7 @@ HANDLE m_hSignalOn; HANDLE m_hSignalOff; int m_nCurStep; int m_nWriteSignalDev; // 对æ¹BITå°å }; } 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="CEqModeStep.h" /> <ClInclude Include="CStep.h" /> <ClInclude Include="DevicePropertyDlg.h" /> <ClInclude Include="CEFEM.h" /> @@ -231,6 +232,7 @@ <ClCompile Include="CBonder.cpp" /> <ClCompile Include="CCLinkPerformance\CCLinkIEControl.cpp" /> <ClCompile Include="CCLinkPerformance\PerformanceMelsec.cpp" /> <ClCompile Include="CEqModeStep.cpp" /> <ClCompile Include="CStep.cpp" /> <ClCompile Include="DevicePropertyDlg.cpp" /> <ClCompile Include="CEFEM.cpp" /> SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -37,6 +37,7 @@ <ClCompile Include="ToolUnits.cpp" /> <ClCompile Include="DevicePropertyDlg.cpp" /> <ClCompile Include="CStep.cpp" /> <ClCompile Include="CEqModeStep.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="AlarmManager.h" /> @@ -72,6 +73,7 @@ <ClInclude Include="ToolUnits.h" /> <ClInclude Include="DevicePropertyDlg.h" /> <ClInclude Include="CStep.h" /> <ClInclude Include="CEqModeStep.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="Servo.rc" />