CUltraHead.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #pragma once
  2. #include "CModule.h"
  3. #include "CForceControl.h"
  4. #include "CLookUpCalib.h"
  5. #include "CRCalib.h"
  6. #include "CXYCalib.h"
  7. #include "CNozzleTable.h"
  8. #include "CTemperature.h"
  9. #include "CBondHead.h"
  10. #include "CUGWatch.h"
  11. /*
  12. 超声头:和固晶头相比,固晶时,需加热,控制超声IO
  13. */
  14. class __declspec(dllexport) CUltraHead :
  15. public CBondHead
  16. {
  17. public:
  18. CUltraHead(MODULE_LIST eModuleType);
  19. ~CUltraHead();
  20. //void SetUltraDo(CIO* output) { m_pUltraIO = output; }
  21. LONG AllocateIo(vector<CIO*> vecIo);
  22. CManageDB* m_pCManageDB = nullptr;
  23. CModuleConfig* GetModuleConfig() { return m_pModuleConfigDB; };
  24. virtual void SetDataChangFunction() override;
  25. virtual LONG SetParam() override;
  26. virtual LONG GetParam() override;
  27. // virtual LONG ToHome() override;
  28. // virtual LONG ToSafePosition() override;
  29. virtual LONG InitResource() override;
  30. virtual void DataChangNotice(string strDbName, string strTableName) override;
  31. virtual void SetPickHTestIndex(int index);
  32. virtual void SetBondHTestIndex(int index);
  33. virtual LONG AllBondHighTest();
  34. //virtual LONG VacuumOn(); //真空开
  35. //virtual LONG VacuumOff(); //真空关
  36. //virtual LONG StrongOn(); //强吹开
  37. //virtual LONG StrongOff(); //强吹关
  38. virtual LONG UltraOn(); //超声开
  39. virtual LONG UltraOff(); //超声关
  40. double GetBondTempelature() { return m_nBondTempelature; };
  41. //上视拍照
  42. LONG XYZToLookUpGrabPos();
  43. //LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result);//移动到上视拍照位,拍照结果放到结构体中
  44. #pragma region 自动固晶流程
  45. //吸嘴固晶
  46. virtual LONG BondDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel = { 0,0,0 }) override;
  47. LONG BondDieDown(int index);//传入物理位置
  48. //LONG BondDieUp(int index,bool waitDone = true);
  49. LONG BondCheck(int index);
  50. #pragma endregion
  51. LONG MoveToBondGrabPos(int index);
  52. LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result); //返回的拍照结果为物理单位
  53. LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool bIsHard = true, bool waitDone = true);//传入物理位置
  54. LONG CreateTemplate_LowCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId);
  55. LONG SearchTemplate(UINT iTemplateId, X_Y_ANGLE_STRUCT& stOffset);
  56. //LONG MoveTo(double x,double y, double z);
  57. //写入温度
  58. LONG UpdateTemperature();
  59. //读取温度
  60. LONG ReadTemperature();
  61. public:
  62. //温控器
  63. virtual LONG WaitTemprature(double dMinTempelature, double dMaxTempelature, long lTimeOut) override;
  64. virtual LONG SetTemprature(double dTemprature, long lTimeOut = 0) override;
  65. private:
  66. CIO* m_pUltraIO = nullptr;
  67. CUGWatch *m_pUGWatch = nullptr;
  68. ST_CUGWATCH_DEF m_sCUGWatchDef;
  69. ComParameter m_ComParameter;
  70. //超声值
  71. int m_nUltraValue = 0x0; //超声值
  72. long m_lUltraDelay = 1000; //超声延时 ms
  73. bool m_BnormallyOpen = false; //是否常开
  74. double m_nBondTempelature = 0; //固晶温度
  75. double m_nPreTempelature = 0; //预备温度
  76. std::string m_sTemperatureCtrlPort = "192.168.1.10";
  77. int m_nAddress = 0x5;
  78. double m_dCurTempelature = 0; //当前温度
  79. Temperature_Ctltype m_nTemCtrlType = GLTC;
  80. CTemperature* m_pTempCtrl = nullptr;
  81. };