123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #pragma once
- #include "CModule.h"
- #include "OneDimMatrix.h"
- #include <map>
- /*
- 认为更换吸嘴不重新标定需保存吸嘴对应参数,若认为重新标定,可以不保存多套数据,每个吸嘴对应标定流程:
- 1、标定旋转中心,将旋转中心保存到吸嘴参数中。
- 2、CTD标定前从吸嘴处获取旋转中心,并标定得到CTD,保存到吸嘴参数中。
- */
- class CNozzleTable :
- public CModule
- {
- // struct NozzleParam
- // {
- // CIO* m_pNozzleExistDi = nullptr;//检测吸嘴存在的IO
- // NozzleCalibParam stCalibParam;
- // //XY_DOUBLE_STRUCT stRotCenter = { 0,0 }; //吸嘴对应的旋转中心X
- // //XY_DOUBLE_STRUCT stBHHighCameraToNozzle = { 0,0 };
- // //XY_DOUBLE_STRUCT stBHLowCameraToNozzle = { 0,0 };
- // //bool bIsRotationCalib = false; //已校准标记
- // //bool bIsHighCTDCalib = false; //已校准标记
- //// double dRotCenterY = 0; //吸嘴对应的旋转中心X
- //// double dRotCenterX = 0; //吸嘴对应的旋转中心Y
- ////
- //// double dCameraToNozzleX = 0; //相机到吸嘴的距离
- //// double dCameraToNozzleY = 0; //相机到吸嘴的距离
- //// double dPos = 0; //吸嘴位置
- // };
- public:
- CNozzleTable(MODULE_LIST eModuleType);
- ~CNozzleTable();
- virtual void SetDataChangFunction() override;
- virtual void DataChangNotice(string strDbName, string strTableName) 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 LONG AllocateIo(vector<CIO*> vecIo) override;
- virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
- void SetYAxis(CAxis* axis) { m_pAxisY = axis; }
- void SetCylDo(CIO* output) { m_pCylDo = output; }
- void SetCylNDi(CIO* input) { m_pCylNDi = input; }
- void SetCylPDi(CIO* input) { m_pCylPDi = input; }
- //void SetNozzleExistDi(int index, CIO* input){
- // m_mapNozzleParam[index].m_pNozzleExistDi = input;
- //}
- //LONG GetBHLookUpTempID(int nozzleIndex, int& lookUpTempID);
- //LONG GetBHLowCTDTempID(int nozzleIndex, int& lookUpTempID);
- //LONG SetCTDLookUpTempID(int nozzleIndex, int lookUpTempID);
- //LONG SetBHHighCTDBondTempID(int nozzleIndex, int bondTempID);
- //LONG SetBHLowCTDBondTempID(int nozzleIndex, int bondTempID);
- //LONG GetBHRCalibTempID(int nozzleIndex, int& tempID);
- //LONG SetBHRCalibTempID(int nozzleIndex, int tempID);
- //LONG GetWHCTDNozzleTempID(int nozzleIndex, int& tempID);
- //LONG SetWHCTDNozzleTempID(int nozzleIndex, int tempID);
- //LONG GetBHRotCenter(int index, XY_DOUBLE_STRUCT& center);
- //LONG SetNozzleRotCenter(int index, XY_DOUBLE_STRUCT center);
- //LONG SetBHHighCameraToNozzle(int index, XY_DOUBLE_STRUCT CameraToNozzle);
- //LONG SetBHLowCameraToNozzle(int index, XY_DOUBLE_STRUCT CameraToNozzle);
- //LONG GetBHHighCameraToNozzle(int index, XY_DOUBLE_STRUCT& dis);
- //LONG GetBHLowCameraToNozzle(int index, XY_DOUBLE_STRUCT& dis);
- //LONG SetWHCameraToNozzle(int index, XY_DOUBLE_STRUCT cameraToNozzle);
- //LONG GetWHCameraToNozzle(int index, XY_DOUBLE_STRUCT& cameraToNozzle);
- LONG GetNozzlePos(int index, XY_DOUBLE_STRUCT& position);
- // 更换吸嘴
- LONG CheckNozzleExist(int index, bool exist);//待实现
- LONG MoveToChangePos(bool waitDone = true);
- LONG MoveToWaitPos(bool waitDone = true);
- LONG CylLoadNozzle(bool waitDone = true);
- LONG CylUnLoadNozzle(bool waitDone = true);
- bool CheckCylLoadDone();
- bool CheckCylUnloadDone();
- LONG WaitCylDone();
- private:
- //std::map<int, NozzleParam> m_mapNozzleParam;//key为index,value为位置X
- //OneDimMatrix* m_pTipPosMatrix = nullptr; //吸嘴位置
- CAxis* m_pAxisY = nullptr;
- CIO* m_pCylDo = nullptr;
- CIO* m_pCylNDi = nullptr;//负向
- CIO* m_pCylPDi = nullptr;//正向
- //CIO* m_pNozzleExistDi = nullptr;//检测吸嘴存在的IO
- CMachineCalibration* m_pCalibrationDB = nullptr;
- //参数
- double m_dWaitPosY = 0;
- double m_dChangePosY = 0;
- };
|