|
|
|
|
#pragma once
|
|
|
|
|
#ifndef _INCLUDE_MOTOR_GUGAO_AXIS_H
|
|
|
|
|
#define _INCLUDE_MOTOR_GUGAO_AXIS_H
|
|
|
|
|
#include "CardService.h"
|
|
|
|
|
|
|
|
|
|
enum EHomeType
|
|
|
|
|
{//<2F><>ԭ<EFBFBD><D4AD>ʽ
|
|
|
|
|
EHOME_CAPTURE = 0, //Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
EHOME_ECAPTURE, //<2F>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
EHOME_NORMAL, //<2F><>ͨ<EFBFBD><CDA8>ԭ
|
|
|
|
|
EHOME_EINDEX, //INDEX<45><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CAxis
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CAxis(ushort cardIndex, ushort axisIndex);
|
|
|
|
|
~CAxis();
|
|
|
|
|
|
|
|
|
|
void SetArrive(bool bcheck) { m_bCheckArrive = bcheck; }
|
|
|
|
|
|
|
|
|
|
int Init();
|
|
|
|
|
int On();
|
|
|
|
|
int Off();
|
|
|
|
|
int Reset();
|
|
|
|
|
int Home(ushort homeType, long pos, long offset, double vel); //<2F><>ԭ
|
|
|
|
|
int SetZeroPos(); //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ;(<28><><EFBFBD><EFBFBD><EFBFBD>滮λ<E6BBAE>ú<EFBFBD>ʵ<EFBFBD><CAB5>λ<EFBFBD><CEBB>,<2C><><EFBFBD>û<EFBFBD>еԭ<D0B5><D4AD>)
|
|
|
|
|
int SetSpeed(double vel, int bchange = 0); //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
int SetPos(long pos); //<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ò<EFBFBD><C3B2>˶<EFBFBD>
|
|
|
|
|
int MovePos(long pos, double vel, double acc, double dec); //<2F>ƶ<EFBFBD><C6B6><EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB>,<2C>˶<EFBFBD><CBB6>пɸ<D0BF><C9B8><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
int MoveOffset(long offset, double vel, double acc, double dec); //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
int MoveJog(int dir, double vel, double acc, double dec); //<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
double GetCurPos(EMPosType postype); //<2F><>ȡ<EFBFBD><C8A1>ǰλ<C7B0><CEBB>
|
|
|
|
|
|
|
|
|
|
int IsMoving();
|
|
|
|
|
|
|
|
|
|
int Stop(int type = 0); //ֹͣ<CDA3>˶<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
|
|
|
|
|
ushort GetCardIndex() { return m_cardIndex; }
|
|
|
|
|
ushort GetAxisIndex() { return m_axisIndex; }
|
|
|
|
|
|
|
|
|
|
int GearMove(CAxis* pAxis, int iGearType, double ratio, long masterSlope = 0);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
void StopAndWait(int type = 0); //ֹͣ<CDA3><D6B9><EFBFBD>ȴ<EFBFBD>ͣ<EFBFBD><CDA3>
|
|
|
|
|
int StopMove(int type = 0); //ֹͣ<CDA3>˶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
int homeSts(ushort *pStatus); //<2F><>ȡ<EFBFBD><C8A1>ԭ<EFBFBD><D4AD>״̬
|
|
|
|
|
int ClearStatus(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
int isRealMoving(); //<2F>ж<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>
|
|
|
|
|
int HomeAsCapture(long homePos, long offset, double vel, int type = 0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
int HomeAsIndex(long homePos, long offset, long doffset);
|
|
|
|
|
int HomeAsNormal(long homePos, long offset, double vel); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
|
|
|
|
|
bool WaitExitMoveSign(int iWait); //<2F>ȴ<EFBFBD><C8B4>˶<EFBFBD><CBB6>˳<EFBFBD><CBB3>źţ<C5BA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>ź<EFBFBD>
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
Handle m_hQuitEvt; //<2F>˳<EFBFBD><CBB3><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
|
|
|
|
|
Handle m_hHomeFinishedEvt; //<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>¼<EFBFBD>
|
|
|
|
|
bool m_bInit; //<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
bool m_bCheckArrive; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>λ<E2B5BD>ź<EFBFBD>
|
|
|
|
|
|
|
|
|
|
ushort m_cardIndex;
|
|
|
|
|
ushort m_axisIndex;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|