|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
|
|
static const int COM_BUF_LEN = 128; //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>buf <20>ij<EFBFBD><C4B3><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
static int LOADPORT_LEFT = 0;
|
|
|
|
|
|
static int LOADPORT_CENTER = 1;
|
|
|
|
|
|
static int LOADPORT_RIGHT = 2;
|
|
|
|
|
|
|
|
|
|
|
|
enum eTransferType
|
|
|
|
|
|
{
|
|
|
|
|
|
_Transfer_Null = 0,
|
|
|
|
|
|
_Transfer_Init,
|
|
|
|
|
|
_Transfer_Scan, //<2F>Ϻ<EFBFBD>ɨ<EFBFBD><C9A8>
|
|
|
|
|
|
_Transfer_Grab_Wafer, //ȡ<><C8A1>
|
|
|
|
|
|
_Transfer_Arm1ToAlign_Wafer, //ֱ
|
|
|
|
|
|
_Transfer_Aligner_Wafer, //ֱ
|
|
|
|
|
|
_Transfer_AlignToArm2_Wafer,
|
|
|
|
|
|
_Transfer_ToPlat_Wafer, //<2F><>ƽ̨
|
|
|
|
|
|
_Transfer_PlatToArm2_Wafer,
|
|
|
|
|
|
_Transfer_Arm2ToAligner_Wafer,
|
|
|
|
|
|
_Transfer_Aligner2_Wafer,//ƽ̨<C6BD><CCA8>ֱ
|
|
|
|
|
|
_Transfer_AlignToArm1_Wafer,
|
|
|
|
|
|
_Transfer_Upper_Wafer, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
_Transfer_ReadRfd, //<2F><>ȡRfd
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//cmd <20>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
enum eRobotCmdSendType
|
|
|
|
|
|
{
|
|
|
|
|
|
_RobotCmdSendType_SendOnly = 0,//ֻ<><D6BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmdSendType_WaitFeedback,//<2F><><EFBFBD>ͺ<EFBFBD>ֻ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><
|
|
|
|
|
|
_RobotCmdSendType_WaitCmdEnd,//<2F>ȴ<EFBFBD>cmdִ<64><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>< <20><><EFBFBD><EFBFBD>cmd <20><>ͬstr)
|
|
|
|
|
|
_RobotCmdSendType_ImmediateReadFeedback,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>(ͬ<><CDAC>)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>robot <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν)
|
|
|
|
|
|
enum eRobotCmdType
|
|
|
|
|
|
{
|
|
|
|
|
|
_RobotCmd_TransferWafer = 0,//<2F><><EFBFBD><EFBFBD>wafer
|
|
|
|
|
|
_RobotCmd_ToWaitPos,//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ȴ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
_RobotCmd_Org,//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><F3A3ACB2>һ<EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
|
_RobotCmd_ResetErr,//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
_RobotCmd_QueryState,//<2F><>ѯ״̬
|
|
|
|
|
|
_RobotCmd_QueryCoord1,//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>1
|
|
|
|
|
|
_RobotCmd_QueryCoord2,//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>2
|
|
|
|
|
|
_RobotCmd_QueryCoord3,//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>3
|
|
|
|
|
|
_RobotCmd_Sevon,//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Arm1VacOff,//arm1<6D><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Arm2VacOff,//arm2<6D><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Arm1Arm2MergePos,//Arm1<6D><31>Arm2<6D>ϲ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
_RobotCmd_AlignerExt,//ֱִ<D6B1><D6B4>
|
|
|
|
|
|
_RobotCmd_AlignerOrg,//ֱorg
|
|
|
|
|
|
_RobotCmd_AlignerTakeStation,//ȡ<><C8A1>λ<EFBFBD><CEBB>
|
|
|
|
|
|
_RobotCmd_AlignerVacOn,
|
|
|
|
|
|
_RobotCmd_AlignerVacOff,
|
|
|
|
|
|
_RobotCmd_AlignerSetPar,//<2F><><EFBFBD>ýǶ<C3BD>
|
|
|
|
|
|
_RobotCmd_Arm1VacOn,//arm1<6D><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Arm2VacOn,//arm2<6D><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_InitSet,//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Port1Org,//org
|
|
|
|
|
|
_RobotCmd_Port2Org,//org
|
|
|
|
|
|
_RobotCmd_AdsVacOn,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_AdsVacOff,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
_RobotCmd_Arm_Check,//<2F><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>Ƿ<EFBFBD><C7B7><EFBFBD>Ƭ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_RobotCmd_Init_Align,
|
|
|
|
|
|
_RobotCmd_Do_align,
|
|
|
|
|
|
_RObotCmd_Switch_bank,
|
|
|
|
|
|
_RobotCmd_Check_ARM_EXIST_WAFER,
|
|
|
|
|
|
|
|
|
|
|
|
_RObotCmd_RotateToWaferIdPos,
|
|
|
|
|
|
|
|
|
|
|
|
_RobotCmd_RunToCassMappingPoint,
|
|
|
|
|
|
_RobotCmd_Mapping,
|
|
|
|
|
|
_RobotCmd_ReadMappingData,
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum eWaferPosType
|
|
|
|
|
|
{
|
|
|
|
|
|
_WaferPos_Null = 0,
|
|
|
|
|
|
_WaferPos_Arm1,
|
|
|
|
|
|
_WaferPos_Arm2,
|
|
|
|
|
|
_WaferPos_Cassette,
|
|
|
|
|
|
_WaferPos_Aligner,
|
|
|
|
|
|
_WaferPos_HotPlate,
|
|
|
|
|
|
_WaferPos_WaitPos,
|
|
|
|
|
|
_WaferPos_Special,
|
|
|
|
|
|
_WaferPos_AnnealExt,
|
|
|
|
|
|
_WaferPos_Max,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class _declspec(dllexport) CRobotCmdInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CRobotCmdInfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_WaitCmdTime = 1;//<2F>ȴ<EFBFBD>cmd ʱ<><CAB1>s
|
|
|
|
|
|
m_RobotCmdSendType = _RobotCmdSendType_SendOnly;
|
|
|
|
|
|
};
|
|
|
|
|
|
public:
|
|
|
|
|
|
eRobotCmdType m_RobotCmdType;//robot <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//_RobotCmd_TransferWafer <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD>
|
|
|
|
|
|
eWaferPosType m_FromPos;//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
|
|
|
|
|
|
eWaferPosType m_ToPos;//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>յ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
int m_cassIndex;
|
|
|
|
|
|
int m_Slot;//<2F>ƶ<EFBFBD>wafer <20><>slot (<28><><EFBFBD><EFBFBD>cassette <20><><EFBFBD><EFBFBD>Ҫ)
|
|
|
|
|
|
|
|
|
|
|
|
std::string m_armPos;//"up"<22><><EFBFBD><EFBFBD>ָ "down"<22><><EFBFBD><EFBFBD>ָ
|
|
|
|
|
|
std::string m_SendCmdStr;//ָ<><D6B8><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
std::string m_ErrStr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
std::string m_RevStr;//<2F><>ȡ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
int m_WaitCmdTime;//<2F>ȴ<EFBFBD>cmd ʱ<><CAB1>s
|
|
|
|
|
|
|
|
|
|
|
|
int LoadportId = 0;
|
|
|
|
|
|
|
|
|
|
|
|
eRobotCmdSendType m_RobotCmdSendType;//cmd <20>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|