123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #pragma once
- #include "CModule.h"
- #include "CRCalib.h"
- #include "CNozzleTable.h"
- #include "CEjector.h"
- #include "CTransferTable.h"
- #include "CForceControl.h"
- #include "CMatrixCommon.h"
- class __declspec(dllexport) CWaferHead :
- public CModule
- {
- public:
- CWaferHead(MODULE_LIST eModuleType);
- ~CWaferHead();
- virtual void SetDataChangFunction() override;
- virtual LONG SetParam() override;
- virtual LONG GetParam() override;
- virtual LONG ToHome() override;
- virtual LONG Sync() override;
- virtual LONG ToSafePosition() override;
- virtual LONG InitResource() override;
- virtual void DataChangNotice(string strDbName, string strTableName) override;
- virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
- virtual LONG AllocateIo(vector<CIO*> vecIo) override;
- ULONG GetCurrentBondIndex() {return m_iCurrentBondIndex;}
- void SetCurrentBondIndex(ULONG index) { m_iCurrentBondIndex = index; }
- void SetZEPZCoord(CCoord* crd) { m_pZEPZCoord = crd; }
- void SetXYCoord(CCoord* crd) { m_pXYCrd = crd; }
- void SetNozzleTable(CNozzleTable* nozzleTable) { m_pNozzleTable = nozzleTable; }
- void SetEjector(CEjector* ej) { m_pEjector = ej; }
- void SetTransferTable(CTransferTable* tt) { m_pTransferTable = tt; }
- void SetForceControl(CForceControl* force) { m_pForceControl = force; }
-
-
- LONG ChangeNozzle(int nozzleIndex);
- LONG UnLoadNozzle();
- LONG LoadNozzle(int nozzleIndex);
-
- LONG CheckDieExistStatus(bool& bExist);
- LONG VacuumOn(LONG lDelay);
- LONG VacuumOff(LONG lDelay);
- LONG UpdateForce(double dForce);
- LONG FindForce(double dForce);
-
-
-
- LONG PickDie(int dieIndex, bool bSync);
- LONG XYZToPrePickPos(int dieIndex, bool bSync);
- LONG ZSlowToPickPos(int dieIndex, bool bSync);
- LONG PlaceDie(int dieIndex, bool bSync);
- LONG XYZToPrePlacePos(int dieIndex, bool bSync);
- LONG ZSlowToPlacePos(int dieIndex, bool bSync);
-
- LONG PickDie(bool bSync) { return PickDie(m_iCurrentBondIndex, bSync); };
- LONG XYZToPrePickPos(bool bSync) { return XYZToPrePickPos(m_iCurrentBondIndex, bSync); };
- LONG ZSlowToPickPos(bool bSync) { return ZSlowToPickPos(m_iCurrentBondIndex, bSync); };
- LONG PlaceDie(bool bSync) { return PlaceDie(m_iCurrentBondIndex, bSync); };
- LONG XYZToPrePlacePos(bool bSync) { return XYZToPrePlacePos(m_iCurrentBondIndex, bSync); };
- LONG ZSlowToPlacePos(bool bSync) { return ZSlowToPlacePos(m_iCurrentBondIndex, bSync); };
-
- LONG ZUpToInitPos(bool waitDone);
-
-
-
- private:
-
- UINT m_iCurrentBondIndex = NONE_POINT_INDEX;
-
- PICK_STATUS m_ePickDieStatus = PICK_STATUS::NO_PICK;
-
- CAxis* m_pYAxis = nullptr;
- CAxis* m_pZAxis = nullptr;
- CIO* m_pForcerDO = nullptr;
- CIO* m_pForcerAO = nullptr;
-
- CCoord* m_pZEPZCoord = nullptr;
- CCoord* m_pXYCrd = nullptr;
- CIO* m_pVacGpo = nullptr;
- CIO* m_pFlowGpo = nullptr;
- CIO* m_pVacGpi = nullptr;
- CIO* m_pFlowGpi = nullptr;
- CPRStrategy* m_pPR = nullptr;
- CNozzleTable* m_pNozzleTable = nullptr;
- CEjector* m_pEjector = nullptr;
- CTransferTable* m_pTransferTable = nullptr;
- CForceControl* m_pForceControl = nullptr;
- CBondMatrix* m_pBondMatrix = nullptr;
-
-
- double m_dSafePosX = 0;
- double m_dSafePosY = 0;
- double m_dSafePosZ = 0;
- double m_dInitPosR = 0;
- double m_dPickPosX = 0;
- double m_dPickPosY = 0;
- double m_dPlacePosX = 0;
- double m_dPlacePosY = 0;
- double m_dEjHightPos = 0;
- double m_dEjContactPos = 0;
- double m_dYTrigZToBond = 0;
- double m_dYTrigZToPick = 0;
- double m_dZTrigYToPick = 0;
- double m_dZTrigYToBond = 0;
- double m_dPreChangeNozzleDisY = 0;
- double m_dNozzlePosX = 0;
- double m_dNozzlePosY = 0;
- double m_dNozzlePosZ = 0;
-
- int m_nTipUsedNum = 0;
- int m_nTipUsedMaxNum = 0;
- int m_nCurNozzleIndex;
-
- double m_dPickSlowVel = 0;
- double m_dPlaceSlowVel = 0;
- double m_dSearchForce = 0;
- double m_dHoldForce = 0;
- int m_nEjUpDelay = 0;
- double m_dGivenForceZPos = 0;
- double m_dNozzleTableOriginPosX = 0;
- double m_dNozzleTableOriginPosY = 0;
- };
|