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

📄 gtcardapi.h

📁 关于固高卡的包装的api函数和轴状态以及坐标系状态下的状态实时读取及显示
💻 H
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2006, lihaizhou All rights reserved.
文件名称:GtCardApi.h
摘  要:固高GT-400-SP-PCI-G运动控制卡操作类
			
运行环境:Windows2000/Xp 
当前版本:0.1 
修改描述:
修改作者:
修改日期:
原 作 者:李海洲
主 管 人:李海洲
完成日期:2006年02月19日		*/

#ifndef _Gt_Card_API_H_
#define _Gt_Card_API_H_

#include "GT400.h"
#include "GtCardDef.h"
#include "CncBase.h"


class Gt_Card_Api : public CCncBase
{
public:
	Gt_Card_Api();
	~Gt_Card_Api();

	DECLARE_DYNAMIC(Gt_Card_Api);

/////////////////////////////////////////////////////////
//设置通讯窗口句柄.
virtual void SetMainWnd(HWND hWnd);
//初始系统参数
virtual int InitSystem();
//找某轴的限位值,nAixs=1为X轴,2为Y轴,3为Z轴
virtual int FindLimit(int nAixs);
//找系统的三轴光栅的RI点,找到后并将该点作为系统的机械坐标系原点
virtual int FindRI();
//得到X,Y,Z三轴的光栅尺的Counter
virtual void GetXYZCounter(long &x,long &y,long &z);
//得到X,Y,Z三轴的坐标值
virtual void GetXYZCrd(double &dX,double &dY,double &dZ);
//以合成的速度和加速度运动到(dX,dY,dZ)点,注:该点为坐标系下的值
virtual int MoveTo(double dX,double dY,double dZ,double dAcc,double dSpeed);
//设置合成的加速度
virtual int SetCombAcc(double dAcc = 0.0);
//设置合成的速度
virtual int	SetCombSpeed(double dSpeed = 0.0);
//以设置的速度和加速度运动到(x,y,z)点,注:该点为机械坐标系下的值
virtual int MoveTo(double x,double y,double z);
//禁止操纵杆
virtual void DisableJoyStick();
//使能操纵杆
virtual void EnableJoyStick();
//得到光源的各灯的亮度值,pData为亮度值,nLength为数据长度
virtual void GetNightData(BYTE *pData,int nLength);
//设置光源的各灯的亮度值,pData为亮度值,nLength为数据长度
virtual void SetNightData(BYTE *pData,int nLength);
//得到系统状态
virtual CNCMSTATE GetSysState();
//设置光栅的计数方向,1为正向,-1为负向,注意只有1和-1
virtual void SetLinearDirect(int nX=1,int nY=1,int nZ=1);
//设置X轴的软件限位值,dZ为正限位值,dF为负限位值,注意dZ和dF都是机械坐标系下坐标值
virtual BOOL SetSoftLimit_X(double dZ,double dF);
//设置Y轴的软件限位值,dZ为正限位值,dF为负限位值,注意dZ和dF都是机械坐标系下坐标值
virtual BOOL SetSoftLimit_Y(double dZ,double dF);
//设置Z轴的软件限位值,dZ为正限位值,dF为负限位值,注意dZ和dF都是机械坐标系下坐标值
virtual BOOL SetSoftLimit_Z(double dZ,double dF);
//如果出错时,得到错误代码
virtual int GetErrorCode();
//该函数为在软件上通过鼠标快速移动XYZ三轴,dXSpeed,dYSpeed,dZSpeed分别为速度大小,正负为方向,单位为mm/s
virtual int QuickMove(double dXSpeed,double dYSpeed,double dZSpeed);
//得到系统的类型,0:HuaGong_1,1:WanHao_1,2:WanHao_2,.....
virtual int GetSysType();

/////////////////////////////////////////////////////////
// 功  能:运动控制器初始化
//
// 返回值: 非0表示有错误发生
//			0表示没有有错误发生 
virtual int InitNCCard();

// 功  能:关闭运动控制器设备
//
// 返回值: 非0表示有错误发生
//			0表示没有有错误发生 
virtual int CloseCard();

virtual int GetAxisMode(int axis, unsigned short *pMode);
	// 功  能:初始化轴指定的轴
//
// 参  数:axis的取值(1)  axis  <= 0 时初始化系统所有的轴
//					 (2)  1 , 2 , 3 ,4 时初始化指定的轴
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int InitialAxis(int aixs);

// 功  能:控制使能或者关闭指定的轴
//
// 参  数: axis的取值 (1) axis  <= 0 时使能或者关闭系统所有的轴
//					  (2) 1 , 2 , 3 ,4 时使能或者关闭指定的轴
//
//         mode的取值 (1) Axis_On_Mode 打开轴驱动使能
//					  (2) Axis_Off_Mode 关闭轴驱动使能
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_on_off(int axis , int mode); 

// 功  能:设置指定的轴手动和回零时的运动参数
//
// 参  数: speed的取值(1) speed > 0 指定的轴向以speed的速度向正方向手动 (-16384 -- 16384)
//					  (2) speed < 0 指定的轴向以speed的速度向负方向手动
//					  (3) speed = 0 指定的轴停止运动
//		   acc的取值  (1) 指定的轴加速度 0 -- 16383
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_jog_para(double speed ,double acc = 0.001);

// 功  能:设置指定的轴手动和回零时的运动参数
//
// 参  数: speed1的取值(1) speed1 > 0 指定的轴向以speed1的速度向正方向回零 (-16384 -- 16384)
//					   (2) speed1 < 0 指定的轴向以speed1的速度向负方向回零
//					   (3) speed1 = 0 指定的轴停止运动
//		   acc的取值  (1) 指定的轴加速度 0 -- 16383
virtual void set_home_para(double speed1 , double acc = 0.001);

// 功  能:控制指定的轴回参考点
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴回参考点
//
// start_stop参数:	1 指定的轴回零
//					0 指定的回零动作停止
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_home(int axis,int start_stop);

// 功  能:控制指定的轴进行回参考点动作,此函数需不断执行,直到返回0或者-1
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴回参考点
//         speed的取值(1) speed > 0 指定的轴向以speed的速度向正方向回零 (-16384 -- 16384)
//					  (2) speed < 0 指定的轴向以speed的速度向负方向回零
//					  (3) speed = 0 指定的轴停止运动
//		   acc的取值  (1) 指定的轴加速度 0 -- 16383
//
// 返回值: 1 表示正在回零
//		   -1 表示回零失败
//		    0 表示回零完成
virtual int set_axis_homeing(int axis);

// 功  能:控制指定的轴以某一速度一直运动
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_jog(int axis);

// 功  能:设置指定的轴步进或者单轴运动时的运动参数
//
// 参  数: speed的取值(1) speed > 0 指定的轴向以speed的速度运动0 -- 16383
//		   acc的取值  (1) 指定的轴加速度 0 -- 0.5
//		   jerk的取值  (1) 指定的轴加加速度 0 -- 0.5
virtual void set_move_step_para(double speed ,double acc = 0.001 ,double jerk = 0.0001);

// 功  能:控制指定的轴以某一速度,以当前位置为基础,增量运行displacement指定的距离
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//
//         displacement的取值(1) displacement > 0 指定的轴向以speed的速度向正方向运动
//							 (2) displacement < 0 指定的轴向以speed的速度向负方向运动
//
//         speed的取值(1) speed > 0 指定的轴向以speed的速度运动 0 -- 16383
//		   acc的取值  (1) 指定的轴加速度 0 -- 0.5
//		   jerk的取值  (1) 指定的轴加加速度 0 -- 0.5
//					  
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_step(int axis,long displacement);

// 功  能:控制指定的轴以某一速度,运动到指定的位置
//
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//
//         position的取值(1) 指定的轴要运动到的位置
//
//         speed的取值(1) speed > 0 指定的轴向以speed的速度运动 0 -- 16383
//		   acc的取值  (1) 指定的轴加速度 0 -- 0.5
//		   jerk的取值  (1) 指定的轴加加速度 0 -- 0.5
//					  
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_moveto(int axis,long position);

// 功  能:平滑停止指定轴
//
//
// 参  数: axis的取值 (1) axis  <= 0 平滑停止所有的轴
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_stop(int axis);

// 功  能:立即停止指定轴
//
//
// 参  数: axis的取值 (1) axis  <= 0 立即停止所有的轴
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_estop(int axis);

// 功  能:获取当前轴的实际位置 
//
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//			pos	存放位置信息缓冲区
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int get_axis_pos(int axis , long *pos);

// 功  能:调用该函数将当前轴的实际位置和目标位置以及控制当前控制
//		   周期的规划位置修改为设定值
//
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//			pos	设置的位置信息
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_axis_pos(int axis , long pos);

// 功  能:该函数获得当前轴要运动到的目标位置位置值
//
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//			pos	存放位置信息缓冲区
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int get_dest_pos(int axis , long *pos);


// 功  能:该函数设置当前轴要运动到的目标位置位置值,
//		   系统此时并不立刻运动除非马上调用GT_Update
//
//
// 参  数: axis的取值 (1) axis  <= 0 无效的参数
//					  (2) 1 , 2 , 3 ,4 时使指定的轴回参考点
//			pos	设置的位置信息
//
// 返回值: 1表示有错误发生
//			0表示命令执行成功
virtual int set_dest_pos(int axis , long pos);

// 功  能:当前轴是否在运动
//
// 参  数: axis的取值 (1) axis  <= 0 判断所有的轴运动是否运动
//					  (2) 1 , 2 , 3 ,4 时使指定的轴
//
// 返回值:1表示在运动
//		   0表示没有运动
//		  -1表示检测时出错
virtual int get_axis_den(int axis = -1);

// 功  能:检测当前轴是否有错误
//
// 参  数: axis的取值 (1) axis  <= 0 判断有的轴是否有错误
//					  (2) 1 , 2 , 3 ,4 时使指定的轴是否有错误
//
// 返回值:(1) 返回值的低三位为1分别表示有错误发生,分别如下三种情况
//						    第一位为1,表示当前轴是电机伺服驱动器报警
//						    第二位为1,表示当前轴是运动出错

⌨️ 快捷键说明

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