114 lines
2.8 KiB
C++

#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<CardSerialPair>& 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<S7Command*>& vecs);
void GetAlarmState(SignalState& signalState);
bool CheckPrintMoldReady();
private:
static void CheckIO_V0(vector<string>& 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;
};