FOXBOT編程手冊_第1頁
FOXBOT編程手冊_第2頁
FOXBOT編程手冊_第3頁
FOXBOT編程手冊_第4頁
FOXBOT編程手冊_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、富士康工業(yè)機器人富士康工業(yè)機器人 FOXBOT編程手冊編程手冊 ( Ver. 2007.1 ) FOXBOT編程手冊 1 FOXBOT編程手冊 2 簡 介FOXBOT 的編程手冊由 FOXBOT 指令手冊和 Cypress Enable 編輯器語言參考手冊組成。FOXBOT 指令手冊主要用于機器人的運動控制指令;Cypress Enable 主要用于程序的變量命名流程控制子程序等。程序編輯界面是 Cypress Enable 編輯器程序中的語句語法要求應符合 Cypress Enable 的要求。 FOXBOT編程手冊 3 FOXBOT 指令手冊指令手冊 目 錄ACCEL.1CURPOS .1

2、DECEL.1DEFIO.1DEFPOS.2DELAY .2DEFJNT.2DIST.2DRIVE.3DRIVEA.3FIG.3GOHOME .3HOME.4IN.4J2P.5MOVE.5OUT.6POSRX.7POSRY.7POSRZ.7POSX.7POSY.8POSZ.8RESETIO.8ROBOTSTOP.8ROTATE.9SETIO.9SPEED.10WAIT.10附錄.10 FOXBOT編程手冊 1 ACCEL功能:指定內(nèi)部加速度比例 格式:ACCEL 範例:ACCEL 50CURPOS功能:取得目前的位置 (type P 格式)格式:Position type 變數(shù) = CURPO

3、S說明:範例:DEFPOS lp1lp1=CURPOSMSGBOX POSX(lp1) & chr(13) & chr(10) &_POSY(lp1) & chr(13) & chr(10) &_POSZ(lp1) & chr(13) & chr(10) &_POSRX(lp1) & chr(13) & chr(10)&_POSRY(lp1) & chr(13) & chr(10)&_POSRZ(lp1) & chr(13) & chr(10)&_FI

4、G(lp1)DECEL功能:指定內(nèi)部減速度比例格式:DECEL 說明:範例:DECEL 50DEFIO功能:聲明 IO 變數(shù)格式:DEFIO = , 說明:通過變量名聲明指定變量作為一個 IO 變量 選擇 IO 變量的類型。IO 變量的類型包括BIT(1 位)BYTE(8 位)INTEGER(16 位)端口地址指定輸入輸出 IO 的開始號相關(guān)指令I(lǐng)N OUT SET RESET範例:Dim a AS IntegerDEFIO samp1= INTEGER,0聲明一個來自端口 15 的 IO 字類型變量。Sampl 返回值是 16 位的來自從 0 到 15 端口整型IN a=samp1Msgbo

5、x FOXBOT編程手冊 2 Notes:對于字或整型,使用 MSB 作為一個信號位。Byte允許數(shù)字值范圍MSB 端口號:開始端口地址7Integer允許數(shù)字值范圍MSB 端口號:開始端口地址15DEFPOS功能聲明一個位置類型變量格式DEFPOS 舉例DEFPOS lpx 聲明 lpx 作為位置類型變量注意一個語句只能聲明一個位置變量類型相關(guān)指令 poseP格式Dim lpx as posePDELAY功能暫停程序處理,延時一個指定的周期時間,格式DELAY 說明程序處理停止直到暫停時間到。單位:ms舉例DIM li1 As Integer Delay 100 延時 100ms(0.1s)

6、Delay li1+10延時 li1+10msDEFJNT功能聲明一個關(guān)節(jié)類型變量格式DEFJNT舉例DEFJNT ljx 聲明 ljx 作為一個關(guān)節(jié)類型變量DIST功能返回兩點之間的距離格式DIST (,)說明獲得位置 1 和位置 2 之間的距離舉例Dim lf1 AS SingleDEFPOS lp1 FOXBOT編程手冊 3 DEFPOS lp2lp1=CURPOSlp1.x=lp2.x+10lp1.y=lp2.y+10lp1.z=lp2.z+10lp1.rx=lp2.rx+10lp1.ry=lp2.ry+10lp1.rz=lp2.r2+10lf1=DIST(lp1,lp2) lf1 等

7、于 lp1 和 lp2 之間的距離MSGBOX lf1DRIVE功能:執(zhí)行每個軸的相對運動格式:DRIVE ()說明移動指定軸移動量用角度來表示,角度的正負表示移動的方向。舉例 DRIVE 1,30 移動 1 軸30 度。DRIVEA功能執(zhí)行每個軸的絕對運動格式DRIVEA 說明移動指定軸到指定角度舉例DRIVEA 1,-30移動 1 軸到-30 度。FIG功能提取一個形態(tài)。格式FIG(位置類型變量)說明:從位置數(shù)據(jù)提取一個形態(tài)舉例DIM lp1 AS posePli1=FIG(lp1) 指定一個 lp1 的形態(tài)給 li1GOHOME功能移動到 HOME 語句定義的坐標位置 FOXBOT編程手

8、冊 4 格式: GOHOME說明:移動機器人使用 PTP 控制從當前位置到 HOME 位置使用 HOME 語句聲明一個原點位置如果沒有設置 HOME執(zhí)行這個語句將會出現(xiàn)錯誤。舉例GOHOME 機器人從當前位置移動到原點位置HOME功能聲明任意位置為原點位置格式HOME 說明聲明任意的位置類型的坐標作為原點位置舉例Dim JJ As poseJSpeed 30JJ.J5 = 20 賦值 20 度給 JJ.J5,其他 JJ 的組成是 0Home JJ 設置 JJ 作為原點位置GoHome 移動到原點位置EndIN功能IO 變量值賦給指定變量格式IN IO 變量舉例!TITLE EXAMPLE_IN

9、Dim li1 As Integer Declare li1 and li2 as IntegerDim li2 As Integer Declare samp1 as Type IO variable,DEFIO samp1 = Integer, 48 length is 16 (integer), starting from IO(48) Get the current IO status defined in samp1 into integer format and assign it to li1In li1 = samp1 Get IO status starting from 5

10、6 into an integer and assign it to li2In li2 = IO(56) Show li1 and li2 FOXBOT編程手冊 5 (if only IO(56) is on, li1 = 256 meaning 100000000 in binary starting from port 48 and li2 = 1)MsgBox li1 = & li1 & Chr(13) & Chr(10) _& li2 = & li2J2P功能關(guān)節(jié)類型變量轉(zhuǎn)換成位置類型變量。格式J2P,舉例Dim lj1 as poseJDim

11、 lp1 as posePlj1.j1=0lj1.j2=0lj1.j3=0lj1.j4=0lj1.j5=0lj1.j6=0J2P lj1,lp1Msgbox lp1.x & “ ”lp1.y& “ ”lp1.z_ lp1.rx & “ ”lp1.ry& “ ”lp1.rzMOVE功能移動機器人末端操作器到指定坐標。格式MOVE, , ,說明移動機器人從當前位置到指定的目標位置。對于位置類型,關(guān)節(jié)類型可以使用。插補方法說 明P(PTP)PTP(點到點)運動從一個點到另一個點機器人移動的路徑依賴機器人的姿態(tài)不是一條直線。 運動路徑可以不是一條直線LCP 控制,到達目

12、標位置的路徑是一條直線運動路徑是一條直線機器人手臂從一個運動到另一個運動有三種方法確定第一個運動的完成。AB FOXBOT編程手冊 6 0:運動位置到達目標位置就算到達。P:實際位置到達目標位置附近即算到達,且不減速而往下一位置。E:編碼器值核實點, 實際位置到達目標位置,停下來檢查編碼器的值是否在一定時間內(nèi)不超出一定範圍才算到達。下面的例子都是機器人從當前位置 P1 經(jīng)過 P2到達 P3PROGRAM PASS_MOVETAKEARM MOVE P, P , P(2) ,S=10MOVE P, 0 , P(3) ,S=10ENDPROGRAM END_MOVETAKEARMMOVE L, 0

13、 , P(2),S=10MOVE L, 0 , P(3),S=10ENDPROGRAM ENCODER_MOVETAKEARMMOVE L,E, P(2),S=10MOVE L,0, P(3),S=10ENDOUT功能給輸出 IO 變量賦值格式OUT =舉例!TITLE EXAMPLE_OUTDim li1 As Integer Declare li1 as Integer Declare samp1 as Type IO variable, length is 16 (integer), starting from IO(30)DEFIO samp1 = Integer, 30 assign

14、 25-1 = 31 (11111 in Hex value) to li1li1 = 25-1 Output the li1 data from the port declared in samp1Out samp1 = li1 Delay 3 secondsDelay 3000 assign 25-1 = 31 (11111 in Hex value) to li1li1 = 25-1 Output the li1 data from the port 38Out IO(38) = li1經(jīng)過運動(P)P1P2P3伺服偏離(0)P1P2P3編碼器值檢查運動(E)P1P2P3 FOXBOT編

15、程手冊 7 POSRX功能獲得繞 X 軸旋轉(zhuǎn)的角度格式POSRX 舉例Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRX(lp1)指定 X 軸旋轉(zhuǎn) lp1 部分給 lf1POSRY功能獲得繞 Y 軸旋轉(zhuǎn)的角度格式POSRY舉例Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRY(lp1)指定 Y 軸旋轉(zhuǎn) lp1 部分給 lf1POSRZ功能獲得繞 Z 軸旋轉(zhuǎn)的角度格式POSRZ說明從位置坐標系中提出繞 Z 軸旋轉(zhuǎn)部分舉例Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRZ(

16、lp1) 指定 Z 軸旋轉(zhuǎn) lp1 部分給 lf1POSX功能獲得 X 坐標格式POSX 舉例DIM lf1 As SingleDEFPOS lp1lf1=POSX(lp1) 指定 lp1 的 X 部分給 lf1 FOXBOT編程手冊 8 POSY功能獲得 Y 坐標格式POSY 說明從位置類型或向量類型坐標值提出 Y 部分。舉例DIM lf1 As SingleDIM lp1 As posePlf1=POSY(lp1) 指定 lp1 的 Y 部分給 lf1POSZ功能獲得 Z 坐標格式POSZ 說明從位置類型變量坐標值提出 Z 部分。舉例DIM lf1 As SingleDIM lp1 As

