?? gtcardapi.h
字號(hào):
/* Copyright (c) 2006, lihaizhou All rights reserved.
文件名稱:GtCardApi.h
摘 要:固高GT-400-SP-PCI-G運(yùn)動(dòng)控制卡操作類
運(yùn)行環(huán)境:Windows2000/Xp
當(dāng)前版本: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);
/////////////////////////////////////////////////////////
//設(shè)置通訊窗口句柄.
virtual void SetMainWnd(HWND hWnd);
//初始系統(tǒng)參數(shù)
virtual int InitSystem();
//找某軸的限位值,nAixs=1為X軸,2為Y軸,3為Z軸
virtual int FindLimit(int nAixs);
//找系統(tǒng)的三軸光柵的RI點(diǎn),找到后并將該點(diǎn)作為系統(tǒng)的機(jī)械坐標(biāo)系原點(diǎn)
virtual int FindRI();
//得到X,Y,Z三軸的光柵尺的Counter
virtual void GetXYZCounter(long &x,long &y,long &z);
//得到X,Y,Z三軸的坐標(biāo)值
virtual void GetXYZCrd(double &dX,double &dY,double &dZ);
//以合成的速度和加速度運(yùn)動(dòng)到(dX,dY,dZ)點(diǎn),注:該點(diǎn)為坐標(biāo)系下的值
virtual int MoveTo(double dX,double dY,double dZ,double dAcc,double dSpeed);
//設(shè)置合成的加速度
virtual int SetCombAcc(double dAcc = 0.0);
//設(shè)置合成的速度
virtual int SetCombSpeed(double dSpeed = 0.0);
//以設(shè)置的速度和加速度運(yùn)動(dòng)到(x,y,z)點(diǎn),注:該點(diǎn)為機(jī)械坐標(biāo)系下的值
virtual int MoveTo(double x,double y,double z);
//禁止操縱桿
virtual void DisableJoyStick();
//使能操縱桿
virtual void EnableJoyStick();
//得到光源的各燈的亮度值,pData為亮度值,nLength為數(shù)據(jù)長(zhǎng)度
virtual void GetNightData(BYTE *pData,int nLength);
//設(shè)置光源的各燈的亮度值,pData為亮度值,nLength為數(shù)據(jù)長(zhǎng)度
virtual void SetNightData(BYTE *pData,int nLength);
//得到系統(tǒng)狀態(tài)
virtual CNCMSTATE GetSysState();
//設(shè)置光柵的計(jì)數(shù)方向,1為正向,-1為負(fù)向,注意只有1和-1
virtual void SetLinearDirect(int nX=1,int nY=1,int nZ=1);
//設(shè)置X軸的軟件限位值,dZ為正限位值,dF為負(fù)限位值,注意dZ和dF都是機(jī)械坐標(biāo)系下坐標(biāo)值
virtual BOOL SetSoftLimit_X(double dZ,double dF);
//設(shè)置Y軸的軟件限位值,dZ為正限位值,dF為負(fù)限位值,注意dZ和dF都是機(jī)械坐標(biāo)系下坐標(biāo)值
virtual BOOL SetSoftLimit_Y(double dZ,double dF);
//設(shè)置Z軸的軟件限位值,dZ為正限位值,dF為負(fù)限位值,注意dZ和dF都是機(jī)械坐標(biāo)系下坐標(biāo)值
virtual BOOL SetSoftLimit_Z(double dZ,double dF);
//如果出錯(cuò)時(shí),得到錯(cuò)誤代碼
virtual int GetErrorCode();
//該函數(shù)為在軟件上通過鼠標(biāo)快速移動(dòng)XYZ三軸,dXSpeed,dYSpeed,dZSpeed分別為速度大小,正負(fù)為方向,單位為mm/s
virtual int QuickMove(double dXSpeed,double dYSpeed,double dZSpeed);
//得到系統(tǒng)的類型,0:HuaGong_1,1:WanHao_1,2:WanHao_2,.....
virtual int GetSysType();
/////////////////////////////////////////////////////////
// 功 能:運(yùn)動(dòng)控制器初始化
//
// 返回值: 非0表示有錯(cuò)誤發(fā)生
// 0表示沒有有錯(cuò)誤發(fā)生
virtual int InitNCCard();
// 功 能:關(guān)閉運(yùn)動(dòng)控制器設(shè)備
//
// 返回值: 非0表示有錯(cuò)誤發(fā)生
// 0表示沒有有錯(cuò)誤發(fā)生
virtual int CloseCard();
virtual int GetAxisMode(int axis, unsigned short *pMode);
// 功 能:初始化軸指定的軸
//
// 參 數(shù):axis的取值(1) axis <= 0 時(shí)初始化系統(tǒng)所有的軸
// (2) 1 , 2 , 3 ,4 時(shí)初始化指定的軸
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int InitialAxis(int aixs);
// 功 能:控制使能或者關(guān)閉指定的軸
//
// 參 數(shù): axis的取值 (1) axis <= 0 時(shí)使能或者關(guān)閉系統(tǒng)所有的軸
// (2) 1 , 2 , 3 ,4 時(shí)使能或者關(guān)閉指定的軸
//
// mode的取值 (1) Axis_On_Mode 打開軸驅(qū)動(dòng)使能
// (2) Axis_Off_Mode 關(guān)閉軸驅(qū)動(dòng)使能
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_on_off(int axis , int mode);
// 功 能:設(shè)置指定的軸手動(dòng)和回零時(shí)的運(yùn)動(dòng)參數(shù)
//
// 參 數(shù): speed的取值(1) speed > 0 指定的軸向以speed的速度向正方向手動(dòng) (-16384 -- 16384)
// (2) speed < 0 指定的軸向以speed的速度向負(fù)方向手動(dòng)
// (3) speed = 0 指定的軸停止運(yùn)動(dòng)
// acc的取值 (1) 指定的軸加速度 0 -- 16383
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_jog_para(double speed ,double acc = 0.001);
// 功 能:設(shè)置指定的軸手動(dòng)和回零時(shí)的運(yùn)動(dòng)參數(shù)
//
// 參 數(shù): speed1的取值(1) speed1 > 0 指定的軸向以speed1的速度向正方向回零 (-16384 -- 16384)
// (2) speed1 < 0 指定的軸向以speed1的速度向負(fù)方向回零
// (3) speed1 = 0 指定的軸停止運(yùn)動(dòng)
// acc的取值 (1) 指定的軸加速度 0 -- 16383
virtual void set_home_para(double speed1 , double acc = 0.001);
// 功 能:控制指定的軸回參考點(diǎn)
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸回參考點(diǎn)
//
// start_stop參數(shù): 1 指定的軸回零
// 0 指定的回零動(dòng)作停止
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_home(int axis,int start_stop);
// 功 能:控制指定的軸進(jìn)行回參考點(diǎn)動(dòng)作,此函數(shù)需不斷執(zhí)行,直到返回0或者-1
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸回參考點(diǎn)
// speed的取值(1) speed > 0 指定的軸向以speed的速度向正方向回零 (-16384 -- 16384)
// (2) speed < 0 指定的軸向以speed的速度向負(fù)方向回零
// (3) speed = 0 指定的軸停止運(yùn)動(dòng)
// acc的取值 (1) 指定的軸加速度 0 -- 16383
//
// 返回值: 1 表示正在回零
// -1 表示回零失敗
// 0 表示回零完成
virtual int set_axis_homeing(int axis);
// 功 能:控制指定的軸以某一速度一直運(yùn)動(dòng)
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_jog(int axis);
// 功 能:設(shè)置指定的軸步進(jìn)或者單軸運(yùn)動(dòng)時(shí)的運(yùn)動(dòng)參數(shù)
//
// 參 數(shù): speed的取值(1) speed > 0 指定的軸向以speed的速度運(yùn)動(dòng)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);
// 功 能:控制指定的軸以某一速度,以當(dāng)前位置為基礎(chǔ),增量運(yùn)行displacement指定的距離
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
//
// displacement的取值(1) displacement > 0 指定的軸向以speed的速度向正方向運(yùn)動(dòng)
// (2) displacement < 0 指定的軸向以speed的速度向負(fù)方向運(yùn)動(dòng)
//
// speed的取值(1) speed > 0 指定的軸向以speed的速度運(yùn)動(dòng) 0 -- 16383
// acc的取值 (1) 指定的軸加速度 0 -- 0.5
// jerk的取值 (1) 指定的軸加加速度 0 -- 0.5
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_step(int axis,long displacement);
// 功 能:控制指定的軸以某一速度,運(yùn)動(dòng)到指定的位置
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
//
// position的取值(1) 指定的軸要運(yùn)動(dòng)到的位置
//
// speed的取值(1) speed > 0 指定的軸向以speed的速度運(yùn)動(dòng) 0 -- 16383
// acc的取值 (1) 指定的軸加速度 0 -- 0.5
// jerk的取值 (1) 指定的軸加加速度 0 -- 0.5
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_moveto(int axis,long position);
// 功 能:平滑停止指定軸
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 平滑停止所有的軸
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_stop(int axis);
// 功 能:立即停止指定軸
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 立即停止所有的軸
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_estop(int axis);
// 功 能:獲取當(dāng)前軸的實(shí)際位置
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
// pos 存放位置信息緩沖區(qū)
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int get_axis_pos(int axis , long *pos);
// 功 能:調(diào)用該函數(shù)將當(dāng)前軸的實(shí)際位置和目標(biāo)位置以及控制當(dāng)前控制
// 周期的規(guī)劃位置修改為設(shè)定值
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
// pos 設(shè)置的位置信息
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_axis_pos(int axis , long pos);
// 功 能:該函數(shù)獲得當(dāng)前軸要運(yùn)動(dòng)到的目標(biāo)位置位置值
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
// pos 存放位置信息緩沖區(qū)
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int get_dest_pos(int axis , long *pos);
// 功 能:該函數(shù)設(shè)置當(dāng)前軸要運(yùn)動(dòng)到的目標(biāo)位置位置值,
// 系統(tǒng)此時(shí)并不立刻運(yùn)動(dòng)除非馬上調(diào)用GT_Update
//
//
// 參 數(shù): axis的取值 (1) axis <= 0 無效的參數(shù)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸回參考點(diǎn)
// pos 設(shè)置的位置信息
//
// 返回值: 1表示有錯(cuò)誤發(fā)生
// 0表示命令執(zhí)行成功
virtual int set_dest_pos(int axis , long pos);
// 功 能:當(dāng)前軸是否在運(yùn)動(dòng)
//
// 參 數(shù): axis的取值 (1) axis <= 0 判斷所有的軸運(yùn)動(dòng)是否運(yùn)動(dòng)
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸
//
// 返回值:1表示在運(yùn)動(dòng)
// 0表示沒有運(yùn)動(dòng)
// -1表示檢測(cè)時(shí)出錯(cuò)
virtual int get_axis_den(int axis = -1);
// 功 能:檢測(cè)當(dāng)前軸是否有錯(cuò)誤
//
// 參 數(shù): axis的取值 (1) axis <= 0 判斷有的軸是否有錯(cuò)誤
// (2) 1 , 2 , 3 ,4 時(shí)使指定的軸是否有錯(cuò)誤
//
// 返回值:(1) 返回值的低三位為1分別表示有錯(cuò)誤發(fā)生,分別如下三種情況
// 第一位為1,表示當(dāng)前軸是電機(jī)伺服驅(qū)動(dòng)器報(bào)警
// 第二位為1,表示當(dāng)前軸是運(yùn)動(dòng)出錯(cuò)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -