123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- #pragma once
- #include "CModule.h"
- #include "CNozzleTable.h"
- #include "CBondMatrix.h"
- #include "CForceControl.h"
- #include "CRCalib.h"
- #include "CLookUpCalib.h"
- #include "CTransferTable.h"
- #include "CXYCalib.h"
- #include "TipMatrix.h"
- class __declspec(dllexport) CBondHead :
- public CModule
- {
- public:
- CBondHead(MODULE_LIST eModuleType);
- ~CBondHead();
- virtual LONG AllocateAxis(vector<CAxis*> vecAxis);
- virtual LONG AllocateIo(vector<CIO*> vecIo);
- void SetXAxis(CAxis* axis) { m_pXAxis = axis; }
- CAxis* GetXAxis() { return m_pXAxis; }
- void SetYAxis(CAxis* axis) { m_pYAxis = axis; }
- CAxis* GetYAxis() { return m_pYAxis; }
- void SetZAxis(CAxis* axis) { m_pZAxis = axis; }
- CAxis* GetZAxis() { return m_pZAxis; }
-
-
- void SetRAxis(CAxis* axis) { m_pRAxis = axis; }
- CAxis* GetRAxis() { return m_pRAxis; }
- void SetCoord(CCoord* pCrd) { m_pCoord_XY = pCrd; }
- CCoord* GetCoord() { return m_pCoord_XY; }
- void SetVacDO(CIO* out) { m_pBDVacGpo = out; }
- void SetFlowDo(CIO* out) { m_pBDFlowGpo = out; }
- void SetVacDi(CIO* input) { m_pBDVacGpi = input; }
- void SetFlowDi(CIO* input) { m_pBDFlowGpi = input; }
- void SetNozzleTable(CNozzleTable* nozzleTable) { m_pNozzleTable = nozzleTable; }
- void SetLookUpCamera(CCameraBase* camera) { m_pLookUpCamera = camera; }
- void SetWaferTransferTable(CTransferTable* tt) { m_pWaferTransferTable = tt; }
- void SetWaffleTransferTable(CTransferTable* tt) { m_pWaffleTransferTable = tt; }
-
- CForceControl* GetForceControl() { return m_pForceControl; }
- CXYCalib* GetLookUpCameraCalib() { return m_pLookUpXYCalib; }
- CRCalib* GetHeadRCalib() { return m_pRCalib; }
- bool GetIsLocationAll() { return m_bIsLocationAll; }
- virtual void SetHighCamera(CCameraBase* camera) {}
- virtual void SetLowCamera(CCameraBase* camera) { m_pLowCamera = camera; }
- virtual CXYCalib* GetLowCameraCalib() { return m_pLowXYCalib; }
- virtual CXYCalib* GetHighCameraCalib() { return nullptr; }
- virtual CCTDCalib* GetLowCTDCalib() { return m_pLowCTDCalib; }
- virtual LONG ToHome();
- virtual LONG ToSafePosition();
- LONG Move(double x, double y, bool bSync = true);
- LONG MoveTo(double x,double y, bool bSync = true);
- LONG MoveTo(double x, double y,double z);
- LONG MoveTo(double x, double y, double z,double r);
- virtual void SetPickHTestIndex(int index) = 0;
- virtual void SetBondHTestIndex(int index) = 0;
- virtual LONG PickHighTest() = 0;
- virtual LONG AllBondHighTest() = 0;
- virtual LONG BongHighTest() = 0;
- virtual LONG VacuumOn(long lDelay);
- virtual LONG VacuumOff(long lDelay);
- virtual LONG StrongOn();
- virtual LONG StrongOff();
- virtual LONG UltraOn(int iUltraValue) { return OK; };
- virtual LONG UltraOff() { return OK; };
- virtual LONG ChangeNozzle(int nozzleIndex);
- virtual LONG UnLoadNozzle();
- virtual LONG LoadNozzle(int nozzleIndex);
- virtual LONG CheckDieExistStatus(bool& bExist);
- virtual LONG MoveLowCameraToNozzle();
- virtual LONG MoveNozzleToLowCamera();
-
- virtual LONG MoveToGrabPos(bool waitDone = true);
- virtual LONG PickGrab(int index, X_Y_ANGLE_STRUCT& result);
-
- virtual LONG PickDie(int index);
-
- virtual LONG PickDieDown(int index, X_Y_ANGLE_STRUCT result);
- virtual LONG PickUpToGrabPos();
- virtual LONG PickDieUp(bool waitDone = true);
-
- virtual LONG XYZToLookUpGrabPos();
- virtual LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result);
-
- virtual LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel) = 0;
- virtual LONG MoveToBondPos(int index) = 0;
- virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result) = 0;
- virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool waitDone = true) = 0;
- virtual LONG BondDieDown(int index) = 0;
- virtual LONG BondDieUp(bool waitDone = true) = 0 ;
- virtual LONG FindForce(double force);
- virtual LONG UpdateForce(double dForce);
- virtual LONG GetCurForceCurrentPercent(short& current);
- virtual LONG GetCurForce(double& force);
- virtual LONG Sync();
-
- virtual LONG HighCameraCTDCalib() { return OK; }
- virtual LONG LowCameraPosCalib();
- virtual LONG LowCTDNozzlePosCalib();
- virtual LONG CalLowCTDResult();
- virtual LONG NozzleRotCenterCalib();
- virtual LONG LowCameraXYCalib();
- virtual LONG LookUpCameraXYCalib();
-
- virtual LONG SpringForceCalib();
- virtual LONG CurrentForceCalib();
-
- virtual LONG CreateLowCameraCalibTemp();
- virtual LONG CreateLookUpCameraCalibTemp();
- virtual LONG CreateRCalibTemp();
- virtual LONG CreateCTDLookUpCameraTemp();
- virtual LONG CreateCTDHeadCameraTemp();
- virtual LONG CreateCTDTipTemp();
-
- virtual LONG LowCameraToHead();
- virtual LONG HeadToLowCamera();
- virtual LONG HighCameraToHead();
- virtual LONG HeadToHighCamera();
-
-
-
-
-
- protected:
- BOND_PARAM m_stBondParam;
- CBondMatrix* m_pBondMatrix = nullptr;
- CForceControl* m_pForceControl = nullptr;
- CTransferTable* m_pWaferTransferTable = nullptr;
- CTransferTable* m_pWaffleTransferTable = nullptr;
- CNozzleTable* m_pNozzleTable = nullptr;
- CCameraBase* m_pLowCamera = nullptr;
- CAxis* m_pXAxis = nullptr;
- CAxis* m_pYAxis = nullptr;
- CAxis* m_pZAxis = nullptr;
- CAxis* m_pRAxis = nullptr;
-
- CIO* m_pForcerDo = nullptr;
- CIO* m_pForcerAO = nullptr;
- CIO* m_pBDVacGpo = nullptr;
- CIO* m_pBDFlowGpo = nullptr;
- CIO* m_pBDVacGpi = nullptr;
- CIO* m_pBDFlowGpi = nullptr;
- CIO* m_pForceScale = nullptr;
- CCoord* m_pCoord_XY = nullptr;
- CCameraBase* m_pLookUpCamera = nullptr;
- CXYCalib* m_pLookUpXYCalib = nullptr;
- CXYCalib* m_pLowXYCalib = nullptr;
- CRCalib* m_pRCalib = nullptr;
- CCTDCalib* m_pLowCTDCalib = nullptr;
- CPRStrategy* m_pPR = nullptr;
- TipMatrix* m_pTipMatrix = nullptr;
-
- double m_dSafePosX = 0;
- double m_dSafePosY = 0;
- double m_dSafePosZ = 0;
- double m_dInitPosR = 0;
- double m_dPickGrabPosX = 0;
- double m_dPickGrabPosY = 0;
- double m_dPickGrabPosZ = 0;
- double m_dLookUpGrabPosX = 0;
- double m_dLookUpGrabPosY = 0;
- double m_dLookUpPosZ = 0;
- double m_dPreChangeNozzleDisY = 0;
- double m_dNozzlePosZ = 0;
-
- int m_nTipUsedNum = 0;
- int m_nTipUsedMaxNum = 0;
- int m_nCurNozzleIndex = 0;
-
-
-
- double m_dPickVel = 0;
- double m_dSearchForce = 0;
- double m_dHoldForce = 0;
- double m_dPickSearchPosZ = 0;
- double m_dBondSearchPosZ = 0;
-
- double m_dNozzleTableOriginPosX = 0;
- double m_dNozzleTableOriginPosY = 0;
- int m_nPickHTestDieIndex = 0;
- int m_nBondHTestDieIndex = 0;
- bool m_bIsLocationAll = false;
- double m_dGivenForceZPos = 0;
- };
|