untitled

Similar documents
untitled

6020

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

C/C++ - 文件IO

untitled

untitled

CC213

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

FY.DOC

14A 0.1%5% 14A 14A

(Chi)_.indb

穨_2_.PDF

C 1

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

C/C++语言 - C/C++数据

中医疗法(下).doc

NC MCP MPG

ISA-9620用户手册.PDF

新・解きながら学ぶC言語

C/C++ - 函数

数量关系部分题目溯源:

Microsoft Word - 中三選科指南 2014 subject

小儿疾病防治(四).doc

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

概述

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的

(i) (ii) (iii) (i) (ii) (iii) (iv) 1. 2

cgn

39898.indb

新版 明解C言語入門編

穨ecr2_c.PDF

電腦相關罪行跨部門工作小組-報告書

i

发展党员工作手册

i

中医疗法(上).doc

香 港 舞 蹈 總 會    北 京 舞 蹈 學 院

行业

(As at 28

新・明解C言語入門編『索引』

行业

Microsoft Word - EDB Panel Paper 2016 (Chi)_finalr

怎样使孩子更加聪明健康(五).doc

厨房小知识(四)

妇女更年期保健.doc

小儿传染病防治(上)

<4D F736F F D B875B9B5A448ADFBBADEB27AA740B77EA4E2A5555FA95EAED6A641ADD75F2E646F63>

女性青春期保健(下).doc

避孕知识(下).doc

孕妇饮食调养(下).doc

禽畜饲料配制技术(一).doc

中老年保健必读(十一).doc

i

怎样使孩子更加聪明健康(七).doc

i

二零零六年一月二十三日會議

马太亨利完整圣经注释—雅歌

C/C++ 语言 - 循环

生活百科(二)

行业

行业

天主教永年高級中學綜合高中課程手冊目錄

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

捕捉儿童敏感期

. () ; () ; (3) ; (4).. () : P.4 3.4; P. A (3). () : P. A (5)(6); B. (3) : P.33 A (9),. (4) : P. B 5, 7(). (5) : P.8 3.3; P ; P.89 A 7. (6) : P.

行业

509 (ii) (iii) (iv) (v) 200, , , , C 57

行业

8 A B C D 9 A B C D 10 ABC D 11 A B C D 12 AB C D 13 A B CD 14 A B C D 15 A B C D 16 A B C D A1 B2 C3 D5 18 ABC D 19

尿路感染防治.doc

Microsoft Word - MP2018_Report_Chi _12Apr2012_.doc

南華大學數位論文

李天命的思考藝術

皮肤病防治.doc

性病防治

中国南北特色风味名菜 _一)

全唐诗24

心理障碍防治(下).doc

学 校 概 况 南 方 医 科 大 学 前 身 为 中 国 人 民 解 放 军 第 一 军 医 大 学, 创 建 于 1951 年,1979 年 被 确 定 为 全 国 重 点 大 学,2004 年 8 月 整 体 移 交 广 东 省, 更 名 为 南 方 医 科 大 学 学 校 是 全 国 首 批

新婚夫妇必读(二十二).doc

51 C 51 isp 10 C PCB C C C C KEIL


Ps22Pdf

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

C/C++语言 - 运算符、表达式和语句

声 明 本 公 司 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 股 票 发 行 方 案 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 和 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 根 据 证 券 法 的 规 定

綜合社會保障援助指引

家庭用药指南(九).doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

高級職業學校實習辦法(草案二)(93

第五条 非公开发行股票预案应当包括以下内容:

儿童饮食营养与健康(五).doc

榫 卯 是 什 麼? 何 時 開 始 應 用 於 建 築 中? 38 中 國 傳 統 建 築 的 屋 頂 有 哪 幾 種 形 式? 40 大 內 高 手 的 大 內 指 什 麼? 42 街 坊 四 鄰 的 坊 和 街 分 別 指 什 麼? 44 北 京 四 合 院 的 典 型 格 局 是 怎 樣 的

专科疾病诊治(二十)

ebook

業 用 地 出 讓 最 低 價 標 準 不 得 低 於 土 地 取 得 成 本 土 地 前 期 開 發 成 本 和 按 規 定 收 取 的 相 關 費 用 之 和 工 業 用 地 必 須 採 用 招 標 拍 賣 掛 牌 方 式 出 讓 其 出 讓 價 格 不 得 低 於 公 佈 的 最 低 價 標

条款

Microsoft PowerPoint - ds-1.ppt [兼容模式]

第一部分

Transcription:

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/