#pragma once #include "machine.h" class HBD1200 :public Machine { public: enum LoadInResult { In_NoResult = 0, In_Intercept, In_Success, In_CylinderDisconnectCleanBoxError, In_CylinderReachPrintError, In_CylinderPrintLoadError, In_MoldConnectCylinderError }; enum LoadInProcStep { In_Start = 0, In_CylinderDisconnectCleanBox, In_CylinderReachPrint, In_CylinderPrintLoad, In_MoldConnectCylinder }; enum LoadOutResult { Out_NoResult = 0, Out_Intercept, Out_Success, Out_MoldDisconnectCylinderError, Out_CylinderPrintUnloadError, Out_CylinderReachCleanError, Out_CylinderConnectCleanBoxError, Out_CylinderReachHandError, Out_CylinderDisconnectCleanBoxError }; enum LoadOutProcStep { Out_Start = 0, Out_MoldDisconnectCylinder, Out_CylinderPrintUnload, Out_CylinderReachClean, Out_CylinderConnectCleanBox, Out_CylinderReachHand, Out_CylinderDisconnectCleanBox }; enum CylinderState { CylinderInMid = 0, CylinderInPrintUnLoaded, CylinderInPrintLoaded, CylinderInCleanUnConnectBox, CylinderInCleanConnectedBox, CylinderInHand }; HBD1200(MachineTypeCfg::MachineTypeId type); ~HBD1200(); AxisCfg* CreateMoldAxisCfg(); AxisCfg* CreateLoadAxisCfg(); AxisCfg* CreateArmAxisCfg(); AxisCfg* CreateSupplyAxisCfg(); AxisCfg* CreateCleanAxisCfg(); AxisCfg* CreateEleAxisCfg(); void DrawSignal(bool* isshow); void DrawAxisCfg(); void DrawPowderCtrl(bool* winShow); void DrawAnalogExt(); void DrawServoState(bool* winShow); //virtual void GetDebugRTC(vector& vec) { // CardSerialPair pair; // pair.cardNo = 1; // pair.serialNo = 123456; // vec.push_back(pair); // CardSerialPair pair2; // pair2.cardNo = 2; // pair2.serialNo = 234567; // vec.push_back(pair2); //} void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc); void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc); void InitPLCCommand(vector& vecs); //void GetAlarmState(SignalState& signalState); //bool CheckPrintMoldReady(); private: static void CheckIO_V0(vector& ins, IOCfgWrapper* iocfgWrapper, string str, int type); static void ProcReadPLC(void* pobject, Command* pcommand); static void ProcReadPLCData(void* pobject, Command* pcommand); void LoadInRun() {} void LoadOutRun() {} bool IsLoadAxisCanMoveLeft(); string GetLoadAxisCanotMoveLeftInfo(); bool IsLoadAxisCanMoveRight(); string GetLoadAxisCanotMoveRightInfo(); bool IsArmCanMoveBack(); string GetArmCanotMoveBackInfo(); bool IsArmCanMoveFront(); string GetArmCanotMoveFrontInfo(); bool IsMoldCanMoveUp(); bool IsMoldCanMoveDown(); string GetMoldCanotUpInfo(); string GetMoldCanotDownInfo(); public: static const int IO_V0; private: static const unsigned int READ_INFO_ITEM_COUNT = 6; static const unsigned int READ_DATA_ITEM_COUNT = 1; };