CModule.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. using namespace std;
  22. using namespace ns_db;
  23. #pragma region 轴定义
  24. //超声头
  25. #define CUltraHead_X "UltraHead_X"
  26. #define CUltraHead_Y "UltraHead_Y"
  27. #define CUltraHead_Z "UltraHead_Z"
  28. #define CUltraHead_R "UltraHead_R"
  29. #define CUltraHead_Force "UltraHead_Force"
  30. #define BDX "BDX"
  31. #define BDY "BDY"
  32. #define BDZ "BDZ"
  33. #define BDR "BDR"
  34. #define BDForceZ "BDForceZ"
  35. #define WaferHeadX "WaferHeadX"
  36. #define WaferHeadY "WaferHeadY"
  37. #define WaferHeadZ "WaferHeadZ"
  38. #define WaferHeadForceZ "WaferHeadForceZ"
  39. #define WaffleHeadX "WaffleHeadX"
  40. #define WaffleHeadY "WaffleHeadY"
  41. #define WaffleHeadZ "WaffleHeadZ"
  42. ///吸嘴架///吸嘴架
  43. #define NuzzleAxisY "NuzzleAxisY"
  44. //中转台//中转台
  45. #define WaferCalibTableX "WaferCalibTableX"
  46. #define WaffleCalibTableX "WaffleCalibTableX"
  47. //WaferTalbe//WaferTalbe
  48. #define WaferTable_X "WaferTable_X"
  49. #define WaferTable_Y "WaferTable_Y"
  50. #define WaferTable_Z "WaferTable_Z"
  51. #define WaferTable_R "WaferTable_R"
  52. //BondTable//BondTable
  53. #define BondTableZ "BondTableZ"
  54. //顶针//顶针
  55. #define EjectorX "EjectorX"
  56. #define EjectorY "EjectorY"
  57. #define EjectorZ "EjectorZ"
  58. #define EjectorPinZ "EjectorPinZ"
  59. #pragma endregion
  60. enum USE_TYPE {
  61. NOUSE = 0,
  62. DIAGNOSIS = 1,
  63. USE = 2
  64. };
  65. enum IO_LIST {
  66. BDVacDi,
  67. BDFlowDi,
  68. WaferHeadVacDi,
  69. WaferHeadFlowDi,
  70. WaferHeadFlowDo,
  71. WaffleHeadVacDi,
  72. WaffleHeadFlowDi,
  73. //BondTable
  74. PcbArriveDi,
  75. PcbLeaveDi,
  76. BondTableDo,
  77. //吸嘴架
  78. NozzleCylNDi,
  79. NozzleCylPDi,
  80. NozzleExistDi1,
  81. NozzleExistDi2,
  82. NozzleExistDi3,
  83. NozzleExistDi4,
  84. NozzleExistDi5,
  85. NozzleExistDi6,
  86. NozzleExistDi7,
  87. NozzleExistDi8,
  88. NozzleExistDi9,
  89. NozzleExistDi10,
  90. NozzleExistDi11,
  91. NozzleExistDi12,
  92. BDVacDo,
  93. BDFlowDo,
  94. WaferHeadVacDo,
  95. WaffleHeadVacDo,
  96. WaffleHeadFlowDo,
  97. //中转台
  98. WaferCalibVacDo,
  99. WaffleCalibVacDo,
  100. BDTableVacGpo,
  101. NozzleCylDo,
  102. WaferTable_Ring,
  103. EjectorVacDo,
  104. //超声
  105. UltraHeadDo,
  106. };
  107. class __declspec(dllexport) CModule
  108. {
  109. public:
  110. CModule(MODULE_LIST eModuleType);
  111. LONG Init();
  112. bool IsInitSuccess() {return m_bIsInitSuccess;}
  113. LONG GetModuleType() const { return m_nModuleType; }
  114. string GetModuleName() const { return m_strModuleName; }
  115. virtual LONG AllocateIo(vector<CIO*> vecIo) { return OK; };
  116. virtual LONG AllocateAxis(vector<CAxis*> vecAxis) { return OK; };
  117. virtual LONG GetParam() = 0; //获取配置参数
  118. virtual LONG SetParam() = 0; //设置配置参数
  119. virtual LONG ToHome() = 0; //模组回零
  120. virtual LONG Sync() = 0; //等待到位
  121. virtual LONG ToSafePosition() = 0; //模组去安全位置
  122. virtual LONG InitResource() = 0; //分配轴、IO、标定等资源
  123. virtual void SetDataChangFunction() = 0; //设置收到数据更改通知后处理函数,绑定回调函数
  124. virtual void DataChangNotice(string strDbName, string strTableName) = 0; //回调触发处理函数
  125. LONG SaveDataToDB();
  126. protected:
  127. vector<MODULE_CONFIG_STRUCT>* GetConfigVector() { return &m_vecConfig; }
  128. protected:
  129. CManageDB* m_pCManageDB = nullptr;
  130. CModuleConfig* m_pModuleConfigDB = nullptr;
  131. CHardware* m_pCHardware = nullptr;
  132. vector<MODULE_CONFIG_STRUCT> m_vecConfig;
  133. vector<CAxis*> m_vecAxis;
  134. bool m_bIsInitSuccess = false;
  135. INT m_nModuleType = 0;
  136. string m_strModuleName = "";
  137. //模组是否启用
  138. bool m_bEnable = false;
  139. };