⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sm5000.h

📁 一个很好的VC++程序
💻 H
字号:
#include "IPLFuncTest.h"


// SM5000 Header file
#if !defined( SM5000_H )
#define  SM5000_H

const UINT WM_SM5K_DATA_READ = WM_USER+20;
const UINT WM_SM5K_TIMER_ON  = WM_USER+21;
const UINT WM_SM5K_CNEXT_VALID  = WM_USER+22;

const unsigned short SM5K_WR0 = 0;
const int CIPL_SEG_MAX = 100;
const int BP_BUFFER_DEPTH = 32;

const int R_DEFAULT = 8000000;
const int R_DEFAULT_ROOT2 = 11313708;
const int R_DEFAULT_ROOT3 = 13856406;

const int R_ADDR = 0;
const int K_ADDR = 1;
const int A_ADDR = 2;
const int D_ADDR = 3;
const int SV_ADDR = 4;
const int V_ADDR = 5;
const int P_ADDR = 6;
const int DP_ADDR = 7;
const int C_ADDR = 8;
const int LP_ADDR = 9;
const int EP_ADDR = 10;
const int CP_ADDR = 11;
const int CM_ADDR = 12;
const int AO_ADDR = 13;

enum {ACC_TYPE_CV,ACC_TYPE_T,ACC_TYPE_FULL_S,ACC_TYPE_PART_S};
enum {EXPP_TYPE_NONE,EXPP_TYPE_C,EXPP_TYPE_Q};
enum {DIR_POS,DIR_NEG};
enum {DRV_TYPE_Q,DRV_TYPE_C};
enum {POS_TYPE_REL,POS_TYPE_ABS};
enum {IPL_TYPE_LINE,IPL_TYPE_ARC,IPL_TYPE_BP};
enum {ARC_TYPE_CW,ARC_TYPE_CCW};


inline int Bit2Int(	int B15, int B14, int B13, int B12,
				int B11, int B10, int B9 , int B8 ,
				int B7 , int B6 , int B5 , int B4 ,
				int B3 , int B2 , int B1 , int B0 )
{
	int result;
	result = (((((((((((((((((((((((((((((B15<<1)+B14)<<1)+B13)<<1)+B12)<<1)+B11)<<1)+B10)<<1)+B9)<<1)+B8)<<1)
		        +B7)<<1)+B6)<<1)+B5)<<1)+B4)<<1)+B3)<<1)+B2)<<1)+B1)<<1)+B0;
	return result;
}

inline int GetBit(int Data, int BitNo)
{
	return (Data>>BitNo) & 1;
}

inline int GetBit(int Data, int BitNo, int BitCount)
{
	return (Data>>BitNo) & (1<<BitCount)-1 ;
}

inline short GetmAxisValue(int XEn, int YEn, int ZEn, int UEn)
{
	return (((((UEn<<1)+ZEn)<<1)+YEn)<<1)+XEn;
}

inline short GetmAxisValue(int AxisNo)
{
	return (1<<AxisNo);
}

void sleep( clock_t wait );

void ReadIO( unsigned short RegNo);
void WriteIO( unsigned short RegNo, unsigned short Data );

void WriteReg( unsigned short RegNo, unsigned short Data, short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn );
void WriteReg( unsigned short RegNo, unsigned short Data, short AxisNo);
void WriteReg( unsigned short RegNo, unsigned short Data );
inline void WriteBpReg( unsigned short RegNo, unsigned short Data )
{
	WriteIO( RegNo, Data );
}

int start_c1r_bit2(int *AxisArray,struct m_BP1Array *BP1Array,struct m_BP2Array *BP2Array,int MaxVel);
int start_c1r_bit4(int *m_AxisSel,struct m_BP1Array *BP1Array,struct m_BP2Array *BP2Array,struct m_BP3Array *BP3Array,struct m_BP4Array *BP4Array,int MaxVel);				
int start_c1r_bit3(int *m_AxisSel,struct m_BP1Array *BP1Array,struct m_BP2Array *BP2Array,struct m_BP3Array *BP3Array,int MaxVel);


