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

下載本文檔

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

文檔簡(jiǎn)介

1、富士康.工It械器人FOXBOT編程手冊(cè)(Ver.2007.1)青品30rd曾介FOXBOT的褊程手冊(cè)由FOXBOT指令手冊(cè)和CypressEnableUt器言吾言參考手冊(cè)黜成。FOXBOT指令手冊(cè)主要用于械器人的逋勤控制指令;CypressEnable主要用于程序的燮量命名、流程控制、子程序等。程序褊界面是CypressEnablellt器,程序中的言吾句言吾法要求J8符合CypressEnable的要求。FOXBOT指令手冊(cè)目金條ACCEL1.CURPOS1DECEL1DEFIO1DEFPOS2DELAY2.DEFJNT2DIST2DRIVE3.DRIVEA3.FIG3GOHOME3HOM

2、E4IN4J2P5MOVE5OUT6POSRX7POSRY7POSRZ7POSX7POSY8POSZ8RESETIO8ROBOTSTOP8ROTATE9SETIO9SPEED1.0.WAIT1.0.附10.ACCEL功能:指定內(nèi)部加速度比例格式:ACCEL加速度比例靶例:ACCEL50CURPOS功能:取得目前的位置(typeP格式)格式:Positiontype燮數(shù)=CURPOS靶例:DEFPOSlp1lp1=CURPOSMSGBOXPOSX(lp1)&chr(13)&chr(10)&_POSY(lp1)&chr(13)&chr(10)&_PO

3、SZ(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功能:指定內(nèi)部減速度比例格式:DECEL減速度比例,茨:明:靶例:DECEL50DEFIO功能:St明IO燮數(shù)格式:DEFIO燮量名耦=I/O燮量I®型,端口地址1M:通謾燮量名磬明指定燮量作卷一彳固IO燮量IO燮量型逗才?IO燮量的Ig型。IO燮量

4、的I®型包括:BIT(1位)、BYTE(8位)、INTEGER(16位)端口地址指定輸入輸出IO的K始虢相指令:INOUTSETRESET翱列:DimaASIntegerDEFIOsamp1=INTEGER。'磬明一彳固來(lái)自端口15的IO字Ig型燮量。Sampl返回值是16位的來(lái)自徙0到15端口整型INa=samp1MsgboxNotes:封于字或整型,使用MSB作卷一彳固信虢位Byte允言午數(shù)字值范圉,MSB端口虢:IO臺(tái)端口地址+7Integer允言午數(shù)字值范圉,MSB端口虢:IO臺(tái)端口地址+15DEFPOS功能:磬明一彳固位置類巨型燮量格式:DEFPOS逡量名聚例:DE

5、FPOSlpxH明lpx作;位置Ig型燮量注意:一彳固句只能磬明一彳固位置燮量類巨型相指令poseP格式:DimlpxasposePDELAY功能:暫停程序慮理,延畤一彳固指定的周期畤,格式:DELAYDelaytime明:程序慮理停止直到暫停日寺到。罩位:msW列:DIMli1AsIntegerDelay100延日寺100ms(0.1s)Delayli1+10延日寺li1+10msDEFJNT功能:磬明一彳固型燮量格式:DEFJNT燮量名W列:DEFJNTljx明ljx作卷一彳固型燮量DIST功能:返回雨黑占之的距雕格式:DIST(位置型燮量1,位置I®型燮量2)明:掩得位置1和位

6、置2之的距雕W列:Dimlf1ASSingleDEFPOSlp1DEFPOSlp2lp1=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)'If等于lp1和lp2之的距HMSGBOXlf1DRIVE功能:軌行每彳固事由的相封勤格式:DRIVE(率由虢“相知遵勤量)明:移勤指定率由,移勤量用角度來(lái)表示,角度的正K表示移勤的方向聚例:DRIVE1,30移勤1率由,30度。DRIVEA功能:軌行每彳固事由的余色封勤格

7、式:DRIVEA率由虢,角度,明:移勤指定事由到指定角度W列:DRIVEA1,-30移勤1率由到-30度。FIG功能:提取一彳固形魅。格式:FIG(位置類巨型燮量)明:優(yōu)位置數(shù)摞提取一彳固形魅W列:DIMlp1ASposePli1=FIG(lp1)指定一彳固lp1的形/合li1GOHOME功能:移勤到HOME句定羲的坐襟位置格式:GOHOME明:移勤檄器人使用PTP控制優(yōu)富前位置到HOME位置使用HOME句St明一彳固原黑占位置如果沒(méi)有置HOME,軌行道彳固句符曾出聚例:GOHOME檄器人徙常前位置移勤到原黑占位置HOME功能:磬明任意位置卷原黑占位置格式:HOME位置I®型燮量明:

8、磬明任意的位置類巨型的坐襟作卷原黑由位置聚例:DimJJAsposeJSpeed30JJ.J5=20賦值20度余JJ.J5其他JJ的成是0HomeJJa置JJ作卷原黑由位置GoHome移勤到原黑占位置EndIN功能:IO燮量值賦系合指定燮量格式:IN燮量g>=<IO燮量W列:'!TITLE"EXAMPLE_IN"Dimli1AsInteger'Declareli1andli2asIntegerDimli2AsInteger'Declaresamp1asTypeIOvariable,DEFIOsamp1=Integer,48'len

9、gthis16(integer),startingfromIO(48)'GetthecurrentIOstatusdefinedinsamp1'intointegerformatandassignittoli1Inli1=samp1'GetIOstatusstartingfrom56intoaninteger'andassignittoli2Inli2=IO(56)Showli1andli2'(ifonlyIO(56)ison,li1=256meaning100000000'inbinarystartingfromport48andli2=1)M

10、sgBox"li1="&li1&Chr(13)&Chr(10)_&"li2="&li2J2P功能:型燮量醇換成位置類巨型燮量。格式:J2P<1OIM型燮量>,<位置類目型燮量>W列:Dimlj1asposeJDimlp1asposePlj1.j1=0lj1.j2=0lj1.j3=0lj1.j4=0lj1.j5=0lj1.j6=0J2Plj1,lp1Msgboxlp1.x&"'lp1.y&""lp1.z_lp1.rx&"&

11、quot;lp1.ry&""lp1.rzMOVE功能:移勤檄器人末端操作器到指定坐襟。格式:MOVE插禱方法,到逵目襟位置碓1g形式,路彳空目襟位置,S=速度百分比明:移勤檄器人徙常前位置到指定的目襟位置。封于位置,,位置類巨型型,類巨型1型,可以使用插神方法a明P(PTP)PTP(黑占到黠):勤優(yōu)一彳固黠到另一彳固黑k檄器人移勤的路彳空依賴檄器人的姿熊,不是一修直勤路彳空可以不是一修直LCP控制,到逵目襟位置的路彳空是一修直A°"B勤路彳空是一修直檄器人手臂攏一彳固勤到另一彳固勤有三槿方法碓定第一彳固勤的完成。0:i!勤位置到逵目襟位置就算到逵

12、。pjt除位置到逵目襟位置附近即算到逵,且不減速而往下一位置。E:褊礁器值核Jf黑由,Jf除位置到逵目襟位置,停下來(lái),檢查褊礁器的值是否在一定畤內(nèi)不超出一定靶圉才算到逵。下面的例子都是檄器人優(yōu)常前位置P1震謾P2到逵P3:PROGRAMPASS_MOVETAKEARMMOVEPP,P(2),S=10MOVEP0,P(3),S=10ENDPROGRAMEND_MOVETAKEARMMOVEL,0,P(2),S=10MOVEL,0,P(3),S=10ENDPROGRAMENCODER_MOVETAKEARMMOVEL,E,P(2),S=10MOVEL,0,P(3),S=10ENDP1.(P)P2P

13、3伺服偏離隹(0)褊礁器值梅T查逋勤(E)P1*P2P3OUT功能/合輸出io燮量賦值格式:OUT<I/O燮量>=<燮量名>聚例:'!TITLE"EXAMPLE_OUT"Dimli1AsInteger'Declareli1asInteger'Declaresamp1asTypeIOvariable,lengthis16(integer),startingfromIO(30)DEFIOsamp1=Integer,30'assign2A5-1=31(11111inHexvalue)toli1li1=2A5-1'Ou

14、tputtheli1datafromtheportdeclaredinsamp1Outsamp1=li1'Delay3secondsDelay3000'assign2A5-1=31(11111inHexvalue)toli1li1=2A5-1'Outputtheli1datafromtheport38OutIO(38)=li1POSRX功能:掩得X事由旋醇的角度格式:POSRX位置I®型燮量W列:Dimlf1AsSingleDEFPOSIplp1=CURPOSElf1=POSRX(lp1)指定X率由旋mlp1部分系合lf1POSRY功能:掩得Y事由旋醇的角度格

