CEjector.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #pragma once
  2. #include "CModule.h"
  3. class CEjector : public CModule
  4. {
  5. typedef struct
  6. {
  7. XY_DOUBLE_STRUCT stSaftPosition; //顶针座安全位置
  8. DOUBLE iSaftLev; //顶针座安全高度
  9. DOUBLE iSaftLev_Ejector; //顶针安全高度
  10. XY_DOUBLE_STRUCT stWorkPosition; //顶针座工作位置
  11. DOUBLE iWorkLev; //顶针座工作高度
  12. DOUBLE iWorkLev_Ejector; //顶针工作高度
  13. bool bUseEjectorSync; //是否使用顶针同步
  14. DOUBLE lEjectorSyncHeight; //顶同步高度
  15. } EJECTOR_CONFIG_STRUCT; //顶针参数配置
  16. public:
  17. CEjector(MODULE_LIST eModuleType);
  18. ~CEjector(){}
  19. virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
  20. virtual LONG AllocateIo(vector<CIO*> vecIo) override;
  21. virtual LONG ToHome() override;
  22. virtual LONG ToSafePosition() override;
  23. //
  24. // LONG EjectorSynchronous(CBondHead* pArmHead);
  25. //顶针座去安全位置
  26. //LONG MoveToSafePosition(bool sync = SYNC);
  27. //顶针座去工作位置
  28. LONG MoveToWorkPosition(bool sync = SYNC);
  29. //顶针座去安全高度
  30. LONG MoveToSafeLev(bool sync = SYNC);
  31. //顶针座去工作高度
  32. LONG MoveToWorkLev(bool sync = SYNC);
  33. //顶针去安全高度
  34. LONG MoveToEjectorSafeLev(bool sync = SYNC);
  35. //顶针去工作高度
  36. LONG MoveToEjectorWorkLev(bool sync = SYNC);
  37. //等待所有模组到位
  38. LONG Sync();
  39. //打开真空
  40. LONG VacuumOn();
  41. //关闭真空
  42. LONG VacuumOff();
  43. private:
  44. //指针
  45. CAxis* m_pXAxis = nullptr;
  46. CAxis* m_pYAxis = nullptr;
  47. CAxis* m_pZAxis = nullptr; //座Z
  48. CAxis* m_pAxisPinZ = nullptr; //顶针Z
  49. CIO* m_pIoVacuum = nullptr;
  50. static UINT iEjectorUseNum; //顶针使用次数
  51. static UINT iEjectorMaxNum; //顶针最大使用次数
  52. CModuleConfig* m_pModuleConfigDB = nullptr;
  53. EJECTOR_CONFIG_STRUCT m_stEjectorConfig; //顶针参数配置
  54. void DataChangNotice(string strDbName, string strTableName);
  55. virtual void SetDataChangFunction() override;
  56. virtual LONG SetParam() override;//保存配置参数
  57. virtual LONG GetParam() override;//加载配置参数
  58. virtual LONG InitResource() override; //分配轴、IO、标定等资源
  59. };