#pragma once #include "CModule.h" class __declspec(dllexport) CEjector : public CModule { typedef struct { XY_DOUBLE_STRUCT stSaftPosition; //��������ȫλ�� DOUBLE iSaftLev; //��������ȫ�߶� DOUBLE iSaftLev_Ejector; //���밲ȫ�߶� XY_DOUBLE_STRUCT stWorkPosition; //����������λ�� DOUBLE iWorkLev; //�����������߶� DOUBLE iWorkLev_Ejector; //���빤���߶� bool bUseEjectorSync; //�Ƿ�ʹ�ö���ͬ�� DOUBLE lEjectorSyncHeight; //��ͬ���߶� } EJECTOR_CONFIG_STRUCT; //����������� public: CEjector(MODULE_LIST eModuleType); ~CEjector(){} virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override; virtual LONG AllocateIo(vector<CIO*> vecIo) override; virtual LONG ToHome() override; virtual LONG ToSafePosition() override; // // LONG EjectorSynchronous(CBondHead* pArmHead); //������ȥ��ȫλ�� //LONG MoveToSafePosition(bool sync = SYNC); //������ȥ����λ�� LONG MoveToWorkPosition(bool sync = SYNC); //������ȥ��ȫ�߶� LONG MoveToSafeLev(bool sync = SYNC); //������ȥ�����߶� LONG MoveToWorkLev(bool sync = SYNC); //����ȥ��ȫ�߶� LONG MoveToEjectorSafeLev(bool sync = SYNC); //����ȥ�����߶� LONG MoveToEjectorWorkLev(bool sync = SYNC); //�ȴ�����ģ�鵽λ LONG Sync(); //����� LONG VacuumOn(); //�ر���� LONG VacuumOff(); private: //ָ�� CAxis* m_pXAxis = nullptr; CAxis* m_pYAxis = nullptr; CAxis* m_pZAxis = nullptr; //��Z CAxis* m_pAxisPinZ = nullptr; //����Z CIO* m_pIoVacuum = nullptr; static UINT iEjectorUseNum; //����ʹ�ô��� static UINT iEjectorMaxNum; //�������ʹ�ô��� CModuleConfig* m_pModuleConfigDB = nullptr; EJECTOR_CONFIG_STRUCT m_stEjectorConfig; //����������� void DataChangNotice(string strDbName, string strTableName); virtual void SetDataChangFunction() override; virtual LONG SetParam() override;//�������ò��� virtual LONG GetParam() override;//�������ò��� virtual LONG InitResource() override; //�����ᡢIO���궨����Դ };