17、posePlf1=POSZ(lp1) 指定 lp1 的 Z 部分給 lf1RESETIO功能設置一個 IO 口為 OFF格式RESETIO 說明 設置通過 IO 變量標明的端口為 OFF舉例!titile “example_setio”takearmRESETIO IO(40) 設置 IO40 為 OFFROBOTSTOP功能機器人運行停止格式ROBOTSTOP說明機器人進入持續(xù)停止狀態(tài)關(guān)閉馬達電源關(guān)閉機器人正在操作的輸出信號。舉例PROGRAM TSR1ROBOTSTOP 停止機器人 END FOXBOT編程手冊 9 ROTATE功能繞指定向量執(zhí)行旋轉(zhuǎn)運動格式ROTATE , ,說明旋轉(zhuǎn)平面

18、XYH,XZH,YZH; XY,XZ,YZ旋轉(zhuǎn)平面與 XYH,XZH,YZH 平行,向量是相對工具坐標系,旋轉(zhuǎn)平面與 XY,YZ,YZ 平行向量是相對工件坐標系半徑應是向量在指定平面的投影距離。注意機器人 6 軸端面與指定旋轉(zhuǎn)平行才能畫圓。范例 Assign J(0) position J(0).J1 = 0J(0).J2 = 0J(0).J3 = 90J(0).J4 = 0J(0).J5 = 30J(0).J6 = 0 Move to J(0)MOVE P, J(0), S=50 Assign J(0).J2 a new positionJ(0).J2 = 60 Move to new J(

19、0)MOVE P, J(0), S=50 Rotate 360 degree on XY plan around a vector V(0) described in Tool Coordinate ROTATE XYH,360,V(0),S=100 Assign J(0).J2 a new positionJ(0).J2 = 0 Move to new J(0)MOVE P, J(0), S=50EndSETIO功能設置一個 IO 口為 ON。格式SET IO (IO 變量)說明設置指定 IO 為 ON舉例!titile “example_setio”takearmSETIO (40) FO

20、XBOT編程手冊 10 設置 IO(24)點為 ONSPEED功能指定內(nèi)部關(guān)節(jié)合成速度。格式SPEED 說明運動速度是內(nèi)部關(guān)節(jié)合成最大速度的百分比()范圍:0.1-100 最大速度是指 TCP 點的最大速度舉例SPEED 50機器人有內(nèi)部速度和外部速度。外部速度是指示教器上設定的速度內(nèi)部速度是指用 SPEED 指令設定的值。實際速度=最大速度*內(nèi)部速度*外部速度例如內(nèi)部速度=70%外部速度 30%實際速度=最大速度*0.7*0.3舉例SPEED 50WAIT功能程序停止直到條件滿足。格式WAIT 說明:程序被停止直到條件被滿足。舉例:WAIT IO(10) = ON 程序等一直到 IO(10)

21、為 ON 注 意 不能在指令后直接添加注釋需要另取一行以單引號()開頭。程序編寫后不能以只讀(only read)的方式存儲。 FOXBOT編程手冊 11 附錄附錄 FOXBOT編程手冊 12 指令說明頁數(shù)ACCEL指定內(nèi)部加速度比例CURPOS取得目前的位置 (type P 格式)DECEL指定內(nèi)部減速度比例DEFIO宣告 IO 變數(shù)DEFJNT宣告 Joint type 變數(shù)DEFPOS宣告 Position type 變數(shù)DELAY使程式執(zhí)行延遲一段指定的時間DIST取得兩點間的距離DRIVE執(zhí)行單軸之相對運動DRIVEA執(zhí)行單軸之絕對運動FIG取得一 type P 變數(shù)之 figure

22、 值GOHOME移動至 HOME 指令所指定之位置 (Home 位置)HOME指定 Home 位置IN將 IO 埠狀態(tài)資料給一變數(shù) (此資料定義於一 IO 變數(shù)內(nèi))J2P關(guān)節(jié)變量轉(zhuǎn)換成位置變量MOVE移動至指定的位置OUT輸出 IO 狀態(tài)資料至 IO 埠 (此 IO 埠定義於一 IO 變數(shù)內(nèi))POSRX取得一 type P 變數(shù)之 RX 值POSRY取得一 type P 變數(shù)之 RY 值POSRZ取得一 type P 變數(shù)之 RZ 值POSX取得一 type P 變數(shù)之 X 值POSY取得一 type P 變數(shù)之 Y 值POSZ取得一 type P 變數(shù)之 Z 值RESETIO使一個 IO 埠

