📄 sm5k_lib.h
字号:
#include "app.h"
#ifndef SM5K_LIB
#define SM5K_LIB
typedef unsigned long uint32;
typedef long int32;
typedef unsigned short uint16;
typedef short int16;
typedef unsigned char uint8;
typedef char int8 ;
typedef long ret32;
typedef short bool;
typedef struct{
int PosX;
int PosY;
int PosZ;
}Axis3Param_t;
typedef struct{
int32 Pos1;
int32 Pos2;
int32 Center1;
int32 Center2;
uint16 IplCmd;
} CiplParam_t;
typedef struct{
int32 Pos1;
int32 Pos2;
} Position2D_t;
#define ERR_Index_Exceed_Max 1
#define ERR_Invalid_AxisNo 2
#define ERR_Invalid_RegNo 3
#define C_WR0 0x0000
#define C_WR1 0x0001
#define C_WR2 0x0002
#define C_WR3 0x0003
#define C_WR4 0x0004
#define C_WR5 0x0005
#define C_WR6 0x0006
#define C_WR7 0x0007
#define C_rWR0 0x0008
#define C_rWR1 0x0009
#define C_rWR2 0x000A
#define C_rWR3 0x000B
#define C_rWR4 0x000C
#define C_rWR5 0x000D
#define C_rWR6 0x000E
#define C_rWR7 0x000F
#define C_RR0 0x0000
#define C_RR1 0x0001
#define C_RR2 0x0002
#define C_RR3 0x0003
#define C_RR4 0x0004
#define C_RR5 0x0005
#define C_RR6 0x0006
#define C_RR7 0x0007
#define C_R 0x0000
#define C_K 0x0001
#define C_A 0x0002
#define C_D 0x0003
#define C_SV 0x0004
#define C_V 0x0005
#define C_P 0x0006
#define C_DP 0x0007
#define C_C 0x0008
#define C_LP 0x0009
#define C_EP 0x000A
#define C_CP 0x000B
#define C_CM 0x000C
#define C_AO 0x000D
#define C_rLP 0x0010
#define C_rEP 0x0011
#define C_rCV 0x0012
#define C_rCA 0x0013
#define C_X 0
#define C_Y 1
#define C_Z 2
#define C_U 3
#define C_XDRV 0
#define C_YDRV 1
#define C_ZDRV 2
#define C_UDRV 3
#define C_XERR 4
#define C_YERR 5
#define C_ZERR 6
#define C_UERR 7
#define C_IDRV 8
#define C_CNEXT 9
#define C_BUSY 15
#define C_CMD_DRV_QP 0x0020
#define C_CMD_DRV_QM 0x0021
#define C_CMD_DRV_CP 0x0022
#define C_CMD_DRV_CM 0x0023
#define C_CMD_DRV_Hold 0x0024
#define C_CMD_DRV_Release 0x0025
#define C_CMD_DRV_DEC_Stop 0x0026
#define C_CMD_DRV_EMG_Stop 0x0027
#define C_CMD_INP_2LINE 0x0030
#define C_CMD_INP_3LINE 0x0031
#define C_CMD_INP_CW 0x0032
#define C_CMD_INP_CCW 0x0033
#define C_CMD_INP_2BP 0x0034
#define C_CMD_INP_3BP 0x0035
#define C_CMD_INP_BP_REG_WEN 0x0036
#define C_CMD_INP_BP_REG_WDIS 0x0037
#define C_CMD_INP_BP_DATA_STACK 0x0038
#define C_CMD_INP_BP_DATA_CLEAR 0x0039
#define C_CMD_INP_1STEP 0x003A
#define C_CMD_INP_DEC_VALID 0x003B
#define C_CMD_INP_DEC_INVALID 0x003C
#define C_CMD_INP_INT_CLEAR 0x003D
#define C_BIT_MANLD 0x0030
#define C_BIT_DSNDE 0x0031
#define C_BIT_SACC 0x0032
#define C_BIT_AXIS4 0x005D
#define C_BIT_SLMTP 0x0020
#define C_BIT_SLMTM 0x0021
#define C_BIT_CMPSL 0x0025
#define C_BIT_PLSMD 0x0026
#define C_BIT_PLS_L 0x0027
#define C_BIT_DIR_L 0x0028
#define C_BIT_PINMD 0x0029
#define C_BIT_PIND0 0x002A
#define C_BIT_PIND1 0x002B
#define C_BIT_LMTMD 0x0022
#define C_BIT_LMTPL 0x0023
#define C_BIT_LMTML 0x0024
#define C_BIT_LMTPE 0x003C
#define C_BIT_LMTME 0x003D
#define C_BIT_XOUT0 0x0040
#define C_BIT_XOUT1 0x0041
#define C_BIT_XOUT2 0x0042
#define C_BIT_XOUT3 0x0043
#define C_BIT_YOUT0 0x0044
#define C_BIT_YOUT1 0x0045
#define C_BIT_YOUT2 0x0046
#define C_BIT_YOUT3 0x0047
#define C_BIT_ZOUT0 0x0048
#define C_BIT_ZOUT1 0x0049
#define C_BIT_ZOUT2 0x004A
#define C_BIT_ZOUT3 0x004B
#define C_BIT_UOUT0 0x004C
#define C_BIT_UOUT1 0x004D
#define C_BIT_UOUT2 0x004E
#define C_BIT_UOUT3 0x004F
#define C_BIT_CIINT 0x005E
#define C_BIT_ASND 0x0012
#define C_BIT_CNST 0x0013
#define C_BIT_DSND 0x0014
#define pSm5k_Reg_Base_Addr (volatile unsigned short *)0x08000000
#define pSm5k_ExtIO_Base_Addr (volatile unsigned short *)0x08000020
#define C_R_DEFAULT 8000000
#define C_R_DEFAULT_ROOT2 11313708
#define C_R_DEFAULT_ROOT3 13856406
#define C_R_DEFAULT_ROOT4 16000000
#define C_CCW_ARC 1
#define C_CW_ARC 0
#define C_DIR_NEG 1
#define C_DIR_POS 0
#define RPS(v) v*200*N_XIFEN
#define is_driving smp860_is_driving
#define get_state smp860_get_state
#define set_port smp860_set_port
#define get_port smp860_get_port
#define set_reg smp860_set_reg
#define set_reg_multi_axis smp860_set_reg_multi_axis
#define get_reg smp860_get_reg
#define set_param smp860_set_param
#define set_param_multi_axis smp860_set_param_multi_axis
#define get_param smp860_get_param
#define send_drv_cmd smp860_send_drv_cmd
#define send_drv_cmd_multi_axis smp860_send_drv_cmd_multi_axis
#define send_inp_cmd smp860_send_inp_cmd
#define set_extio smp860_set_extio
#define get_extio smp860_get_extio
void Error_process(int32 ErrNo);
uint16 GetAxisCmd( uint16 AxisNo);
uint16 GetmAxisCmd( uint16 *AxisArray);
void wait_when_busy(void);
void set_inp_axis ( uint16 *AxisArray );
bool smp860_is_driving( uint16 axis);
bool smp860_get_state( uint16 Index );
ret32 smp860_set_port(uint16 RegNo,uint16 Value);
ret32 smp860_get_port(uint16 RegNo,uint16 *pValue);
ret32 smp860_set_reg( uint16 AxisNo, uint16 RegNo, uint16 Value );
ret32 smp860_set_reg_multi_axis( uint16 *AxisArray, uint16 RegNo, uint16 Value );
ret32 smp860_get_reg( uint16 AxisNo, uint16 RegNo, uint16 *pValue );
ret32 smp860_set_param ( uint16 AxisNo, uint16 ParamID, int32 Data );
ret32 smp860_set_param_multi_axis ( uint16 *AxisArray, uint16 ParamID, int32 Data );
ret32 smp860_get_param ( uint16 AxisNo, uint16 ParamID, int32 *pData );
ret32 smp860_send_drv_cmd ( uint16 AxisNo, uint16 CmdID );
ret32 smp860_send_drv_cmd_multi_axis ( uint16 *AxisArray, uint16 CmdID );
ret32 smp860_send_inp_cmd ( uint16 CmdID );
ret32 smp860_set_extio(uint16 RegNo,uint16 Value);
ret32 smp860_get_extio(uint16 RegNo,uint16 *pValue);
ret32 smp860_board_init(int16 nCard);
ret32 smp860_set_bit(uint16 AxisNo,uint16 BitID,uint16 BitValue);
bool smp860_get_bit(uint16 AxisNo,uint16 BitID);
ret32 smp860_emg_stop(uint16 AxisNo);
ret32 smp860_decel_stop(uint16 AxisNo);
ret32 smp860_get_speed(uint16 AxisNo);
ret32 smp860_get_command_pos(uint16 AxisNo);
ret32 smp860_get_encoder_pos(uint16 AxisNo);
ret32 smp860_set_command_pos(uint16 AxisNo, int32 Pos );
ret32 smp860_set_encoder_pos(uint16 AxisNo, int32 Pos );
ret32 smp860_change_target_pos(uint16 AxisNo, int32 Pos );
ret32 smp860_set_soft_limit(uint16 AxisNo, uint16 SLMode, int32 PLimit, int32 NLimit );
ret32 smp860_enable_soft_limit(uint16 AxisNo, uint16 LimSelect, uint16 Action );
ret32 smp860_disable_soft_limit(uint16 AxisNo, uint16 LimSelect);
ret32 smp860_set_hard_limit(uint16 AxisNo, uint16 StopMode );
ret32 smp860_enable_hard_limit(uint16 AxisNo, uint16 LimSelect, uint16 Level );
ret32 smp860_disable_hard_limit(uint16 AxisNo, uint16 LimSelect);
ret32 smp860_set_pls_outmode(uint16 AxisNo, uint16 Outmode);
ret32 smp860_set_pls_iptmode(uint16 AxisNo, uint16 iptmode);
ret32 smp860_home_move(uint16 AxisNo, uint16 Dir, int32 StrVel, int32 MaxVel, float Tacc );
//ret32 smp860_home_move_all( int32 StrVel, int32 MaxVel, float Tacc );
ret32 smp860_cv_move(uint16 AxisNo, uint16 Dir, int32 MaxVel);
ret32 smp860_tv_move(uint16 AxisNo, uint16 Dir, int32 StrVel, int32 MaxVel, float Tacc );
ret32 smp860_sv_move(uint16 AxisNo, uint16 Dir, int32 StrVel, int32 MaxVel, float Tacc, int32 Vsacc );
ret32 smp860_start_cr_move(uint16 AxisNo, int32 Dist, int32 MaxVel);
ret32 smp860_start_ca_move(uint16 AxisNo, int32 Pos, int32 MaxVel);
ret32 smp860_start_tr_move(uint16 AxisNo, int32 Dist, int32 StrVel, int32 MaxVel, float Tacc, float Tdec, int32 AO );
ret32 smp860_start_ta_move(uint16 AxisNo, int32 Pos, int32 StrVel, int32 MaxVel, float Tacc, float Tdec, int32 AO );
ret32 smp860_start_sr_move(uint16 AxisNo, int32 Dist, int32 StrVel, int32 MaxVel, float Tacc, int32 Vsacc, int32 AO );
ret32 smp860_start_sa_move(uint16 AxisNo, int32 Pos, int32 StrVel, int32 MaxVel, float Tacc, int32 Vsacc, int32 AO );
ret32 smp860_start_tr_line2(uint16 *AxisArray, int Dist1, int Dist2, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_ta_line2(uint16 *AxisArray, int Pos1, int Pos2, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_line2(uint16 *AxisArray, int Dist1, int Dist2, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_sa_line2(uint16 *AxisArray, int Pos1, int Pos2, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_tr_line3(uint16 *AxisArray, int Dist1, int Dist2, int Dist3, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_ta_line3(uint16 *AxisArray, int Pos1, int Pos2, int Pos3, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_line3(uint16 *AxisArray, int Dist1, int Dist2, int Dist3, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_sa_line3(uint16 *AxisArray, int Pos1, int Pos2, int Pos3, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_tr_line4(uint16 *AxisArray, int Dist1, int Dist2, int Dist3, int Dist4, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_ta_line4(uint16 *AxisArray, int Pos1, int Pos2, int Pos3, int Pos4, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_line4(uint16 *AxisArray, int Dist1, int Dist2, int Dist3, int Dist4, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_sa_line4(uint16 *AxisArray, int Pos1, int Pos2, int Pos3, int Pos4, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_tr_arc2(uint16 *AxisArray, int OffsetC1, int OffsetC2, int OffsetE1, int OffsetE2, int Dir, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_ta_arc2(uint16 *AxisArray, int C1, int C2, int E1, int E2, int Dir, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_arc2(uint16 *AxisArray, int OffsetC1, int OffsetC2, int OffsetE1, int OffsetE2, int Dir, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_start_sa_arc2(uint16 *AxisArray, int C1, int C2, int E1, int E2, int Dir, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_enable_ciint(uint16 Enable);
ret32 smp860_check_conti_buffer(void);
#define smp860_start_tr_2axis_continue_inp smp860_start_tr_continue_inp2
#define smp860_start_sr_2axis_continue_inp smp860_start_sr_continue_inp2
#define smp860_append_2axis_continue_inp smp860_append_continue_inp2
ret32 smp860_start_tr_continue_inp2( uint16 *AxisArray, CiplParam_t *Node, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_continue_inp2( uint16 *AxisArray, CiplParam_t *Node, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_append_continue_inp2( uint16 *AxisArray, CiplParam_t *Node );
#define smp860_start_tr_2axis_continue_line2 smp860_start_tr_continue_line2
#define smp860_start_sr_2axis_continue_line2 smp860_start_tr_continue_line2
#define smp860_append_2axis_continue_line2 smp860_append_continue_line2
ret32 smp860_start_tr_continue_line2( uint16 *AxisArray, Position2D_t *Node, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_start_sr_continue_line2( uint16 *AxisArray, Position2D_t *Node, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
ret32 smp860_append_continue_line2( uint16 *AxisArray, Position2D_t *Node );
ret32 smp860_prepare_tr_continue_line2( uint16 *AxisArray, int StrVel, int MaxVel, float Tacc, float Tdec, int AO );
ret32 smp860_prepare_sr_continue_line2( uint16 *AxisArray, int StrVel, int MaxVel, float Tacc, int Vsacc, int AO );
int smp860_get_arc_length(int C1,int C2,int E1,int E2,int Dir);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -