You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
4.4 KiB
C

#pragma once
#include "CommPortMgr.h"
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum ETrackWorkStep
{
_ETrack_Step_NULL = 0,
_ETrack_Step_Stop,//ֹͣ״̬1
_ETrack_Step_Reset_Load_Request,//<2F><>λ<EFBFBD><CEBB><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>2
_ETrack_Step_Load,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
_ETrack_Step_Load_End,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4
_ETrack_Step_Load_Stop,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ֹͣ5
_ETrack_Step_Load_Err,//<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>6
_ETrack_Step_To_Wait_Pos,//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ȴ<EFBFBD>λ<EFBFBD><CEBB>7
_ETrack_Step_Mark_Waiting,//<2F>ȴ<EFBFBD><C8B4>ӹ<EFBFBD><D3B9><EFBFBD>8
_ETrack_Step_Catch_mark,//ץȡ<D7A5><C8A1>λ9
_ETrack_Step_Catch_mark_End,//ץȡ<D7A5><C8A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>10
_ETrack_Step_Catch_mark_Err,//ץȡ<D7A5><C8A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>11
_ETrack_Step_Marking,//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>12
_ETrack_Step_Mark_Stop,//<2F>ӹ<EFBFBD>ֹͣ13
_ETrack_Step_Mark_Err,//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>14
_ETrack_Step_Mark_End,//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>15
_ETrack_Step_Throw_Edge,//ȥ<>߿<EFBFBD>16
_ETrack_Step_Throw_Edge_End,//ȥ<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD>17
_ETrack_Step_Throw_Edge_Stop,//ȥ<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ֹͣ18
_ETrack_Step_Throw_Edge_Err,//ȥ<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD>19
_ETrack_Step_Unload,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20
_ETrack_Step_Unload_End,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>21
_ETrack_Step_Unload_Err,//<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>22
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum ETrackType
{
_ETrackType_NULL=0,//
_ETrackType_Track_1,//<2F><><EFBFBD><EFBFBD>1
_ETrackType_Track_2,//<2F><><EFBFBD><EFBFBD>1
};
//<2F><><EFBFBD>͸<EFBFBD>plc ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum ETrackPlcCmd
{
_ETrack_PlcCmd_Auto_Start = 0,//<2F>Զ<EFBFBD><D4B6><EFBFBD>ʼ
_ETrack_PlcCmd_Auto_End,//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Load,//<2F><><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Unload,//<2F><><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Open_Product,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Close_Product,//<2F>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Cancel_Unload,//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Vac_Sorb_On,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Vac_Sorb_Off,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Red_Alam_On,//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ETrack_PlcCmd_Red_Alam_Off,//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class CTrackWorkFlow
{
public:
CTrackWorkFlow(CString Name);
~CTrackWorkFlow(void);
void SetComPar(int Port,int BaudRate);
void WorkFlowStart();
void WorkFlowCtrl();
void ExecuteCurStep();
bool StartAutoWork();
void StopAutoWork();
void ReadPlcMsg();
void ManualOperation(ETrackWorkStep TrackWorkStep);
bool IsbAutoWorking(){return m_bAutoWorking;};
void SetCurTrackWorkStep(ETrackWorkStep Step);
ETrackWorkStep GetCurTrackWorkStep(){return m_CurWorkStep;};
int GetCurTrackWorkStepInt(){return (int)m_CurWorkStep;};
void SendAutoStartFlg(bool bStart);
void ProductCarrierOpenClose(bool bOpen);
void VacSorbOnOff(bool bOn);
void RadAlamOnOff(bool bOn);
int GetCutProductCnt(){return m_CutProductCnt;};
void ReadRecordTimesFromFile();
void ResetRecordTimes();
bool SendMsgToPlc(ETrackPlcCmd PlcCmd,bool bStopReadMsg);
void MoveMotorYToSafePos();
void CancelUnloadRequest();
void SetbCircleStop(bool b){m_bCircleStop = b;};
private:
void Load();
void MoveToWaitPos();
void MoveToPos(ETrackWorkStep WorkStep);
void MarkProcess();
bool MarkProcessExt();
void ReadPlcMsgExt();
void AnalyzeRecvCmd(char *buf,int len);
void ThrowEdge();
void UnLoad();
void CatchMark();
void ChangePlatXYGroupIdx();
CString GetSendPlcMsgStr(ETrackPlcCmd PlcCmd);
void WriteRecordTimesToFile();
CString GetRecordFilePath();
private:
CCommPortMgr m_TrackCOM;//ͨ<><CDA8><EFBFBD>õĴ<C3B5><C4B4>ڹ<EFBFBD><DAB9><EFBFBD>
int m_ComPort;//ͨ<><CDA8><EFBFBD>ô<EFBFBD><C3B4>ں<EFBFBD>
int m_ComBaudRate;//ͨ<><CDA8><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>
bool m_bStopReadMsg;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ͣ<EFBFBD><CDA3>ȡplc <20><>Ϣ
int m_ReadMsgDelay;//<2F><>ȡplc <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʱms
ETrackType m_TrackType;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ETrackWorkStep m_CurWorkStep;//<2F><>ǰ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ETrackWorkStep m_OldWorkStep;//֮ǰ<D6AE>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>仯)
CString m_TrackName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool m_bAutoWorking;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ӹ<EFBFBD>
int m_ProductIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>Ʒ<EFBFBD><C6B7>λ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
bool m_bLoadProduct;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>load <20>˲<EFBFBD>Ʒ
int m_CutProductCnt;//<2F>и<EFBFBD><D0B8><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool m_bCircleStop;//<2F><>ǰѭ<C7B0><D1AD><EFBFBD><EFBFBD>ֹͣ
};
extern CTrackWorkFlow gTrackWorkFlow1;//<2F><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>
extern CTrackWorkFlow gTrackWorkFlow2;//<2F><><EFBFBD><EFBFBD>2 <20><><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>