23、設為 OFFROBOTSTOP使 robot 停止並 SERVO OFFROTATE對某一指定向量作旋轉(zhuǎn)運動SETIO使一個 IO 埠設為 ONSPEED指定內(nèi)部速度比例WAIT根據(jù)某一狀況暫停程式執(zhí)行Cypress Enable編輯器編輯器語言參考手冊語言參考手冊目 錄CYPRESS ENABLE 程序編寫規(guī)范.0注釋.0數(shù)字.0變量和常量名.0變量類型.1其他數(shù)據(jù)類型.2控制結(jié)構(gòu).3子程序和函數(shù).5BYREF & BYVAL參數(shù)傳遞.5文件輸入輸出.6數(shù)組.7腳本語言概述.8函數(shù)和語句快速參考.8語言參考 A-Z .12ABS函數(shù) .12ASC函數(shù) .12ATN函數(shù).13CBOOL

24、 函數(shù).13CDATE 函數(shù).13CDBL 函數(shù).14CHR 函數(shù) .14CINT 函數(shù).15CLNG函數(shù) .15CLOSE 語句.15CONST 語句 .16COS函數(shù) .17CSNG函數(shù).17CSTR 函數(shù) .17CVAR 函數(shù) .18DATE函數(shù).18DAY 函數(shù).19DIM 語句.19DO.LOOP語句.20END語句.20 FOXBOT編程手冊 1 EOF 函數(shù) .21EXIT語句 .21EXP函數(shù).22FILECOPY函數(shù).22FILELEN函數(shù) .22FIX函數(shù).22FOR EACH NEXT語句.23FOR.NEXT語句.23FREEFILE函數(shù).24FUNCTION 語句.2

25、4GLOBAL語句.25GOTO 語句 .26HOUR函數(shù).26IF.THEN.ELSE語句.26INPUT #語句.27INPUT 函數(shù).28INSTR函數(shù).28INT函數(shù).29ISARRAY函數(shù) .29ISDATE函數(shù).29函數(shù) ISEMPTY.30ISNULL函數(shù).30ISNUMERIC函數(shù).30KILL語句 .31LBOUND函數(shù).31LCASE函數(shù).32LEFT函數(shù).32LEN函數(shù).33LET 語句.33LINE INPUT #語句.34LOF 函數(shù) .34LOG函數(shù).34函數(shù) MID.35MINUTE函數(shù).35MONTH函數(shù).36NAME語句.36NOW函數(shù).36ON ERROR語

26、句.36 FOXBOT編程手冊 2 OPEN語句 .37OPTION BASE語句.38OPTION EXPLICIT語句.38PRINT方法.39RANDOMIZE語句.41REDIM 語句.41REM語句.41RIGHT 函數(shù).42RND函數(shù).43SECOND函數(shù).43SEEK 函數(shù).44SEEK 語句.44SELECT CASE 語句.45SENDKEYS函數(shù).46SIN 函數(shù).46SPACE函數(shù).47SQR 函數(shù).47STATIC語句.48STOP 語句.48STR 函數(shù).49STRCOMP函數(shù) .49STRING 函數(shù) .50SUB 語句.50TAN 函數(shù) .51TIME 函數(shù).51

27、TIMER事件.51TRIM, LTRIMRTRIM函數(shù).52TYPE 語句.52UBOUND函數(shù).53UCASE 函數(shù).54VAL函數(shù).54VARTYPE.54WEEKDAY 函數(shù).55WHILE.WEND 語句.55WRITE # 語句.56YEAR函數(shù).56 FOXBOT編程手冊 0 Cypress Enable 程序編寫規(guī)范程序編寫規(guī)范這部分主要描述 Enable 語言的一般元素,包括注釋語句數(shù)字的不同表達形式變量數(shù)據(jù)類型(包括用戶定義類型)多流程程序控制結(jié)構(gòu)等。注釋注釋格式 注釋內(nèi)容說明注釋是不可執(zhí)行的代碼行是為了便于編程人員閱讀程序而加入的。注釋目前只能單獨占一行Enable 將忽

28、略出現(xiàn)在撇號或者 Rem 之后的任何文本。Rem 和所有其他的關(guān)鍵字以及 Enable 的大部分名稱都是大小寫不敏感的。范例MsgBox Msg 顯示信息語句語句說明在 Enable 里沒有語句結(jié)束符一行可以放多條語句通過“:”隔開。范例x.AddPoint(25,100) : x.AddPoint(0,75)等價于x.AddPoint(25,100)x.AddPoint(0,75)續(xù)行符續(xù)行符在 Enable 中續(xù)行符用下劃線 “_”表示在續(xù)行符”_”前后都要有空格。范例x.AddPoint _ (25,100)數(shù)字數(shù)字Cypress Enable 支持三種數(shù)字表達形式十進制八進制和十六進制

