You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.2 KiB
C

2 years ago
#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>