📄 gtcardapi.h
字号:
/* 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 + -