|
|
|
|
#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>
|