29、。本手冊中所使用的大部分數(shù)字用十進制表示。使用八進制或者十六進制需要分別在數(shù)字前加前綴”&O”或”&H”。變量和常量名變量和常量名 FOXBOT編程手冊 1 變量和常量名必須以字母開頭可以包含大寫字母 AZ小寫字母 az下劃線”_”和數(shù)字 09。變量與常量名都不超過 40 個字符也不能使用保留字(可參見本手冊語言概述部分的保留字表)。但是對象成員名和屬性名不受此項規(guī)則的限制可以使用保留字。變量類型變量類型Variant 變體變量變體變量說明與 VB 類似當在 Cypress Enable 中引入變量時不必在首行聲明(如果使用了 option explicit 則例外可參見 op

30、tion explicit 說明)。如果使用一個變量但沒有事先聲明則系統(tǒng)隱式聲明其為 Variant 類型。Variant 變量也可以使用”As variant”以 Dim x As Variant 的形式顯式地聲明。Variant 數(shù)據(jù)類型能夠存儲數(shù)值字符串日期和時間。使用 Variant 類型變量時不必顯式地從一個類型轉(zhuǎn)換到另外一個類型數(shù)據(jù)類型轉(zhuǎn)換是自動完成的。格式Dim 變量名 As 變量類型范例Sub MainDim x variant variablex = 10 x = x + 8x = F & x print x prints F18End Sub一個 Variant 類

31、型變量可以很容易地改變其類型其內(nèi)部表示可以使用 VarType 函數(shù)確定。VarType 返回一個與顯式數(shù)據(jù)類型一致的值(可在語言參考 AZ 參見 VarType 的返回值)。當以 Variant 變量存儲數(shù)據(jù)時所使用的數(shù)據(jù)類型總是盡可能緊湊的。比如如果對Variant 變量賦值一個很小的整數(shù)值它將以 integer 類型存儲如果賦值的數(shù)據(jù)包含小數(shù)部分將以 double 類型存儲。 FOXBOT編程手冊 2 如果運用 Variant 變量進行數(shù)值運算往往有必要確定其存儲的是否是有效的數(shù)值從而避免出錯。這可由 IsNumeric 函數(shù)實現(xiàn)。變體變量和串聯(lián)變體變量和串聯(lián)字符串和數(shù)字串聯(lián)的結(jié)果是字符

32、串。使用”&”操作符可以確保無論何種數(shù)據(jù)類型都能連接成功&操作符不能對數(shù)值進行數(shù)學運算它只是簡單地把它們當作字符串連接起來??梢允褂?IsEmpty 函數(shù)確認 Variant 變量之前是否被賦過值。其他數(shù)據(jù)類型其他數(shù)據(jù)類型Cypress Enable 有 12 個數(shù)據(jù)類型在下表只列出常用的幾種數(shù)據(jù)類型表數(shù)據(jù)類型表類 型類型聲明符存儲空間大小范圍類型聲明Byte1 字節(jié)0 to 255Dim Bvar As ByteBoolean2 個字節(jié)Dim Boolvar As BooleanString$字符串長度0 to 65,500 字符 Dim Str Var As StringI

33、nterger%2 字節(jié)Dim Int_Var As IntegerLong &4 字節(jié)Dim Long_Var As LongSingle!4 字節(jié)Dim Sing_Var As SingleDouble #8 字節(jié)Dim Dbl_Var As DoubleVariant按需分配Dim X As AnyUser Defined Type每個元素的尺寸之和變量范圍變量范圍Cypress Enable 程序可由多個文件組成每個文件可包含多個子程序和函數(shù)。不同的文件中變量名可以重復使用變量可以是局部的也可以是全局的。變量的聲明變量的聲明在 Cypress Enable 中變量用 DIM 語

34、句聲明。要聲明一個除 variant 類型之外的變量必須在變量名后跟隨 As 說明變量類型或者附加類型聲明符。例如%代表 Integer 類型。 FOXBOT編程手冊 3 格式Dim 變量名 As 變量類型范例Sub MainDim X As IntegerDim Y As DoubleDim Name$,Age% multiple declaration on one line Dim vEnd Sub控制結(jié)構(gòu)控制結(jié)構(gòu)Cypress Enable 有完整的過程控制功能可用的控制結(jié)構(gòu)有 Do 循環(huán)While 循環(huán)For循環(huán)Select Case If Then 和 If Then Else。另

35、外Cypress Enable 還有一個跳轉(zhuǎn)語句GoTo。GoTo 語句跳轉(zhuǎn)到語句所指定的標號處。范例Goto label1 .label1:程序跳到以”Label1:”所標記的部分循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指程序重復執(zhí)行循環(huán)語句中的一行或多行代碼。DO 循環(huán)循環(huán)Do.Loop 循環(huán)允許以不確定的次數(shù)重復執(zhí)行某個語句塊。Do.Loop 的變種有 Do While 和 Do Loop While。格式Do While 條件語句塊.Exit Do語句塊.LoopDo 語句塊.Loop While 條件Do While 在進入循環(huán)體之前檢查條件當條件滿足時才執(zhí)行循環(huán)體里的程序塊。Do Loop Wh

