12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #pragma once
- #include "CModule.h"
- class 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、标定等资源
- };
|