118 lines
3.4 KiB
C
Raw Normal View History

2024-03-19 17:45:12 +08:00
#pragma once
#include "Machine.h"
class HBD1000 :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
};
enum LoadOutProcStep {
Out_Start = 0,
Out_MoldDisconnectCylinder,
Out_CylinderPrintUnload,
Out_CylinderReachClean,
Out_CylinderConnectCleanBox
};
enum CylinderState
{
CylinderInMid = 0,
CylinderInPrintUnLoaded,
CylinderInPrintLoaded,
CylinderInCleanOutsidePlatformUnConnectBox,
CylinderInCleanOutsidePlatformConnectedBox,
CylinderInCleanInsidePlatformUnConnectBox,
CylinderInCleanInsidePlatformConnectedBox
};
HBD1000(MachineTypeCfg::MachineTypeId type);
~HBD1000();
//void CheckIO_NEW(vector<string>&ins, IOCfgWrapper* iocfgWrapper);
AxisCfg* CreateMoldAxisCfg();
AxisCfg* CreateLoadAxisCfg();
AxisCfg* CreateArmAxisCfg();
AxisCfg* CreateSupplyAxisCfg();
AxisCfg* CreateCleanAxisCfg();
2024-03-25 13:22:32 +08:00
//void DrawSignal(bool* isshow);
//void DrawAxisCfg();
2024-03-19 17:45:12 +08:00
2024-03-25 13:22:32 +08:00
//void DrawPowderCtrl(bool* winShow);
//void DrawServoState(bool* winShow);
2024-03-19 17:45:12 +08:00
2024-03-25 13:22:32 +08:00
void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc);
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
2024-03-19 17:45:12 +08:00
void InitPLCCommand(vector<S7Command*>& vecs);
2024-03-25 13:22:32 +08:00
void GetAlarmState(SignalState& signalState);
bool CheckPrintMoldReady();
2024-03-19 17:45:12 +08:00
2024-03-25 13:22:32 +08:00
bool CheckPrintHigh(float jobhigh);
2024-03-19 17:45:12 +08:00
2024-04-07 17:09:01 +08:00
//void LoadAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool isStart); //移栽轴运动
//void SupplyAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool isStart); //供粉轴运动
//void PrintAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool isStart); //成型缸运动
//void ArmAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool isStart); //铺粉轴运动
2024-03-19 17:45:12 +08:00
private:
static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void CheckIO_V1(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void CheckIO_V2(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void CheckIO_V3(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void CheckIO_V4(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void ProcReadPLC(void* pobject, Command* pcommand);
2024-03-22 11:28:06 +08:00
static void ProcReadPLCData(void* pobject, Command* pcommand);
2024-03-19 17:45:12 +08:00
bool IsLoadAxisCanMoveLeft();
string GetLoadAxisCanotMoveLeftInfo();
bool IsLoadAxisCanMoveRight();
string GetLoadAxisCanotMoveRightInfo();
bool IsArmCanMoveBack();
string GetArmCanotMoveBackInfo();
bool IsArmCanMoveFront();
string GetArmCanotMoveFrontInfo();
bool IsMoldCanMoveUp();
bool IsMoldCanMoveDown();
string GetMoldCanotUpInfo();
string GetMoldCanotDownInfo();
2024-03-25 13:22:32 +08:00
void LoadInRun();
void LoadOutRun();
2024-04-07 17:09:01 +08:00
2024-03-19 17:45:12 +08:00
public:
static const int IO_V0;
static const int IO_V1;
static const int IO_V2;
static const int IO_V3;
static const int IO_V4;
private:
static const unsigned int READ_INFO_ITEM_COUNT = 7;
static const unsigned int READ_DATA_ITEM_COUNT = 1;
};