36、ile 在執(zhí)行語句塊之后檢查條件,因此可以保証語句塊至少執(zhí)行一次。While 循環(huán)循環(huán) FOXBOT編程手冊 4 While Wend 循環(huán)與 Do While 循環(huán)類似在執(zhí)行循環(huán)體之前檢查循環(huán)條件。While 條件語句塊.WendFor . Next 循環(huán)循環(huán)ForNext 循環(huán)有一個循環(huán)計數(shù)變量它以確定的次數(shù)執(zhí)行循環(huán)體。循環(huán)計數(shù)變量在每次執(zhí)行循環(huán)之后增加或減少。如果未用 Step 指定變化幅度計數(shù)器缺省增加 1。格式For 變量 = To Step 語句塊.NextIf 和和 Select 語句語句IfThen 塊有單行和多行語法。If 語句的條件可以是比較式或表達式但它必須可以轉(zhuǎn)化為 T

37、rue 或 False。格式If 條件 Then 語句塊.單行語法If 條件 Then 多行語法語句塊.End IfIf 語句的一個變種是 If.Then.Else 語句。根據(jù)的條件不同執(zhí)行不同語句塊時可使用該語句。還有一個變種是 If.Then.ElseIf.語句使用該語句有可能使代碼過長并且難于理解此時可以考慮用 Select 語句代替。If 條件 Then語句塊.ElseIf 條件 Then語句塊.Else語句塊.End IfSelect Case Select Case 語句測試同一個變量的值根據(jù)不同的值執(zhí)行不同的語句塊。該語句易于閱讀理解和跟蹤應該用該語句代替復雜的 If.Then.

38、ElseIf 語句。格式Select Case Case 值 1語句塊 FOXBOT編程手冊 5 Case 值 2語句塊Case 值 3語句塊.Case Else語句塊End Select子程序和函數(shù)子程序和函數(shù)命名習慣命名習慣子程序和函數(shù)名必須以字母開頭可以包含大寫字母 AZ小寫字母 az下劃線”_”和數(shù)字 09。子程序和函數(shù)名不超過 40 個字符且不能使用保留字(可參見本手冊語言概述部分的保留字表)。子程序格式Sub 語句塊End Sub函數(shù)格式Function As 語句塊=語句塊End FunctionByRef & ByVal 參數(shù)傳遞參數(shù)傳遞關(guān)鍵字 ByRef 允許其他子程

39、序和函數(shù)改變以參數(shù)形式傳入的變量關(guān)鍵字 ByVal 不允許其他子程序和函數(shù)改變以參數(shù)形式傳入的變量并且參數(shù)在它們的局部過程之外不能重新賦值。ByRef 是 Enable 的默認參數(shù)傳遞方式不需要顯式說明。在傳遞參數(shù)時可以用()強制進行 ByVal 傳遞。如下例SubOne var1,var2,(var3)參數(shù) var1,var2 以 ByRef 方式傳遞形參指向?qū)崊?nèi)存單元當 SubOne 形參被改變時實參也將改變參數(shù) var3 用()強制以 ByVal 方式傳遞在函數(shù)內(nèi)值的改變不會影響到函 FOXBOT編程手冊 6 數(shù)外變量的值。Function R( X As String, ByVal

40、n As Integer)在本例中函數(shù) R 接受兩個參數(shù) X 和 n。第二個參數(shù) n 按值傳遞當改變形參的值時實參的值不會改變。下列樣例代碼中數(shù)組變量和用戶定義類型變量按引用傳遞參數(shù)。范例Sub MainDim x(5) As IntegerDim i As Integerfor i = 0 to 5x(i) = inext iPrint iJoe (i), x ()強制 i 進行值傳遞print should be 6: ; x(2), iEnd SubSub Joe( ByRef j As Integer, ByRef y() As Integer )print Joe: ; j, y(2

41、)j = 345for i = 0 to 5print i: ; i; y(i): ; y(i)next iy(2) = 3 * y(2)End Sub文件輸入輸出文件輸入輸出Enable 支持順序文件和二進制文件 I/O。適用于文件訪問的函數(shù)和語句有EOF, FileCopy, FileLen, Seek, Open, Close, Input, Line Input, Print 和 Write File I/O ExamplesSub MainOpen TESTFILE For Input As #1 Open file.Do While Not EOF(1) Loop until en

42、d of file.Line Input #1, TextLine Read line into variable.Print TextLine Print to Debug window.LoopClose #1 Close file.End SubSub FileIO_Example()Dim Msg Declare variable.Call Make3Files() Create data files.Msg = Several test files have been created on your disk. Msg = Msg & Choose OK to remove

43、the test files.MsgBox MsgFor I = 1 To 3Kill TEST & I Remove data files from disk.Next IEnd Sub FOXBOT編程手冊 7 Sub Make3Files ()Dim I, FNum, FName Declare variables.For I = 1 To 3FNum = FreeFile Determine next file number.FName = TEST & FNumOpen FName For Output As FNum Open file.Print #I, This

44、 is test # & I Write string to file.Print #I, Here is another ; line; INext IClose Close all files. End Sub 數(shù)組數(shù)組Cypress Enable 支持一維和多維數(shù)組。數(shù)組可以使用相同的名稱代表一系列具有相同數(shù)據(jù)類型的變量每個變量都有唯一的索引。數(shù)組有上下邊界。Enable 為數(shù)組中的每個索引數(shù)據(jù)分配內(nèi)存空間。在使用中定義數(shù)組不要不必要地過長。數(shù)組中所有的元素都有相同的數(shù)據(jù)類型。Enable 支持的數(shù)組變量類型有bytes, Booleans, longs, integers, s

45、ingles, double, strings, variants 以及用戶自定義類型。聲明固定大小數(shù)組的方法有全局數(shù)組使用 Dim 語句在過程代碼模塊之外聲明數(shù)組局部數(shù)組使用 Dim 語句在過程內(nèi)聲明數(shù)組。Cypress Enable 支持動態(tài)數(shù)組。聲明數(shù)組時必須給出數(shù)組上邊界并且上邊界必須是整數(shù)。范例Dim ArrayName(10) As IntergerDim Sum(20) As Double創(chuàng)建全局數(shù)組時只須在過程之外使用 Dim 語句。Dim Counters(12) As IntegerDim Sums(26) As Double 在過程內(nèi)聲明數(shù)組使用 Static 語句與使用

46、 Dim 語句效果相同。Static Counters (10) As IntegerStatic Sums (22) As Double第一個聲明創(chuàng)建一個具有 11 個元素的數(shù)組下標從 0 到 10。若要改變?nèi)笔〉南逻吔?FOXBOT編程手冊 8 可在模塊聲明區(qū)域放置一個 Option Base 語句。Option Base 1另一個方法是使用 To 關(guān)鍵字顯式指定下邊界(-3276832767 的整數(shù))。Dim Counters (1 To 13) As IntegerDim Sums (100 To 126) As String在前一個聲明中數(shù)組 Counters 的下標索引從 1 到

47、13數(shù)組 SUM 的下標索引從 100到 126。注意注意許多其他的 Basic 版本允許不事先聲明就可以使用數(shù)組Enable Basic 不允許這么做在使用前必須聲明。循環(huán)提供了一種有效的處理數(shù)組的方法。例如下例中 For 循環(huán)將數(shù)組所有元素初始化為 5Static Counters (1 To 20) As IntegerDim I As IntegerFor I = 1 To 20Counter ( I ) = 5Next I多維數(shù)組多維數(shù)組Cypress Enable 支持多維數(shù)組例如下面范例在過程內(nèi)聲明了一個二維數(shù)組Static Mat(20, 20) As Double可以明確聲明

48、數(shù)組任意一維或者兩維的下邊界。Static Mat(1 to 10, 1 to 10) As Double可以使用 For 循環(huán)有效處理多維數(shù)組。在下列語句中多維數(shù)組的元素被賦值。Dim L As Integer, J As IntegerStatic TestArray(1 To 10, 1 to 10) As DoubleFor L = 1 to 10For J = 1 to 10TestArray(L,J) = I * 10 + JNext JNext L數(shù)組的維數(shù)可以多于兩維。Enable 中數(shù)組的上邊界不能任意。Dim ArrTest(5, 3, 2)如果沒有在之前的代碼中使用語句

49、Option Base 1則該聲明創(chuàng)建的三維數(shù)組的大小為(6,4,3)。Option Base 1 語句設置數(shù)組的下邊界為 1而不是默認的 0。腳本語言概述腳本語言概述函數(shù)和語句快速參考函數(shù)和語句快速參考 FOXBOT編程手冊 9 類型類型/函數(shù)函數(shù)/語句語句控制流程控制流程Goto, End, OnError, Stop, Do.Loop, Exit Loop, For.Next, Exit For, If.Then.Else.End If, Stop, While.Wend, Select Case轉(zhuǎn)換轉(zhuǎn)換Chr, Hex, Oct, Str, CDbl, CInt, Clng, CSng

50、, CStr, CVar, CDate, Asc, Val, Date, Fix, Int, Day, Weekday, Month, Year, Hour, Minute, Second文件文件 I/OFileCopy, Open, Close, Print #, Kill, FreeFile, LOF, FileLen, Seek, EOF, Write #, Input, Line Input, Name, Put數(shù)學數(shù)學Exp, Log, Sqr, Rnd, Abs, Sgn, Atn, Cos, Sin, Tan, Int, Fix過程過程Function, End Function

51、, Sub, End Sub, Exit, Global字符串字符串Let, Len, InStr, Left, Mid, Asc, Chr, Right, LCase, Ucase, InStr, LTrim, RTrim, Trim, Option Compare, Len, Space, String, StrComp變量和常數(shù)變量和常數(shù)Dim, IsNull, IsNumeric,VarType, Const, IsDate, IsEmpty, IsNull, Option Explicit, Global, Static錯誤處理錯誤處理On Error, Resume日期日期/時間時

52、間Date, Now, Time, Timer數(shù)組數(shù)組Option Base, Option Explicit, Static, Dim, Global, Lbound, Ubound, Erase, ReDim 其他其他SendKeys, Rem數(shù)據(jù)類型數(shù)據(jù)類型變 量類型說明用 法String$Dim Str_Var As StringInteger%Dim Int_Var As Integer FOXBOT編程手冊 10 Long&Dim Long_Var As LongSingle!Dim Sing_Var As SingleDouble#Dim Dbl_Var As Doubl

