#pragma once /* 1、模组基类 方向:X轴向右为正,Y轴向里为正,Z轴向下为正 */ #include "CAxis.h" #include "CAxis.h" #include "CIO.h" #include #include #include #include "dt.h" #include "CBondMatrix.h" #include "CResources.h" #include "CCoord.h" #include "CError.h" #include "FHConvert.h" #include "CLog.h" #include "SystemResources.h" #include "CHardwareList.h" using namespace std; using namespace ns_db; #pragma region 轴定义 //超声头 #define CUltraHead_X "UltraHead_X" #define CUltraHead_Y "UltraHead_Y" #define CUltraHead_Z "UltraHead_Z" #define CUltraHead_R "UltraHead_R" #define CUltraHead_Force "UltraHead_Force" #define BDX "BDX" #define BDY "BDY" #define BDZ "BDZ" #define BDR "BDR" #define BDForceZ "BDForceZ" #define WaferHeadX "WaferHeadX" #define WaferHeadY "WaferHeadY" #define WaferHeadZ "WaferHeadZ" #define WaferHeadForceZ "WaferHeadForceZ" #define WaffleHeadX "WaffleHeadX" #define WaffleHeadY "WaffleHeadY" #define WaffleHeadZ "WaffleHeadZ" ///吸嘴架///吸嘴架 #define NuzzleAxisY "NuzzleAxisY" //中转台//中转台 #define WaferCalibTableX "WaferCalibTableX" #define WaffleCalibTableX "WaffleCalibTableX" //WaferTalbe//WaferTalbe #define WaferTable_X "WaferTable_X" #define WaferTable_Y "WaferTable_Y" #define WaferTable_Z "WaferTable_Z" #define WaferTable_R "WaferTable_R" //BondTable//BondTable #define BondTableZ "BondTableZ" //顶针//顶针 #define EjectorX "EjectorX" #define EjectorY "EjectorY" #define EjectorZ "EjectorZ" #define EjectorPinZ "EjectorPinZ" #pragma endregion enum USE_TYPE { NOUSE = 0, DIAGNOSIS = 1, USE = 2 }; enum IO_LIST { BDVacDi, BDFlowDi, WaferHeadVacDi, WaferHeadFlowDi, WaferHeadFlowDo, WaffleHeadVacDi, WaffleHeadFlowDi, //BondTable PcbArriveDi, PcbLeaveDi, BondTableDo, //吸嘴架 NozzleCylNDi, NozzleCylPDi, NozzleExistDi1, NozzleExistDi2, NozzleExistDi3, NozzleExistDi4, NozzleExistDi5, NozzleExistDi6, NozzleExistDi7, NozzleExistDi8, NozzleExistDi9, NozzleExistDi10, NozzleExistDi11, NozzleExistDi12, BDVacDo, BDFlowDo, WaferHeadVacDo, WaffleHeadVacDo, WaffleHeadFlowDo, //中转台 WaferCalibVacDo, WaffleCalibVacDo, BDTableVacGpo, NozzleCylDo, WaferTable_Ring, EjectorVacDo, //超声 UltraHeadDo, }; class __declspec(dllexport) CModule { public: CModule(MODULE_LIST eModuleType); LONG Init(); bool IsInitSuccess() {return m_bIsInitSuccess;} LONG GetModuleType() const { return m_nModuleType; } string GetModuleName() const { return m_strModuleName; } virtual LONG AllocateIo(vector vecIo) { return OK; }; virtual LONG AllocateAxis(vector vecAxis) { return OK; }; virtual LONG GetParam() = 0; //获取配置参数 virtual LONG SetParam() = 0; //设置配置参数 virtual LONG ToHome() = 0; //模组回零 virtual LONG Sync() = 0; //等待到位 virtual LONG ToSafePosition() = 0; //模组去安全位置 virtual LONG InitResource() = 0; //分配轴、IO、标定等资源 virtual void SetDataChangFunction() = 0; //设置收到数据更改通知后处理函数,绑定回调函数 virtual void DataChangNotice(string strDbName, string strTableName) = 0; //回调触发处理函数 LONG SaveDataToDB(); protected: vector* GetConfigVector() { return &m_vecConfig; } protected: CManageDB* m_pCManageDB = nullptr; CModuleConfig* m_pModuleConfigDB = nullptr; CHardware* m_pCHardware = nullptr; vector m_vecConfig; vector m_vecAxis; bool m_bIsInitSuccess = false; INT m_nModuleType = 0; string m_strModuleName = ""; //模组是否启用 bool m_bEnable = false; };