CBondTable.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #pragma once
  2. #include "CModule.h"
  3. #include "CTemperature.h"
  4. /*共晶台和固晶台,机械上的差距是共晶台没有真空,均定义真空IO对象,共晶台流程不调用真空开关*/
  5. class __declspec(dllexport) CBondTable :
  6. public CModule
  7. {
  8. //设备类型
  9. enum TemperatureStatus {
  10. Disable = 0 /*禁用*/,
  11. BondOpen = 1, /*工作时开,处于预备温度,工作时升到固晶温度*/
  12. BnormallyOpen = 2 /*常开,一直在固晶温度*/
  13. };
  14. typedef struct _BOND_TABLE_CONFIG_STRUCT
  15. {
  16. double dWaitPosZ; //安全位置
  17. double dBondPosZ; //工作位置
  18. long dVacuumDelay; //真空延时
  19. TemperatureStatus eOpenStatus; //温控器工作状态
  20. double nBondTempelature; //固晶温度
  21. double nPreTempelature; //预备温度
  22. std::string sTemperatureCtrlPort; //温控器端口
  23. int nAddress; //站点地址
  24. Temperature_Ctltype nTemCtrlType; //温控器类型
  25. _BOND_TABLE_CONFIG_STRUCT()
  26. {
  27. dWaitPosZ = 0;
  28. dBondPosZ = 0;
  29. eOpenStatus = TemperatureStatus::Disable;
  30. nBondTempelature = 0;
  31. nPreTempelature = 0;
  32. sTemperatureCtrlPort = "192.168.1.10";
  33. nAddress = 0x5;
  34. nTemCtrlType = GLTC;
  35. }
  36. } BOND_TABLE_CONFIG_STRUCT;
  37. public:
  38. CBondTable(MODULE_LIST eModuleType);
  39. ~CBondTable();
  40. virtual void SetDataChangFunction() override;
  41. virtual void DataChangNotice(string strDbName, string strTableName) override;
  42. virtual LONG SetParam() override;//保存配置参数
  43. virtual LONG GetParam() override;//加载配置参数
  44. virtual LONG ToHome() override;
  45. virtual LONG Sync() override;
  46. virtual LONG ToSafePosition() override;
  47. virtual LONG InitResource();
  48. virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
  49. virtual LONG AllocateIo(vector<CIO*> vecIo) override;
  50. ////检测物料到位
  51. //bool CheckPcbArrive();
  52. ////检测物料移开
  53. //bool CheckPcbLeave();
  54. //平台上升到固晶位置
  55. LONG ToBondPos(bool waitDone);
  56. //平台下降,允许上下料
  57. LONG ToWaitPos(bool waitDone);
  58. LONG SetVacuumOn();
  59. LONG SetVacuumOff();
  60. LONG WaitVacuumDone();
  61. bool CheckZDone();
  62. //设置工作台温度为固晶温度 lTimeOut (毫秒)>0时,等待温度到达5%范围内
  63. LONG SetBondTemprature(long lTimeOut = 5000);
  64. //设置工作台温度为预备温度
  65. LONG SetPreTemprature(long lTimeOut = 5000);
  66. private:
  67. CAxis* m_pAxisZ = nullptr;
  68. //CIO* m_pPcbArriveDi = nullptr;
  69. //CIO* m_pPcbLeaveDi = nullptr;
  70. CIO* m_pVacDo = nullptr;
  71. BOND_TABLE_CONFIG_STRUCT m_stConfig;
  72. //温控器
  73. bool m_TemperatureIsUse = false; //温控器是否启用
  74. CTemperature* m_pTempCtrl = nullptr;
  75. LONG WaitTemprature(double dMinTempelature, double dMaxTempelature, long lTimeOut);
  76. //设置温度
  77. LONG SetTemprature(double dTempelature, long lTimeOut = 0);
  78. };