15、式:POSRY位置Ig型燮量W列:Dimlf1AsSingleDEFPOSIplp1=CURPOSElf1=POSRY(lp1)指定Y率由旋mlp1部分系合lf1POSRZ功能:貍得Z事由旋醇的角度格式:POSRZ位置Ig型燮量明:優(yōu)位置坐襟系中提出Z事由旋輔部分聚例:Dimlf1AsSingleDEFPOSlplp1=CURPOSElf1=POSRZ(lp1)指定z率由旋Wlp1部分系合lf1POSX功能:貍得X坐襟格式:POSX位置I®型燮量聚例:DIMlf1AsSingleDEFPOSlp1lf1=POSX(lp1)指定lp1的X部分系合lf1POSY功能:貍得Y坐襟格式:PO

16、SY位置I®型燮量明:優(yōu)位置類巨型或向量類巨型坐襟值提出Y部分。W列:DIMlf1AsSingleDIMlp1AsposePlf1=POSY(lp1)指定lp1的Y部分系合lf1POSZ功能:貍得Z坐襟格式:POSZ位置Ig型燮量明:優(yōu)位置類巨型燮量坐襟值提出Z部分聚例:DIMlf1AsSingleDIMlp1AsposePlf1=POSZ(lp1)指定lp1的Z部分系合lf1RESETIO功能:置一彳固IO口OFF格式RESETIO<IO燮量明:置通謾IO燮量襟明的端口卷OFFW列:!titileexample_setiO'takearmRESETIOIO(40)Hz

17、置IO40潟OFFROBOTSTOP功能:檄器人行停止格式:ROBOTSTOP明:檄器人迤入持停止?fàn)铟龋渝冈?,檄器人正在操作的輸出信虢。聚?PROGRAMTSR1ROBOTSTOP停止檄器人ENDROTATE功能:指定向量軌行旋事氯!勤格式:ROTATE旋輔平面,角度,,向量,速度百分比:旋事事平面:XYH,XZH,YZH;XY,XZ,YZ旋輔平面典XYH,XZH,YZH平行,向量是相封工具坐襟系,旋輔平面典XY,YZ,YZ平行,向量是相封工件坐襟系半彳空是向量在指定平面的投影距雕。注意:檄器人6事由端面典指定旋輔平行,才能重圄。范例:'AssignJ(0)positionJ(0)

18、.J1=0J(0).J2=0J(0).J3=90J(0).J4=0J(0).J5=30J(0).J6=0'MovetoJ(0)MOVEP,J(0),S=50'AssignJ(0).J2anewpositionJ(0).J2=60'MovetonewJ(0)MOVEP,J(0),S=50'Rotate360degreeonXYplanaroundavectorV(0)describedinToolCoordinateROTATEXYH,360,V(0),S=100'AssignJ(0).J2anewpositionJ(0).J2=0'Moveton

19、ewJ(0)MOVEP,J(0),S=50EndSETIO功能:置一彳固ioon格式:SETIO(IO燮量)明:置指定IO卷ON聚例!titileexample_setio'takearmSETIO(40)Hz置10(24)粘ONSPEED功能:指定內(nèi)部合成速度。格式:SPEEDB速度明:勤速度是內(nèi)部居制第合成最大速度的百分比(%),范凰:0.1-100最大速度是指TCP黑占的最大速度W列:SPEED50檄器人有內(nèi)部速度和外部速度。外部速度是指示教器上定的速度內(nèi)部速度是指用SPEED指令定的值。速度=最大速度*內(nèi)部速度*外部速度例如:內(nèi)部速度=70%外部速度30%速度=最大速度*0.7

20、*0.3W列:SPEED50WAIT功能:程序停止直到修件滿足。格式:WAIT僚件表逵明:程序被停止直到修件被滿足。聚例:WAITIO(10)=ON'程序等一直到IO(10)照!ON注意不能在指令后直接添加注釋,需要另取一行,以罩引虢(')1®程序褊U后不能以只H(onlyread)的方式存H附金滎指令茨:明0ACCEL指定內(nèi)部加速度比例CURPOS取得目前的位置(typeP格式)DECEL指定內(nèi)部減速度比例DEFIO宣告IO燮數(shù)DEFJNT宣告Jointtype建數(shù)DEFPOS宣告Positiontype燹數(shù)DELAY使程式就行延i1一段指定的畤DIST取得取占的距

21、離隹DRIVE就行罩事由之相封逋勤DRIVEA就行罩事由之余自封逋勤FIG取得一typeP建數(shù)之figure值GOHOME移S&至HOME指令所指定之位置(Home位置)HOME指定Home位置IN>IO埠狀®料給一燮數(shù)(此資料定羲於一IOSttft)J2P燮量樽換成位置燮量MOVE移勤至指定的位置OUT輸出IO狀熊資料至IO埠(此IO埠定羲於一IO燮數(shù)內(nèi))POSRX取得一typeP燮數(shù)之RX值POSRY取得一typeP燮數(shù)之RY值POSRZ取得一typeP燮數(shù)之RZ值POSX取得一typeP燮數(shù)之X值POSY取得一typeP燮數(shù)之Y值POSZ取得一typeP燮數(shù)之Z值

