CBondTable.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. double dCurTempelature;
  26. double dSetTempelature;
  27. _BOND_TABLE_CONFIG_STRUCT()
  28. {
  29. dWaitPosZ = 0;
  30. dBondPosZ = 0;
  31. eOpenStatus = TemperatureStatus::Disable;
  32. nBondTempelature = 0;
  33. nPreTempelature = 0;
  34. sTemperatureCtrlPort = "192.168.1.10";
  35. nAddress = 0x5;
  36. nTemCtrlType = GLTC;
  37. dCurTempelature = 0;
  38. dSetTempelature = 0;
  39. }
  40. } BOND_TABLE_CONFIG_STRUCT;
  41. public:
  42. CBondTable(MODULE_LIST eModuleType);
  43. ~CBondTable();
  44. virtual void SetDataChangFunction() override;
  45. virtual void DataChangNotice(string strDbName, string strTableName) override;
  46. virtual LONG SetParam() override;//保存配置参数
  47. virtual LONG GetParam() override;//加载配置参数
  48. virtual LONG ToHome() override;
  49. virtual LONG Sync() override;
  50. virtual LONG ToSafePosition() override;
  51. virtual LONG InitResource();
  52. virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
  53. virtual LONG AllocateIo(vector<CIO*> vecIo) override;
  54. ////检测物料到位
  55. //bool CheckPcbArrive();
  56. ////检测物料移开
  57. //bool CheckPcbLeave();
  58. //平台上升到固晶位置
  59. LONG ToBondPos(bool waitDone);
  60. //平台下降,允许上下料
  61. LONG ToWaitPos(bool waitDone);
  62. LONG SetVacuumOn();
  63. LONG SetVacuumOff();
  64. LONG WaitVacuumDone();
  65. bool CheckZDone();
  66. //设置工作台温度为固晶温度 lTimeOut (毫秒)>0时,等待温度到达5%范围内
  67. LONG SetBondTemprature(long lTimeOut = 5000);
  68. //设置工作台温度为预备温度
  69. LONG SetPreTemprature(long lTimeOut = 5000);
  70. private:
  71. CAxis* m_pAxisZ = nullptr;
  72. //CIO* m_pPcbArriveDi = nullptr;
  73. //CIO* m_pPcbLeaveDi = nullptr;
  74. CIO* m_pVacDo = nullptr;
  75. BOND_TABLE_CONFIG_STRUCT m_stConfig;
  76. //温控器
  77. bool m_TemperatureIsUse = false; //温控器是否启用
  78. CTemperature* m_pTempCtrl = nullptr;
  79. public:
  80. LONG ReadTemperature();
  81. LONG UpdateTemperature();
  82. LONG WaitTemprature(double dMinTempelature, double dMaxTempelature, long lTimeOut);
  83. //设置温度
  84. LONG SetTemprature(double dTempelature, long lTimeOut = 0);
  85. double GetBondTemprature() { return m_stConfig.nBondTempelature; };
  86. };