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