22、RESETIO使一他1IO埠鼓OFFROBOTSTOP使robot停止加SERVOOFFROTATE封某一指定向量作旋樽逋勤SETIO使一他1IO埠ONSPEED指定內(nèi)部速度比例WAIT根St某一狀況暫停程式就行CypressEnable器言吾言參考手冊(cè)目金滎CYPRESSENABLE程序OO范0.注釋0.數(shù)字0建量和常量名0.建量型1.其他數(shù)aas型2.控制結(jié)橫3.子程序和函數(shù)5.ByRef&ByVal5.文件輸入輸出6.數(shù)黜7.腳本I®言概述8.函數(shù)和句快速考8.言參考A-Z12ABS函數(shù)12.ASC函數(shù)12.ATN函數(shù)13.CBOOL函數(shù)1.3CDATE函數(shù)1.3CDB

23、L函數(shù)1.4CHR函數(shù)14.CINT函數(shù)1.5CLNG函數(shù).15.Close旬1.5Const旬.16Cos函數(shù)17.CSng函數(shù)1.7.CStr函數(shù)17.CVar函數(shù)18Date函數(shù)18.Day函數(shù)19Dim語(yǔ)句19DO.LOOPIg旬20End句20.若品EOF函數(shù)21.Exit言吾句21.Exp函數(shù)22FileCopy函數(shù)22FileLen函數(shù)22.Fix函數(shù)22.ForeachNextI句23For.Next!&旬23FreeFile函數(shù)24Function句24Global句25GOTO言吾句26.HOUR函數(shù)26.If.Then.Else句26Input#奇吾句27.Inp

24、ut函數(shù)28InStr函數(shù)28Int函數(shù)29.IsArray函數(shù)29IsDate函數(shù)29.函數(shù)IsEmpty30IsNull函數(shù)30IsNumeric函數(shù)30Kill言吾句31.LBound函數(shù)31.Lcase函數(shù)32Left函數(shù)32Len函數(shù)33Let言吾句.33LineInput#!&旬34LOF函數(shù)34.Log函數(shù).34函數(shù)MID.35Minute函數(shù)35Month函數(shù)36Name言吾句36Now函數(shù)36OnError旬36若品Open言吾句37OptionBase句38Optionexplicit旬38Print方法.39Randomize旬41.ReDim言吾句41Rem4句

25、41.Right函數(shù)42Rnd函數(shù).43Second函數(shù)43Seek函數(shù)44Seek句44SelectCase句45SendKeys函數(shù)46Sin函數(shù).46Space函數(shù)47SQR函數(shù)47Static句48Stop句48.Str函數(shù).49StrComp函數(shù).49String函數(shù).5.0Sub言吾句5QTan函數(shù).51.Time函數(shù)51.Timer事件51.Trim,Ltrim,Rtrim函數(shù)52Type言吾句52Ubound函數(shù)53UCase函數(shù)54Val函數(shù)54.VarType54Weekday函數(shù)55While.Wend滯句55Write#言吾句56Year函數(shù)56CypressEnabl

26、e程序編范造部分主要描述Enable言吾言的一般元素,包括注釋、言吾句、數(shù)字的不同表連形式、建量數(shù)SB1型(包括用戶定®B型)、多流程程序控制結(jié)橫等。注格式:注釋內(nèi)容明:注釋是不可就行的代礁行,是懸了便于褊程人程序而加入的。注釋目前只能罩3蜀占一行,Enable符忽略出琪在撇虢或者Rem之后的任何文本。Rem和所有其他的信字以及Enable的大部分名耦都是大小U不敏感的。范例:MsgBoxMsg'U示信息言吾句茨:明:在Enable里沒(méi)有言吾句結(jié)束符,一行可以放多僚言吾句,通謾“:”隔H。范例:x.AddPoint(25,100):x.AddPoint(0,75)等于:x.A

27、ddPoint(25,100)x.AddPoint(0,75)行符在Enable中和亍符用下劃二”表示,在新亍符前后都要有空格。范例:x.AddPoint_(25,100)一數(shù)宇CypressEnable支持三槿數(shù)字表連形式:十迤制、八迤制和十六迤制。本手冊(cè)中所使用的大部分?jǐn)?shù)字用十迤制表示。使用八迤制或者十六迤制需要分別在數(shù)字前加前”&O"或“&H”。建量和常量名-若品-建量和常量名必須以字母ID®,可以包含大H字母AZ、小H字母az、下劃”和教字09。建量典常量名都不超謾40(0字符,也不能使用保留字(可參見(jiàn)本手冊(cè)言吾言概述部分的保留字表)。但是封象成H名

