FOXBOT编程手册_第1页
FOXBOT编程手册_第2页
FOXBOT编程手册_第3页
FOXBOT编程手册_第4页
FOXBOT编程手册_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.1文档来源为:从网络收集整理.word版本可编辑.的 FoxcamT富士康.工棠械器人FOXBOT编程手册(Ver. 2007.1 )FOXBOT的褊程手册由FOXBOT指令手册和Cypress EnableBt器言吾言参考手册黜成。FOXBOT指令手册主要用于械器人的逋勤控制指令;Cypress Enable主要用于程序的燮量命 名、流程控制、子程序等。程序褊界面是 Cypress Enablellt器,程序中的言吾句言吾法要求 J8符合 Cypress Enable的要求。FOXBOT指令手册文档来源为:从网络收集整理.word

2、版本可编辑.欢迎下载支持.文档来源为:从网络收集整理.word版本可编辑.目金条ACCEL错误 味定义书签CURPOS错误味定义书签DECEL错误味定义书签DEFIO错误 味定义书签DEFPOS错误!未定义书签DELAY 错误味定义书签DEFJNT错误 味定义书签DJST错误味定义书签DRIVE 错误味定义书签DRIVEA 错误味定义书签FIG 错误 味定义书签GOHOME 错误味定义书签HOME错误味定义书签IN 错误!未定义书签J2P错误乐定义书签MOVE错误味定义书签OUT 错误味定义书签POSRX错误味定义书签POSRY错误乐定义书签POSRZ错误味定义书签POSX错误 味定义书签PO

3、SY错误味定义书签POSZ错误乐定义书签RESETIO错误乐定义书签ROBOTSTOP绪误!未定义书签ROTATE错误!未定义书签SETIO错误味定义书签SPEED错误味定义书签WAIT错误味定义书签附金条错误乐定义书签ACCEL功能:指定内部加速度比例格式:ACCEL 加速度比例靶例:ACCEL 50CURPOS功能:取得目前的位置(type P格式)文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.格式:Position type 燮数 =CURPOS靶例:DEFPOS lp1lp1=CURPOSMSGBOX POSX(lpl) & chr(13) & chr

4、(10) &_POSY(lpl) & 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 减速度比例,茨:明:靶例:DECEL50DEFIO功能:磬明IO燮数格

5、式:DEFIO 燮量名耦 =I/O燮量I®型 , 端口地址1M:通谩燮量名磬明指定燮量作卷一彳固IO燮量IO燮量型逗才? IO燮量的Ig型。IO燮量的I®型包括:BIT (1位)、BYTE (8位)、INTEGER (16位)端口地址指定输入输出IO的K始虢相指令:IN OUT SET RESET翱列:Dim a AS IntegerDEFIO samp1= INTEGER。'磬明一彳固来自端口 15的IO字Ig型燮量。Sampl返回值是16位的来自徙0到15端口整型IN a=samp1MsgboxNotes:封于字或整型,使用MSB作卷一彳固信虢位Byte允言午数

6、字值范圉,MSB端口虢:IO台端口地址+ 7Integer允言午数字值范圉,MSB端口虢:IO台端口地址+ 15DEFPOS功能:磬明一彳固位置类巨型燮量格式:DEFPOS逡量名>聚例:DEFPOS lpx 磬明lpx作;位置I0型燮量注意:一彳固句只能磬明一彳固位置燮量型相指令poseP格式:Dim lpx as posePDELAY功能:暂停程序虞理,延日寺一彳固指定的周期日寺 ,格式:DELAY <Delay time>明:程序虑理停止直到暂停日寺到。罩位:ms聚例:DIM li1 As IntegerDelay 100延日寺 100ms(0.1s)Delay li1+

7、10延日寺li1+10msDEFJNT功能:St明一彳固型燮量格式:DEFJNT<燮量名>聚例:DEFJNT ljx磬明ljx作;一彳固型燮量DIST功能:返回雨黑占之的距蹄格式:DIST (位置型燮量1>,<位置I®型燮量2>)明:狸得位置1和位置2之的距H聚例:Dim lf1 AS SingleDEFPOS lp1DEFPOS 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(l

8、p1,lp2)'f等于lp1和lp2之的距HMSGBOX lf1DRIVE功能:轨行每彳固率由的相封勤格式:DRIVE (率由虢,相封勤量)明:移勤指定率由,移勤量用角度来表示,角度的正K表示移勤的方向聚例:DRIVE 1,30移勤1率由,30度。DRIVEA功能:轨行每彳固率由的余隹断!勤格式:DRIVEA 率由虢 ,角度明:移勤指定率由到指定角度聚例:DRIVEA 1,-30移勤1率由到-30度。FIG功能:提取一彳固形魅。格式:FIG (位置I®型燮量)明:优位置数摞提取一彳固形魅聚例:DIM lp1 AS posePli1=FIG(lp1)指定一彳固lp1的形魅系合l

9、i1GOHOME功能:移勤到HOME 句定羲的坐襟位置格式 : GOHOME明:移勤檄器人使用PTP控制优富前位置到HOME位置使用HOME 句St明一彳固原黑占位置如果没有置HOME ,轨行道彳固句符曾出琨聚例:GOHOME檄器人优富前位置移勤到原黑占位置HOME功能:磬明任意位置卷原黑占位置格式:HOME 位置I®型燮量明:磬明任意的位置I®型的坐襟作;原黑占位置聚例:Dim JJ As poseJSpeed 30JJ.J5 = 20赋值20度余JJ.J5其他JJ的成是0Home JJ3文档来源为:从网络收集整理.word 版本可编辑.文档来源为:从网络收集整理.wor

10、d版本可编辑.欢迎下载支持. a置jj作卷原黑由位置GoHome移勤到原黑占位置EndIN功能:IO燮量值赋系合指定燮量格式:IN燮量名>=<1。燮量W列:'!TITLE "EXAMPLE_IN"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(4

11、8)'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 = IO(56)'Show li1 and li2'(if only IO(56) is on, li1 = 256 meaning 0'in binary starting from port

12、 48 and li2 = 1)MsgBox "li1 = " & li1 & Chr(13) & Chr(10) _& "li2 = " & li2JP功能:型燮量醇换成位置类巨型燮量。格式:J2P<1OIM型燮量 >,<位置类目型燮量>W列:Dim lj1 as poseJDim lp1 as posePlj1.j1=0lj1.j2=0lj1.j3=0lj1.j4=0lj1.j5=0lj1.j6=0J2P lj1,lp1Msgbox Ipl.x & "'lp1.

13、y& ""lp1.z_Ipl.rx & ""lp1.ry& ""Ipl.rzMOVE功能:移勤檄器人末端操作器到指定坐襟。格式:MOVE插祷方法,到逵目襟位置碓1g形式 ,路彳空目襟位置 ,S=速度百分比明:移勤檄器人徙常前位置到指定的目襟位置。封于位置,位置类巨型P型,gHg型J型,可以使用插神方法a明P(PTP)PTP(黑占到黠):勤优一彳固黠到另一彳固黑k 檄器人移勤的路彳空依赖檄器人的姿熊,不是一修直勤路彳空可以不是一修直LCP控制,到逵目襟位置的路彳空是一修直A 0B勤路彳空是一修直檄器人手臂拢一彳固

14、勤到另一彳固勤有三槿方法碓定第一彳固勤的完成。 0:i!勤位置到逵目襟位置就算到逵。Pjf除位置到逵目襟位置附近即算到逵,且不减速而往下一位置。(P)E:褊礁器值核H黑由,H除位置到逵目襟位置,停下来,检查褊礁器的值是否在一定畤内不超出一定靶圉才算到逵。 下面的例子都是檄器人优常前位置 P1露谩P2 到逵P3 :伺服偏离隹(0)P1*. P27* P3褊礁器值梅T查逋勤(E)P1 *P2;P3PROGRAM PASS_MOVE TAKEARM MOVE P P , P(2) ,S=10 MOVE P 0 , P(3) ,S=10 END PROGRAM END_MOVE TAKEARM MOV

15、E L, 0 , P(2),S=10 MOVE L, 0 , P(3),S=10 END PROGRAM ENCODER_MOVE TAKEARM MOVE L,E, P(2),S=10 MOVE L,0, P(3),S=10 END5文档来源为:从网络收集整理.word版本可编辑.文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.OUT功能/合输出IO燮量赋值格式:OUT I/O燮量 =燮量名聚例:!TITLE "EXAMPLE_OUT"Dim li1 As Integer' Declare li1 as Integer' Declare s

16、amp1 as Type IO variable, length is 16 (integer), starting from IO(30)DEFIO samp1 = Integer, 30'assign 2A5-1 = 31 (11111 in Hex value) to li1li1 = 2A5-1' Output the li1 data from the port declared in samp1Out samp1 = li1' Delay 3 secondsDelay 3000' assign 2A5-1 = 31 (11111 in Hex val

17、ue) to li1li1 = 2A5-1' Output the li1 data from the port 38Out IO(38) = li1POSRX功能:狸得 X率由旋辅的角度格式:POSRX位置I®型燮量聚例:Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRX(lp1)指定X率由旋mlp1部分系合lf1POSRY功能:狸得 Y率由旋醇的角度格式:POSRY位置型燮量聚例:Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRY(lp1)指定Y率由旋mlp1部分系合lf1POSRZ功能:

18、狸得 Z率由旋辅的角度格式:POSRZ位置Ig型燮量明:优位置坐襟系中提出Z率由旋辅部分聚例:Dim lf1 As SingleDEFPOS lplp1=CURPOSElf1=POSRZ(lp1)指定z率由旋W ipi部分系合ifiPOSX功能:狸得X坐襟格式:POSX位置I®型燮量聚例:DIM lf1 As SingleDEFPOS lp1lf1=POSX(lp1)指定lp1的X部分系合lf1POSY功能:狸得Y坐襟格式:POSY位置I®型燮量明:优位置型或向量型坐襟值提出丫部分聚例:DIM lf1 As SingleDIM lp1 As posePlf1=POSY(lp

19、1)指定lp1的Y部分系合lf1POSZ功能:狸得Z坐襟格式:POSZ位置Ig型燮量明:优位置型燮量坐襟值提出Z部分。聚例:DIM lf1 As SingleDIM lp1 As posePlf1=POSZ(lp1)指定lp1的Z部分系合lf1RESETIO功能:置一彳固IO 口OFF格式:RESETIO 10燮量明:置通谩I0燮量襟明的端口卷OFF聚例:!titile “example_setio”takearmRESETIO IO(40)Hz置 IO40 启j OFFROBOTSTOP功能:檄器人行停止格式:ROBOTSTOP明:檄器人迤入持停止状熊,逵重源,檄器人正在操作的输出信虢。聚例

20、:PROGRAM TSR1ROBOTSTOP停止檄器人ENDROTATE功能:指定向量轨行旋事氯!勤格式:ROTATE 旋辅平面 , 角度,,向量,速度百分比1M :旋事事平面:XYH,XZH,YZH; XY ,XZ,YZ旋辅平面典XYH,XZH,YZH平行,向量是相封工具坐襟系,旋辅平面典XY,YZ,YZ平行,向量是相封工件坐襟系半彳空鹰是向量在指定平面的投影距u。注意:檄器人6率由端面典指定旋辅平行,才能重圜。范例:' Assign J(0) positionJ(0).J1 = 0J(0).J2 = 0J(0).J3 = 90J(0).J4 = 0J(0).J5 = 30J(0).

21、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 P, J(0), S=50' Rotate 360 degree on XY plan around a vector V(0) described in Tool CoordinateROTATE XYH,360,V(0),S=100' Assign J(0).J2 a new positionJ(0).J2 = 0' Move to ne

22、w J(0)MOVE P, J(0), S=508文档来源为:从网络收集整理.word 版本可编辑.文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.EndSETIO功能:置一彳固IO 口ON。格式:SET IO (IO燮量)明:置指定IO悬ON聚例!titile example_setiO'takearmSETIO (40)Hz置 IO(24)粘悬 ONSPEED功能:指定内部合成速度。格式:SPEED B速度明:勤速度是内部居制第合成最大速度的百分比(%),范凰:0.1-100最大速度是指TCP黑占的最大速度W列:SPEED 50檄器人有内部速度和外部速度。外部速度是指

23、示教器上定的速度内部速度是指用SPEED指令定的值。速度=最大速度*内部速度*外部速度例如:内部速度=70%外部速度30%速度=最大速度*0.7*0.3W列:SPEED 50WAIT功能:程序停止直到修件满足。格式:WAIT 僚件表逵明:程序被停止直到修件被满足。聚例:WAIT IO(10) = ON'程序等一直到IO(10)照! ON 注意不能在指令后直接添加注释,需要另取一行,以罩引虢(')1®程序褊U后不能以只K (only read)的方式存H。附金荥指令茨:明0ACCEL指定内部加速度比例CURPOS取得目前的位置(type P格式)DECEL指定内部减速度

24、比例DEFIO宣告IO燮数DEFJNT宣告Joint type建数DEFPOS宣告Position type燹数DELAY使程式就行延i1 一段指定的畤DIST取得取占的距离隹DRIVE就行罩事由之相封逋勤DRIVEA就行罩事由之余自封逋勤FIG取得一 type P建数之figure值GOHOME移S&至HOME指令所指定之位置(Home位置)HOME指定Home位置IN> IO埠状®料给一燮数(此资料定羲於一 IOSttft)J2P燮量樽换成位置燮量MOVE移勤至指定的位置OUT输出IO状熊资料至IO埠(此IO埠定羲於一 IO燮数内)POSRX取得一 type P燮数

25、之RX值POSRY取得一 type P燮数之RY值POSRZ取得一 type P燮数之RZ值POSX取得一 type P燮数之X值POSY取得一 type P燮数之Y值POSZ取得一 type P燮数之Z值RESETIO使一他1 IO 埠OFFROBOTSTOP使 robot 停止加 SERVO OFFROTATE封某一指定向量作旋樽逋勤SETIO使一他1 IO埠ONSPEED指定内部速度比例WAIT根St某一状况暂停程式就行10文档来源为:从网络收集整理.word版本可编辑.文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.Cypress Enable器言吾言参考手册文档来源为

26、 :从网络收集整理.word 版本可编辑.文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.文档来源为:从网络收集整理.word版本可编辑.目 金荥错误!未定义书签。CYPRESS ENABLE程序褊加范注释错误!数字错误!建量和常量名 错误!建量I®型错误!其他数aas型错误!控制错误!子程序和函数错误!ByRef & ByVal错误!文件巾俞入巾俞出错误!数黜错误!脚本言吾言概述函数和言吾句快速考言吾言参考A-Z至昔误!未定义书签。错误!未定义书签。至昔误!未定义书签。Abs 函数.ASC 函数.Atn 函数. CBool函数 CDate函数 CDbl函数.

27、Chr函数. CINT 函数. CLng函数. Close 句 Const 句Cos函数CSng 函数.CStr 函数.CVar 函数. Date函数 Day函数Dim言吾句Do.LoopI 句 End言吾句.块 .块 切珠 生日历 黜块 生日历 珀块 缶日历 切珠 生日历 切珠 切珠 缶日历 切珠 生日历 切珠 珀块 珀块 黜块 珀块未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签文档来源为:从网络收集整

28、理.word版本可编辑.欢迎下载支持.3文档来源为:从网络收集整理.word版本可编辑.EOF函数Exit言吾句Exp函数Filecopy 函数FileLen 函数Fix函数For each Next 句 ForNext 句FreeFile 函数Function 句Global 句Goto言吾句HOUR函数IFTHENElse 旬.Input #奇吾句Input函数instr函数INT函数ISARRAY 函数ISDATE 函数函数 ISEMPTY IsNull 函敷IsNumeric 函敷Kill言吾句LBound 函敷Lcase函数Left函数Len函敷Let 句Line Input #tf

29、 句lof函敷Log函敷函数MIDMinute 函数Month函数Name 句Now函数On Error 池句切珠 切珠 珀块 黜块 珀块 切珠 .块生日历 黜块生日历 珀块 珀块.珀块 缶日历 缶日历 切珠 生日历 切珠 黜块 黜块.切珠 黜块 缶日历 缶日历 切珠 珀块.切珠 珀块 珀块 生日历 生日历 缶日历 缶日历黜块未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书

30、签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签Open言吾句错误!未定义书签。Option Base言吾句错误味定义书签。Option explicit语句I昔误!未定义书签。PRINT方法错误味定义书签。Randomize 句错误!未定义书签。ReDim言吾句错误 味定义书签。Rem言吾句错误!未定义书签。Right函数第误!未定义书签。Rnd函数错误 乐定义书签。Second函数首误!未定义书签。Seek函数错误!未定义书签。Seek言吾句错误!未定义书签

31、。Select Case 句错误!未定义书签。SendKeys函数 S误!未定义书签。Sin函数错误乐定义书签。Space函数昔误!未定义书签。SQR函数错误!未定义书签。Static音吾句自误!未定义书签。Stop言吾句 错误 味定义书签。Str函数错误味定义书签。StrComp函数错误乐定义书签。String函敷错误味定义书签。Sub言吾句错误!未定义书签。TAN函敷错误味定义书签。TIME函敷错误!未定义书签。TIMER事件错误!未定义书签。TRIM , LTRIM , RTRIM 函数错误!未定义书签。TYPE言吾句错误!未定义书签。UBOUND函敷错误味定义书签。UCASE函数昔误!

32、未定义书签。VAL函数错误味定义书签。VARTYPE错误!未定义书签。Weekday 函敷错误!未定义书签。WhileWend言吾句错误 味定义书签。Write #音吾句辿误!未定义书签。Year函敷错误!未定义书签。文档来源为 :从网络收集整理.word 版本可编辑.欢迎下载支持.Cypress Enable 程序编范造部分主要描述Enable言吾言的一般元素,包括注释、言吾句、数字的不同表连形式、建量数 SB1型(包括用户定®B型)、多流程程序控制结横等。注格式:注释内容明:注释是不可就行的代礁行,是悬了便于褊程人程序而加入的。注释目前只能罩3蜀占一行,Enable符忽略出琪在撇

33、虢或者 Rem之后的任何文本。Rem和所有其他的信字以 及Enable的大部分名耦都是大小U不敏感的。范例:MsgBox Msg ' U 示信息言吾句明:在Enable里没有言吾句结束符,一行可以放多僚言吾句,通谩“:”隔H。范例:x.AddPoint(25,100) : x.AddPoint(0,75)等A(于:x.AddPoint(25,100)x.AddPoint(0,75)行符在Enable中和亍符用下划 二”表示,在新亍符前后都要有空格。范例:x.AddPoint _(25,100)数宇Cypress Enable支持三槿数字表连形式:十迤制、八迤制和十六迤制。本手册中所使用

34、的 大部分数字用十迤制表示。使用八迤制或者十六迤制需要分别在数字前加前”&O"或“&H”。 燮量和常量名建量和常量名必须以字母ID®,可以包含大H字母AZ、小H字母az、下划 "”和教字09。建量典常量名都不超谩40(0字符,也不能使用保留字(可参见本手册言吾言概述部分的 保留字表)。但是封象成H名和JB性名不受此的限制,可以使用保留字。建量IB型Variant燮!燮量明:VB VB I®似,常在Cypress Enable中引入建量畤不必在首行磬明(如果使用了 option explicit刖例外,可option explicit 明)

35、。如果使用一(01!量但没有事先曹明刖系统U式 磬明其悬Variant!®型。Variant建量也可以使用"As variant”以Dim x As Variant的形式U式地 磬明。Variant数SB(型能别存数值、字符串、日期和畤使用 Variant I®型建量畤不必 St式地优一型樽换到另外一型,数aas型樽换是自勤完成的。格式:Dim建量名As建量型范例:Sub MainDim x 'variant variablex = 10x = x + 8x = "F" & xprint x 'prints F18 En

36、d Sub一他I Variant I®型燮量可以很容易地改建其I®型,其内部表示可以使用VarType函数碓定。VarType返回一他I典K式数SB(型一致的值(可在言吾言参考 AZ aM VarType的返回值常以Variant燮量存楹Sttg畤所使用的数携8B型是翥可能聚凑的。比如,如果封Variant建量赋值一他很小的整数值,它符以integers型存 ;如果赋值的数摞包含小数部分,符以 double IS型存H。如果逋用Variant燮量迤行数值逋算,往往有必要碓定其存的是否是有效的数值, 优而 避免出H。适可由IsNumeric函哪噌Bl。燮H燮量和串聊1文档来源

37、为:从网络收集整理.word 版本可编辑.文档来源为 :从网络收集整理.word 版本可编辑.欢迎下载支持.字符串和数字用聊的结果是字符串。使用“& ”操作符可以碓保瓢谪何槿数aas型都能逋 接成功,&操作符不能封数值迤行数孥逋算,它只是曾罩地把它伸号常作字符串逋接起来。可 以使用IsEmpty函哪咻tfg Variant建量之前是否被赋谩值。其他taB®型Cypress Enable有12(0数808型,在下表只列出常用的几槿:数aas型表W型Jg型瞥明符存ft空IW大小范H型瞥明Byte1 w0 to 255Dim Bvar As ByteBoolean2fflW

38、Dim Boolvar As BooleanString$字符串畏度0 to 65,500 字符Dim Str Var As StringInterger%2字Dim Int_Var As IntegerLong&4 ?ffiDim Long_Var As LongSingle!4 ?ffiDim Sing_Var As SingleDouble#8 WDim Dbl_Var As DoubleVariant按需分配Dim X As AnyUser Defined Type每他1元素的 尺寸之和燮量范圉Cypress Enable程序可由多他I文件黜成,每他I文件可包含多他I子程序和函

39、数。不同的文件 中建量名可以重彳复使用,建量可以是局部的,也可以是全局的。燮量的馨明在Cypress Enable中H量用DIM言吾句瞥明。要瞥明一(0除variantI®型之外的燮量,必须 在建量名后跟随As 明建量I®型或者附加I®型瞥明符。例如,%代表Integer I®型。格式:Dim建量名As建量型 范例:Sub MainDim X As IntegerDim Y As DoubleDim Name$,Age%' multiple declaration on one line Dim vEnd Sub控制Cypress Enable有

40、完整的谩程控制功能,可用的控制结横有 Do循璟,While循璟,For 循璟,Select Case, If Then 和 If Then Else 另外,Cypress Enabled有一(0跳樽言吾句:GoTo。 GoTo言吾句跳樽到言吾句所指定的襟虢虑。范例:Goto label1 .label1:程序跳到以“Label1:”所摘£的部分循猿结横循猿结情是指程序重彳复制行循琪言吾句中的一行或多行代礁。DO循碟DoLoop循琪允言午以不碓定的次数重彳复耕行某(0言吾句现。DoLoop的ffiS有Do While和 Do Loop While 。格式:Do While 僚件言吾句瑰

41、.Exit Do言吾句瑰.Loop Do 言吾句瑰.Loop While 僚件Do While在迤入循碟H之前检查修件,常修件满足畤才就行循琪醴里的程序现。Do Loop While在新行言吾旬现之后梅T查修件,因此可以保IEI吾旬现至少就行一次。While循璟While Wend循碟典DoWhile循碟IS似,在新行循琪H之前梅T查循琪修件。While 僚件言吾句瑰.WendFor . Next 循璟For-Next循琪有一他循琪言十数燮量,它以碓定的次数就行循琪H。循琪言十数燮量在每次就行循琪之后增加或减少。如果未用Step指定建化幅度言十数器缺省增加1。格式:For建量=< I1始

42、值> To < 结束值> Step < 增量>言吾句瑰.NextIf和Select言吾句Then现有覃行和多行言吾法。If言吾句的僚件可以是比敕式或表连式,但它必i(可以樽化悬 True 或 False格式:If 僚Then言吾句:魄罩行羔法If 愉Then '多行言吾法言吾句瑰.End IfIf言吾句的一他I建槿是If.Then.Else言吾句。根携(的修件不同就行不同言吾句瑰畤可使用1g言吾句。遢有一(0建槿是If.Then.ElseIf.言吾句,使用言吾句有可能使代礁谩辰并且I8于理解, 此畤可以考用Select言吾旬代替。If 僚件Then言吾句瑰

43、.ElseIf 僚件 Then言吾句瑰.Else言吾句瑰.End IfSelect CaseSelect Case吾旬测IS同一他I燮量的值,根携(不同的值就行不同的言吾句瑰言吾句易于、理解和跟蹬,JSIg用!言吾句代替彳复亲隹的If.Then.ElseIf言吾句。格式:Select Case < 表连式 >Case 值 1言吾句瑰Case 值 2言吾句瑰Case 值 3言吾句瑰.Case Else言吾句瑰End Select子程序和函数 命名曾慢子程序和函数名必i(以字母Im ,可以包含大嘉字母AZ、小嘉字母az、下划 ”二和数字09b子程序和函数名不超谩40他字符,且不能使用保

44、留字(可参见本手册言吾言概述部分 的保留字表) 。子程序格式:Sub < 子程序名 >言吾句瑰End Sub函数格式:Function < 函数名 > As < I®型 >言吾句瑰<函数名 >=< 表连式>言吾句瑰End FunctionByRef & ByValByRef允其他子程序和函数改建以参数形式健入的燮量;ByVal不允 其他子程序和函数改建以参数形式健入的燮量,并且参数在它伸号的局部谩程之外不能重新赋 值。ByRef是Enable的默fg参哪唯!遮方式,不需要K式明。在健遮参数畤可以用()弓金制 迤彳T

45、ByVal用嘘。如下例:SubOne var1,var2,(var3)嗷var1,var2以ByRef方式仰谑,形参指向K参内存罩元,常 SubOne形被改建日寺, 也招改建;参数var3用()弓金制以ByVal方式傅遮,在函数内值的改建不曾影簪到函数 外建量的值。Function R( X As String, ByVal n As Integer)在本例中函数R接受雨他I参数X和n。第二他I参数n按值健遮,常改建形参的值畤,W 参的值不曾改建。下列檬例代礁中数黜建量和用户定®B型燮量按引用健遮参数。范例:Sub MainDim x(5) As IntegerDim i As In

46、teger for i = 0 to 5 x(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 = 345 for i = 0 to 5print "i: " i; "y(i): " y(i) next iy(2) = 3 * y(2)End

47、 SubEOF, FileCopy,文件输入输由Enable支持K序文件和二迤制文件I/O。逾用于文件粉冏的函数和言吾句有FileLen, Seek, Open, Close, Input, Line Input, Print 和 Write' File I/O Examples Sub MainOpen "TESTFILE" For Input As #1' Open file.Do While Not EOF(1)' Loop until end of file.Line Input #1, TextLine' Read line int

48、o 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 the test

49、 files."MsgBox MsgFor I = 1 To 3Kill "TEST" & I ' Remove data files from disk.Next IEnd SubSub Make3Files ()Dim I, FNum, FName ' Declare variables.For I = 1 To 3FNum = FreeFile ' Determine next file number. FName = "TEST" & FNumOpen FName For Output As FN

50、um ' Open file.Print #I, "This is test #" & I' Write string to file.Print #I, "Here is another " "line" I Next I Close ' Close all files.End SubCypress Enable支持一雉和多雉数黜。数黜可以使用相同的名耦代表一系列具有相同数携(Jg型的燮量,每他燮量都有唯一的索引。数黜有上下遏界。Enable悬数黜中的每他索引数携(分配内存空在使用中定羲数黜不要不必要

51、地遇房。数黜中所有的元素都有相同的数型。Enable支持的数黜建量型有:bytes, Booleans, longs, integers, singles, double, strings, variant©及用户自定IB®型。磬明固定大小数黜的方法有:全局数黜,使用Dim言吾句在谩程代礁模现之外磬明教黜;局部数黜,使用Dim言吾句在谩程内磬明数黜。Cypress Enable支持勤熊数黜。磬明数黜畤必须给出数黜上遏界,并且上遏界必须是 整数。范例:Dim ArrayName(10) As IntergerDim Sum(20) As Double创建全局数黜畤只在谩程之外

52、使用Dim言吾句。Dim Counters(12) As IntegerDim Sums(26) As Double在谩程内磬明数黜使用Static言吾句典使用Dim言吾句效果相同。Static Counters (10) As IntegerStatic Sums (22) As Double第一他磬明创建一他具有11他元素的教黜,下襟徙0到10。若要改建缺省的下遏界,可在模现磬明1M域放置一(0 Option Base言吾句。Option Base 1另一他I方法是使用To信制维:字18式指定下遏界(-3276832767的整数)。Dim Counters (1 To 13) As Int

53、egerDim Sums (100 To 126) As String在前一他1磬明中,据fl Counters的下襟索引徙1到13 ,数黜SUM的下襟索引优100到 126。注意:言午多其他的Basic版本允言午不事先磬明就可以使用数黜,Enable Basic不允音午适么 做,在使用前必明。循琪提供了一槿有效的虑理数黜的方法。例如:下例中 For循碟招教黜所有元素初始化 熏5 :Static Counters (1 To 20) As IntegerDim I As Integer For I = 1 To 20Counter ( I ) = 5Next I多雉据BCypress Enab

54、le支持多雉数黜,例如下面范例在谩程内磬明了一(0二雉数黜:Static Mat(20, 20) As Double可以明碓磬明教黜任意一雉或者雨雉的下遏界。Static Mat(1 to 10, 1 to 10) As Double可以使用For循碟有效虞理多雉数黜。在下列言吾句中,多雉数黜的元素被赋值。Dim L As Integer, J As IntegerStatic TestArray(1 To 10, 1 to 10) As Double For L = 1 to 10For J = 1 to 10TestArray(L,J) = I * 10 + JNext JNext L数黜的雉数可以多于雨雉。Enable中数黜的上遏界不能任意。Dim ArrTest(5, 3,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论