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

📄 dmc3000.h

📁 pci卡控制的演示程序,可用于运行简单的轨迹,用户可在此基础上熟悉控制卡操作.
💻 H
字号:

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the D3000_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// D3000_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef DMC3000_EXPORTS
#define DMC3000_API __declspec(dllexport)
#else
#define DMC3000_API __declspec(dllimport)
#endif

#ifndef _PCI1240_LIB_H_
#define _PCI1240_LIB_H_


#ifdef __cplusplus
extern "C" {
#endif



// This class is exported from the d3000.dll
class DMC3000_API CDmc3000 {
public:
	CDmc3000(void);
	// TODO: add your methods here.
};

extern DMC3000_API int nDmc3000;

DMC3000_API int fnDmc3000(void);

//////////////////////////////////////////////////////////////////
//					DMC3000 V1.1 函数列表						//
//////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////
//				初始化函数组				   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_board_init(void);
DWORD WINAPI d3000_board_close(void);
DWORD WINAPI d3000_get_base_addr(void);
DWORD WINAPI d3000_get_irq_channel(void);

/////////////////////////////////////////////////
//				脉冲输入/输出构造函数		   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_set_pls_outmode(short axis,short outmode);
DWORD WINAPI d3000_set_pls_iptmode(short axis,short iptmode);

/////////////////////////////////////////////////
//				速度模式运动函数			   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_start_tv_move(short axis,long StrVel,long MaxVel,double Tacc);
DWORD WINAPI d3000_start_sv_move(short axis,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_change_speed(short axis,long NewVel,double Tacc);
DWORD WINAPI d3000_decel_stop(short axis,double Tdec);
DWORD WINAPI d3000_emg_stop(short axis);
DWORD WINAPI d3000_get_speed(short axis);
/////////////////////////////////////////////////
//				单轴位置模式				   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_start_t_move(short axis,long Dist,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_ta_move(short axis,long Pos,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_s_move(short axis,long Dist,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_sa_move(short axis,long Pos,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_backlash_comp(short axis,short BCompPulse);
DWORD WINAPI d3000_change_target_pos(short axis,long NewPos);

/////////////////////////////////////////////////
//				线性插补函数				   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_start_t_line2(short *AxisArray,long Dist1,long Dist2,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_s_line2(short *AxisArray,long Dist1,long Dist2,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_ta_line2(short *AxisArray,long Pos1,long Pos2,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_sa_line2(short *AxisArray,long Pos1,long Pos2,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_t_line3(short *AxisArray,long Dist1,long Dist2,long Dist3,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_s_line3(short *AxisArray,long DistX,long DistY,long DistZ,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_ta_line3(short *AxisArray,long PosX,long PosY,long PosZ,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_sa_line3(short *AxisArray,long PosX,long PosY,long PosZ,long StrVel,long MaxVel,double Tacc,double Tsacc);

/////////////////////////////////////////////////
//				圆弧插补函数				   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_start_arc(short *AxisArray,long OffsetCx,long OffsetCy,long OffsetEx,long OffsetEy,short Dir,long MaxVel);
DWORD WINAPI d3000_start_a_arc(short *AxisArray,long Cx,long Cy,long Ex,long Ey,short Dir,long MaxVel);
DWORD WINAPI d3000_hspeed_arc(short *AxisArray,long OffsetC1,long OffsetC2,long OffsetEx,long OffsetEy,short Dir,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_hspeed_a_arc(short *AxisArray,long C1,long C2,long E1,long E2,short Dir,long StrVel,long MaxVel,double Tacc,double Tdec);

/////////////////////////////////////////////////
//				原点返回函数				   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_home_move(short axis,long StrVel,long MaxVel,double Tacc);
DWORD WINAPI d3000_index_move(short axis,long StrVel,long MaxVel, double Tacc);

/////////////////////////////////////////////////
//				手轮/JOG运动函数			   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_jog_move(short axis,short mode,long speed);
DWORD WINAPI d3000_hwheel_move(short axis,short mode,long pulse,long speed);

/////////////////////////////////////////////////
//				运动和输入状态函数			   //
/////////////////////////////////////////////////
WORD WINAPI d3000_check_done(short axis);

/////////////////////////////////////////////////
//				专用I/O接口管理函数			   //
/////////////////////////////////////////////////
DWORD WINAPI d3000_set_home(short axis,short home_mode,short org_logic);
DWORD WINAPI d3000_set_index(short axis,short index_mode,short ez_logic);
DWORD WINAPI d3000_set_hwheel(short axis,short hwheel_mode);
DWORD WINAPI d3000_set_el(short axis,short el_select,short el_mode,short el_logic);
DWORD WINAPI d3000_set_alm(short axis,short alm_mode,short alm_logic);
DWORD WINAPI d3000_set_inp(short axis,short inp_mode,short inp_logic);
WORD WINAPI d3000_get_axis_status(short axis);

////////////////////////////////////////////////
//				位置设定和读取函数			  //
////////////////////////////////////////////////
DWORD WINAPI d3000_get_encoder_pos(short axis);
DWORD WINAPI d3000_set_encoder_pos(short axis,long Pos);
DWORD WINAPI d3000_get_command_pos(short axis);
DWORD WINAPI d3000_set_command_pos(short axis,long Pos);
DWORD WINAPI d3000_get_target_pos(short axis);

////////////////////////////////////////////////
//				位置比较函数				  //
////////////////////////////////////////////////
DWORD WINAPI d3000_set_soft_limit(short axis,short SLMode,long PLimit,long NLimit);
DWORD WINAPI d3000_enable_soft_limit(short axis,short Lim_select,short action);
DWORD WINAPI d3000_disable_soft_limit(short axis);

////////////////////////////////////////////////
//				连续插补运动函数			  //
////////////////////////////////////////////////
DWORD WINAPI d3000_check_conti_buffer(short axis);

////////////////////////////////////////////////
//				通用I/O管理函数				  //
////////////////////////////////////////////////
WORD WINAPI d3000_out_bit(short BitNo,short BitData);
WORD WINAPI d3000_in_bit(short BitNo);
WORD WINAPI d3000_get_outbit(short BitNo);

////////////////////////////////////////////////
//				中断控制函数				  //
////////////////////////////////////////////////
DWORD WINAPI d3000_int_control(short IntFlag);
DWORD WINAPI d3000_set_int_factor(short axis,short Int_Factor);
DWORD WINAPI d3000_link_interrupt(void);







///////////////////////////////////////////////////////////////
//					兼容函数列表                             //
///////////////////////////////////////////////////////////////
DWORD WINAPI d3000_set_feedback_src(short axis,short Src);
DWORD WINAPI d3000_get_current_speed(short axis);
DWORD WINAPI d3000_start_t_move_xy(long DistX,long DistY,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_ta_move_xy(long PosX,long PosY,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_s_move_xy(long DistX,long DistY,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_sa_move_xy(long PosX,long PosY,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_t_move_zu(long DistZ,long DistU,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_ta_move_zu(long PosZ,long PosU,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_start_s_move_zu(long DistZ,long DistU,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_sa_move_zu(long PosZ,long PosU,long StrVel,long MaxVel,double Tacc,double Tsacc);
DWORD WINAPI d3000_start_arc_xy(long OffsetCx,long OffsetCy,long OffsetEx,long OffsetEy,short Dir,long MaxVel);
DWORD WINAPI d3000_start_a_arc_xy(long Cx,long Cy,long Ex,long Ey,short Dir,long MaxVel);
DWORD WINAPI d3000_start_arc_zu(long OffsetCx,long OffsetCy,long OffsetEx,long OffsetEy,short Dir,long MaxVel);
DWORD WINAPI d3000_start_a_arc_zu(long Cx,long Cy,long Ex,long Ey,short Dir,long MaxVel);
DWORD WINAPI d3000_start_arc2(short *AxisArray,long OffsetCx,long OffsetCy,long OffsetEx,long OffsetEy,short Dir,long MaxVel);
DWORD WINAPI d3000_start_a_arc2(short *AxisArray,long Cx,long Cy,long Ex,long Ey,short Dir,long MaxVel);
DWORD WINAPI d3000_hspeed_arc2(short *AxisArray,long OffsetC1,long OffsetC2,long OffsetEx,long OffsetEy,short Dir,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_hspeed_a_arc2(short *AxisArray,long C1,long C2,long E1,long E2,short Dir,long StrVel,long MaxVel,double Tacc,double Tdec);
DWORD WINAPI d3000_handwheel_move(short axis,short mode,long pulse,long speed);
WORD WINAPI d3000_motion_done(short axis);
DWORD WINAPI d3000_get_position(short axis);
DWORD WINAPI d3000_set_position(short axis,long Pos);
DWORD WINAPI d3000_get_command(short axis);
DWORD WINAPI d3000_set_command(short axis,long Pos);
DWORD WINAPI d3000_reset_target_pos(int axis);
DWORD WINAPI d3000_get_rest_command(short axis);
DWORD WINAPI d3000_set_conti_move(short axis,short conti_flag);
WORD WINAPI d3000_get_in_bit(short axis);
WORD WINAPI d3000_get_out_bit(short axis);


#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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