28、和JB性名不受此的限制,可以使用保留字。Variant燮!燮量茨;明:VBVBI®似,常在CypressEnable中引入建量畤不必在首行瞥明(如果使用了optionexplicit刖例外,可optionexplicit茨;明)。如果使用一(01!量但沒(méi)有事先瞥明刖系統(tǒng)U式瞥明其懸Variant!®型。Variant建量也可以使用"Asvariant”以DimxAsVariant的形式U式地瞥明。Variant數(shù)SB(型能黃J存楹f數(shù)值、字符串、日期和畤IW。使用VariantI®型建量畤不必St式地優(yōu)一型樽換到另外一型,數(shù)aas型樽換是自勤完成的。格式

29、:Dim建量名As建量型范例:SubMainDimx'variantvariablex=10x=x+8x="F"&xprintx'printsF18EndSub一他IVariantIS型建量可以很容易地改H其IS型,其內(nèi)部表示可以使用VarType函哪咻t定。VarType返回一他I典K式數(shù)SB(型一致的值(可在言吾言參考AZaMVarType的返回值常以Variant燮量存楹Sttg畤所使用的數(shù)攜8B型是翥可能聚湊的。比如,如果封Variant建量賦值一他很小的整數(shù)值,它符以integers型存楹f;如果賦值的數(shù)摞包含小數(shù)部分,符以doubleIS

30、型存儲(chǔ)。若品僦"-如果逋用Variant燮量迤行數(shù)值逋算,往往有必要碓定其存的是否是有效的數(shù)值,優(yōu)而避免出H。適可由IsNumeric函哪噌RI。燮H燮量和串聊字符串和數(shù)字用聊的結(jié)果是字符串。使用“&”操作符可以碓保瓢謫何槿數(shù)aas型都能逋接成功,&操作符不能封數(shù)值迤行數(shù)孥逋算,它只是曾罩地把它伸號(hào)常作字符串逋接起來(lái)??梢允褂肐sEmpty函哪咻tfgVariant建量之前是否被賦謾值。其他taB®型CypressEnable有12(0數(shù)808型,在下表只列出常用的幾槿:數(shù)aas型表W型Jg型瞥明符存ft空IW大小范伸型瞥明Byte1w0to255DimBv

31、arAsByteBoolean2fflWDimBoolvarAsBooleanString$字符串畏度0to65,500字符DimStrVarAsStringInterger%2字DimInt_VarAsIntegerLong&4字DimLong_VarAsLongSingle!4字DimSing_VarAsSingleDouble#8WDimDbl_VarAsDoubleVariant按需分配DimXAsAnyUserDefinedType每他1元素的尺寸之和燮量范圉CypressEnable程序可由多他I文件黜成,每他I文件可包含多他I子程序和函數(shù)。不同的文件中建量名可以重彳復(fù)使用

32、,建量可以是局部的,也可以是全局的。燮量的馨明在CypressEnable中H量用DIM言吾句瞥明。要瞥明一(0除variantI®型之外的燮量,必須在建量名后跟隨As茨:明建量I®型或者附加I®型瞥明符。例如,%代表IntegerI®型。若品僦"-格式:Dim建量名As建量型范例:SubMainDimXAsIntegerDimYAsDoubleDimName$,Age%'multipledeclarationononelineDimvEndSub控制CypressEnable有完整的謾程控制功能,可用的控制結(jié)橫有Do循St,While

33、循St,For循璟,SelectCase,IfThen和IfThenElse另外,CypressEnabled有一(0跳樽言吾句:GoTo。GoTo言吾句跳樽到言吾句所指定的襟虢慮。范例:Gotolabel1.label1:程序跳到以“Label1:”所摘E的部分循循猿結(jié)情是指程序重彳復(fù)制行循琪言吾句中的一行或多行代礁。DO循碟DoLoop循琪允言午以不碓定的次數(shù)重彳復(fù)耕行某(0言吾句現(xiàn)。DoLoop的ffiS有DoWhile和DoLoopWhile。格式:DoWhile僚件言吾句境.ExitDo言吾句境.LoopDo言吾句境.LoopWhile僚件DoWhile在迤入循碟H之前檢查修件,常修

34、件滿足畤才就行循琪醴里的程序現(xiàn)。DoLoopWhile在新行言吾句瑰之后梅T查修件,因此可以保IEI吾旬瑰至少就行一次。While循碟WhileWend循碟典DoWhile循碟IS似,在新行循琪H之前梅T查循琪修件。While僚件言吾句境.WendFor.Next循璟For-Next循琪有一他循琪言十?dāng)?shù)燮量,它以碓定的次數(shù)就行循琪H。循琪言十?dāng)?shù)燮量在每次就行循琪之后增加或減少。如果未用Step指定建化幅度言十?dāng)?shù)器缺省增加1。格式:For建量=<I1始值>To<結(jié)束值>Step<增量>言吾句境.NextIf和Select言吾句Then:!有K行和多行言吾法。I

35、f言吾句的僚件可以是比敕式或表連式,但它必i(可以樽化懸True或False格式:If僚Then言吾句境.K行羔法If僚Then'多行言吾法言吾句境.EndIfIf言吾句的一他I建槿是If.Then.Else言吾句。根攜(的修件不同就行不同言吾句瑰畤可使用1g言吾句。遢有一(0建槿是If.Then.ElseIf.言吾句,使用言吾句有可能使代礁謾辰并且I8于理解,此畤可以考用Select言吾句代替。If僚件Then言吾句境.ElseIf僚件Then言吾句境.Else言吾句境.EndIfSelectCaseSelectCase吾句測(cè)IS同一他I燮量的值,根攜(不同的值就行不同的言吾句瑰言吾

36、句易于、理解和跟蹬,JSIg用!言吾句代替彳復(fù)親隹的If.Then.ElseIf言吾句。格式:SelectCase<表連式>Case值1言吾句現(xiàn)Case值2言吾句現(xiàn)Case值3言吾句現(xiàn).CaseElse言吾句現(xiàn)EndSelect子程序和函數(shù)命名曾慢子程序和函數(shù)名必i(以字母Im,可以包含大嘉字母AZ、小嘉字母az、下劃”和數(shù)字09b子程序和函數(shù)名不超謾40他字符,且不能使用保留字(可參見(jiàn)本手冊(cè)言吾言概述部分的保留字表)。子程序格式:Sub<子程序名>言吾句現(xiàn)EndSub函數(shù)格式:Function<函數(shù)名>As<I®型>言吾句現(xiàn)<函

37、數(shù)名>=<表連式>言吾句現(xiàn)EndFunctionByRef&ByValByRef允其他子程序和函數(shù)改建以參數(shù)形式伸入的燮量;ByVal不允其他子程序和函數(shù)改建以參數(shù)形式伸入的建量,并且參數(shù)在它伸號(hào)的局部謾程之外不能重新賦值。ByRef是Enable的默fg參哪唯!遮方式,不需要K式茨:明。在傅遮參數(shù)畤可以用()弓金制迤彳TByVal伸噓。如下例:SubOnevar1,var2,(var3)嗷var1,var2以ByRef方式俘謔,形參指向K參內(nèi)存罩元,常SubOne形被改H畤,也招改建;參數(shù)var3用()弓金制以ByVal方式停遮,在函數(shù)內(nèi)值的改建不曾影簪到函數(shù)外建量

38、的值。FunctionR(XAsString,ByValnAsInteger)在本例中函數(shù)R接受雨他I參數(shù)X和n。第二他I參數(shù)n按值停遮,常改建形參的值畤,W參的值不曾改建。下列檬例代礁中數(shù)黜建量和用戶定®B型燮量按引用健遮參數(shù)。范例:SubMainDimx(5)AsIntegerDimiAsIntegerfori=0to5x(i)=inextiPrintiJoe(i),x'()弓金制i迤行值停遮print"shouldbe6:"x(2),iEndSubSubJoe(ByRefjAsInteger,ByRefy()AsInteger)print"

39、Joe:"j,y(2)j=345fori=0to5print"i:"i;"y(i):"y(i)nextiy(2)=3*y(2)EndSub文件輸入翰由Enable支持JK序文件和二迤制文件I/O。逾用于文件前曲的函數(shù)和言吾句有:EOF,FileCopy,FileLen,Seek,Open,Close,Input,LineInput,Print和Write'FileI/OExamplesSubMainOpen"TESTFILE"ForInputAs#1'Openfile.DoWhileNotEOF(1)'

40、;Loopuntilendoffile.LineInput#1,TextLine'Readlineintovariable.PrintTextLine'PrinttoDebugwindow.LoopClose#1'Closefile.EndSubSubFileIO_Example()DimMsg'Declarevariable.CallMake3Files()'Createdatafiles.Msg="Severaltestfileshavebeencreatedonyourdisk."Msg=Msg&"Choose

41、OKtoremovethetestfiles."MsgBoxMsgForI=1To3Kill"TEST"&I'Removedatafilesfromdisk.NextIEndSubSubMake3Files()DimI,FNum,FName'Declarevariables.ForI=1To3FNum=FreeFile'Determinenextfilenumber.FName="TEST"&FNumOpenFNameForOutputAsFNum'Openfile.Print#I,"T

42、hisistest#"&I'Writestringtofile.Print#I,"Hereisanother""line"INextIClose'Closeallfiles.EndSubSeveraltestfileshavebeencreatedonyourdisk.ChooOKtoremovethetestfiles.CypressEnable支持一雉和多雉數(shù)黜。數(shù)黜可以使用相同的名耦代表一系列具有相同數(shù)攜(Jg型的燮量,每他燮量都有唯一的索引。數(shù)黜有上下遏界。Enable懸數(shù)黜中的每(0索引數(shù)攜(分配內(nèi)存空在使用中

43、定羲數(shù)黜不要不必要地遇房。數(shù)黜中所有的元素都有相同的數(shù)型。Enable支持的數(shù)黜建量型有:bytes,Booleans,longs,integers,singles,double,strings,variant©及用戶自定IB®型。瞥明固定大小數(shù)黜的方法有:全局教黜,使用Dim言吾句在謾程代礁?,F(xiàn)之外瞥明教黜;局部數(shù)黜,使用Dim言吾句在謾程內(nèi)瞥明數(shù)黜。CypressEnable支持勤熊數(shù)黜。瞥明數(shù)黜畤必須給出數(shù)黜上遏界,并且上遏界必須是整數(shù)。范例:DimArrayName(10)AsIntergerDimSum(20)AsDouble創(chuàng)建全局?jǐn)?shù)黜畤只在謾程之外使用Dim言

44、吾句。DimCounters(12)AsIntegerDimSums(26)AsDouble在謾程內(nèi)瞥明數(shù)黜使用Static言吾句典使用Dim言吾句效果相同。StaticCounters(10)AsIntegerStaticSums(22)AsDouble第一他瞥明創(chuàng)建一他具有11他元素的教黜,下襟徙0到10。若要改建缺省的下遏界,可在?,F(xiàn)瞥明1M域放置一(0OptionBase言吾句。OptionBase1另一他I方法是使用To信制字18式指定下遏界(-3276832767的整數(shù))。DimCounters(1To13)AsIntegerDimSums(100To126)AsString在前一

45、他91明中,據(jù)fiCounters的下襟索引徙1到13,瞧fiSUM的下襟索引徙10011126。注意:言午多其他的Basic版本允言午不事先瞥明就可以使用數(shù)黜,EnableBasic不允音午適么做,在使用前必明。循琪提供了一槿有效的慮理數(shù)黜的方法。例如:下例中For循碟招教黜所有元素初始化熏5:StaticCounters(1To20)AsIntegerDimIAsIntegerForI=1To20Counter(I)=5NextI多雉據(jù)fiCypressEnable支持多雉數(shù)黜,例如下面范例在謾程內(nèi)瞥明了一(0二雉數(shù)黜:StaticMat(20,20)AsDouble可以明碓瞥明教黜任意一

46、雉或者雨雉的下遏界。StaticMat(1to10,1to10)AsDouble可以使用For循碟有效虞理多雉數(shù)黜。在下列言吾句中,多雉數(shù)黜的元素被賦值。DimLAsInteger,JAsIntegerStaticTestArray(1To10,1to10)AsDoubleForL=1to10ForJ=1to10TestArray(L,J)=I*10+JNextJNextL數(shù)黜的雉數(shù)可以多于雨雉。Enable中數(shù)黜的上遏界不能任意。DimArrTest(5,3,2)如果沒(méi)有在之前的代礁中使用言吾句OptionBase1,刖瞥明創(chuàng)建的三雉數(shù)黜的大小懸(6,4,3)。OptionBase1言吾句段

47、置數(shù)黜的下遏界懸1,而不是默熬的0。腳本言吾言概述函數(shù)和言吾句快速II考型/函數(shù)信吾句控制流程Goto,End,OnError,Stop,DoLoop,ExitLoop,ForNext,ExitFor,If.Then.ElseEndIf,Stop,WhileWend,SelectCase崛奐Chr,Hex,Oct,Str,CDbl,CInt,Clng,CSng,CStr,CVar,CDate,Asc,Val,Date,Fix,Int,Day,Weekday,Month,Year,Hour,Minute,Second文件I/OFileCopy,Open,Close,Print#,Kill,Fre

48、eFile,LOF,FileLen,Seek,EOF,Write#,Input,LineInput,Name,Put數(shù)季Exp,Log,Sqr,Rnd,Abs,Sgn,Atn,Cos,Sin,Tan,Int,Fix遇程Function,EndFunction,Sub,EndSub,Exit,Global字符串Let,Len,InStr,Left,Mid,Asc,Chr,Right,LCase,Ucase,InStr,LTrim,RTrim,Trim,OptionCompare,Len,Space,String,StrCompfl量和常數(shù)Dim,IsNull,IsNumeric,VarType,

49、Const,IsDate,IsEmpty,IsNull,OptionExplicit,Global,Staticmsia理OnError,Resume日期/畤Date,Now,Time,Timer教黜OptionBase,OptionExplicit,Static,Dim,Global,Lbound,Ubound,Erase,ReDim其他SendKeys,Rem數(shù)#»型n量IB型茨:明用法String$DimStrVarAsStringInteger%DimIntVarAsIntegerLong&DimLong_VarAsLongSingle!DimSing_VarAsSi

50、ngleDouble#DimDbl_VarAsDoubleVariantDimXAsAnyBooleanDimXAsBooleanByteDimXAsByte建算符算兒:逋算符逋算符功能用法A乘力x=yA2x=-2*乘法x%=2*3/除法x=10/2Mod取余數(shù)x=yModz+加法x=2+3減法x=6-4*算兒:逋算符遵優(yōu)算兒:便先級(jí)規(guī)刖'+'or'&'可用于字符串逋接建算符在表逵式中的侵先級(jí)操作教描述逋算符逋算J嗔序()括虢最高A乘幕一/,*除/乘mod求余+,-,&加減典二,<>,<,>,<=,>=系not

51、非andiSW典or:®t或Xor暹輯11或EqviiW等系建算符果作教功能用法<小于X<Y<=小于等于X<=Y=等于X=Y>=大于等于X>=Y>二X>Y<>不等于X<>Y果作教功能用法Not非IfNot(x)AndiSW典If(x>y)And(x<Z)Ort或if(x=y)Or(x=z)函數(shù),言吾句,保留字一快速參考Abs,Access,Alias,And,AnyApp,AppActivate,Asc,Atn,AsBase,Beep,Begin,Binary,ByValCall,Case,ChDir

52、,錯(cuò)誤!未找到引用源。ChDrive,Choose,Chr,Const,Cos,CurDir,CDbl,CInt,CLng,CSng,CStr,CVar,CDate,Close,CreateObjectDate,Day,Declare,Dim,Dir,DoLoop,Dialog,DDEInitiateDDEExecute,DateSerial,DateValue,DoubleElse,ElseIf,End,EndIf,EOF,Eqv,Erase,Err,ErrorExit,Exp,ExplicitFalse,FileCopy,FileLen,Fix,For,ForNext,Format,Fun

53、ctionGet,GetAttr,GoTo,Global,GetObjectHex,HourIfThenElseEndIf,Imp,Input,InputBox,InStr,Int,Integer,Is,IsEmpty,IsNull,IsNumeric,IsDateKillLBound,LCase,Left,Len,Let,LOF,Log,Long,Loop,LTrimLineInputMid,Minute,MkDir,Mod,Month,MsgBoxName,Next,Not,NowOct,On,Open,OKButton,Object,Option,Optional,Or,OnErrorP

54、rint,Print#,Private,PutRandomize,Rem,ReDim,RmDir,Rnd,RtrimSeek,SendKeys,Set,SetAttr,Second,Select,Shell,Sin,Sqr,Stop,Str,Sng,Single,Space,Static,Step,Stop,Str,String,Sub,StringCompTan,Text,TextBox,Time,Timer,TimeSerial,TimeVale,Then,Type,Trim,True,To,TypeUBound,UCase,Ucase,UntilVal,Variant,VarTypeWr

55、ite#,While,Weekday,Wend,WithXorYear言吾言參考A-ZAbs函數(shù)格式:Abs(數(shù)值)功能:返回?cái)?shù)值的值。茨:明:返回值的數(shù)aas型奧參數(shù)相同,如果參數(shù)是字符串I®型且能樽換成數(shù)字I®型,刖返回值是Doubled型。如果數(shù)字參嗷表連式結(jié)果是NULL,UAbs返回Null。范例:SubMainDimMsg,X,YX=InputBox("EnteraNumber:")Y=Abs(X)Msg="Thenumberyouenteredis"&XMsg=Msg+".TheAbsolutevalueof"&X&"is"&YMsgBoxMsg'DisplayMessage.EndSubAsc函數(shù)格式:Asc(str)功能:返回str字符串中第一他

溫馨提示

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

評(píng)論

0/150

提交評(píng)論