#pragma once #include "CModule.h" #include "CCylinder.h" class __declspec(dllexport) CTransporter : public CModule { public: CTransporter(MODULE_LIST eModuleType); ~CTransporter(); virtual LONG AllocateAxis(vector vecAxis); virtual LONG AllocateIo(vector vecIo); virtual LONG ToHome() ; virtual LONG ToSafePosition(); virtual LONG GetParam(); virtual void SetDataChangFunction(); virtual LONG SetParam(); virtual LONG InitResource(); virtual void DataChangNotice(string strDbName, string strTableName) ; virtual LONG Sync(); //等待传感器信号 LONG WaitSensor(CIO* sensor); //勾料 LONG PullFeed(); LONG FeedToWorkPos(); LONG FeedToPushPos(); LONG PushFeed(); private: //勾料气缸 CIO* m_pPullXDo = nullptr; CIO* m_pPullXNegDi = nullptr; CIO* m_pPullXPosDi = nullptr; //勾料顶升气缸 CIO* m_pPullZDo = nullptr; CIO* m_pPullZNegDi = nullptr; CIO* m_pPullZPosDi = nullptr; //勾料阻挡气缸 CIO* m_pPullBlockDo = nullptr; CIO* m_pPullBlockNegDi = nullptr; CIO* m_pPullBlockPosDi = nullptr; //工作位阻挡气缸 CIO* m_pWorkBlockDo = nullptr; CIO* m_pWorkBlockNegDi = nullptr; CIO* m_pWorkBlockPosDi = nullptr; //推料气缸 CIO* m_pPushXDo = nullptr; CIO* m_pPushXNegDi = nullptr; CIO* m_pPushXPosDi = nullptr; //推料顶升气缸 CIO* m_pPushZDo = nullptr; CIO* m_pPushZNegDi = nullptr; CIO* m_pPushZPosDi = nullptr; //推料阻挡气缸 CIO* m_pPushBlockDo = nullptr; CIO* m_pPushBlockNegDi = nullptr; CIO* m_pPushBlockPosDi = nullptr; //步进轴绝对运动 实际是相对运动 //工位一 勾料步进电机,将料从勾料处传送到 CAxis* m_pPullStepAxis = nullptr; //工位二 工位步进电机,获取料以及传送料 CAxis* m_pWorkStepAxis = nullptr; //工位三 推料步进电机 将料输送到推料位 CAxis* m_pPushStepAxis = nullptr; //入料检测信号 CIO* m_pFeedInputExistDi = nullptr; //勾料到位信号 CIO* m_pPullArriveDi = nullptr; //料到达工作位信号 CIO* m_pWorkArriveDi = nullptr; //推料到位信号 CIO* m_pPushArriveDi = nullptr; //出料检测信号 CIO* m_pFeedOutputExistDi = nullptr; CCylinder* m_pPullXCyl = nullptr; CCylinder* m_pPullZCyl = nullptr; CCylinder* m_pPullBlockCyl = nullptr; //!!!注意顶升气缸上升才能移动推料气缸 CCylinder* m_pPushXCyl = nullptr; CCylinder* m_pPushZCyl = nullptr; CCylinder* m_pPushBlockCyl = nullptr; CCylinder* m_pWorkBlockCyl = nullptr; double m_dPullDis = 0; double m_dWorkPullDis = 0; double m_dWorkStationPushDis = 0; double m_dPushDis = 0; };