|
|
|
|
#pragma once
|
|
|
|
|
#include "module.h"
|
|
|
|
|
#include "advmotdrv.h"
|
|
|
|
|
#include "General.h"
|
|
|
|
|
#include "AdvMotApi.h"
|
|
|
|
|
|
|
|
|
|
//<2F>ٶȵ<D9B6><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
enum ESpeedType
|
|
|
|
|
{
|
|
|
|
|
_SpeedType_Org=0,//ԭ<><D4AD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
_SpeedType_Move,//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
_SpeedType_Work,//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
//<2F><><EFBFBD>˶<EFBFBD><CBB6>ٶȲ<D9B6><C8B2><EFBFBD>
|
|
|
|
|
class PCI1245_SpeedParam
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
PCI1245_SpeedParam(void)
|
|
|
|
|
{
|
|
|
|
|
m_Acc = 50;
|
|
|
|
|
m_Dec = 50;
|
|
|
|
|
m_VelLow = 20;
|
|
|
|
|
m_VelHigh = 50;
|
|
|
|
|
};
|
|
|
|
|
public:
|
|
|
|
|
double m_Acc;//<2F><><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
double m_Dec;//<2F><><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
double m_VelLow;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(mm/s)
|
|
|
|
|
double m_VelHigh;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(mm/s)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CPci1245IOPort
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CPci1245IOPort(void)
|
|
|
|
|
{
|
|
|
|
|
m_AsixNum = -1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_PortNum = -1;//<2F>˿ں<CBBF>
|
|
|
|
|
m_bRev = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
public:
|
|
|
|
|
int m_AsixNum;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_PortNum;//<2F>˿ں<CBBF>
|
|
|
|
|
bool m_bRev;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CMotor;
|
|
|
|
|
//<2F>л<EFBFBD>PCI1245 PCI <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
class MotionCard_PCI1245 :public CModule
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
MotionCard_PCI1245(void);
|
|
|
|
|
~MotionCard_PCI1245(void);
|
|
|
|
|
virtual MODULE GetModuleType(){return _MOTION_CARD_PCI1245L;};
|
|
|
|
|
virtual CMFCPropertyGridProperty *CreatGridProperty();
|
|
|
|
|
virtual void Ini();
|
|
|
|
|
virtual void OnExitApp();
|
|
|
|
|
virtual void ExportPar(ofstream *pFile);
|
|
|
|
|
bool IsbUsed(){return m_bUsed;};
|
|
|
|
|
Dbxy MovePlatformXY(Dbxy Coord);
|
|
|
|
|
Dbxy GetPlatformXYCoord();
|
|
|
|
|
bool FindOriginByLimit(CMotor &Motor);
|
|
|
|
|
bool FindOrigin(CMotor &Motor);
|
|
|
|
|
bool MoveToOriginOffset(CMotor &Motor);
|
|
|
|
|
void SetCoord(Dbxy coord);
|
|
|
|
|
bool MoveMotor(CMotor &Motor,double &Coord);
|
|
|
|
|
double GetMotorCoord(CMotor &Motor);
|
|
|
|
|
bool CheckFucCanUsed();
|
|
|
|
|
bool IsbArcCut(){return m_bArcCut;};
|
|
|
|
|
bool IsbInited(){return m_bInited;};
|
|
|
|
|
void SetPlatformSpeed(bool bWorkSpeed);
|
|
|
|
|
void SetCurGpIdx(int idx);
|
|
|
|
|
int GetCurGpIdx(){return m_CurGpIdx;};
|
|
|
|
|
void ResetAllAsixErr();
|
|
|
|
|
void ResetAllAsixErrExt();
|
|
|
|
|
void CheckAsixState();
|
|
|
|
|
bool IsbMotorXMoveStop(){return m_bMotorXMoveStop;};
|
|
|
|
|
bool IsbMotorX2MoveStop(){return m_bMotorX2MoveStop;};
|
|
|
|
|
bool IsbMotorYMoveStop(){return m_bMotorYMoveStop;};
|
|
|
|
|
bool IsbMotorZMoveStop(){return m_bMotorZMoveStop;};
|
|
|
|
|
void SetMotorSpeed(CMotor &Motor,ESpeedType SpeedType);
|
|
|
|
|
void SetSvOn(bool bOn);
|
|
|
|
|
void ResetAllAsixCoord();
|
|
|
|
|
double GetMotorActCoord(CMotor &Motor);
|
|
|
|
|
bool CheckMotorActCoord(CMotor &Motor);
|
|
|
|
|
bool CheckUnloadState();
|
|
|
|
|
private:
|
|
|
|
|
int ReadIOState(CPci1245IOPort IOPort);
|
|
|
|
|
bool InitCard();
|
|
|
|
|
bool OpenCard();
|
|
|
|
|
bool AddAsixToGroup(HAND &GpHand,UINT index);
|
|
|
|
|
PCI1245_SpeedParam MM2PulseParam(PCI1245_SpeedParam &SpeedParam,double OnePulseDis);
|
|
|
|
|
void SetPlatformSpeedExt(PCI1245_SpeedParam GpParam) ;
|
|
|
|
|
Dbxy MM2PulseCoord(Dbxy Coord);
|
|
|
|
|
void WaitPlatfromStop();
|
|
|
|
|
void LoadConfigFile();
|
|
|
|
|
PCI1245_SpeedParam GetMotorSpeed(CMotor &Motor,ESpeedType SpeedType);
|
|
|
|
|
bool CheckAsixStateExt(HAND AxisHandle);
|
|
|
|
|
bool FindOriginExt(CMotor &Motor);
|
|
|
|
|
CMFCPropertyGridProperty* CreatSpeedGridProperty(PCI1245_SpeedParam &SpeedParam,CString SpeedName,CString ValName);
|
|
|
|
|
private:
|
|
|
|
|
bool m_bUsed;//<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
bool m_bInited;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
bool m_bArcCut;//Բ<><D4B2><EFBFBD>岹
|
|
|
|
|
bool m_bGroupAisxRev;//<2F>岹<EFBFBD><E5B2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool m_bAutoCloseSevon;//<2F>رճ<D8B1><D5B3><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><D4B6>ر<EFBFBD>sevon
|
|
|
|
|
int m_MotorXAsixIdx;//X<><58><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_MotorX2AsixIdx;//X2 <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_MotorYAsixIdx;//Y<><59><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int m_MotorZAsixIdx;//Z<><5A><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
bool m_bMotorXMoveStop;//<2F><><EFBFBD>Ƿ<EFBFBD><C7B7>˶<EFBFBD>ֹͣ
|
|
|
|
|
bool m_bMotorX2MoveStop;//
|
|
|
|
|
bool m_bMotorYMoveStop;//
|
|
|
|
|
bool m_bMotorZMoveStop;//
|
|
|
|
|
bool m_XYFindOriginByLimit;//XY<58><59>ͨ<EFBFBD><CDA8><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>(<28><>β<EFBFBD><CEB2><EFBFBD><EFBFBD>6̨<36><CCA8>)
|
|
|
|
|
int m_CheckDelay;//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱms
|
|
|
|
|
|
|
|
|
|
PCI1245_SpeedParam m_OrgSpeedMotorZ;//Z<><5A>ԭ<EFBFBD><D4AD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_MoveSpeedMotorZ;//Z<><5A><EFBFBD>ƶ<EFBFBD><C6B6>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_OrgSpeedMotorXY;//X<><58>ԭ<EFBFBD><D4AD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_MoveSpeedMotorX;//X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_WorkSpeedMotorX;//X<>Ṥ<EFBFBD><E1B9A4><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_MoveSpeedMotorY;//X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
PCI1245_SpeedParam m_WorkSpeedMotorY;//X<>Ṥ<EFBFBD><E1B9A4><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
CPci1245IOPort m_InPortUnload;//<2F><><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
|
|
|
|
|
bool m_bCheckActCoord;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʹ<EFBFBD>դ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double m_MaxActCoordErr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>դ<EFBFBD><D5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
HAND m_Devhand;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|
|
|
|
HAND m_Axishand[32];//<2F><><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
DEVLIST m_avaDevs[MAX_DEVICES];
|
|
|
|
|
double m_End[32];
|
|
|
|
|
int m_CurGpIdx;//<2F><>ǰʹ<C7B0>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
HAND m_GpHand;//<2F><><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|
|
|
|
ULONG m_ulAxisCount;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
BOOL m_bServoOn;
|
|
|
|
|
DWORD m_dwDevNum;//<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|
|
|
|
BOOL m_bInit;
|
|
|
|
|
USHORT AxisArray[32];
|
|
|
|
|
USHORT AxCount;
|
|
|
|
|
UINT m_EndNum;
|
|
|
|
|
};
|
|
|
|
|
extern MotionCard_PCI1245 *gMotionCard_PCI1245;
|