void SetSLMTP( unsigned short BitLevel, short AxisNo);
void SetSLMTM( unsigned short BitLevel, short AxisNo);
void SetManld( unsigned short BitLevel, short AxisNo);
void SetDsnde( unsigned short BitLevel, short AxisNo);
void SetSacc ( unsigned short BitLevel, short AxisNo);
void SetExop ( unsigned short BitLevel, short AxisNo);

void ReadReg (unsigned short RegNo, short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn);
void ReadReg (unsigned short RegNo );

void WriteParam ( short ParamID, long Data , short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn);
void ReadParam ( short ParamID, short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn);
void WriteParam ( short ParamID, long Data , short AxisNo);

void SendDriveCommand( short DrvCmd, short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn );

int  sv_move(int AxisNo,int StrVel, int MaxVel, float Tacc, int Vsacc ,int Dir);
int  tv_move(int AxisNo,int StrVel, int MaxVel, float Tacc, int Dir);
int  cv_move(int AxisNo,int MaxVel, int Dir);
int  start_sa_move(int AxisNo, int Pos , int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec );
int  start_sr_move(int AxisNo, int Dist, int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec);
int  start_ta_move(int AxisNo, int Pos , int StrVel, int MaxVel, float Tacc, float Tdec);
int  start_tr_move(int AxisNo, int Dist, int StrVel, int MaxVel, float Tacc, float Tdec);
int  start_ca_move(int AxisNo, int Pos , int MaxVel);
int  start_cr_move(int AxisNo, int Dist, int MaxVel);

int  inp_line2(int *AxisArray, int DistX, int DistY);
int  inp_line3(int *AxisArray, int DistX, int DistY, int DistZ);
int  inp_line4(int *AxisArray, int DistX, int DistY, int DistZ, int DistU);
int  inp_arc2( int *AxisArray, int OffsetCx, int OffsetCy, int OffsetEx, int OffsetEy, int Dir );

int  start_tr_line2(int *AxisArray, int DistX, int DistY, int StrVel, int MaxVel, float Tacc, float Tdec );
int  start_sr_line2(int *AxisArray, int DistX, int DistY, int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec );
int  start_tr_line3(int *AxisArray, int DistX, int DistY, int DistZ,  int StrVel, int MaxVel, float Tacc, float Tdec );
int  start_sr_line3(int *AxisArray, int DistX, int DistY, int DistZ,  int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec );
int  start_tr_line4(int *AxisArray, int DistX, int DistY, int DistZ,  int DistU,  int StrVel, int MaxVel, float Tacc, float Tdec );
int  start_sr_line4(int *AxisArray, int DistX, int DistY, int DistZ,  int DistU,  int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec );
int  start_tr_arc2( int *AxisArray, int OffsetCx, int OffsetCy, int OffsetEx, int OffsetEy, int Dir, int StrVel, int MaxVel, float Tacc, float Tdec );
int  start_sr_arc2( int *AxisArray, int OffsetCx, int OffsetCy, int OffsetEx, int OffsetEy, int Dir, int StrVel, int MaxVel, float Tacc, float Tdec, int Vsacc, int Vsdec );

int ArcLength(int Cx,int Cy,int Ex,int Ey,int Dir);
int ArcOffset(int X, int Y, int R, int Zone);
int Zone(int X, int Y);

int  start_cr_bit2( int *AxisArray, int *BP1PArray, int *BP1MArray, int *BP2PArray, int *BP2MArray, int MaxVel );
int  start_cr_bit3( int *AxisArray, int *BP1PArray, int *BP1MArray, int *BP2PArray, int *BP2MArray, int *BP3PArray, int *BP3MArray, int MaxVel );
int  start_cr_bit4( int *AxisArray, int *BP1PArray, int *BP1MArray, int *BP2PArray, int *BP2MArray, int *BP3PArray, int *BP3MArray, int *BP4PArray, int *BP4MArray, int MaxVel );

void sd_stop(int AxisNo, float Tdec);
void sd_stop(int AxisNo, int D);
void sd_stop(int AxisNo);
void emg_stop(int AxisNo);
void go_home(int AxisNo);

#endif // SM5000_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -