




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、foxbot 编程手册0 富士康工業機器人富士康工業機器人 foxbot編程手冊編程手冊 ( ver. 2007.1 )簡 介foxbot 的編程手冊由 foxbot 指令手冊和 cypress enable 編輯器語言參考手冊組成。foxbot 指令手冊主要用于機器人的運動控制指令;cypress enable 主要用于程序的變量命名流程控制子程序等。程序編輯界面是 cypress enable 編輯器程序中的語句語法要求應符合 cypress enable 的要求。foxbot 指令手冊指令手冊 foxbot 编程手册目 錄accel.1curpos .1decel.1defio.1def
2、pos.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附錄.10accel功能:指定內部加速度比例 格式:accel 範例:accel 50curpos功能:取得目前的位置 (type p 格式)foxbot 编程手册1 格式:position type 變數 = curpos說明:範例:defpos lp1l
3、p1=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)_fig(lp1)decel功能:指定內部減速度比例格式:decel 減速度比例說明:範例:decel 50defio功能:聲明 io 變數格式:defio 變量名稱 = i/o 變量類型, 說明:通過變量名聲明指定變量作為
4、一個 io 變量 選擇 io 變量的類型。io 變量的類型包括bit(1 位)byte(8 位)integer(16 位)端口地址指定輸入輸出 io 的開始號相關指令in out set reset範例:dim a as integerdefio samp1= integer,0聲明一個來自端口 15 的 io 字類型變量。sampl 返回值是 16 位的來自從 0 到 15 端口整型in a=samp1msgbox notes:對于字或整型,使用 msb 作為一個信號位。byte允許數字值范圍msb 端口號:開始端口地址7integer允許數字值范圍msb 端口號:開始端口地址15foxbo
5、t 编程手册2 defpos功能聲明一個位置類型變量格式defpos 變量名舉例defpos lpx 聲明 lpx 作為位置類型變量注意一個語句只能聲明一個位置變量類型相關指令 posep格式dim lpx as posepdelay功能暫停程序處理,延時一個指定的周期時間,格式delay delay time 說明程序處理停止直到暫停時間到.單位:ms舉例dim li1 as integer delay 100 延時 100ms(0.1s)delay li1+10延時 li1+10msdefjnt功能聲明一個關節類型變量格式defjnt變量名舉例defjnt ljx 聲明 ljx 作為一個關
6、節類型變量dist功能返回兩點之間的距離格式dist (位置類型變量 1,位置類型變量 2)說明獲得位置 1 和位置 2 之間的距離舉例dim lf1 as singledefpos lp1defpos lp2lp1=curposlp1.x=lp2。x+10lp1。y=lp2。y+10lp1.z=lp2.z+10lp1.rx=lp2.rx+10foxbot 编程手册3 lp1.ry=lp2.ry+10lp1.rz=lp2。r2+10lf1=dist(lp1,lp2) lf1 等于 lp1 和 lp2 之間的距離msgbox lf1drive功能:執行每個軸的相對運動格式:drive (軸號)說
7、明移動指定軸移動量用角度來表示,角度的正負表示移動的方向.舉例 drive 1,30 移動 1 軸30 度.drivea功能執行每個軸的絕對運動格式drivea 軸號角度說明移動指定軸到指定角度舉例drivea 1,30移動 1 軸到30 度。fig功能提取一個形態。格式fig(位置類型變量)說明:從位置數據提取一個形態舉例dim lp1 as posepli1=fig(lp1) 指定一個 lp1 的形態給 li1gohome功能移動到 home 語句定義的坐標位置格式: gohome說明:移動機器人使用 ptp 控制從當前位置到 home 位置使用 home 語句聲明一個原點位置如果沒有設置
8、 home執行這個語句將會出現錯誤。舉例gohome 機器人從當前位置移動到原點位置foxbot 编程手册4 home功能聲明任意位置為原點位置格式home 位置類型變量說明聲明任意的位置類型的坐標作為原點位置舉例dim jj as posejspeed 30jj.j5 = 20 賦值 20 度給 jj.j5,其他 jj 的組成是 0home jj 設置 jj 作為原點位置gohome 移動到原點位置endin功能io 變量值賦給指定變量格式in 變量名io 變量舉例!title ”example_in”dim li1 as integer declare li1 and li2 as int
9、egerdim 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 56 into an integer and assign it to li2in li2
10、 = io(56) show li1 and li2 (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功能關節類型變量轉換成位置類型變量。foxbot 编程手册5 格式j2p舉例dim lj1 as posejdim lp1 as poseplj1.j1=0lj1.j2=0lj1.j3=0lj1。j4=0lj1.j5=0lj1.j6=0j2p
11、 lj1,lp1msgbox lp1。x & “ ”lp1.y “ ”lp1.z_ lp1。rx & “ ”lp1.ry& “ ”lp1.rzmove功能移動機器人末端操作器到指定坐標。格式move插補方法,到達目標位置確認形式 ,路徑目標位置 , s=速度百分比說明移動機器人從當前位置到指定的目標位置。對于位置位置類型,關節類型可以使用。插補方法說 明p(ptp)ptp(點到點)運動從一個點到另一個點機器人移動的路徑依賴機器人的姿態不是一條直線.運動路徑可以不是一條直線lcp 控制,到達目標位置的路徑是一條直線運動路徑是一條直線機器人手臂從一個運動到另一個運動有三種方法確定第一個運動的完成。
12、0:運動位置到達目標位置就算到達。p:實際位置到達目標位置附近即算到達,且不減速而往下一位置.e:編碼器值核實點, 實際位置到達目標位置,停下來檢查編碼器的值是否在一定時間內不超出一定範圍才算到達。下面的例子都是機器人從當前位置 p1 經過 p2到達 p3program pass_movetakearm move p, p , p(2) ,s=10move p, 0 , p(3) ,s=10ab經過運動(p)p1p2p3foxbot 编程手册6 endprogram end_movetakearmmove l, 0 , p(2),s=10move l, 0 , p(3) ,s=10endpro
13、gram encoder_movetakearmmove l,e, p(2) ,s=10move l,0, p(3),s=10endout功能給輸出 io 變量賦值格式out i/o 變量=變量名舉例!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 25-1 = 31 (11111 in hex valu
14、e) to li1li1 = 25-1 output the li1 data from the port declared in samp1out samp1 = li1 delay 3 secondsdelay 3000 assign 251 = 31 (11111 in hex value) to li1li1 = 251 output the li1 data from the port 38out io(38) = li1posrx功能獲得繞 x 軸旋轉的角度格式posrx 位置類型變量舉例dim lf1 as singledefpos lplp1=curpose伺服偏離(0)p1p
15、2p3編碼器值檢查運動(e)p1p2p3foxbot 编程手册7 lf1=posrx(lp1)指定 x 軸旋轉 lp1 部分給 lf1posry功能獲得繞 y 軸旋轉的角度格式posry位置類型變量舉例dim lf1 as singledefpos lplp1=curpoself1=posry(lp1)指定 y 軸旋轉 lp1 部分給 lf1posrz功能獲得繞 z 軸旋轉的角度格式posrz說明從位置坐標系中提出繞 z 軸旋轉部分舉例dim lf1 as singledefpos lplp1=curpoself1=posrz(lp1) 指定 z 軸旋轉 lp1 部分給 lf1posx功能獲得
16、 x 坐標格式posx 舉例dim lf1 as singledefpos lp1lf1=posx(lp1) 指定 lp1 的 x 部分給 lf1posy功能獲得 y 坐標格式posy 位置類型變量說明從位置類型或向量類型坐標值提出 y 部分。舉例dim lf1 as singledim lp1 as poseplf1=posy(lp1) foxbot 编程手册8 指定 lp1 的 y 部分給 lf1posz功能獲得 z 坐標格式posz 位置類型變量說明從位置類型變量坐標值提出 z 部分。舉例dim lf1 as singledim lp1 as poseplf1=posz(lp1) 指定
17、lp1 的 z 部分給 lf1resetio功能設置一個 io 口為 off格式resetio 說明 設置通過 io 變量標明的端口為 off舉例!titile “example_setiotakearmresetio io(40) 設置 io40 為 offrobotstop功能機器人運行停止格式robotstop說明機器人進入持續停止狀態關閉馬達電源關閉機器人正在操作的輸出信號.舉例program tsr1robotstop 停止機器人 end rotate功能繞指定向量執行旋轉運動格式rotate 旋轉平面, 角度 , 向量,速度百分比說明旋轉平面xyh,xzh,yzh; xy,xz,y
18、z旋轉平面與 xyh,xzh,yzh 平行,向量是相對工具坐標系,旋轉平面與 xy,yz,yz 平行向量是相對工件坐標系半徑應是向量在指定平面的投影距離。foxbot 编程手册9 注意機器人 6 軸端面與指定旋轉平行才能畫圓。范例 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(0)move
19、 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) 設置 io(24
20、)點為 onspeed功能指定內部關節合成速度。格式speed 說明運動速度是內部關節合成最大速度的百分比()范圍:0。1-100 最大速度是指 tcp 點的最大速度舉例speed 50foxbot 编程手册10 機器人有內部速度和外部速度。外部速度是指示教器上設定的速度內部速度是指用 speed 指令設定的值.實際速度=最大速度*內部速度*外部速度例如內部速度=70外部速度 30實際速度=最大速度*0。70。3舉例speed 50wait功能程序停止直到條件滿足。格式wait 條件表達說明:程序被停止直到條件被滿足。舉例:wait io(10) = on 程序等一直到 io(10)為 on
21、注 意 不能在指令后直接添加注釋需要另取一行以單引號()開頭。程序編寫后不能以只讀(only read)的方式存儲。foxbot 编程手册11 附錄附錄指令說明頁數accel指定內部加速度比例curpos取得目前的位置 (type p 格式)decel指定內部減速度比例defio宣告 io 變數defjnt宣告 joint type 變數defpos宣告 position type 變數delay使程式執行延遲一段指定的時間dist取得兩點間的距離drive執行單軸之相對運動drivea執行單軸之絕對運動fig取得一 type p 變數之 figure 值gohome移動至 home 指令所指
22、定之位置 (home 位置)home指定 home 位置in將 io 埠狀態資料給一變數 (此資料定義於一 io 變數內)j2p關節變量轉換成位置變量move移動至指定的位置out輸出 io 狀態資料至 io 埠 (此 io 埠定義於一 io 變數內)posrx取得一 type p 變數之 rx 值posry取得一 type p 變數之 ry 值posrz取得一 type p 變數之 rz 值posx取得一 type p 變數之 x 值posy取得一 type p 變數之 y 值posz取得一 type p 變數之 z 值resetio使一個 io 埠設為 offrobotstop使 robo
23、t 停止並 servo offrotate對某一指定向量作旋轉運動setio使一個 io 埠設為 onspeed指定內部速度比例wait根據某一狀況暫停程式執行foxbot 编程手册cypress enable編輯器編輯器語言參考手冊語言參考手冊foxbot 编程手册目 錄cypress enable 程序編寫規范.0注釋.0數字.0變量和常量名.0變量類型.1其他數據類型.2控制結構.3子程序和函數.5byref & byval參數傳遞.5文件輸入輸出.6數組.7腳本語言概述.8函數和語句快速參考.8語言參考 a-z .12abs函數 .12asc函數 .12atn函數.13cbool 函數
24、.13cdate 函數.13cdbl 函數.14chr 函數 .14cint 函數.15clng函數 .15close 語句.15const 語句 .16cos函數 .17csng函數.17cstr 函數 .17cvar 函數 .18date函數.18day 函數.19dim 語句.19do.。 。loop語句.20end語句.20foxbot 编程手册1 eof 函數 .21exit語句 .21exp函數.22函數.22函數.22fix函數.22for each next語句.23for.。.next語句.23freefile函數.24function 語句.24global語句.25got
25、o 語句 .26hour函數.26if。.。then.。else語句.26input 語句.27input 函數.28instr函數.28int函數.29isarray函數 .29isdate函數.29函數 isempty.30isnull函數.30isnumeric函數.30kill語句 .31lbound函數.31lcase函數.32left函數.32len函數.33let 語句.33line input #語句.34lof 函數 .34log函數.34函數 mid.35minute函數.35month函數.36name語句.36now函數.36on error語句.36foxbot 编程
26、手册2 open語句 .37option base語句.38option explicit語句.38print方法.39randomize語句.41redim 語句.41rem語句.41right 函數.42rnd函數.43second函數.43seek 函數.44seek 語句.44select case 語句.45sendkeys函數.46sin 函數.46space函數.47sqr 函數.47static語句.48stop 語句.48str 函數.49strcomp函數 .49string 函數 .50sub 語句.50tan 函數 .51time 函數.51timer事件.51trim
27、, ltrimrtrim函數.52type 語句.52ubound函數.53ucase 函數.54val函數.54vartype.54weekday 函數.55while.。.wend 語句.55write # 語句.56year函數.56foxbot 编程手册0 cypress enable 程序編寫規范程序編寫規范這部分主要描述 enable 語言的一般元素,包括注釋語句數字的不同表達形式變量數據類型(包括用戶定義類型)多流程程序控制結構等.注釋注釋格式 注釋內容說明注釋是不可執行的代碼行是為了便于編程人員閱讀程序而加入的。注釋目前只能單獨占一行enable 將忽略出現在撇號或者 rem
28、之后的任何文本.rem 和所有其他的關鍵字以及 enable 的大部分名稱都是大小寫不敏感的。范例msgbox msg 顯示信息語句語句說明在 enable 里沒有語句結束符一行可以放多條語句通過“:”隔開。范例x.addpoint(25,100) : x。addpoint(0,75)等價于x。addpoint(25,100)x。addpoint(0,75)續行符續行符在 enable 中續行符用下划線 “_”表示在續行符”_”前后都要有空格。范例x。addpoint _ (25,100)數字數字cypress enable 支持三種數字表達形式十進制八進制和十六進制.本手冊中所使用的大部分數
29、字用十進制表示。使用八進制或者十六進制需要分別在數字前加前綴o”或”&h”。變量和常量名變量和常量名foxbot 编程手册1 變量和常量名必須以字母開頭可以包含大寫字母 az小寫字母 az下划線”_和數字 09。變量與常量名都不超過 40 個字符也不能使用保留字(可參見本手冊語言概述部分的保留字表)。但是對象成員名和屬性名不受此項規則的限制可以使用保留字。變量類型變量類型variant 變體變量變體變量說明與 vb 類似當在 cypress enable 中引入變量時不必在首行聲明(如果使用了 option explicit 則例外可參見 option explicit 說明).如果使用一個變
30、量但沒有事先聲明則系統隱式聲明其為 variant 類型。variant 變量也可以使用”as variant”以 dim x as variant 的形式顯式地聲明。variant 數據類型能夠存儲數值字符串日期和時間。使用 variant 類型變量時不必顯式地從一個類型轉換到另外一個類型數據類型轉換是自動完成的。格式dim 變量名 as 變量類型范例sub maindim x variant variablex = 10 x = x + 8x = ”f” x print x prints f18end sub一個 variant 類型變量可以很容易地改變其類型其內部表示可以使用 varty
31、pe 函數確定。vartype 返回一個與顯式數據類型一致的值(可在語言參考 az 參見 vartype 的返回值)。當以 variant 變量存儲數據時所使用的數據類型總是盡可能緊湊的。比如如果對variant 變量賦值一個很小的整數值它將以 integer 類型存儲如果賦值的數據包含小數部分將以 double 類型存儲。foxbot 编程手册2 如果運用 variant 變量進行數值運算往往有必要確定其存儲的是否是有效的數值從而避免出錯.這可由 isnumeric 函數實現。變體變量和串聯變體變量和串聯字符串和數字串聯的結果是字符串。使用”操作符可以確保無論何種數據類型都能連接成功&操作符
32、不能對數值進行數學運算它只是簡單地把它們當作字符串連接起來。可以使用 isempty 函數確認 variant 變量之前是否被賦過值。其他數據類型其他數據類型cypress enable 有 12 個數據類型在下表只列出常用的几種數據類型表數據類型表類 型類型聲明符存儲空間大小范圍類型聲明byte1 字節0 to 255dim bvar as byteboolean2 個字節dim boolvar as booleanstring字符串長度0 to 65,500 字符dim str var as stringinterger2 字節dim int_var as integerlong &4 字
33、節dim long_var as longsingle!4 字節dim sing_var as singledouble #8 字節dim dbl_var as doublevariant按需分配dim x as anyuser defined type每個元素的尺寸之和變量范圍變量范圍cypress enable 程序可由多個文件組成每個文件可包含多個子程序和函數。不同的文件中變量名可以重復使用變量可以是局部的也可以是全局的。變量的聲明變量的聲明在 cypress enable 中變量用 dim 語句聲明。要聲明一個除 variant 類型之外的變量必須在變量名后跟隨 as 說明變量類型或者
34、附加類型聲明符。例如%代表 integer 類型。foxbot 编程手册3 格式dim 變量名 as 變量類型范例sub maindim x as integerdim y as doubledim name,age multiple declaration on one line dim vend sub控制結構控制結構cypress enable 有完整的過程控制功能可用的控制結構有 do 循環while 循環for循環select case if then 和 if then else。另外cypress enable 還有一個跳轉語句goto。goto 語句跳轉到語句所指定的標號處。范
35、例goto label1 .label1:程序跳到以”label1:”所標記的部分循環結構循環結構循環結構是指程序重復執行循環語句中的一行或多行代碼.do 循環循環do.。loop 循環允許以不確定的次數重復執行某個語句塊。do。loop 的變種有do while 和 do loop while.格式do while 條件語句塊.。.exit do語句塊.。loopdo 語句塊。.loop while 條件do while 在進入循環體之前檢查條件當條件滿足時才執行循環體里的程序塊。do loop while 在執行語句塊之后檢查條件,因此可以保証語句塊至少執行一次。while 循環循環fox
36、bot 编程手册4 while wend 循環與 do while 循環類似在執行循環體之前檢查循環條件.while 條件語句塊.。wendfor 。 next 循環循環fornext 循環有一個循環計數變量它以確定的次數執行循環體.循環計數變量在每次執行循環之后增加或減少。如果未用 step 指定變化幅度計數器缺省增加 1。格式for 變量 = to step 增量語句塊.。nextif 和和 select 語句語句ifthen 塊有單行和多行語法。if 語句的條件可以是比較式或表達式但它必須可以轉化為 true 或 false。格式if 條件 then 語句塊。.單行語法if 條件 the
37、n 多行語法語句塊。.end ifif 語句的一個變種是 if.then.。else 語句。根據的條件不同執行不同語句塊時可使用該語句。還有一個變種是 if.then。.。elseif.。語句使用該語句有可能使代碼過長并且難于理解此時可以考慮用 select 語句代替。if 條件 then語句塊.。elseif 條件 then語句塊.else語句塊。 。.end ifselect case select case 語句測試同一個變量的值根據不同的值執行不同的語句塊.該語句易于閱讀理解和跟蹤應該用該語句代替復雜的 if。then.。elseif 語句。格式select case 表達式case
38、值 1語句塊foxbot 编程手册5 case 值 2語句塊case 值 3語句塊。.case else語句塊end select子程序和函數子程序和函數命名習慣命名習慣子程序和函數名必須以字母開頭可以包含大寫字母 az小寫字母 az下划線”_”和數字 09。子程序和函數名不超過 40 個字符且不能使用保留字(可參見本手冊語言概述部分的保留字表)。子程序格式sub 語句塊end sub函數格式function 函數名 as 語句塊函數名=表達式語句塊end functionbyref byval 參數傳遞參數傳遞關鍵字 byref 允許其他子程序和函數改變以參數形式傳入的變量關鍵字 byval
39、 不允許其他子程序和函數改變以參數形式傳入的變量并且參數在它們的局部過程之外不能重新賦值。byref 是 enable 的默認參數傳遞方式不需要顯式說明。在傳遞參數時可以用()強制進行 byval 傳遞。如下例subone var1,var2,(var3)參數 var1,var2 以 byref 方式傳遞形參指向實參內存單元當 subone 形參被改變時foxbot 编程手册6 實參也將改變參數 var3 用()強制以 byval 方式傳遞在函數內值的改變不會影響到函數外變量的值。function r( x as string, byval n as integer)在本例中函數 r 接受兩個
40、參數 x 和 n。第二個參數 n 按值傳遞當改變形參的值時實參的值不會改變.下列樣例代碼中數組變量和用戶定義類型變量按引用傳遞參數。范例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)j = 345for i = 0 to 5pr
41、int i: ; i; ”y(i): ”; y(i)next iy(2) = 3 y(2)end sub文件輸入輸出文件輸入輸出enable 支持順序文件和二進制文件 i/o.適用于文件訪問的函數和語句有eof, , , seek, open, close, input, line input, print 和 write examplessub mainopen testfile for input as #1 open file。do while not eof(1) loop until end of file.line input #1, textline read line into
42、 variable.print textline print to debug window.loopclose 1 close file.end subsub ()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 the test files.msgbox msgfoxbot 编程手册7 for i = 1 to 3kill test” & i
43、remove data files from disk.next iend subsub make3files ()dim i, fnum, fname declare variables。for i = 1 to 3fnum = freefile determine next .fname = ”test fnumopen fname for output as fnum open file.print i, ”this is test #” & i write string to file.print #i, here is another ; ”line”; inext iclose c
44、lose all files. end sub 數組數組cypress enable 支持一維和多維數組。數組可以使用相同的名稱代表一系列具有相同數據類型的變量每個變量都有唯一的索引.數組有上下邊界。enable 為數組中的每個索引數據分配內存空間。在使用中定義數組不要不必要地過長。數組中所有的元素都有相同的數據類型。enable 支持的數組變量類型有bytes, booleans, longs, integers, singles, double, strings, variants 以及用戶自定義類型。聲明固定大小數組的方法有全局數組使用 dim 語句在過程代碼模塊之外聲明數組局部數組使用
45、 dim 語句在過程內聲明數組。cypress enable 支持動態數組。聲明數組時必須給出數組上邊界并且上邊界必須是整數。范例dim arrayname(10) as intergerdim sum(20) as double創建全局數組時只須在過程之外使用 dim 語句。dim counters(12) as integerdim sums(26) as double foxbot 编程手册8 在過程內聲明數組使用 static 語句與使用 dim 語句效果相同。static counters (10) as integerstatic sums (22) as double第一個聲明創
46、建一個具有 11 個元素的數組下標從 0 到 10。若要改變缺省的下邊界可在模塊聲明區域放置一個 option base 語句.option base 1另一個方法是使用 to 關鍵字顯式指定下邊界(-3276832767 的整數)。dim counters (1 to 13) as integerdim sums (100 to 126) as string在前一個聲明中數組 counters 的下標索引從 1 到 13數組 sum 的下標索引從 100到 126.注意注意許多其他的 basic 版本允許不事先聲明就可以使用數組enable basic 不允許這么做在使用前必須聲明。循環提供
47、了一種有效的處理數組的方法。例如下例中 for 循環將數組所有元素初始化為 5static counters (1 to 20) as integerdim i as integerfor i = 1 to 20counter ( i ) = 5next i多維數組多維數組cypress enable 支持多維數組例如下面范例在過程內聲明了一個二維數組static mat(20, 20) as double可以明確聲明數組任意一維或者兩維的下邊界。static mat(1 to 10, 1 to 10) as double可以使用 for 循環有效處理多維數組.在下列語句中多維數組的元素被賦值
48、。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數組的維數可以多于兩維。enable 中數組的上邊界不能任意。dim arrtest(5, 3, 2)如果沒有在之前的代碼中使用語句 option base 1則該聲明創建的三維數組的大小foxbot 编程手册9 為(6,4,3)。option base 1 語句設置數組的下邊界為 1而不是默認的 0。腳本語言概述
49、腳本語言概述函數和語句快速參考函數和語句快速參考類型類型/函數函數/語句語句控制流程控制流程goto, end, onerror, stop, do.。loop, exit loop, for.。next, exit for, if.then.。else.。end if, stop, while.wend, select case轉換轉換chr, hex, oct, str, cdbl, cint, clng, csng, cstr, cvar, cdate, asc, val, date, fix, int, day, weekday, month, year, hour, minute,
50、second文件文件 i/o, open, close, print #, kill, freefile, lof, , seek, eof, write , input, line input, name, put數學數學exp, log, sqr, rnd, abs, sgn, atn, cos, sin, tan, int, fix過程過程function, end function, sub, end sub, exit, global字符串字符串let, len, instr, left, mid, asc, chr, right, lcase, ucase, instr, ltri
51、m, rtrim, trim, option compare, len, space, string, strcomp變量和常數變量和常數dim, isnull, isnumeric,vartype, const, isdate, isempty, isnull, option explicit, global, static錯誤處理錯誤處理on error, resume日期日期/時間時間date, now, time, timer數組數組foxbot 编程手册10 option base, option explicit, static, dim, global, lbound, ubou
52、nd, erase, redim 其他其他sendkeys, rem數據類型數據類型變 量類型說明用 法stringdim str_var as stringinteger%dim int_var as integerlong&dim long_var as longsingle!dim sing_var as singledoubledim dbl_var as doublevariantdim x as anybooleandim x as booleanbytedim x as byte運算符運算符算朮運算符運算符功 能用 法乘方x = y2負數x = -2乘法x% = 2 3/除法x
53、= 10/2mod取余數x = y mod z+加法x = 2 + 3減法x = 6 4*算朮運算符遵從算朮優先級規則+ or 可用于字符串連接運算符在表達式中的優先級運算符在表達式中的優先級操作數描 述運算符運算順序()括號最高乘冪負號/,除/乘mod求余+, -, &加減與=, , , ,=, =關系foxbot 编程手册11 not邏輯非and邏輯與or邏輯或xor邏輯異或eqv邏輯等關系運算符關系運算符操作數功 能用 法小于xy=y大于xy不等于xy邏輯運算符邏輯運算符操作數功 能用 法 not邏輯非if not (x)and邏輯與if (x y) and (x = 5 and val
54、ue = 10 thenexit do exit do.。loop.elsebeep beep if not in range.end ifloopend subend 語句語句格式:endfunction if | sub功能結束一個諸如子程序或函數的程序段或語句塊。相關主題: exit, function, if.then。.。else, select case, stop范例:sub main()dim var1 as stringvar1 = ”hellomsgbox calling test”test var1msgbox var1end subsub test(wvar1 as s
55、tring)wvar1 = goodbyemsgbox ”use of end statement”endfoxbot 编程手册22 end subeof 函數函數格式:eof()功能:在讀取文件時返回一個數值指示是否到達文件末尾。相關主題:open 語句范例:sub mainopen testfile for input as 1 open file.do while not eof(1) loop until end of file。mystr = input(10, #1) get ten characters。msgbox mystrloopclose #1 close file.en
56、d subexit 語句語句格式:exit do for function | sub 功能:退出循環或過程.相關主題:end 和 stop 語句范例:sub main ()dim value, msg declare variables。dovalue = inputbox(”enter a value from 5 to 10.)if value = 5 and value = 10 then check range。exit do exit do。.。loop。elsebeep beep make some noise。end ifloopend subexp 函數函數格式:exp(nu
57、m)功能:返回以自然對數 e 為底的指數函數值,常量 e 的近似值是 2。71828。相關主題:log范例:sub expexample ()exp(x) is e x so exp(1) is e 1 or e。foxbot 编程手册23 dim msg, valueofedeclare variables。valueofe = exp(1)calculate value of e。msg = ”the value of e is ” & valueofemsgbox msgdisplay message。end sub函數函數格式:(sourcefile, destinationfile)
58、功能:從源文件復制文件到目的文件。參數 sourcefile, destinationfile 必須是有效的字符串表達式.sourcefile 是被拷貝的文件名, destinationfile 是拷貝的文件名.范例:dim sourcefile, destination = ”srcfile define source 。destinationfile = destfile define target 。 sourcefile, destinationfile copy source to target.函數函數格式:()功能:返回以字節表示的文件長度返回值類型是 long integer
59、類型.相關主題:lof 函數范例:sub maindim mysizemysize = (c:testfile)returns (bytes).print mysizeend subfix 函數函數格式:fix(數字)功能:返回一個數的整數部分。相關主題:int范例:sub maindim mysizemysize = fix(4。345)print mysizeend subfor each next 語句語句格式:foxbot 编程手册24 for each element in group語句塊exit for語句塊next element功能:對于在某個集合中的每一個數組元素重復執行一
60、組語句。如果每個循環元素都是唯一的 for each next 可以嵌套使用。for each。next 語句不能使用用戶自定義類型的數組。范例:sub maindim z(1 to 4) as doublez(1) = 1。11z(2) = 2.22for each v in zprint vnext vend subfor。.。next 語句語句格式:for 計數器= 2 thengetcolor2 = 255 0 x0000ff 紅end ifif c 5 thengetcolor2 = 65280 0 x00ff00 greenend ifif c 8 thengetcolor2 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐产业版权运营与音乐版权保护法律政策分析报告
- 新能源产业绿色信贷政策执行成效2025年总结与优化建议报告
- 2023七年级数学下册 第五章 相交线与平行线5.1 相交线5.1.1 相交线说课稿 (新版)新人教版
- 2025年中国高纯钽行业市场分析及投资价值评估前景预测报告
- 2025年中国钢化玻璃潜水面镜行业市场分析及投资价值评估前景预测报告
- 第9课 体验在线应用(教案)三年级上册信息技术浙教版
- 口腔医院常规知识培训总结课件
- 新教材高中政治 9.1 矛盾是事物发展的源泉和动力说课稿1 新人教版必修4
- 16.2人体对外界信息的感知(第一课时)说课稿-2024-2025学年苏科版生物八年级上册
- 高级翻译考试题库及答案
- 2025年共青团考试题库(附答案)
- 全国数智产业发展研究报告(2024-2025)
- 2025麻精等特殊管理药品考核(医、药、护人员)试题及答案
- 2025山东淄博博山区城乡公益性岗位招聘492人笔试备考试题及答案解析
- 中职技能大赛备赛培训课件
- 新版中华民族共同体概论课件第六讲“五胡入华”与中华民族大交融(魏晋南北朝时期)-2025年版
- 六堡茶课件教学课件
- 材料作文“交流登山成功的经验”(2024年河南省中考满分作文9篇附审题指导)
- 2025年中国宽温液晶屏行业市场全景分析及前景机遇研判报告
- 小学语文高段课程标准解读
- 提高痰标本送检合格率PDCA课
评论
0/150
提交评论