📄 sm5000.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 + -