📄 adt8940.h
字号:
#ifndef _ADT8940_H__
#define _ADT8940_H__
long _stdcall adt8940_initial(void);
/* 功能:初始化卡
(1)返回值>0时,表示adt8940卡的数量。如果为3,则下面的可用卡号分别为0、1、2;
(2)返回值=0时,说明没有安装adt8940卡;
(3)返回值<0时,-1表示没有安装端口驱动程序,-2表示PCI桥存在故障。
*/
int _stdcall get_lib_version(int cardno);
/* 功能:获取当前库版本
返回值为硬件和库版本的版本号的组合
如果为110则表示硬件版本为1,库版本为1.0,依次类推。
如果为220则表示硬件版本为2,库版本为2.0,依次类推。
*/
int _stdcall set_pulse_mode(int cardno,int axis,int value,int logic,int dir_logic);
/* 功能:设置输出脉冲的工作方式
cardno 卡号
axis 轴号(1-4)
value 0:脉冲+脉冲方式 1:脉冲+方向方式
logic 0: 正逻辑脉冲 1: 负逻辑脉冲
dir_logic 0:方向输出信号正逻辑 1:方向输出信号负逻辑
返回值 0:正确 1:错误
默认模式:脉冲+方向,正逻辑脉冲,方向输出信号正逻辑
*/
int _stdcall set_limit_mode(int cardno,int axis,int v1,int v2,int logic);
/*功能:设定正负方向限位输入nLMT信号的模式
参数:
cardno 卡号
axis 轴号(1-4)
v1 0:正限位有效 1:正限位无效
v2 0:负限位有效 1:负限位无效
logic 0:低电平有效 1:高电平有效
返回值 0:正确 1:错误
默认模式为:正限位有效,负限位有效,低电平有效
*/
int _stdcall set_stop0_mode(int cardno,int axis,int v,int logic);
/*功能:设定stop0输入信号的模式
cardno 卡号
axis 轴号(1-4)
v 0:无效 1:有效
logic 0:低电平有效 1:高电平有效
返回值 0:正确 1:错误
默认模式为:无效
*/
int _stdcall set_stop1_mode(int cardno,int axis,int v,int logic);
/*功能:设定stop1输入信号的模式
cardno 卡号
axis 轴号(1-4)
v 0:无效 1:有效
logic 0:低电平有效 1:高电平有效
返回值 0:正确 1:错误
默认模式为:无效
*/
//----------------------------------------------------//
// 驱动状态检查函数 //
//----------------------------------------------------//
int _stdcall get_status(int cardno,int axis,int *v);
/*功能:获取各轴的驱动状态
cardno 卡号
axis 轴号(1-4)
v 驱动状态指针
0:驱动结束 非0:正在驱动
返回值 0:正确 1:错误
*/
int _stdcall get_inp_status(int cardno,int *v);
/*功能:获取插补的驱动状态
cardno 卡号
v 插补状态指针
0:插补结束 1:正在插补
返回值 0:正确 1:错误
*/
//----------------------------------------------------//
// 运动参数设定函数 //
//----------------------------------------------------//
int _stdcall set_range(int cardno, int axis,long Value);
/*功能:范围指定,设置倍率
在硬件版本为1的卡中必须使用,在硬件版本>1中已经停用
cardno 卡号
axis 轴号(1-4)
Value 范围(500-2)
返回值 0:正确 1:错误
倍率=500/Value
*/
int _stdcall set_acc(int cardno, int axis,long add);
/*功能:加速度设定
cardno 卡号
axis 轴号(1-4)
add 范围(硬件版本1(1-8000),硬件版本2(1-65536))
返回值 0:正确 1:错误
硬件版本1 加速度=add*125*倍率
硬件版本>1 加速度=add*125
*/
int _stdcall set_startv(int cardno, int axis,long speed);
/*功能:初始速度设定
cardno 卡号
axis 轴号(1-4)
speed 范围(硬件版本1(1-8000),硬件版本2(1-2M)
返回值 0:正确 1:错误
硬件版本1 初始速度=speed*倍率
硬件版本>1 初始速度=speed
*/
int _stdcall set_speed(int cardno, int axis,long speed);
/*功能:驱动速度设定
cardno 卡号
axis 轴号(1-4)
speed 范围(硬件版本1(1-8000),硬件版本2(1-2M)
返回值 0:正确 1:错误
硬件版本1 驱动速度=speed*倍率
硬件版本>1 驱动速度=speed
*/
int _stdcall set_command_pos(int cardno, int axis,long pos);
/*功能:逻辑位置设定
cardno 卡号
axis 轴号(1-4)
pos 范围(-2147483648~+2147483647)
返回值 0:正确 1:错误
*/
int _stdcall set_actual_pos(int cardno, int axis,long pos);
/*功能:实际位置设定
cardno 卡号
axis 轴号(1-4)
pos 范围(-2147483648~+2147483647)
返回值 0:正确 1:错误
*/
//----------------------------------------------------//
// 运动参数检查函数 //
//----------------------------------------------------//
int _stdcall get_command_pos(int cardno,int axis,long *pos);
/*功能:获取各轴的逻辑位置
cardno 卡号
axis 轴号(1-4)
pos 逻辑位置的指针
返回值 0:正确 1:错误
*/
int _stdcall get_actual_pos(int cardno,int axis,long *pos);
/*功能:获取各轴的实际位置
cardno 卡号
axis 轴号(1-4)
pos 实际位置的指针
返回值 0:正确 1:错误
*/
int _stdcall get_speed(int cardno,int axis,long *speed);
/*功能:获取各轴的当前驱动速度
cardno 卡号
axis 轴号(1-4)
speed 当前驱动速度的指针
返回值 0:正确 1:错误
*/
//----------------------------------------------------//
// 驱动函数 //
//----------------------------------------------------//
int _stdcall pmove(int cardno,int axis,long pos);
/*功能:定量驱动
cardno 卡号
axis 轴号(1-4)
pos 输出的脉冲数(-268435455~+268435455)
>0:正方向驱动 <0:负方向驱动
返回值 0:正确 1:错误
*/
int _stdcall dec_stop(int cardno,int axis);
/*功能:驱动减速停止
cardno 卡号
axis 轴号(1-4)
返回值 0:正确 1:错误
*/
int _stdcall sudden_stop(int cardno,int axis);
/*功能:驱动立即停止
cardno 卡号
axis 轴号(1-4)
返回值 0:正确 1:错误
*/
int _stdcall inp_move2(int cardno,int axis1,int axis2,long pulse1,long pulse2);
/*功能:两轴直线插补
cardno 卡号
axis1,axis2 参与插补的轴号
pulse1,pulse2 移动的相对距离(-8388608~+8388607)
返回值 0:正确 1:错误
*/
int _stdcall inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long pulse3);
/*功能:三轴直线插补
cardno 卡号
axis1,axis2,axis3 参与插补的轴号
pulse1,pulse2,pulse3 移动的相对距离(-8388608~+8388607)
返回值 0:正确 1:错误
*/
int _stdcall inp_move4(int cardno,long pulse1,long pulse2,long pulse3,long pulse4);
/*功能:四轴直线插补
cardno 卡号
pulse1,pulse2,pulse3,pulse4 XYZW四轴移动的相对距离(-8388608~+8388607)
返回值 0:正确 1:错误
*/
//----------------------------------------------------//
// 开关量输入输出类 //
//----------------------------------------------------//
int _stdcall read_bit(int cardno,int number);
/*功能:读取输入点
cardno 卡号
number 输入点(0-39)
返回值 0:低电平 1:高电平 -1:错误
*/
int _stdcall write_bit(int cardno,int number,int value);
/*功能:输出
cardno 卡号
number 输出点(0-15)
value 0: 低电平 1: 高电平
返回值 0:正确 1:错误
*/
int _stdcall get_hardware_ver(int cardno);
/*功能:获取硬件版本
cardno 卡号
返回值 1:硬件第一版
2:硬件第二版
*/
int _stdcall set_suddenstop_mode(int cardno,int v,int logic);
/*功能:硬件停止模式设置,硬件版本为1无此功能
cardno 卡号
v 0:无效 1:有效
logic 0:低电平有效 1:高电平有效
返回值 0:正确 1:错误
硬件停止信号固定使用P3端子板34引脚(IN31)
*/
int _stdcall get_delay_status(int cardno);
/*功能:获取延时状态,硬件版本为1无此功能
cardno 卡号
返回值 0:延时结束 1:延时进行中
*/
int _stdcall set_delay_time(int cardno,long time);
/*功能:设定延时时间,硬件版本为1无此功能
cardno 卡号
time 延时时间
返回值 0:正确 1:错误
时间单位为1/8us
*/
/*
int _stdcall adt8940_init_board(void);
int _stdcall home1(int axis,FUNCTION pfn);
int _stdcall home2(int axis1,int axis2,FUNCTION pfn);
int _stdcall home3(int axis1,int axis2,int axis3,FUNCTION pfn);
int _stdcall home4(FUNCTION pfn);
int _stdcall work_move1(int axis,float d,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_move2(int axis1,float d1,int axis2,float d2,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_move3(int axis1,float d1,int axis2,float d2,int axis3,float d3,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_move4(float d1,float d2,float d3,float d4,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_inp2(int axis1,float d1,int axis2,float d2,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_inp3(int axis1,float d1,int axis2,float d2,int axis3,float d3,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_inp4(float d1,float d2,float d3,float d4,int oppmode,int speedmode,FUNCTION pfn);
int _stdcall work_arc(int axis1,int axis2,float cood[],int speedmode,FUNCTION pfn);
int _stdcall hand_move(int axis,int dir,FUNCTION pfn);
int _stdcall continue_move1(int axis,int dir,int speedmode,FUNCTION pfn);
int _stdcall continue_move2(int axis1,int dir1,int axis2,int dir2,int speedmode,FUNCTION pfn);
int _stdcall continue_move3(int axis1,int dir1,int axis2,int dir2,int axis3,int dir3,int speedmode,FUNCTION pfn);
int _stdcall continue_move4(int dir1,int dir2,int dir3,int dir4,int speedmode,FUNCTION pfn);
int _stdcall free_move1(int axis,float d,float startv,float speed,float addtime,int oppmode,FUNCTION pfn);
int _stdcall free_move2(int axis1,float d1,float startv1,float speed1,float addtime1,int axis2,float d2,float startv2,float speed2,float addtime2,int oppmode,FUNCTION pfn);
int _stdcall free_move3(int axis1,float d1,float startv1,float speed1,float addtime1,int axis2,float d2,float startv2,float speed2,float addtime2,int axis3,float d3,float startv3,float speed3,float addtime3,int oppmode,FUNCTION pfn);
int _stdcall free_move4(float d1,float startv1,float speed1,float addtime1,float d2,float startv2,float speed2,float addtime2,float d3,float startv3,float speed3,float addtime3,float d4,float startv4,float speed4,float addtime4,int oppmode,FUNCTION pfn);
int _stdcall one_stop(int axis,int mode);
int _stdcall all_stop(int mode);
float _stdcall get_logical_pos(int axis,int mode);
float _stdcall get_fact_pos(int axis,int mode);
float _stdcall get_move_speed(int axis,int mode);
int _stdcall get_input(int number);
int _stdcall set_output(int number,int value);
int _stdcall inp_arc(int axis1,int axis2,long pulse1,long pulse2,float cood[],FUNCTION pfn);
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -