CModule.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #pragma once
  2. /*
  3. 1、模组基类
  4. 方向:X轴向右为正,Y轴向里为正,Z轴向下为正
  5. */
  6. #include "CAxis.h"
  7. #include "CAxis.h"
  8. #include "CIO.h"
  9. #include <string>
  10. #include <vector>
  11. #include <map>
  12. #include "dt.h"
  13. #include "CBondMatrix.h"
  14. #include "CResources.h"
  15. #include "CCoord.h"
  16. #include "CError.h"
  17. #include "FHConvert.h"
  18. #include "CLog.h"
  19. #include "SystemResources.h"
  20. #include "CHardwareList.h"
  21. #include "CMessageBox.h"
  22. using namespace std;
  23. using namespace ns_db;
  24. //启用,固晶流程变为:拍基板角度-取晶片-上视相机调整完角度-直接基板固晶
  25. //禁用,固晶流程变为:取晶片-上视机机拍照-拍基板角度-旋转偏移后基板固晶
  26. //#define ENABLE_LOOK_UP_ADJUST 1
  27. #pragma region 轴定义
  28. //超声头
  29. #define CUltraHead_X "UltraHead_X"
  30. #define CUltraHead_Y "UltraHead_Y"
  31. #define CUltraHead_Z "UltraHead_Z"
  32. #define CUltraHead_R "UltraHead_R"
  33. #define CUltraHead_Force "UltraHead_Force"
  34. #define BDX "BDX"
  35. #define BDY "BDY"
  36. #define BDZ "BDZ"
  37. #define BDR "BDR"
  38. #define BDForceZ "BDForceZ"
  39. #define WaferHeadX "WaferHeadX"
  40. #define WaferHeadY "WaferHeadY"
  41. #define WaferHeadZ "WaferHeadZ"
  42. #define WaferHeadForceZ "WaferHeadForceZ"
  43. #define WaffleHeadX "WaffleHeadX"
  44. #define WaffleHeadY "WaffleHeadY"
  45. #define WaffleHeadZ "WaffleHeadZ"
  46. ///吸嘴架///吸嘴架
  47. #define NuzzleAxisY "NuzzleAxisY"
  48. //中转台//中转台
  49. #define WaferCalibTableX "WaferCalibTableX"
  50. #define WaffleCalibTableX "WaffleCalibTableX"
  51. //WaferTalbe//WaferTalbe
  52. #define WaferTable_X "WaferTable_X"
  53. #define WaferTable_Y "WaferTable_Y"
  54. #define WaferTable_Z "WaferTable_Z"
  55. #define WaferTable_R "WaferTable_R"
  56. //BondTable//BondTable
  57. #define BondTableZ "BondTableZ"
  58. //顶针//顶针
  59. #define EjectorX "EjectorX"
  60. #define EjectorY "EjectorY"
  61. #define EjectorZ "EjectorZ"
  62. #define EjectorPinZ "EjectorPinZ"
  63. #pragma endregion
  64. enum USE_TYPE {
  65. NOUSE = 0,
  66. DIAGNOSIS = 1,
  67. USE = 2
  68. };
  69. enum IO_LIST {
  70. BDVacDi,
  71. BDFlowDi,
  72. WaferHeadVacDi,
  73. WaferHeadFlowDi,
  74. WaferHeadFlowDo,
  75. WaffleHeadVacDi,
  76. WaffleHeadFlowDi,
  77. //BondTable
  78. PcbArriveDi,
  79. PcbLeaveDi,
  80. BondTableDo,
  81. //吸嘴架
  82. NozzleCylNDi,
  83. NozzleCylPDi,
  84. NozzleExistDi1,
  85. NozzleExistDi2,
  86. NozzleExistDi3,
  87. NozzleExistDi4,
  88. NozzleExistDi5,
  89. NozzleExistDi6,
  90. NozzleExistDi7,
  91. NozzleExistDi8,
  92. NozzleExistDi9,
  93. NozzleExistDi10,
  94. NozzleExistDi11,
  95. NozzleExistDi12,
  96. BDVacDo,
  97. BDFlowDo,
  98. WaferHeadVacDo,
  99. WaffleHeadVacDo,
  100. WaffleHeadFlowDo,
  101. //中转台
  102. WaferCalibVacDo,
  103. WaffleCalibVacDo,
  104. BDTableVacGpo,
  105. NozzleCylDo,
  106. WaferTable_Ring,
  107. EjectorVacDo,
  108. //超声
  109. UltraHeadDo,
  110. };
  111. class __declspec(dllexport) CModule
  112. {
  113. public:
  114. CModule(MODULE_LIST eModuleType);
  115. LONG Init();
  116. bool IsInitSuccess() {return m_bIsInitSuccess;}
  117. LONG GetModuleType() const { return m_nModuleType; }
  118. string GetModuleName() const { return m_strModuleName; }
  119. virtual LONG AllocateIo(vector<CIO*> vecIo) { return OK; };
  120. virtual LONG AllocateAxis(vector<CAxis*> vecAxis) { return OK; };
  121. virtual LONG GetParam() = 0; //获取配置参数
  122. virtual LONG SetParam() = 0; //设置配置参数
  123. virtual LONG ToHome() = 0; //模组回零
  124. virtual LONG Sync() = 0; //等待到位
  125. virtual LONG ToSafePosition() = 0; //模组去安全位置
  126. virtual LONG InitResource() = 0; //分配轴、IO、标定等资源
  127. virtual void SetDataChangFunction() = 0; //设置收到数据更改通知后处理函数,绑定回调函数
  128. virtual void DataChangNotice(string strDbName, string strTableName) = 0; //回调触发处理函数
  129. LONG SaveDataToDB();
  130. protected:
  131. vector<MODULE_CONFIG_STRUCT>* GetConfigVector() { return &m_vecConfig; }
  132. BUTTON_TYPE PopWarn(AlarmID iId, std::string strDescribe, LogStream::LogLevel iLevel = LogStream::LogLevel::Error,
  133. int buttons = BUTTON_TYPE::CLOSE_BUTTON, std::string strTip = "", std::string strHelp = "");
  134. protected:
  135. CManageDB* m_pCManageDB = nullptr;
  136. CModuleConfig* m_pModuleConfigDB = nullptr;
  137. CHardware* m_pCHardware = nullptr;
  138. vector<MODULE_CONFIG_STRUCT> m_vecConfig;
  139. vector<CAxis*> m_vecAxis;
  140. //CMessageBox* m_pMessageBox = nullptr;
  141. bool m_bIsInitSuccess = false;
  142. INT m_nModuleType = 0;
  143. string m_strModuleName = "";
  144. //模组是否启用
  145. bool m_bEnable = false;
  146. };