53、eVariantDim X As AnyBooleanDim X As BooleanByteDim X As Byte運算符運算符算朮運算符運算符功 能用 法乘方x = y2負數(shù)x = -2*乘法x% = 2 * 3/除法x = 10/2Mod取余數(shù)x = y Mod z+加法x = 2 + 3減法x = 6 - 4*算朮運算符遵從算朮優(yōu)先級規(guī)則+ or &可用于字符串連接運算符在表達式中的優(yōu)先級運算符在表達式中的優(yōu)先級操作數(shù)描 述運算符運算順序()括號最高乘冪負號/,*除/乘mod求余+, -, &加減與=, , ,=關(guān)系not邏輯非and邏輯與or邏輯或Xor邏輯異或Eq

54、v邏輯等關(guān)系運算符關(guān)系運算符操作數(shù)功 能用 法小于XY=小于等于X=大于等于X=Y大于XY不等于XY邏輯運算符邏輯運算符操作數(shù)功 能用 法 Not邏輯非If Not (x)And邏輯與If (x y) And (x ) Returns THIS IS IT.End SubDay 函數(shù)函數(shù)格式Day(dateexpression)功能返回一個與傳入的 dateexpression 字符串相對應的 variant 類型日期數(shù)據(jù)。Dateexpression 可以是字符串或者任何能代表日期的表達式。相關(guān)主題Month, Weekday, Hour, Second范例Sub MainDim MDate

55、, MDayMDate = #May,29,1959#MDay = Day(MDate)Print The Day listed is the & MDayEnd SubDim 語句語句格式Dim 變量名(下標)As Type,nameAs Type功能聲明變量或者數(shù)組。目前支持的數(shù)據(jù)類型有integerlong singledoublestring和 variant。范例Sub MainDim x As Long FOXBOT編程手冊 20 Dim y As IntegerDim z As singleDim a As doubleDim s As StringDim v As Va

56、riant This is the same as Dim x or Dim x as anyEnd SubDo.Loop 語句語句格式:Do While|Until條件語句塊Exit Do 語句塊LoopDo 語句塊Exit Do 語句塊Loop While|Until 條件功能:當條件為真或者滿足時重復執(zhí)行一組語句。相關(guān)主題:While, Wend范例:Sub Main ()Dim Value, Msg Declare variables.DoValue = InputBox(Enter a value from 5 to 10.)If Value = 5 And Value = 5 An

57、d Value = 10 ThenCheck range.Exit Do Exit Do.Loop. FOXBOT編程手冊 22 ElseBeep Beep make some noise.End IfLoopEnd SubExp 函數(shù)函數(shù)格式:Exp(num)功能:返回以自然對數(shù) e 為底的指數(shù)函數(shù)值,常量 e 的近似值是 2.71828。相關(guān)主題:Log范例:Sub ExpExample ()Exp(x) is e x so Exp(1) is e 1 or e.Dim Msg, ValueOfEDeclare variables.ValueOfE = Exp(1)Calculate va

58、lue of e.Msg = The value of e is & ValueOfEMsgBox MsgDisplay message.End SubFileCopy 函數(shù)函數(shù)格式:FileCopy(sourcefile, destinationfile)功能:從源文件復制文件到目的文件。參數(shù) sourcefile, destinationfile 必須是有效的字符串表達式。Sourcefile 是被拷貝的文件名, destinationfile 是拷貝的文件名。范例:Dim SourceFile, DestinationFileSourceFile = SRCFILE Define

59、 source file name.DestinationFile = DESTFILE Define target file name.FileCopy SourceFile, DestinationFile Copy source to target.FileLen 函數(shù)函數(shù)格式:FileLen(filename)功能:返回以字節(jié)表示的文件長度返回值類型是 long integer 類型。相關(guān)主題:LOF 函數(shù)范例:Sub MainDim MySizeMySize = FileLen(C:TESTFILE)Returns file length (bytes).Print MySizeEn

60、d SubFix 函數(shù)函數(shù) FOXBOT編程手冊 23 格式:Fix(數(shù)字)功能:返回一個數(shù)的整數(shù)部分。相關(guān)主題:Int范例:Sub MainDim MySizeMySize = Fix(4.345)Print MySizeEnd SubFor each Next 語句語句格式:For Each element in group語句塊Exit For語句塊Next element功能:對于在某個集合中的每一個數(shù)組元素重復執(zhí)行一組語句。如果每個循環(huán)元素都是唯一的 For each Next 可以嵌套使用。For Each.Next 語句不能使用用戶自定義類型的數(shù)組。范例:Sub Maindim z(1 to 4) as doublez(1) = 1.11z(2) = 2.22For Each v In zPrint vNext vEnd SubFor.Next 語句語句格式:For 計數(shù)器= to step 增量語句組Next 計數(shù)功能:以指定的次數(shù)循環(huán)執(zhí)行一個語句塊。范例:Sub main () FOXBOT編程手冊 24 D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論