|
|
|
|
#pragma once
|
|
|
|
|
#include "PciCh365Mgr.h"
|
|
|
|
|
#include "Module.h"
|
|
|
|
|
#include "Observer.h"
|
|
|
|
|
#include "EnumPropertieType.h"
|
|
|
|
|
#include "Subject.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define MOTOR_X _T("X") //<2F><><EFBFBD><EFBFBD>X
|
|
|
|
|
#define MOTOR_X2 _T("X2") //<2F><><EFBFBD><EFBFBD>X2
|
|
|
|
|
#define MOTOR_Y _T("Y") //<2F><><EFBFBD><EFBFBD>Y
|
|
|
|
|
#define MOTOR_Z _T("Z") //<2F><><EFBFBD><EFBFBD>Z
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
class CMotor
|
|
|
|
|
:public CModule,public CObserver,public CSubject
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CMotor(CString Name);
|
|
|
|
|
virtual ~CMotor(void);
|
|
|
|
|
virtual void Ini();
|
|
|
|
|
virtual MODULE GetModuleType(){return _MOTOR_PROP;};
|
|
|
|
|
virtual void ExportPar(ofstream *pFile);
|
|
|
|
|
virtual CMFCPropertyGridProperty *CreatGridProperty();
|
|
|
|
|
virtual void Update();//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>Ա仯<D4B1>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
void SetPciPortType(CString DirPortType,CString PulsePortType,CString LimitPortType_F,CString LimitPortType_N);
|
|
|
|
|
void SetDirPort(SPciPort Port){m_DirPort = Port;};
|
|
|
|
|
void SetPulsePort(SPciPort Port){m_PulsePort = Port;};
|
|
|
|
|
bool MoveOnePluse(unsigned int Delay = 0);
|
|
|
|
|
void SetDir(bool b);//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>(b Ϊtrue <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>)
|
|
|
|
|
double GetOnePulseDis(){return m_OnePulseDis;};
|
|
|
|
|
bool FindOrigin(bool bSavePulseCnt = false);
|
|
|
|
|
CString Name(){return m_Name;};
|
|
|
|
|
bool IsLimitOn();
|
|
|
|
|
bool MoveToOriginOffset(double AdjustVal = 0);
|
|
|
|
|
bool SendSerialPulses(double TotalCnt,double &PulseCnt,unsigned int Delay);
|
|
|
|
|
unsigned int GetDelay(bool bWork);
|
|
|
|
|
void MoveByPluse(double PulseCnt,bool bWork);
|
|
|
|
|
double GetCoord(){return m_Coord;};
|
|
|
|
|
double GetCoord2();
|
|
|
|
|
void SetCoord(double Coord){m_Coord = Coord;};
|
|
|
|
|
void MoveToCoord(double Coord);
|
|
|
|
|
void MoveDis(double dis);
|
|
|
|
|
static CMotor *GetMotor(CString Name);
|
|
|
|
|
void SetMoveDelay(unsigned int n){m_MoveDelay = n;};
|
|
|
|
|
void SetWorkDelay(unsigned int n){m_WorkDelay = n;};
|
|
|
|
|
double GetOriginOffsetDis(){return m_OriginOffsetDis;};
|
|
|
|
|
void SetOriginOffsetDis(double n){m_OriginOffsetDis = n;};
|
|
|
|
|
void NeedCheckFiber(){m_bCheckFiber = true;}
|
|
|
|
|
void SetAsixIdx(int idx){m_AsixIdx = idx;};
|
|
|
|
|
int GetAsixIdx(){return m_AsixIdx;};
|
|
|
|
|
bool IsbReverseDir(){return m_bReverseDir;};
|
|
|
|
|
bool IsbReverseMoveFirst(){return m_bReverseMoveFirst;};
|
|
|
|
|
double GetReverseMoveDis(){return m_bReverseMoveDis;};
|
|
|
|
|
bool GetFindOriginDir(){return m_FindOriginDir;};
|
|
|
|
|
bool IsbRevActCoordDir(){return m_bRevActCoordDir;};
|
|
|
|
|
private:
|
|
|
|
|
void MoveByPluseAccelerate(double PulseCnt,bool bWork);
|
|
|
|
|
void MoveByPluseNoAccelerate(double PulseCnt,bool bWork);
|
|
|
|
|
double MoveDeviateLimit(unsigned int Delay);
|
|
|
|
|
void SetCurLimitPortByDir(bool bForward);
|
|
|
|
|
void OnMotorLimit();
|
|
|
|
|
private:
|
|
|
|
|
static CMotor *gMotorX;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static CMotor *gMotorX2;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static CMotor *gMotorY;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static CMotor *gMotorZ;//Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
CString m_Name;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString m_DirPortType;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString m_PulsePortType;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString m_LimitPortType_F;//<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
CString m_LimitPortType_N;//<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
|
|
|
|
int m_AsixIdx;//<2F><><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF>еı<D0B5><C4B1><EFBFBD>
|
|
|
|
|
//pci <20><><EFBFBD>˿ڲ<CBBF><DAB2><EFBFBD>--------------------------------------------------------
|
|
|
|
|
SPciPort m_DirPort;//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
SPciPort m_PulsePort;//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
SPciPort m_LimitPort_F;//<2F><><EFBFBD><EFBFBD>λ<EFBFBD>˿<EFBFBD>
|
|
|
|
|
SPciPort m_LimitPort_N;//<2F><><EFBFBD><EFBFBD>λ<EFBFBD>˿<EFBFBD>
|
|
|
|
|
SPciPort m_OriginPort;//ԭ<><D4AD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
SPciPort m_CurLimitPort;//<2F><>ǰ<EFBFBD><C7B0>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>˿<EFBFBD>
|
|
|
|
|
//UPK CO2 <20>õĶ<C3B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool m_bCheckFiber;//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SPciPort m_FiberPort1;//<2F><><EFBFBD>˶˿<CBB6>1
|
|
|
|
|
SPciPort m_FiberPort2;//<2F><><EFBFBD>˶˿<CBB6>2
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>-----------------------------------------------------
|
|
|
|
|
double m_OnePulseDis;//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>(mm)
|
|
|
|
|
//<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-----------------------------------------------------
|
|
|
|
|
bool m_FindOriginDir;//<2F><>ԭ<EFBFBD><D4AD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>(true Ϊ<><CEAA><EFBFBD><EFBFBD>,false Ϊ<><CEAA><EFBFBD><EFBFBD>)
|
|
|
|
|
double m_OriginOffsetDis;//ԭ<><D4AD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>(mm)
|
|
|
|
|
double m_MaxOriginOffsetDis;//ԭ<><D4AD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>(mm) -- <20><>Ҫ<EFBFBD>DZ<EFBFBD><C7B1><EFBFBD>Ӳ<EFBFBD><D3B2>
|
|
|
|
|
double m_MaxPulseCnt;//<2F><>ԭ<EFBFBD><D4AD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ŀ<><C4BF><EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹӲ<D6B9><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
|
|
|
|
|
int m_FindOriginDelay;//<2F>ҵ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ĵȴ<C4B5><C8B4><EFBFBD>ʱ(ms) <20><><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned int m_ReverseMoveDelay;//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>翪<EFBFBD>غ<D8BA><F3B7B4B7><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ʱus (ֱ<><D6B1><EFBFBD>ص翪<D8B5><E7BFAA>ΪOFF )
|
|
|
|
|
|
|
|
|
|
bool m_bReverseMoveFirst;//<2F><>ԭ<EFBFBD><D4AD>֮ǰ<D6AE>Ƿ<EFBFBD><C7B7>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ƶ<EFBFBD>һ<EFBFBD>ξ<EFBFBD><CEBE><EFBFBD>
|
|
|
|
|
double m_bReverseMoveDis;//<2F><>ԭ<EFBFBD><D4AD>֮ǰ<D6AE>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6>ľ<EFBFBD><C4BE><EFBFBD>mm
|
|
|
|
|
//<2F>ٶȲ<D9B6><C8B2><EFBFBD>--------------------------------------------------------------
|
|
|
|
|
unsigned int m_MoveDelay;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
unsigned int m_WorkDelay;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
unsigned int m_OriginPulseDelay;//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
bool m_bNeedCheckLimit;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F>Ӽ<EFBFBD><D3BC>ٿ<EFBFBD><D9BF><EFBFBD>-----------------------------------------------------------
|
|
|
|
|
bool m_bAccelerateCtrl;//<2F>Ƿ<EFBFBD><C7B7>Ӽ<EFBFBD><D3BC>ٿ<EFBFBD><D9BF><EFBFBD>
|
|
|
|
|
unsigned int m_StartDelay;//<2F><>ʼ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>ʱus
|
|
|
|
|
unsigned int m_PerChangeDelay;//ÿ<>θı<CEB8><C4B1><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-----------------------------------------------------------
|
|
|
|
|
double m_Coord;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(mm)
|
|
|
|
|
bool m_bReverseDir;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
bool m_bRevActCoordDir;//<2F><>դ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
|
|
|
|
|
};
|