0755-0755- support@googoltech.com http://www.googoltech.com.cn/ GT
support@googoltech.com 0755-269708232697083526970839 W211 518057 GT C Windows GT GT DOS Borland C3.1 Windows VC++6.0 GT GT
I
II
III
IV
V
VI
VII
HomeIndex I/O
DOS Windows DOS Windows 1.1 DOS DOS DOS\UserLib userlib.h userlibt.lib userlibs.lib userlibm.lib userlibc.lib userlibl.lib userlibh.lib Borland C3.1 Borland C3.1 1. Borland C ProjectOpen Project 2. include userlib.h 3. Borland C ProjectAdd Item c cpp 4. userlib.h 5. Borland C ProjectAdd Item 6. Borland C OptionCompilerCode Generation Model 7. 1.2 Windows Windows Windows\Dll ISA GTDLL.hGTDLL.libGTDLL.dllPCI GT400.hGT400.libGT400.dll VC++6.0 VCVBDelphi 1
1.2.1 VC ISA 1. #include GTDLL.h" 2. VC Project--Setting--Link Object/Library modules GTDLL.lib PCI 1. #include GT400.h" 2. VC Project--Setting--Link Object/Library modules GT400.lib 1.2.2 VB Windows\VB GTDeclarISA.bas GTDeclarPCI.bas 1.2.3 Delphi Windows\Delphi GTFunc.pas 2
2.1 () C DOS Windows 2-1 2-1 -1 GT 0 1 GT_GetCmdSts() GT_ArcXYGT_ArcYZ 2 GT_ArcZX GT_LnXYGT_LnXYZ 3 GT_LnXYZA GT_SetSynVel 4 GT_SetSynAcc GT_ArcXYPGT_ArcYZP 5 GT_ArcZXP 6 GT_MapAxis 7 3
-1-1 GT D 1 bit3 bit7 GT_GetCmdSts() 2.2 GT_GetCmdSts() 16 bit0~bit11 bit12~bit15 2-2 2-1 4
2-2 Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 Bit9 Bit10 Bit11 Bit12 Bit13 Bit14 Bit15 1GT_SetPosGT_SetVel GT_SetAccGT_SetAtlPos 1GT_SetVelGT_SetAcc GT_SetJerk GT_SetMAcc GT_SetMtrLmt GT_SetKp GT_SetKi GT_SetKd GT_SetKvffGT_SetKaffGT_SetILmtGT_SetPosErr 1 GT_MltiUpdt (value) value=0 1 GT_DrvRst 1 1 1 1 GT_CaptIndex GT_CaptHome GT_CaptIndex 1 1 GT_CaptIndex GT_CaptHome GT_CaptHome 1 1 GT_AxisOn 1 1 GT_ZeroPos 1 GT_SynchPos 1 1 GT_Update GT_MltiUpdt S- GT_SetVel GT_Update GT_MltiUpdt 1 GT_StrtMtn GT_StrtList GT_AddList 1 GT_MvXYGT_MvXYZGT_MvXYZA 1 5
3.1 3.1.1 3-1 GT_Open() GT_SetAddr() GT_SwitchtoCardNo() GT_Reset() GT_SetSmplTm() ISA DOS ( ISA DOS ) PCI 3.1.2 3-1 (ISA DOS ) 3-2 (ISA Windows ) 6
3-3 PCI 3.1.3 (ISADOS) PCISA short GT_SetAddr(unsigned short BaseAddr)BaseAddr GT 0x300 0-1 (ISA Windows) short GT_Open(unsigned long PortBase, unsigned long irq) PortBaseirq 0 0 1015 irq 0 GT_Open short GT_Close(void) 0 0 7
short GT_SetSmplTm(double Timer) Timer 48~1966.08 200 GT_GetCrdSts() 1.7 bit2 1 3.2 3.2.1 GT_LmtSns( ) GT_EncSns( ) SV GT_HomeSns( )Firmware Home 0 Ver2.50 3.2.2 3-4 3-2 8
3.2.3 3.2.3.1 OGND GT GT_ClrSts GT_LmtSns GT_LmtSns 0 1 3-3 GT_LmtSns 3.2.3.2 OGND GT GT_HomeSnsFirmware Ver2.50 0 1 3-4 3-4 GT_HomeSns (Firmware Ver2.50 ) 3.2.3.3 GT_EncSns 1 9
3-5 3-5 GT_EncSns 3.2.3.4 GT_AlarmOff(Firmware Ver2.50 ) GT GT_ClrSts 3.3 3.3.1 3-3 GT_Axis() GT_ClrSts() GT_StepDir() GT_StepPulse() GT_AxisOn() GT_CtrlMode() GT_CloseLp() GT_OpenLp() GT_SetKp() GT_SetKi() GT_SetKd() SV GT_SetKvff() GT_SetKaff() GT_SetILmt() GT_SetMtrLmt() GT_SetMtrBias() / / / 3.3.2 3-5 SDSE SGSP 10
3-6 SV 11
3.2.3 short GT_Axis(unsigned short num) GT_Axis() num1234 +/ SGSESDSV +GT_StepPulse GT_StepDir+ / SV SV SV short GT_CtrlMode(int mode) Mode0 1 GT_StepDir GT_StepPulse / 12
/ SV SV GT_CloseLp() SV GT_OpenLp() GT_SetMtrCmd() SV SV PID PID+K vff +K aff 3-4 PID+K vff +K aff 3-1 K p K i K d Lim K vff K aff 3-4 GT_SetKp() 0 GT_ SetKpEx()Firmware 0 to 32,767 Ver2.50 GT_SetKi(); 0 GT_ SetKiEx()Firmware 0 to 32,767 Ver2.50 GT_SetKd(); 0 GT_ SetKdEx()Firmware 0 to 32,767 Ver2.50 GT_SetILmt() 0 to 32,767 32,767 GT_SetKvff(); GT_ SetKvffEx()Firmware 0 to 32,767 Ver2.50 GT_SetKaff(); GT_ SetKaffEx()Firmware 0 to 32,767 Ver2.50 B GT_SetMtrBias() -32768 to 32,767 0 0 0 13
K vff K aff P=K p *E n ++ + + I=K i *(S+E n ) S=S+E n D=(E n -E n-1 )*K 3-1 E n ( Pt et ) ( P actual ) n = arg n U n = EnK p + n n 1 d n i 256 t arg et vff t arg et aff + n 3-5 ( E E ) K + E K / + V K + ACC K B 3-5 U n En n P arg n t et Pactual n E n n n V arg / t et ACC target / 2 B 14
Ki Ki 0 Lim() 0Ki Lim -32768 +32767 0 +/-2 15 +/-10V 0-32767 GT_SetMtrLmt( ) 32767 15
4.1 4 S- 4.1.1 S- 4.1.1.1 4-1 S- GT_PrflS() GT_SetJerk() GT_SetMAcc() GT_SetVel() GT_SetPos() S- -1,073,741,824 ~+1,073,741,823 Pulse 0~0.5 0.5 Pulse/ST 3 0~0.5 0.5 0~32767Firmware Ver2.50 Pulse/ST 2 0~16384 Pulse/ST 4.1.1.2 4-2 S- (ST) 4-1 S- 16
4.1.1.3 4-1 S- 4-1 S- 1 Jerk () 2 3 3 4 567 123 S- S- 4-2 S- 4 17
V 3 5 1 2 6 7 T 4-2 S- 4.1.2 4.1.2.1 4-3 GT_PrflT() GT_SetAcc() GT_SetVel() GT_SetPos() 4-4 (ST) 0~16384 Pulse/ST 2 0~16384 Pulse/ST -1,073,741,824 ~1,073,741,823 Pulse 4.1.2.2 4-2 18
4.1.2.3 V 2 1 3 T 4-3 4-3 1 2 3 3 2 4-4 V T 4-4 GT_PrflT() 4-3 4-3 4-4 19
4.1.3 4.1.3.1 4-5 GT_PrflV() GT_SetAcc() GT_SetVel() -16384~16384 Pulse/ST 0~16383 Pulse/ST 2 4.1.3.2 4-3 4.1.3.3 4-6 (ST) GT_PrflV(),,, 4-5 4-6 20
4.1.4 4.1.4.1 GT_PrflG() GT_SetRatio() 4-7 16 14 56-1638416384 4.1.4.2 4-4 4.1.4.3 4-8 (ST) GT_PrflG() / -1638416384 21
GT_SetRatio() 4.2 BIT10 4.2.1 4-9 GT_SmthStp() GT_AbptStp() 4.2.2 4-5 IO EXI15 void main() short rtn; unsigned short ex_data; rtn=gt_exinpt(&ex_data); error(rtn); // rtn=gt_axis(1); error(rtn); // 1 if(ex_data&0x8000) // EXI15 rtn=gt_abptstp(); error(rtn); // 22
4.2.3 GT_AbptStp() 0/ GT_AbptStp() GT_AbptStp() GT_SmthStp() 0 4-5 S- GT_SmthStp() GT_Update() GT_MltiUpdt()GT_SmthStp() V T 4-5 S- 4.3 3.3 4.1 4.2 4-10 23
4-10 GT_SetPos() GT_SetBrkcn() GT_SetVel() GT_SetAcc() GT_SetMAcc() GT_SetJerk() GT_SetRatio() GT_SetMtrLmt() GT_SetMtrBias() GT_SetKp() GT_SetKi() GT_SetKd() GT_SetKvff() GT_SetKaff() GT_SetILmt() GT_SetPosErr() GT_SmthStp() GT_SynchPos() 4.3.1 4.3.1.1 4-11 GT_Update() GT_MltiUpdt() 4.3.1.2 4-6 24
4.3.1.3 GT_Update() GT_MltiUpdt() 4.3.2 4-12 4-12 GT_AuUpdtOn() GT_AuUpdtOff() GT_GetBrkCn() GT_PosBrk() GT_NegBrk() GT_ExtBrk() GT_MtnBrk() GT_BrkOff() 25
GT_AuUpdtOn() GT_AuUpdtOff() GT_GetMode() 4.5.2 GT_BrkOff() 4.3.2.1 GT_SetBrkCn() GT_Update() GT_MltiUpdt() GT_PosBrk() 1 4-7 26
4.3.2.2 GT_SetBrkCn() GT_Update() GT_MltiUpdt() GT_NegBrk() 1 4-8 4.3.2.3 GT_MtnBrk() 1 1 4-9 27
4.3.2.4 GT_ExtBrk() Index/Home 1 1 4-10 1 28
4.4 4.4.1 4-13 GT_SetPos() GT_ZeroPos() GT_SynchPos() GT_SetAtlPos() 4.4.2 short GT_SetPos (long Pos) S- Pos 10737418241073741823 GT_Update() GT_MltiUpdt() short GT_ZeroPos() short GT_SynchPos(void) S- GT_Update() GT_MltiUpdt() 29
short GT_SetAtlPos(long actl_pos) actl_pos 4.5 4.5.1 16 GT_GetSts()GT_GetStsEx()Firmware Ver2.50 4.5.1.1 1 0 1 1 2 1 Index/Home 3 Index/Home 1 ( 4.4.7.3 ) 4 1 5 1 6 1 7 1 8 /(1 0 ) 9 /(1 0 ) 1 10 0 11 /1 0 ) 12 13 (13bit=,12bit=) Bit 13 Bit12 0 0 1 0 1 2 1 0 3 1 1 4 14 Home 15 Index 4-14 30
4.5.1.2 4-14 8-15 0-7 1 GT_ClrSts()GT_RstSts() 0-6 0 10 0 GT_SmthStp() 0 GT_AbptStp() GT_LmtsOn() GT_AxisOn() / / 4.5.2 GT_GetMode() 4-15 31
0-6 7 GT_AuStpOn() GT_AuStpOff() 1 8-9 10 11-13 GT_AuUpdtOn()GT_AuUpdtOff() 1 : Bit13 Bit12 Bit11 0 0 0 0 0 1 0 1 0 S- 0 1 1 1 0 1 14-15 4-15 32
5.1 X -Y - Z - A X Y Z 5-1 X Y X Y Z Z O Y X GT_MapAxis() GT_MapAxis() short GT_MapAxis(short Axis_Num, double * map_count) Axis_Num 123 4 Axis _ N map_count C x C y C z C a C XYZA x y z a Axis _ N = C x + C 5-1 y + C z + C a x y z a + XYZA C 33
5-1 5-2 1 34
5-3 2 Y 5-2 1 X 5-2 1 2 X-O-Y 35
3 S- 5 X 36
5.2 5.2.1 GT_SetSynVel( ) GT_SetSynAcc( ) 5-1 5.2.2 5-4 5-2 1mm 3m/min 0.9m/min 2 200us 3m/min3000/300000(mm/ST)0.01mm/ST 0.9m/min 2 900/(9x10 10 )(mm/st 2 )=1x10-8 (mm/st 2 ) 0.9(m/min 2 3(m/min) 5.2.3 short GT_SetSynVel(double Vel); Vel / 37
V = V + V + V + V x y z short GT_SetSynAcc(double Accel); Accel / 2 2 2 2 Acc = Acc + Acc + Acc + Acc x y A z 2 A X,Y,Z,A X,Y,Z,A 1,2,3,4 5.3 5.3.1 5-2 GT_LnXY() GT_LnXYZ() GT_LnXYZA() GT_ArcXY() GT_ArcXYP() GT_ArcYZ() GT_ArcYZP() GT_ArcZX() GT_ArcZXP() XY XY YZ YZ ZX ZX 5.3.2 5-5 5-4 38
5.3.3 1-9 X-YXOY Y Z X O X O Y O Z Z X XOY YOZ ZOX Y 5-3 5.4 5-5 rtn=gt_lnxy(10,10)rtn=gt_lnxyz(20,20,20) 1 39
4k 5.4.1 5.4.1.1 5-3 GT_StrtList() GT_MvXY() GT_MvXYZ() GT_MvXYZA() GT_AddList() GT_EndList() 5-4 5-4 GT_SetSynVel() GT_SetSynAcc() GT_LnXY() GT_LnXYZ() GT_LnXYZA() GT_ArcXY() GT_ArcXYP() GT_ArcYZ() GT_ArcYZP() GT_ArcZX() GT_ArcZXP() XY XY YZ YZ ZX ZX 40
5.4.1.2 GT_StrtList() GT_StrtList() GT_StrtList GT_MvXYGT_MvXYZ GT_MvXYZA GT_MvXY()GT_MvXYZ()GT_MvXYZA() GT_EndList() GT_AddList() GT_EndList() GT_AddList() GT_StrtList() GT_EndList() GT_AddList() GT_EndList() GT_AddList() GT_EndList() GT_EndList() 409616Bit 41
5.4.2 5.4.2.1 5-5 GT_StrtMtn() GT_StpMtn() GT_EStpMtn() 5.4.2.2 5-6 42
5.4.2.3 GT_StrtMtn() GT_StrtList() GT_MvXYGT_MvXYZGT_MvXYZA GT_StrtMtn GT_EndList GT_StpMtn() GT_EStpMtn()GT_StpMtn() GT_SmthStp() GT_EStpMtn() GT_AbptStp() GT_StpMtn() GT_EStpMtn() GT_EndList() GT_StpMtn() GT_EStpMtn() GT_StrtMtn() GT_StpMtn() GT_EStpMtn() 5.4.3 GT_SetSynVel()GT_SetSynAcc() GT_MvXY()GT_MvXYZ()GT_MvXYZA() GT_SetAccLmt() 43
1 2 5-4(a)(b)(c) V V (a) T (b) T V V (c) T 5-4 (d) T 2 1 5-4(d) 5.4.4 GT_StpMtn()GT_EStpMtn() GT_GetBrkPnt() GT_GetMtnNm()GT_GetBrkPnt() GT_GetMtnNm() GT_MvXY() GT_MvXYZ()GT_MvXYZA() 0 44
GT_EndList() bit0 bit1 1 2 GT_StpMtn() GT_EStpMtn() Bit0 3 GT_StrtList() 4 0 65536 0 5.4.5 GT_GetCrdSts() 16 5-6 5-6 0 1 1 1 GT_EndList() GT_StpMtn() GT_EStpMtn() 2 1 1 3 1 4 1 5 1 6 1 7 10= 8 9 1 10 1 1112 0 13 1 15 0 45
Bit6 1 Bit6 0 Bit6 1 0 GT_CrdAuStpOn()GT_CrdAuStpOff() 46
Home/Index Home/Index SV C IndexHome SDSESG Home C Z Home GT_CaptIndex() SV GT_CaptHome() Index Home Index/Home 1 Index Home 15bit 14bit Index/ Home +/-1 GT-400-SV Home+Index Home Home Index 6-1 Home+Index SV home+index if((status & 0x400)!=0x400) return; 47
Home/Index while(status & 0x400) while(status & 0x400) 48
Home/Index 6-2 Home Home, if((status & 0x400)!=0x400) return; while(status & 0x400) 49
7.1 AB GT-400-SV GT_SetPosErr() GT_GetPosErr() 1 1 1 1 GT_AuStpOn() GT_AuStpOff() 0 GT_SynchPos() GT_ZeroPos() GT_AxisOn() 7.2 1 1 GT_AxisOff() 50
GT_DrvRst() GT_ClrSts() GT_RstSts() GT_SynchPos() GT_ZeroPos() GT_AxisOn() 7.3 7-1 7-1 GT_ClrSts() GT_RstSts() GT_AxisOn() ratio 51
GT_TmrIntr() GT_EvntIntr()GT_TmrIntr() GT_SetIntrTm() 200 GT_SetIntrTm() 10 =10*200 2 GT_EvntIntr() 4-14 bit0bit6 GT_SetIntrMsk() 8.1 DOS GT_RstIntr() #1 #3 #3 GT_AxisI() #3(#1) 8-1 52
8-1 GT_AxisI() 1 GT_RstIntr(0xEF) - GT_AxisI() 1 GT_RstIntr(00DF) - GT_RstIntr() GT_AxisI() GT_GetSts() GT_GetIntr() GT_RstIntr() GT_RstIntr() GT_AxisI() GT_GetIntr() GT_GetSts() GT_RstSts() GT_ClrSts() 8-1 ISA void interrupt handler( ) disable(); // GT_AxisI(); // GT_GetIntr(&event); // If(event&0x8) // HOME 53
GT_GetCapt(&HomePos); // Home GT_SetPos(HomePos); // Home GT_Update(); // GT_RstIntr(0); // outportb(0x20,0x20); // EOI 8259 outportb(0xa0,0x20); // EOI 8259 enable(); // 8-2 (PCI ) #include <stdio.h> #include <dos.h> #include <conio.h> #include "userlib.h" GT_ISR oldisr; int count; void interrupt OnInterrupt(...) GT_ClearInt(0); // count++; // 1 outportb(0x20,0x20); // EOI 8259 outportb(0xa0,0x20); // EOI 8259 main() short nret=gt_open(); // if(nret) // printf("open fail\n"); return 0; oldisr=gt_hookisr(oninterrupt); // nret=gt_setintrtm(500); // 500*200 if(nret) printf("set Interrupt Time fail\n"); return 0; nret =GT_TmrIntr(); // while(!kbhit()) printf("count:%d\n",count); // delay(500); getch(); nret=gt_evntintr(); // GT_UnhookIsr(oldisr); // return 0; 54
8.2 WINDOWS98/2000/NT DOS Interrupt Service Routine ISR WINDOWS ISRGT-400-PCI ISR 8.2.1 ISR ISR API GT_SetIntSyncEvent(HEVENT hintevent) ISR ISR WaitForSingleObject() ISR WaitForSingleObject(), CloseHandle() GT_SetIntSyncEvent(NULL), ISR <=10KHz Windows VC++ 8-3 // HANDLE hsyncevent; // bool stopflag; // // HANDLE hsubthread; DWORD idsubthread; // // 55
hsyncevent=createevent(null,true,false,null); //WIN32 API if(hsyncevent==invalid_handle_value) //.. // ISR nret=gt_setintsyncevent(hsyncevent); //GT400.DLL API if(nret) // stopflag=false; // hsubthread=createthread(null,0,intproc, // NULL,// 0, &idsubthread); // // DWORD WINAPI intproc(lpvoid param) ResetEvent(hSyncEvent); // nonsignaled while(1) //waiting for interrupt happen WaitForSingleObject(hSyncEvent,INFINITE);// if(stopflag) break; //add your code for handling intrerrupt event here // //... //reset event state ResetEvent(hSyncEvent);// 56
GT_SetIntSyncEvent(NULL);// ISR //close Synchronize Event Handle CloseHandle(hSyncEvent); // ExitThread(0); // return 0; 8.2.2 GT gt400data.h API GT_SetBgCommandSet GT_GetBgCommandResult 51 Intr GT_PrflT() Intr_GT_PrflT 8-4 // #define MAX_SIZE 500 //=4+4*()+16* //4+4*2+16*2+1=60 PBGCOMMANDSET pbgcmdset;// pbgcmdset=(pbgcommandset)malloc(max_size);// if(pbgcmdset==null) // PBACKGROUND_COMMAND pbackcmd; PGENERAL_COMMAND pcmd; // pbgcmdset->count=2; // // pbackcmd=pbgcmdset->backgroundcommand; 57
pbackcmd->interruptmask=0x01; // pbackcmd->commandcount=2; // // // pcmd=pbackcmd->gencommand; pcmd->uscommand= Intr_GT_SetPos; // pcmd->outputlength=2; // DSP pcmd->inputlength=0; // DSP pcmd->in.ldata=20000; // pcmd->out.ldata=0; // // pcmd=pgeneral_command((char*)pcmd+sizeof(general_command)); // pcmd->uscommand= Intr_GT_Update; // pcmd->outputlength=0; // DSP pcmd->inputlength=0; // DSP pcmd->in.ldata=0; // pcmd->out.ldata=0; // // pbackcmd= PGENERAL_COMMAND( (char*)pcmd+sizeof(general_command)); // pbackcmd->interruptmask=0x02;// pbackcmd->commandcount=1;// // pcmd=pbackcmd->gencommand; pcmd->uscommand= Intr_GT_SetKp; // pcmd->outputlength=1; // DSP pcmd->inputlength=0; // DSP pcmd->in.ldata=0; // pcmd->out.ldata=20; // // ISR 58
short nret=gt_setbgcommandset(pbgcmdset,max_size); if(nret) // // free(pbgcmdset); 59
I/O I/O / / 0 EXI0 16 GT_ExOpt(Data)Data CN2 EXO0-EXO15 Bit0----EXO0 Bit1----EXO1 Bit2----EXO2 Bit3----EXO3 Bit4----EXO4 Bit5----EXO5 Bit6----EXO6 Bit7----EXO7 Bit8----EXO8 Bit9----EXO9 Bit10----EXO10 Bit11----EXO11 Bit12----EXO12 Bit13----EXO13 Bit14----EXO14 Bit15----EXO15 16 GT_ExInpt(&Data) Data EXI0-EXI15 Bit0----EXI0 Bit1----EXI1 Bit2----EXI2 Bit3----EXI3 Bit4----EXI4 Bit5----EXI5 Bit6----EXI6 Bit7----EXI7 Bit8----EXI8 Bit9----EXI9 Bit10----EXI10 Bit11----EXI11 Bit12----EXI12 Bit13----EXI13 Bit14----EXI14 Bit15----EXI15 9-1 EXI5 EXO0 void main() short rtn; unsigned short ex_inp; rtn=gt_exinpt(&ex_inp); error(rtn); if(ex_inp&0x20) rtn=gt_exopt(0x1); error(rtn); 60
GT_AbptStp() GT_AddList() GT_ArcXY() GT_ArcXYP() GT_ArcYZ() GT_ArcYZP() GT_ArcZX() GT_ArcZXP() GT_AuStpOff() GT_AuStpOn() GT_AuUpdtOff() GT_AuUpdtOn() GT_Axis() GT_AxisI() GT_AxisOff() GT_AxisOn() GT_BrkOff() GT_CaptHome() GT_CaptIndex() GT_CaptProb() GT_Close() GT_CloseLp() GT_ClearInt GT_ClrEncPos() GT_ClrSts() GT_CrdAuStpOff() GT_CrdAuStpOn() GT_CtrlMode() GT_DrvRst() GT_EncPos() GT_EncSns() GT_EncVel() GT_EndList() GT_EStpMtn() XY XY YZ YZ ZX ZX Windows HOME INDEX 61
GT_EvntIntr() GT_ExInpt() GT_ExOpt() GT_ExOptBit() Firmware Ver2.50 GT_GetExOpt () Firmware Ver2.50 GT_ExtBrk() GT_GetAcc() GT_GetAccLmt() GT_GetAdc() GT_GetAddr() GT_GetAtlErr() GT_GetAtlPos() GT_GetBgCommandResult() GT_GetBrkCn() GT_GetBrkPnt() GT_GetCapt() GT_GetCmdSts() GT_GetCrdSts() GT_GetCurrentCardNo() AD Windows INDEX HOME GT_GetClock () Firmware Ver2.50 GT_GetEncCapt() GT_GetEncSts() GT_GetILmt() GT_GetIntgr() GT_GetIntr() GT_GetIntrMsk() GT_GetIntrTm() GT_GetJerk() GT_GetKaff() GT_GetKd() GT_GetKi() GT_GetKp() GT_GetKvff() GT_GetLmtSwt() GT_GetMAcc() GT_GetMode() GT_GetMtnNm() Windows 62
GT_GetMtrBias() GT_GetMtrCmd() GT_GetMtrLmt() GT_GetPos() GT_GetPrfPos() Firmware Ver2.50 GT_GetPosErr() GT_GetPrfPnt() GT_GetRatio() GT_GetSmplTm() GT_GetSts() GT_GetStsEx() Firmware Ver2.50 GT_GetSynVel() GT_GetVel() GT_GetPrfVel() Firmware Ver2.50 GT_GetAtlVel() Firmware Ver2.50 GT_GetCrdVel() Firmware Ver2.50 GT_HardRst() GT_Home() GT_GetHomeSwt() Firmware Ver2.50 GT_HookIsr() GT_Index() GT_AlarmOff() Firmware Ver2.50 GT_AlarmOn() Firmware Ver2.50 GT_HomeSns() Firmware Ver2.50 GT_LmtSns() GT_LmtsOff() GT_LmtsOn() GT_LnXY() GT_LnXYZ() GT_LnXYZA() GT_MapAxis() GT_MltiUpdt() 63
GT_MtnBrk() GT_MvXY() GT_MvXYZ() GT_MvXYZA() GT_NegBrk() GT_Open() GT_OpenLp() GT_PosBrk() GT_PrflG() GT_PrflS() S- GT_PrflT() GT_PrflV() GT_Reset() GT_RstIntr() Windows GT_RstSts() GT_SetAcc() GT_SetAccLmt() GT_SetAdcChn() AD GT_SetAddr() Windows GT_SetAtlPos() GT_SetTime() GT_SetBgCommandSet() GT_SetBrkCn() GT_SetEncCapt() INDEX GT_SetILmt() GT_SetIntSyncEvent() GT_SetIntrMsk() GT_SetIntrTm() GT_SetJerk() S- GT_SetKaff() GT_SetKaffEx() Firmware Ver2.50 GT_SetKd() GT_SetKdEx() Firmware Ver2.50 GT_SetKi() GT_SetKiEx() Firmware Ver2.50 GT_SetKp() 64
GT_SetKpEx() Firmware Ver2.50 GT_SetKvff() GT_SetKvffEx() Firmware Ver2.50 GT_SetMAcc() GT_SetMtrBias() GT_SetMtrCmd() GT_SetMtrLmt() GT_SetPos() GT_SetPosErr() GT_SetRatio() GT_SetSmplTm() GT_SetSynAcc() GT_SetSynVel() GT_SetVel() GT_SetVelMul() GT_SmthStp() GT_StepDir() GT_StepPulse() GT_StpMtn() GT_StrtList() GT_StrtMtn() GT_SynchPos() GT_SwitchtoCardNo() GT_TmrIntr() GT_UnhookIsr() GT_Update() GT_ZeroPos() S- S- S- GT_HookIsr ISR ISR GT_ProbStopOn() Firmware Ver2.50 GT_ProbStopOff() Firmware Ver2.50 65
BC3.1 GT_AbptStp short GT_AbptStp(void) GT_AbptStp() DOSWINDOWS GT GT_SmthStp IO EXI15 void main() short rtn; unsigned short ex_data; rtn=gt_exinpt(&ex_data); error(rtn); // rtn=gt_axis(1); error(rtn); // 1 if(ex_data&0x8000) // EXI15 rtn=gt_abptstp(); error(rtn); // GT_AddList short GT_AddList(void); GT_EndList() DOSWINDOWS GT GT_StrtListGT_EndList GT_EndList() 66
GT_ArcXY void main() short rtn; tn=gt_strtlist(); error(rtn); rtn=gt_mvxyza(0,0,0,0,5,0.1); error(rtn); rtn=gt_endlist(); error(rtn); rtn=gt_addlist(); error(rtn); rtn=gt_lnxy(20000,30000); error(rtn); short GT_ArcXY(double X_center,double Y_center,double Angle); XOY X_centerY_center angle -360360 5.3 DOSWINDOWS GT GT_ArcYZGT_ArcZX XOY void main() short rtn; rtn=gt_setsynvel(5); error(rtn); rtn=gt_setsynacc(1); error(rtn); rtn=gt_arcxy(40000,30000,180); error(rtn); GT_ArcXYP short GT_ArcXYP(double X_end, double Y_end, double R, short Dir); XOY X_endY_end R Dir 1-1 5.3 DOSWINDOWS GT GT_ArcYZPGT_ArcZXP XOY 67
void main() short rtn; rtn=gt_strtlist(); rtn=gt_mvxy(0,0, 5,0.1); rtn=gt_arcxyp(40000,0,20000,-1); rtn=gt_endlist(); error(rtn); error(rtn); error(rtn); error(rtn); GT_ArcYZ short GT_ArcYZ(double Y_center,double Z_center,double Angle); YOZ _centerz_center angle -360360 DOSWINDOWS GT GT_ArcXYGT_ArcZX YOZ void main() short rtn; rtn=gt_setsynvel(5); error(rtn); rtn=gt_setsynacc(1); error(rtn); rtn=gt_arcyz(40000,30000,180); error(rtn); GT_ArcYZP short GT_ArcYZP(double Y_end, double Z_end, double R, short Dir); YOZ DOSWINDOWS GT GT_ArcXYPGT_ArcZXP YOZ 68
void main() short rtn; rtn=gt_strtlist(); rtn=gt_mvxyz(0,0,0,5,0.1); rtn=gt_arcyzp(40000,0,20000,-1); rtn=gt_endlist(); error(rtn); error(rtn); error(rtn); error(rtn); GT_ArcZX short GT_ArcZX(double Z_center,double X_center,double Angle); ZOX _centerx_center angle -360360 DOSWINDOWS GT GT_ArcXYGT_ArcYZ ZOX void main() short rtn; rtn=gt_setsynvel(5); error(rtn); rtn=gt_setsynacc(1); error(rtn); rtn=gt_arczx(40000,30000,180); error(rtn); GT_ArcZXP short GT_ArcZXP(double Z_end, double X_end, double R, short Dir); ZOX DOSWINDOWS GT GT_ArcXYPGT_ArcYZP ZOX 69
GT_AuStpOff void main() short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxyz(0,0,0,5,0.1); error(rtn); rtn=gt_arczxp(40000,0,20000,-1); error(rtn); rtn=gt_endlist(); error(rtn); short GT_AuStpOff(void) GT_SetPosErr() DOSWINDOWS GT GT_AuStpOn void main() short rtn; rtn=gt_axis(4); error(rtn) rtn=gt_austpoff (); error(rtn); GT_AuStpOn short GT_AuStpOn(void) GT_SetPosErr() DOSWINDOWS GT GT_AuStpOff void main() short rtn; rtn=gt_axis(3); error(rtn); rtn=gt_austpon(); error(rtn); 70
GT_AuUpdtOff short GT_AuUpdtOff(void) GT_AuUpdtOn() DOSWINDOWS GT GT_AuUpdtOn void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_auupdtoff (); error(rtn); GT_AuUpdtOn short GT_AuUpdtOn(void) 1 GT_AuUpdtOff() DOSWINDOWS GT GT_AuUpdtOff void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_auupdton(); error(rtn); GT_Axis short GT_Axis(unsigned short num) num 1234 71
DOSWINDOWS GT void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_setpos(1000); error(rtn) rtn=gt_setvel(10); error(rtn); rtn=gt_setacc(1); error(rtn); GT_AxisI short GT_AxisI(void) GT_AxisI() DOS GT void interrupt handler(...) short rtn; unsigned short intr_sts; long actl_pos, pos; disable(); rtn=gt_axisi(); if(rtn!=0) return; rtn=gt_getintr(&intr_sts); if(rtn!=0) return; if (intr_sts & 0x20) // positive limit switch error rtn=gt_getatlpos(&actl_pos); if(rtn!=0) return; pos=actl_pos-20000; rtn=gt_setpos(pos); if(rtn!=0) return; rtn=gt_update(); if(rtn!=0) return; rtn=gt_rstintr(0x9f); if(rtn!=0) return; 72
enable(); return; GT_AxisOff short GT_AxisOff(void) DOSWINDOWS GT GT_AxisOn void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_axisoff(); error(rtn); GT_AxisOn short GT_AxisOn(void) DOSWINDOWS GT GT_AxisOff void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_setkp(10); error(rtn); rtn=gt_update(); error(rtn); rtn=gt_axison(); error(rtn); GT_BrkOff short GT_BrkOff(void) DOSWINDOWS 73
GT GT_BrkOn void main() short rtn; rtn=gt_axis(1); error(rtn) rtn=gt_brkoff(); error(rtn); GT_CaptHome short GT_CaptHome(void) Home Home GT_CaptHome() Home Home GT_ClrSts() GT_RstSts() Home Home DOSWINDOWS GT GT_CaptIndexGT_CaptProb Home void main() short rtn; rtn=gt_axis(3); error(rtn); rtn=gt_clrsts(); error(rtn); rtn=gt_capthome(); error(rtn) GT_CaptIndex short GT_CaptIndex(void) Index Index GT_CaptIndex() Index Index GT_ClrSts() GT_RstSts() Index Index DOSWINDOWS SV GT_CaptHomeGT_CaptProb Index 74
void main() short rtn; rtn=gt_axis(3); error(rtn); rtn=gt_clrsts(); error(rtn); rtn=gt_captindex(); error(rtn); GT_CaptProb short GT_CaptProb(void) IO 0 EXI0 bit3 GT_CaptProb() DOSWINDOWS GT GT_CaptHomeGT_CaptIndex void main() short rtn; unsigned short status; long actl_pos; rtn=gt_captprob(); error(rtn);. rtn=gt_axis(2); error(rtn); rtn=gt_getsts(&status); error(rtn); while(status&0x400) if(status&0x8) rtn=gt_getatlpos(&actl_pos); error(rtn); printf( the capture pos of axis 2 is: %ld\n,actl_pos); break; rtn=gt_getsts(&status); error(rtn); 75
GT_Close short GT_Close(void) DOS(PCI )WINDOWS GT GT_Open GT_CloseLp short GT_CloseLp(void) ( SV ) GT_AxisOn() GT_AxisOff() GT_SynchPos() DOSWINDOWS SV GT_OpenLp void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_axisoff(); error(rtn); rtn=gt_synchpos(); error(rtn); rtn=gt_update(); error(rtn) rtn=gt_closlp(); error(rtn); GT_ClearInt short GT_ClearInt(unsigned short CardNo) ISR CardNo GT_SwitchtoCardNo 0 0-1 DOS PCI DOS GT_ClearInt 76
void interrupt My_Isr(...) //......// GT_ClearInt(0); outportb(0x20,0x20); outportb(0xa0,0x20); // GT_ClrEncPos short GT_ClrEncPos(unsigned short EncNum) EncNum Enc_Num 0-1 DOSWINDOWS GT_ClrSts short GT_ClrSts(void) 11-1 GT_ClrSts() Bit0~Bit7 1 bit8~bit15 DOSWINDOWS GT void main() short rtn; rtn=gt_axis(4); error(rtn); rtn=gt_clrsts(); error(rtn); 77
11-1 1 0 1 1 2 1 Index/Home 3 Index/Home 1 ( 4.4.7.3 ) 4 1 5 1 6 1 7 1 8 /(1 0 ) 9 /(1 0 ) 1 10 0 11 /1 0 ) 12 13 (13bit=,12bit=) Bit 13 Bit12 0 0 1 0 1 2 1 0 3 1 1 4 14 Home 15 Index GT_CrdAuStpOff short GT_CrdAuStpOff(void); DOSWINDOWS GT GT_CrdAuStpOn void main() short rtn; rtn=gt_crdaustpoff(); error(rtn) 78
GT_CtrlMode short GT_CtrlMode(int mode); mode 0 1 DOSWINDOWS SV void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_ctrlmode(1); error(rtn); GT_CrdAuStpOn short GT_CrdAuStpOn(void); GT_CrdAuStpOn() DOSWINDOWS GT GT_CrdAuStpOff GT_CrdAuStpOn() GT_DrvRst short GT_DrvRst(void), DOSWINDOWS GT void main() short rtn; unsigned short status; rtn=gt_axis(4); error(rtn); rtn=gt_getsts(&status); error(rtn); if(status&0x2) 79
rtn=gt_drvrst(); rtn=gt_rststs(0xfffd); error(rtn); error(rtn); GT_EncPos short GT_EncPos(short Enc_Num, long* Actl_pos) Enc_Num *Actl_pos DOSWINDOWS SV, SG, SP GT_EncVel void main() short rtn; long actl_pos; rtn=gt_encpos(2, &actl_pos); error(rtn) printf( the actual position of assistant encoder 2 is: %ld\n, actl_pos); GT_EncSns short GT_EncSns(unsigned int Sense) Sense bit0 bit6 2-3 1 0 DOSWINDOWS SV void main() short rtn; rtn=gt_encsns(3); error(rtn); 80
11-2 Bit 6-15 5 2 0 1 4 1 0 1 3 Axis#4 0 1 2 Axis#3 0 1 1 Axis#2 0 1 0 Axis#1 0 1 GT_EncVel short GT_EncVel(short Enc_Num, double* Actl_vel) Enc_Num *Actl_vel DOSWINDOWS SV, SG, SP GT_EncPos void main() short rtn; double actl_vel; rtn=gt_encvel(2, &actl_vel); error(rtn); printf( the actual velocity of assistant encoder 2 is: %f\n, actl_vel); GT_EndList short GT_EndList(void); DOSWINDOWS GT GT_StrtListGT_AddList void main() short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxyz(0,0,0,16,3.7); error(rtn) rtn=gt_lnxyz(1234,5678,9013); error(rtn); rtn=gt_arcxy(2345,6789,360); error(rtn); 81
rtn=gt_endlist(); error(rtn); GT_EStpMtn short GT_EStpMtn(void); GT_StrtMtn () DOSWINDOWS GT GT_StpMtn void main() short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxyz(0,0,0,16,3.7); error(rtn) rtn=gt_lnxyz(1234,5678,9013); error(rtn) rtn=gt_strtmtn(); error(rtn); rtn=gt_arcxy(2345,6789,360); error(rtn) rtn=gt_endlist(); error(rtn); rtn=gt_estpmtn(); error(rtn); GT_EvntIntr short GT_EvntIntr(void) DOSWINDOWS GT GT_TmrIntr GT_EvntIntr() GT_ExInpt short GT_ExInpt (unsigned short * Data) *Data 82
Bit0----EXI0 Bit1----EXI1 Bit2----EXI2 Bit3----EXI3 Bit4----EXI4 Bit5----EXI5 Bit6----EXI6 Bit7----EXI7 Bit8----EXI8 Bit9----EXI9 Bit10----EXI10 Bit11----EXI11 Bit12----EXI12 Bit13----EXI13 Bit14----EXI14 Bit15----EXI15 DOSWINDOWS GT GT_ExOpt EXI8 void main() short rtn; unsigned short ex_inp; rtn=gt_exinpt(&ex_inp); error(rtn); if(ex_inp&0x100) rtn=gt_stpmtn(); error(rtn); GT_ExOpt short GT_ExOpt(unsigned short Data) Data Bit0----EXO0 Bit1----EXO1 Bit2----EXO2 Bit3----EXO3 Bit4----EXO4 Bit5----EXO5 Bit6----EXO6 Bit7----EXO7 Bit8----EXO8 Bit9----EXO9 Bit10----EXO10 Bit11----EXO11 Bit12----EXO12 Bit13----EXO13 Bit14----EXO14 Bit15----EXO15 DOSWINDOWS GT GT_ExInpt EXI5 EXO0 void main() short rtn; unsigned short ex_inp; rtn=gt_exinpt(&ex_inp); error(rtn); if(ex_inp&0x20) 83
rtn=gt_exopt(0x1); error(rtn); GT_ExOptBit Firmware Ver2.50 short GT_ExOptBit(unsigned short bit,unsigned short value) DOSWINDOWS GT Firmware Ver2.50 GT_GetExOpt (Firmware Ver2.50 ) short GT_GetExOpt(unsigned short *io_output); DOSWINDOWS GT Firmware Ver2.50 GT_ExtBrk short GT_ExtBrk(void) 1 1 DOSWINDOWS GT void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_auupdton(); error(rtn); rtn=gt_capthome(); error(rtn); rtn=gt_extbrk(); error(rtn); rtn=gt_prflt(); error(rtn); rtn=gt_setpos(87654); error(rtn); rtn=gt_setvel(32); error(rtn); rtn=gt_setacc(1.1); error(rtn); rtn=gt_update(); error(rtn); rtn=gt_smthstp(); error(rtn); 84
GT_GetAcc short GT_GetAcc(double * Acc) GT_SetAcc() *Acc DOSWINDOWS GT GT_SetAcc void main() short rtn; double acc; rtn=gt_axis(3); error(rtn); rtn=gt_getacc(&acc); error(rtn); GT_GetAccLmt short GT_GetAccLmt(unsigned long * Acclmt); GT_SetAccLmt () *Acclmt DOSWINDOWS GT GT_SetAccLmt void main() short rtn; double acc_lmt; rtn=gt_axis(4); error(rtn) rtn=gt_getacclmt(&acc_lmt); error(rtn); GT_GetAdc short GT_GetAdc(short Channel, short* Adc_Data) AD AD 770Hz Channel AD 18*Adc_Data AD 0~20470V~10V-2048~0-10V ~0V DOSWINDOWS A/D AD void main() 85
short rtn; short Adc_Data; rtn=gt_getadc(2,&adc_data); if(rtn!=0) return; printf( the Adc_Data is:%d, Adc_Data); GT_GetAddr short GT_GetAddr(unsigned short * Base_addr); GT_SetAddr() 0x300 *Base_addr GT_SetAddr() 0 DOS ISA GT_SetAddr void main() short rtn; unsigned shor base_addr; rtn=gt_getaddr(&base_addr); error(rtn); printf( the base address is: %d\n,base_addr); GT_GetAtlErr short GT_GetAtlErr (short * Aerr) *Aerr DOSWINDOWS SV void main() short rtn, actl_err; rtn=gt_axis(2); error(rtn); rtn=gt_getatlerr(&actl_err); error(rtn); printf( the actual error is: %d\n,actl_err); 86
GT_GetAtlPos short GT_GetAtlPos(long * Apos) *Apos DOSWINDOWS GT GT_SetAtlPos void main() short rtn; long actl_pos; GT_Axis(1); error(rtn); rtn=gt_getatlpos(&actl_pos); error(rtn); printf( the actual pos is: %ld\n,actl_pos); GT_GetBgCommandResult short WINAPI GT_GetBgCommandResult ( PBGCOMMANDSET BgCmdset, ULONG CmdsetSize); pbgcmdset GENERAL_COMMAND result 0-1 CmdsetSize 0-1 WINDOWS PCI GT_SetBgCommandSet GT_GetBrkCn short GT_GetBrkCn(long * Brk) GT_SetBrkCn() *Brk DOSWINDOWS GT GT_SetBrkCn GT_GetBrkCn() GT_GetBrkPnt short GT_GetBrkPnt(double * Coord); GT_EStpMtn() GT_StpMtn() 87
*Coord XYZA coord DOSWINDOWS GT void main() short rtn; double break_pos[4]; rtn=gt_getbrkpnt(break_pos); error(rtn); printf( the break pos in coordinate are: %lf, %lf, %lf, %lf \n, break_pos[0], break_pos[1], break_pos[2], break_pos[3]); GT_GetCapt short GT_GetCapt (long * Capt) Index Home *Capt DOSWINDOWS GT GT_CaptHomeGT_CaptIndexGT_CaptProb Home void main() short rtn; unsigned short status; long capt_pos; rtn=gt_axis(3); error(rtn); rtn=gt_getsts(&status); error(rtn); if(status&0x8) rtn=gt_getcapt(&capt_pos); error(rtn); rtn=gt_setpos(capt_pos); error(rtn); GT_GetCmdSts short GT_GetCmdSts(unsigned short * Cstatus) *Cstatus 1 88
16 Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 Bit9 Bit10 Bit11 1 GT_SetPos()GT_SetVel()GT_SetAcc()GT_SetAtlPos() 1 GT_SetVel(),GT_SetAcc(),GT_SetJerk(),GT_SetMAcc()GT_SetMtrLmt() GT_SetKp()GT_SetKi()GT_SetKd()GT_SetKvff()GT_SetKaff() GT_SetILmt()GT_SetPosErr() 1 GT_MltiUpdt (value) value=0 1 GT_DrvRst() 1 1 1 1 GT_CaptIndex()GT_CaptHome() GT_CaptIndex() 1 1 GT_CaptIndex()GT_CaptHome() GT_CaptHome() 1 1 GT_AxisOn() 1 1 GT_ZeroPos() 1 GT_SynchPos()1 1 GT_Update() GT_MltiUpdt() S- GT_SetVel() GT_Update() GT_MltiUpdt() 1 Bit12 GT_StrtMtn() GT_StrtList() GT_AddList () Bit13 Bit14 Bit15 1 GT_MvXY ()GT_MvXYZ()GT_MvXYZA() 1 89
DOSWINDOWS GT GT_GetCrdSts short GT_GetCrdSts(unsigned short * Status); *Status 0 1 1 1 GT_EndList() GT_StpMtn() GT_EStpMtn() 2 1 1 3 1 4 1 5 1 6 1 7 10 8 9 1 10 1 1112 0 13 1 15 0 DOSWINDOWS GT bit2 void main() short rtn; unsigned short status; rtn=gt_getcrdsts(&status); error(rtn); if(status&0x4) 90
rtn=gt_axis(1); rtn=gt_axisoff(); rtn=gt_axis(2); rtn=gt_axisoff(); rtn=gt_axis(3); rtn=gt_axisoff(); rtn=gt_axis(4); rtn=gt_axisoff(); error(rtn); error(rtn); error(rtn); error(rtn); error(rtn) error(rtn); error(rtn); error(rtn); GT_GetCurrentCardNo short GT_GetCurrentCardNo(void) 0--15 DOSWINDOWS PCI GT_SwitchtoCardNo GT_GetCurrentCardNo (1) GT_GetClock Firmware Ver2.50 short GT_GetClock(unsigned long *time) 32 GT_Reset DOSWINDOWS GTFirmwareVer2.50 GT_GetEncCapt short GT_GetEncCapt(long *value) INDEX *value DOSWINDOWS INDEX GT GT_GetEncSts, GT_SetEncCapt Firmware Ver2.50 CN9 Index GT_GetEncSts short GT_GetEncSts(unsigned short *value) status bit3 INDEX 01 bit3 1 GT_SetEncCapt 91
00 DOSWINDOWS INDEX GT GT_GetEncCapt, GT_SetEncCapt Firmware Ver2.50 CN9 Index Index Bit3 1 GT_GetILmt short GT_GetILmt(unsigned short * Ilm) GT_SetILmt () *Ilm DOSWINDOWS SV GT_SetILmt GT_GetIntgr short GT_GetIntgr(short * Intgr) *Intgr DOSWINDOWS SV GT_GetIntr short GT_GetIntr(unsigned short * Status) GT_GetIntr() *Status GT_ClrSts() 11-1 06 GT_GetIntr() DOSWINDOWS GT WINDOWS GT_GetIntr Status 0 0 Status Bit12, Bit13 GT_GetIntrMsk short GT_GetIntrMsk (unsigned short * Mask) GT_SetIntrMsk () *Mask GT_RstIntr() GT_SetIntrMsk() DOSWINDOWS 92
GT GT_SetIntrMsk GT_GetIntrTm short GT_GetIntrTm(unsigned short * Timer) GT_SetIntrTm() *Timer DOSWINDOWS GT GT_SetIntrTm GT_GetJerk short GT_GetJerk (double * Jerk) GT_SetJerk () *Jerk DOSWINDOWS GT GT_SetJerk GT_GetKaff short GT_GetKaff (unsigned short * Kaff) GT_SetKaff() *Kaff DOSWINDOWS SV GT_SetKaff GT_GetKd short GT_GetKd(unsigned short * Kd) GT_SetKd() *Kd DOSWINDOWS SV GT_SetKd GT_GetKi short GT_GetKi (unsigned short * Ki) GT_SetKi () *Ki DOSWINDOWS SV GT_SetKi 93
GT_GetKp short GT_GetKp(unsigned short * Kp) GT_SetKp() *Kp DOSWINDOWS SV GT_SetKp GT_GetKvff short GT_GetKvff (unsigned short * Kvff) GT_SetKvff() *Kvff DOSWINDOWS SV GT_SetKvff GT_GetLmtSwt short GT_GetLmtSwt (unsigned short * Switch) *Switch 1 0 GT_LmtSns() Bit 8-15 7 Axis #4 6 Axis #4 5 Axis #3 4 Axis #3 3 Axis #2 2 Axis #2 1 Axis #1 0 Axis #1 DOSWINDOWS GT GT_GetMAcc short GT_GetMAcc(double * Macc) GT_SetMAcc() *Macc DOSWINDOWS GT 94
GT_SetMAcc GT_GetMode short GT_GetMode (unsigned short * Mode) *Mode 0-6 GT_AuStpOn() GT_AuStpOff() 7 1 8-9 10 GT_AuUpdtOn()GT_AuUpdtOff() 1 : Bit13 Bit12 Bit11 0 0 0 11-13 0 0 1 0 1 0 S- 0 1 1 1 0 1 14-15 DOSWINDOWS GT GT_GetMtnNm short GT_GetMtnNm (unsigned short * Lnum); GT_EStpMtn() GT_StpMtn() *Lnum DOSWINDOWS GT GT_GetMtrBias short GT_GetMtrBias(unsigned short * Bias) GT_SetMtrBias() *Bias DOSWINDOWS SV GT_SetMtrBias GT_GetMtrCmd short GT_GetMtrCmd (short * Mcmd) 95
GT_SetMtrCmd() *Mcmd *Mcmd DOSWINDOWS SV GT_SetMtrCmd GT_GetMtrLmt short GT_GetMtrLmt (unsigned short * Mlmt) GT_SetMtrLmt() *Mlmt DOSWINDOWS GT GT_SetMtrLmt GT_GetPos short GT_GetPos(long * Pos) GT_SetPos() *Pos DOSWINDOWS GT GT_SetPos GT_GetPosErr short GT_GetPosErr(unsigned short * Perr) GT_SetPosErr() *Perr SV DOSWINDOWS GT_SetPosErr GT_GetPrfPnt short GT_GetPrfPnt(double * Pnt) *Pnt 4 XYZA 4 DOSWINDOWS GT void main() 96
short rtn; double crd_prf_pos[4]; rtn=gt_getprfpnt(crd_prf_pos); error(rtn); printf( the coordinate pos are: %f, %f, %f, %f \n, crd_prf_pos[0], crd_prf_pos[1], crd_prf_pos[2], crd_prf_pos[3]); GT_GetRatio short GT_GetRatio(double * Ratio) GT_SetRatio() *Ratio DOSWINDOWS GT GT_SetRatio GT_GetSmplTm short GT_GetSmplTm(double * Timer) GT_SetSmplTm DOSWINDOWS GT GT_SetSmplTm GT_GetSts short GT_GetSts (unsigned short * Status) *Status GT_ClrSts() 11-1 DOSWINDOWS GT void main() short rtn; unsigned short status; rtn=gt_getsts(&status); error(rtn); if(status&0x400) return; rtn=gt_setpos(10000); error(rtn); rtn=gt_update(status); error(rtn); 97
GT_GetStsEx Firmware Ver2.50 short GT_GetStsEx(unsigned long *value) Bit27 1 Bit0~Bit15 DOSWINDOWS GT Firmware Ver2.50 GT_GetSynVel short GT_GetSynVel (double *value) *value DOSWINDOWS GT GT_GetVel short GT_GetVel (double * Vel) GT_SetVel() *Vel DOSWINDOWS GT GT_SetVel GT_GetPrfVel Firmware Ver2.50 short GT_GetPrfVel(double *vel) *Vel DOSWINDOWS GT Firmware Ver2.50 GT_GetPrfPos Firmware Ver2.50 short GT_GetPrfPos(long *pos) *pos DOSWINDOWS GT Firmware Ver2.50 GT_GetAtlVel Firmware Ver2.50 short GT_GetAtlVel(double *vel); *vel DOSWINDOWS 98
GT Firmware Ver2.50 GT_GetCrdVel Firmware Ver2.50 short GT_GetCrdVel(double *vel); *vel DOSWINDOWS GT Firmware Ver2.50 GT_HardRst void GT_HardRst (void) GT_HardRst() [1] [2] [3] [4] [5] [6] [7] 32767 [8] 32767 [9] [10] [11] SV [12] SV [13] 32767 [14] 16384 [15] [16] [17] DOSWINDOWS GT GT_Reset GT_Home short GT_Home(long pos) Home GT_Index GT_Index Home+Index Index GT_Index Home Home 99
Home Home Home+Index pos -1,073,741,824~1,073,741,823 Home GT DOS WINDOWS GT_HomeSense GT_Index GT_GetHomeSwt Firmware Ver2.50 short GT_GetHomeSwt(unsigned short *home) DOSWINDOWS GTFirmwareVer2.50 GT_HookIsr GT_ISR GT_HookIsr(GT_ISR gtisr) PCI ISRInterrupt Service Routine gtisr GT_UnhookIsr DOS PCI DOS GT_UnhookIsr GT_Index shortgt_index(short value) Home+Index Index Index GT_Home value 0 Index 1 Index void autohome() short rtn; GT_Index(); 100
GT_Home(2000000); SV DOS WINDOWS GT_Home GT_HomeSense GT_LmtSns : short GT_LmtSns(unsigned short Sense) Sense 1 0, Bit 8-15 7 Axis #4 6 Axis #4 5 Axis #3 4 Axis #3 3 Axis #2 2 Axis #2 1 Axis #1 0 Axis #1 DOSWINDOWS GT void main() short rtn; rtn=gt_lmtsns(0x30); error(rtn); rtn=gt_axis(3); error(rtn); rtn=gt_rststs(0xff9f); error(rtn); GT_HomeSns Firmware Ver2.50 short GT_HomeSns(unsigned short Sense) 101
DOSWINDOWS GTFirmwareVer2.50 GT_AlarmOff Firmware Ver2.50 short GT_AlarmOff (void) DOSWINDOWS GTFirmwareVer2.50 GT_AlarmOn GT_AlarmOn Firmware Ver2.50 short GT_AlarmOff (void) DOSWINDOWS GTFirmwareVer2.50 GT_AlarmOff GT_LmtsOff short GT_LmtsOff (void) GT_GetLmtSwt() DOSWINDOWS GT GT_LmtsOn GT_LmtsOn short GT_LmtsOn(void) 11-1 1 GT_GetLmtSwt() GT_GetSts() GT_LmtsOn() DOSWINDOWS GT GT_LmtsOff GT_LnXY short GT_LnXY(double X, double Y); 102
XY DOSWINDOWS GT GT_LnXYZGT_LnXYZA void main() short rtn; rtn=gt_setsynvel(30); error(rtn); rtn=gt_setsynacc(1); error(rtn); rtn=gt_lnxy(12345,67890); error(rtn) GT_LnXYZ short GT_LnXYZ(double X, double Y, double Z); XYZ DOSWINDOWS GT GT_LnXYGT_LnXYZA void main() short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxyz(0,0,0,6,0.3); error(rtn); rtn=gt_lnxyz(12945.2,58372.83,65473.121); error(rtn); rtn=gt_strtmtn(); error(rtn) GT_LnXYZA short GT_LnXYZA(double X,double Y,double Z,double A); XYZA DOSWINDOWS GT GT_LnXYGT_LnXYZ void main() 103
short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxyza(0,0,0,0,6,0.3); error(rtn); rtn=gt_lnxyza(12945.2,58372.83,65473.121,0); error(rtn); GT_MapAxis short GT_MapAxis(unsigned short Axes_Num, double * map_array) GT_MapAxis() Axis_Num 1234 Axis _ N *map_array C x C y C z C a C X YZA x y z a Axis _ N = Cx x + Cy y + Cz z + Ca a + C XYZA DOSWINDOWS GT X X 4mm Y Y 5mm 8000pulse/ mm GT_MltiUpdt Axis _ 1 = 2000 x + 0 y + 0 z + 0 a + 0 Axis _ 2 = 0 x + 1600 y + 0 z + 0 a + 0 void main() short rtn; double map_cnt0[5]=2000,0,0,0,0; double map_cnt1[5]=0,1600,0,0,0; rtn=gt_mapaxis(1,map_cnt0); error(rtn); rtn= GT_MapAxis(2,map_cnt1); error(rtn); short GT_MltiUpdt(unsigned short Mask) GT_Update() Mask 0 1" 104
Bit 0 1 1 2 2 3 3 4 4-15 DOSWINDOWS GT GT_Update Kp void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_setkp(10); error(rtn); rtn=gt_axis(3); error(rtn); rtn=gt_setkp(15); error(rtn); rtn=gt_mltiupdt(0x5); error(rtn) GT_MtnBrk short GT_MtnBrk(void) 1 1 1 DOSWINDOWS GT void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_auupdton(); error(rtn); rtn=gt_mtnbrk(); error(rtn); rtn=gt_prflt(); error(rtn); rtn=gt_clrsts(); error(rtn); rtn=gt_setpos(10000); error(rtn); rtn=gt_setvel(7); error(rtn); rtn=gt_setacc(0.347); error(rtn); rtn=gt_update(); error(rtn); rtn=gt_setpos(0); error(rtn); 105
GT_MvXY short GT_MvXY(double X,double Y,double Vel,double Accel); GT_StrtList() XY Vel / Accel / 2 GT_StrtMtn() DOSWINDOWS GT GT_MvXYZGT_MvXYZA X 1000Y 2000 0.25/ 0.01 / 2 void main() short rtn; rtn=gt_strtlist(); error(rtn); rtn=gt_mvxy (1000,2000,0.25,0.01); error(rtn); GT_MvXYZ short GT_MvXYZ (double X, double Y, double Z, double vel, double accel); GT_StrtList () XYZ Vel / Accel / 2 GT_StrtMtn() DOSWINDOWS GT GT_MvXYGT_MvXYZA GT_MvXYZA short GT_MvXYZA(double X, double Y, double Z, double A, double vel, double accel); GT_StrtList() XYZA Vel / Accel / 2 106
GT_StrtMtn() DOSWINDOWS GT GT_MvXYGT_MvXYZ GT_NegBrk short GT_NegBrk(void) GT_SetBrkCn() GT_Update() GT_MltiUpdt() 1 1 DOSWINDOWS GT GT_PosBrk GT_OpenLp short GT_OpenLp(void) DOSWINDOWS SV GT_CloseLp GT_Open short GT_Open(unsigned long PortBase, unsigned long irq) PortBaseirq 1015irq0 WINDOWS ISA GT_Close GT_Open short GT_Open() DOSWINDOWS PCI GT_Close 107
GT_PosBrk short GT_PosBrk(void) GT_SetBrkCn() GT_Update() GT_MltiUpdt() 1 1 DOSWINDOWS GT GT_NegBrk GT_PrflG short GT_PrflG(unsigned short Master) Master 1234 1 4 56 DOSWINDOWS GT GT_PrflTGT_PrflSGT_PrflV -1.5 0.5 void main() short rtn; rtn=gt_axis(4); error(rtn); rtn=gt_prflt(); error(rtn); rtn=gt_axis(1); error(rtn); rtn=gt_prflg(4); error(rtn); rtn=gt_setratio(-1.5); error(rtn); rtn=gt_axis(3); error(rtn); rtn=gt_prflg(1); error(rtn); rtn=gt_setratio(0.5); error(rtn); rtn=gt_mltiupdt(0x5); error(rtn); GT_PrflS short GT_PrflS(void) S- 108
DOSWINDOWS GT GT_PrflTGT_PrflGGT_PrflV S- void main() short rtn; rtn=gt_axis(1); error(rtn); rtn=gt_prfls(); error(rtn); rtn=gt_setpos(12345); error(rtn); rtn=gt_setvel(3.21); error(rtn); rtn=gt_setmacc(0.345); error(rtn); rtn=gt_jerk(0.087); error(rtn); rtn=gt_update(); error(rtn); GT_PrflT short GT_PrflT(void) DOSWINDOWS GT GT_PrflSGT_PrflGGT_PrflV T- void main() short rtn; rtn=gt_axis(2); error(rtn); rtn=gt_prflt(); error(rtn); rtn=gt_setpos(100000); error(rtn); rtn=gt_setvel(5.7); error(rtn); rtn=gt_setacc(0.67); error(rtn); rtn=gt_update(); error(rtn); GT_PrflV short GT_PrflV(void) DOSWINDOWS GT GT_PrflSGT_PrflGGT_PrflT void main() 109
short rtn; rtn=gt_axis(3); error(rtn); rtn=gt_prflv(); error(rtn); rtn=gt_setvel(17); error(rtn); rtn=gt_setacc(1.1); error(rtn); rtn=gt_update(); error(rtn); GT_Reset short GT_Reset (void), GT_HardRst() GT_AxisOn() GT_AxisOff() DOSWINDOWS GT GT_HardRst GT_RstIntr short GT_RstIntr(unsigned int Mask) GT_RstIntr () Mask 1 0" Bit 7-15, 0 6 5 4 3 Index/Home 2 1 0 DOS GT 110
GT_RstSts short GT_RstSts(unsigned short Mask) Mask Mask GT_RstIntr() Bit0~Bit7 1 0 DOSWINDOWS GT GT_ ClrSts GT_SetAcc short GT_SetAcc(double Acc) Acc 016384 / 2 GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetAcc GT_SetAccLmt short GT_SetAccLmt(double Acclmt); Acclmt 016384 DOSWINDOWS GT GT_GetAccLmt GT_SetAdcChn short GT_SetAdcChn(unsigned short value); ADC value AD 18 DOSWINDOWS GT GT_SetAddr short GT_SetAddr(unsigned short Address); Address 111
DOS GT GT_GetAddr GT_SetAtlPos short GT_SetAtlPos(long actl_pos) actl_pos DOSWINDOWS GT GT_GetAtlPosGT_SynchPosGT_ZeroPos 1000 void main() short rtn; unsigned short status; rtn=gt_axis(4); error(rtn); rtn=gt_getsts(&status); error(rtn); if(status&0x400) return; rtn=gt_setatlpos(1000); error(rtn); GT_SetBgCommandSet short WINAPI GT_SetBgCommandSet(PBGCOMMANDSET pbgcmdset, ULONG CmdsetSize) pbgcmdset CmdsetSize 0-1 GT typedef struct _BACKGROUND_COMMANDSET USHORT Count; // BACKGROUND_COMMAND BackgroundCommand[1];// BGCOMMANDSET,*PBGCOMMANDSET; 112
typedef struct _BACKGROUND_COMMAND USHORT InterruptMask;// USHORT CommandCount; // GENERAL_COMMAND GenCommand[1]; // BACKGROUND_COMMAND,*PBACKGROUND_COMMAND; typedef struct _GENERAL_COMMAND // USHORT uscommand; // USHORT InputLength; // USHORT OutputLength;// USHORT usresult; // union USHORT sdata[2]; ULONG ldata; in; // union USHORT sdata[2]; ULONG ldata; out; // GENERAL_COMMAND,*PGENERAL_COMMAND; WINDOWS PCI GT_SetIntSyncEvent Windows GT_SetBrkCn short GT_SetBrkCn(long Brk) GT_PosBrk( ) GT_NegBrk( ) GT_SetBrkCn( ) GT_Update() GT_MltiUpdt() Brk -1073741824 1073741823 GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetBrkCn 113
GT_SetEncCapt short GT_SetEncCapt(void) INDEX INDEX INDEX INDEX DOSWINDOWS INDEX GT GT_GetEncSts, GT_GetEncCapt Firmware Ver2.50 CN9 C CN9 Index GT_SetILmt short GT_SetILmt(unsigned short Ilm) Ilm 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetILmt GT_SetIntrMsk short GT_SetIntrMsk(unsigned short Mask) Mask GT_RstIntr() 1 0" Bit 7-15, 0 6 5 4 3 Index/Home 2 1 0 DOSWINDOWS GT GT_GetIntrMsk 114
GT_SetIntrTm void GT_SetIntrTm(short Timer) Timer Timer 032767 200 GT_SetIntrTm() Timer 10=10*200 2 DOSWINDOWS GT GT_GetIntrTm GT_SetIntSyncEvent short WINAPI GT_SetIntSyncEvent(HANDLE hevent) PCI hevent NULL GT_GetIntr(unsigned * Status) Status 0 0 15 Index 1 14 1 Bit13 Bit12 0 0 1 12-13 0 1 2 1 0 3 1 1 4 11 1 10 1 9 / (1) 8 / (1) 7 (1) 6 1 5 1 4 1 3 Index/Home 1 2 1 1 1 0 1 PCI 115
hevent 0-1 WINDOWS PCI GT_SetBgCommandSet Windows GT_SetJerk short GT_SetJerk(double Jerk) S- / 3 Jerk 00.5 GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetJerk GT_SetKaff short GT_SetKaff(unsigned short Kaff) Kaff 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKaff GT_SetKaffEx Firmware Ver2.50 short GT_SetKaffEx(double kaff) Kaff 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKaff GT_SetKd short GT_SetKd(unsigned short Kd) Kd 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV 116
GT_GetKd GT_SetKdEx Firmware Ver2.50 short GT_SetKdEx(double kd) Kd 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKd GT_SetKi short GT_SetKi(unsigned short Ki) Ki 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKi GT_SetKiEx Firmware Ver2.50 short GT_SetKiEx(double ki) Ki 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKi GT_SetKp short GT_SetKp(unsigned short Kp) Kp 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKp GT_SetKpEx Firmware Ver2.50 short GT_SetKpEx(double kp) Kp 032767 GT_Update() 117
GT_MltiUpdt() DOSWINDOWS SV GT_GetKp GT_SetKvff short GT_SetKvff (unsigned short Kvff) Kvff 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKvff GT_SetKvffEx Firmware Ver2.50 short GT_SetKvffEx(double kvff) Kvff 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetKvff GT_SetMAcc short GT_SetMAcc(double Macc) S- Macc 00.5 0.5 / 2 GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetMAcc GT_SetMtrBias short GT_SetMtrBias(short Bias) Bias -3276832767 GT_Update() GT_MltiUpdt() 0 DOSWINDOWS SV GT_GetMtrBias 118
GT_SetMtrCmd short GT_SetMtrCmd(short Mcmd) Mcmd -3276732767-32767 32767 DOSWINDOWS SV GT_GetMtrCmd GT_SetMtrLmt short GT_SetMtrLmt(unsigned short Mlmt) Mlmt 032767 GT_Update() GT_MltiUpdt() 32767 DOSWINDOWS SV GT_GetMtrLmt GT_SetPos short GT_SetPos (long Pos) S- Pos 10737418241073741823 GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetPos GT_SetPosErr short GT_SetPosErr(unsigned short Perr) Perr 032767 GT_Update() GT_MltiUpdt() DOSWINDOWS SV GT_GetPosErr GT_SetRatio short GT_SetRatio(double Ratio) 119
Ratio -16384~16384 Ratio Ratio GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetRatio GT_SetSmplTm short GT_SetSmplTm(double Timer) DOSWINDOWS GT GT_GetSmplTm GT_SetSynAcc short GT_SetSynAcc(double Accel); Accel / 2 DOSWINDOWS GT GT_SetSynVel short GT_SetSynVel(double Vel); Vel / DOSWINDOWS GT GT_SetTime short GT_SetTime(unsigned long value); value 0~65535 0~16ms CN7 Pin23 DOSWINDOWS : SE 120
GT_TmrIntr short GT_TmrIntr (void) GT_SetIntrTm() DOSWINDOWS GT GT_EvntIntr void main() short rtn; rtn=gt_tmrintr(); error(rtn); GT_SetVel short GT_SetVel(double Vel) Vel S- 0 16384-1638416384 / GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_GetVel GT_SetVelMul short GT_SetVelMul(double value) value value DOSWINDOWS SE GT_SmthStp short GT_SmthStp(void) GT_AbptStp() GT_SmthStp() GT_AbptStp() GT_Update() GT_MltiUpdt() GT_SmthStp() DOSWINDOWS 121
GT GT_AbptStp GT_StepDir short GT_StepDir (void); GT_CtrlMode() DOSWINDOWS GT GT_StepPulse GT_StepPulse short GT_StepPulse (void); DOSWINDOWS GT GT_StepDir GT_StpMtn short GT_StpMtn (void); GT_StrtMtn() DOSWINDOWS GT GT_EStpMtn GT_StrtList short GT_StrtList (void); DOSWINDOWS GT GT_AddListGT_EndList GT_StrtMtn short GT_StrtMtn (void); 122
DOSWINDOWS GT GT_SwitchtoCardNo short GT_SwitchtoCardNo(unsigned short card_no); PC GT card_no 015 0-1 0-15 PNP 0 DOSWINDOWS PCI GT_GetCurrentCardNo GT_SwitchtoCardNo(1) GT-400-SV-ISA GT_SynchPos short GT_SynchPos(void) S- GT_Update() GT_MltiUpdt() DOSWINDOWS GT GT_ZeroPosGT_SetAtlPos GT_UnhookIsr short GT_UnhookIsr(GT_ISR old_isr) GT_HookIsr GT400 ISR ISR old_isr GT_HookIsr 0-1 PCI DOS GT_HookIsr 123
DOS GT_HookIsrGT_UnhookIsr GT_HookIsr GT_UnhookIsr ISR GT_Update short GT_Update(void) GT_Update() DOSWINDOWS GT GT_MltiUpdt GT_ZeroPos short GT_ZeroPos (void) DOSWINDOWS GT GT_SynchPosGT_SetAtlPos GT_ProbStopOn Firmware Ver2.50 short GT_ ProbStopOn(void) DOSWINDOWS GT Firmware Ver2.50 GT_ProbStopOff GT_ProbStopOff Firmware Ver2.50 short GT_ ProbStopOn(void) DOSWINDOWS GT Firmware Ver2.50 GT_ProbStopOn 124
0755-0755- support@googoltech.com http://www.googoltech.com.cn/ (852) 2358-1033 (852) 2358-4931 info@googoltech.com http://www.googoltech.com/