版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
RAPIDRobotWare3HAC065039-RAPIDRAPID3HAC065039-010RAPIDRAPID3HAC065039-010手冊概 如何查閱本手 設(shè)計目標(biāo).......................................................................................................... 設(shè)計目標(biāo).......................................................................................................... 語言摘要.......................................................................................................... 語法表示法....................................................................................................... 錯誤分類.......................................................................................................... 字符集.............................................................................................................詞法單元..........................................................................................................標(biāo)識符.............................................................................................................保留字.............................................................................................................數(shù)字文字..........................................................................................................布爾文字..........................................................................................................字符串文字.......................................................................................................分隔符.............................................................................................................占位符.............................................................................................................備注................................................................................................................數(shù)據(jù)類型..........................................................................................................數(shù)據(jù)類型的范圍規(guī)則...........................................................................................atomic數(shù)據(jù)類型.................................................................................................record數(shù)據(jù)類型.................................................................................................alias數(shù)據(jù)類型....................................................................................................數(shù)據(jù)類型的值類型..............................................................................................Equal型...........................................................................................................數(shù)據(jù)聲明..........................................................................................................預(yù)定義數(shù)據(jù)對象.................................................................................................數(shù)據(jù)對象的范圍規(guī)則...........................................................................................存儲類別..........................................................................................................變量聲明..........................................................................................................永久數(shù)據(jù)對象聲明..............................................................................................常量聲明.......................................................................................................... 表達(dá)式介紹.......................................................................................................常量表達(dá)式.......................................................................................................文字表達(dá)式.......................................................................................................條件表達(dá)式.......................................................................................................文字................................................................................................................變量................................................................................................................永久數(shù)據(jù)對象....................................................................................................常量................................................................................................................參數(shù)................................................................................................................聚合體.............................................................................................................函數(shù)調(diào)用..........................................................................................................操作員............................................................................................................. 語句介紹..........................................................................................................語句的終止.......................................................................................................語句表.............................................................................................................標(biāo)簽語句..........................................................................................................賦值語句..........................................................................................................過程調(diào)用..........................................................................................................Goto語句.........................................................................................................Break語句.......................................................................................................Continue語句...................................................................................................Return語句.......................................................................................................Raise語句........................................................................................................Exit語句...........................................................................................................Retry語句.........................................................................................................Trynext語句......................................................................................................Connect語句.....................................................................................................IF語句............................................................................................................For語句...........................................................................................................While語句........................................................................................................Test語句..........................................................................................................程序聲明介紹....................................................................................................參數(shù)聲明..........................................................................................................程序的范圍規(guī)則.................................................................................................無返回值程序聲明..............................................................................................有返回值程序聲明..............................................................................................軟中斷程序聲明.................................................................................................步退執(zhí)行介紹....................................................................................................回退處理器.......................................................................................................錯誤處理器.......................................................................................................關(guān)于長跳轉(zhuǎn)的錯誤恢復(fù)........................................................................................
Nostepin程 異步引起的錯 指令 運(yùn)動錯誤處理....................................................................................................任務(wù)模塊介紹....................................................................................................
模塊聲 系統(tǒng)程序模 Nostepin模 RAPID
索 RAPIDRAPID3HAC065039-010RAPID3HAC065039-010
RobotWare7。3HAC065036-RAPID3HAC065038--RAPID3HAC065040-3HAC065041-RobotWare7.0RobotWare7.1添加了UTF-8(UNICODE)符號支持,參見第21頁的字符集對第21頁的字符集RobotWare7.6pos第64頁的乘運(yùn)算符RobotWare7.8pos第64頁的乘運(yùn)算符RobotWare7.10對象的存儲分配。RobotWare7.12更新了第115頁的運(yùn)動錯誤處理RobotWare7.13RobotWare7.15新增了有關(guān)MultiMove
FlexPendant以標(biāo)準(zhǔn)格式打印出來的數(shù)據(jù)聲明和程序聲明,如VARnumreg1(即使翻譯本手冊時也一樣不譯)
TPWriteString[\Num]|[\Bool]|[\Pos]|[\Orient][String':=']<expression(IN)ofstring>['\'Num':='<expression(IN)ofnum>]|['\'Bool':='<expression(IN)ofbool>]|['\'Pos':='<expression(IN)ofpos>]|['\'Orient':='<expression(IN)oforient>]['\'Dnum':='<expression(IN)ofdnum]';'參數(shù)(斜體)用特殊語法EBNFRAPIDRAPID3HAC065039-010GOTO<identifier><identifier>::=<ident>|<ident>::=<letter>{<letter>|<digit>|1簡介1簡介1簡介1簡介RAPIDRAPID3HAC065039-010RAPID3HAC065039-010RAPID
此外,RAPID
RAPID應(yīng)用被稱作一項聲明。任務(wù)緩沖區(qū)用于存放系統(tǒng)當(dāng)前在用(在執(zhí)行、在開發(fā))的模塊。RAPID語言區(qū)分了任務(wù)模塊和系統(tǒng)程序模塊。一個任務(wù)模塊被視作任務(wù)/應(yīng)用的一部載到任務(wù)緩沖區(qū),旨在(預(yù))定義常用的系統(tǒng)特定數(shù)據(jù)對象(數(shù)據(jù)等)、接口(打印機(jī)、日志文件..)等。
用戶(定義)程序利用RAPIDRAPID理器和/或錯誤處理器和/或撤銷處理器。
內(nèi)置程序(如有返回值運(yùn)算程序一樣)屬于RAPID
數(shù)據(jù)對象可呈結(jié)構(gòu)化(記錄),也可呈維度化(數(shù)組、矩陣等)1.2
RAPID語言支持對語句進(jìn)行逐步步退執(zhí)行。在RAPID程序開發(fā)期間,步退執(zhí)行對調(diào)試、測試和調(diào)節(jié)十分有用。RAPID無返回值程序可能包含回退處理器(語句表),退處理器定義了無返回值程序的步退執(zhí)行“行為”。
任何RAPID對象(值、表達(dá)式、變量、有返回值程序等)都具備一個類型可為內(nèi)置型,或為安裝型(對照安裝程序),還可為用戶定義型(在RAPID中定義)。內(nèi)置型數(shù)據(jù)為RAPID定義型數(shù)據(jù)集可能不同。值型對象代表一些形式的值,比如,3.55或JohnSmith)
1.2
用戶定義型數(shù)據(jù)能更輕松地自定義應(yīng)用程序,也能夠編寫更易讀取的RAPID
占位符概念支持對RAPID可利用占位符來臨時表示RAPID程序的“未定義”部分。含占位符的程序在語法上是正確的,可加載到任務(wù)緩沖區(qū)(也可從任務(wù)緩沖區(qū)保存)。如果RAPID未引起語義錯誤(參見第19頁的錯誤分類),占位符會引起執(zhí)行錯誤(參見第19頁的錯誤分類)。1簡介1簡介1簡介1簡介RAPIDRAPID3HAC065039-010RAPIDRAPID3HAC065039-010
RAPID語言的上下文無關(guān)語法利用巴科斯范式的變體EBNF粗體大寫字表示保留字和占位符,比如,WHILE括入尖角括號的字符串表示語法類、非終止符,比如<constantexpression>符號::=系指被定義為,比如,<dim<constant<returnstatement>::=RETURN[<expression>]豎線將替代項分隔開,比如,OR|<statementlist>::={<statement>圓括號用于將各概念分層次地組到一起,比如,(OR|XOR)<logical
b:=FORi5TO10VARnuma:=致命(系統(tǒng)資源)程序太復(fù)雜(嵌套在任務(wù)執(zhí)行期間出現(xiàn)(并檢出)2詞匯元素2詞匯元素2詞匯元素2詞匯元素RAPIDRAPID3HAC065039-010RAPID3HAC065039-010RAPID語言采用標(biāo)準(zhǔn)ISO8859-1(Latin-1)字符集構(gòu)建。此外,識別換行符、tab及換頁控制字符。模塊、變量、文件夾的名稱等各種項目都必須使用ISO8859-1字符集的僅以下位置支持UTF-8RAPIDRAPID支持以下ISO8859-1<character>::=--UTF-8symbols-<newline>::=--newlinecontrolcharacter-<digit>::=0|1|2|3|4|5|6|7|8|<hexdigit>::=<digit>|A|B|C|D|E|F|a|b|c|d|e|f<letter>::=<uppercaseletter>|<lowercase<uppercaseletter>A|B|C|D|E|F|G|H|I||K|L|M|N|O|P|Q|R|S||U|V|W|X|Y|Z|à|á|?||?|?|?|?|è|é|ê|?|ì||?|?|D|?|ò|ó|?|?|?||ù|ú|?|ü|Y|T|<lowercaseletter>a|b|c|d|e|f|g|h|i||k|l|m|n|o|p|q|r|s||u|v|w|x|y|z|?|à|á|a||?|?|?|?|è|é|ê|?|ì||?|?|e|?|ò|ó|?|?|?||ù|ú|?|ü|y|t|RAPID語句是一個序列的詞法單元,也被稱作標(biāo)記。RAPID<identifier>::=<ident>|<ident>::=<letter>{<letter>|<digit>|標(biāo)識符最大長度為32占位符<ID(參見第17頁的占位符以及第29頁的占位符)RAPID語言中都有特殊意義,因此不能用作標(biāo)識符。<numliteral><integer>[<exponent>|<decimalinteger>)|<hex|<octal|<binary|<integer>'.'[<integer>][<exponent>|[<integer>]'.'<integer>[<exponent><integer>::=<digit><decimalinteger>::='0'('D'|'d')<hexinteger>::='0'('X'|'x')<hexdigit>{<hex<octalinteger>::='0'('O'|'o')<octaldigit>{<octal<exponent>::=('E'|'e')['+'|'-']<digit>::=0|1|2|3|4|5|6|7|8|<hexdigit>::=<digit>|A|B|C|D|E|F|a|b|c|d|e|f<octaldigit>::=0|1|2|3|4|5|6|<binarydigit>::=0|數(shù)字文字必須處于ANSIIEEE754例如:799023.672E6.272.5E-3<boolliteral>::=TRUE|<stringliteral>::='"'{<character>|<charactercode>}<charactercode>::='\'<hexdigit><hex支持所有UTF-8<charactercode>ASCII127,UTF-8"Astring"Containsa"""EndswithBELcontrolcharacter\07""Containsa\\character"{}()[],.=<>+-*/:;!\:=<>>=離線編程工具和在線編程工具可利用占位符來臨時表示RAPID程序的“未定義”部分。序甚至可被執(zhí)行,但遇到的占位符會引起執(zhí)行錯誤(參見第19頁的錯誤分類)。RAPID(表示一個)(表示一個)數(shù)據(jù)對象引用(變量、永久數(shù)據(jù)對象或參數(shù)if語句中的elseif<comment>::='!'{<character>|<tab>}各RAPID類型定義表的一個元素(參見數(shù)據(jù)聲明表記錄分量表的一個元素(請參見第30頁的記錄內(nèi)備注數(shù)據(jù)聲明表的一個元素(參見第93頁的無返回值程序聲明程序聲明表的一個元素(參見第122頁的模塊聲明語句表的一個元素(參見第69頁的語句表在一個模塊中處于最后一個數(shù)據(jù)聲明(參見第42頁的數(shù)據(jù)聲明)!Increaselength:=length+IFlength<1000ORlength>14000!Outofbounds
RECORD!DISALLOWEDnummynum;!allowedcomment(notseparateline)stringmystring;!allowedcommentonlastline<datatype>::=內(nèi)置數(shù)據(jù)類型為RAPID據(jù)集可能不同。若能夠使用適當(dāng)?shù)膮?shù)類型,則安裝型數(shù)據(jù)支持安裝程序的使用。用戶定義型數(shù)據(jù)能夠為應(yīng)用程序工程師準(zhǔn)備能讀懂的易編程應(yīng)用包。從用戶角度講,內(nèi)置型數(shù)據(jù)、安裝型數(shù)據(jù)和用戶定義型數(shù)據(jù)沒有區(qū)別。第33頁的atomic第35頁的record<typedefinition>[LOCAL](<recorddefinition>|<aliasdefinition>||類型定義可出現(xiàn)在模塊的開頭部分(參見第121頁的任務(wù)模塊)
LOCALRECORDobjectnumusecount;stringname;ALIASnum2詞匯元素2詞匯元素2詞匯元素2詞匯元素RAPID3HAC065039-010RAPID3HAC065039-010atomic
num對象表示一個數(shù)值。num型表示ANSIIEEE754VARnumcounter:=dnum對象表示一個數(shù)值。dnum型表示ANSIIEEE754《浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)》指定的域。VARdnumvalue:=VARboolactive:=對象代表一串符號,是由UTF-8符號和控制字符(非ISO8859-1(Latin-組成的序列。其中可包含字符代碼,以便包含字符串中不可打印的字符(二進(jìn)制數(shù)據(jù))。字符串最大長度為80字節(jié)。atomic
僅以下位置支持UTF-8RAPIDRAPIDVARstringname:=
<recorddefinition>RECORD<identifier><recordcomponentlist><recordcomponentlist><recordcomponentdefinition>|<recordcomponent<recordcomponent<recordcomponentdefinition><datatype><recordcomponentname>RECORDnewtypenumx;
record值可用聚合表示法來表示。下列示例給出了[300,500,depth
p1.x:=
RECORD!DISALLOWEDnummynum;!allowedcomment(notseparateline)stringmystring;!allowedcommentonlastline
pos對象表示在3D空間中的矢量(位置)。pos型有三個分量,即,[x,y,z]位置的x位置的y位置的zVARposp1:=[10,10,55.7p1.z:=p1.z+p1:=p1+q2,q3,q4]。VARoriento1:=[1,0,0,o1.q1:=-o1:=pose對象表示在3D空間中的3D坐標(biāo)系。pose型有兩個分量,即,[trans,2詞匯元素2詞匯元素2詞匯元素2詞匯元素RAPIDRAPID3HAC065039-010RAPID3HAC065039-0102.14recordVARposep1:=[[100,100,0],p1.trans:=aliasaliasalias類型由alias<aliasdefinition>ALIAS<typename><identifier>aliasALIASnumCONSTlevellow:=2.5;CONSTlevelhigh:=4.0;非值(專用)
(描述符),比如,iodev(文件)
VARiodev!OpenOpen"flp1:LOGDIR"\File:="LOGFILE1.DOC",!WritetimestamptoWritelogfile,"timestamp="+
VARsignaldi!usedigitalinputsig1asvalueobjectIFsig1=1THEN!usedigitalinputsig1asnon-value2.16IFDInput(sig1)=1VARsignaldisig1:=賦值XXX賦值X有關(guān)目標(biāo)的更多信息,請參見第71頁的賦值語句和第82頁的Connect語句采用關(guān)聯(lián)型(值)EqualEqual<datadeclaration>[LOCAL](<variabledeclaration>|<persistentdeclaration><constantdeclaration>|TASK(<variabledeclaration>|<persistent||
2.18LOCALVARnumCONSTnummaxtemp:=PERSposrefpnt:=[100.23,TASKPERSnumlasttemp:=
<variabledeclaration>VAR<datatype><variabledefinition><variabledefinition><identifier>['{'<dim>{','<dim>}'}'][':='<constantexpression>]<dim>::=<constantVARnumVARposcurpos:=[b+1,cy,如第42頁的數(shù)據(jù)聲明
階或3階)形式。維度表示法必須表示一個大于0的整數(shù)值(參見第33頁的num型)!pos(14x18)matrixVARpospallet{14,18};
VARstringauthor_name:="JohnSmith";VARposstart:=[100,100,50];VARnummaxno{10}:=[1,2,3,9,8,7,6,5,4,安裝atomic<persistentdeclaration>PERS<datatype><persistentdefinition><persistentdefinition><identifier>['{'<dim>{','<dim>}'}'][':='<literalPERSnumpcounter:=通過在聲明中添加維度信息,可為任一類(包括安裝型)(1階、2階或3階)形式。維度表示法必須表示一個大于0的整數(shù)值(參見第33!2x2PERSnumgrid{2,2}:=[[0,0],[0,MODULEPERSposrefpnt:=[0,0,refpnt:=[x,y,MODULEPERSposrefpnt:=[100.23,778.55,refpnt:=[x,y,2.23安裝atomic<constantdeclaration>CONST<datatype><constantdefinition><constantdefinition><identifier>['{'<dim>{','<dim>}'}']':='<constant<dim>::=<constantCONSTnumpi:=CONSTnumsiteno:=
CONSTposseq{3}:=[[614,778,1020],[914,998,1021],[814,3表達(dá)式3表達(dá)式3表達(dá)式3表達(dá)式RAPIDRAPID3HAC065039-010RAPID3HAC065039-010<expression>|<expr>::=[NOT]<logicalterm>{(OR|XOR)<logicalterm><logicalterm>::=<relation>{AND<relation><relation>::=<simpleexpr>[<relop><simpleexpr><simpleexpr>::=[<addop>]<term>{<addop><term><term>::=<primary>{<mulop><primary><primary>|||||<function||'('<expr><relop>::='<'|'<='|'='|'>'|'>='|<addop>::='+'|'-<mulop>::='*'|'/'|DIV|
*/DIV+<><><=>=XORORa+b+(a+b)+a+b*a+(b*aORbOR(aORb)ORaANDbORcAND(aANDb)OR(cANDa<bANDc<(a<b)AND(c<<高于3.1值優(yōu)先于右運(yùn)算元。請注意,涉及AND和OR運(yùn)算符的表達(dá)式的求值將進(jìn)行優(yōu)化,從而在左運(yùn)算元求值后,能確定運(yùn)算結(jié)果的情況下,不對表達(dá)式的右運(yùn)算元求值。<constantexpression>::=CONSTnumradius:=CONSTnumpi:=!constantCONSTnumarea:=pi*radius*<literalexpression>::=PERSposrefpnt:=[100,778,PERSnumdiameter:=<conditionalexpression>::=counter>5ORlevel<文字是用于表示特定數(shù)據(jù)類型的一個恒定值的詞法單元(不顯示)<literal><num|<string0.5,<variable><entire|<variable|<variable
<entirevariable>::=VARnumrow{3};VARnumcolumn{3};!arrayassignmentrow:=column;
<variableelement>::=<entirevariable>'{'<indexlist><indexlist>::=<expr>{','<expr>mat{i*10,<variablecomponent>::=<variable>'.'<component<componentname>::=<persistent><entire|<persistent|<persistent永久數(shù)據(jù)對象引用方面的規(guī)則與變量引用方面的規(guī)則相符,參見第57頁的變量<constant><entire|<constant|<constant常量引用方面的規(guī)則與變量引用方面的規(guī)則相符,參見第57頁的變量<parameter><entire|<parameter|<parameter參數(shù)引用方面的規(guī)則與變量引用方面的規(guī)則相符,參見第57頁的變量
<aggregate>::='['<expr>{','<expr>}[x,y,["john","eric",[[100,100,0],[0,0,z[[1,2,3],[a,b,VARpos!Aggregatetypepos-determinedbyp1p1:=[1,-100,12];IF[1,-100,12]=[a,b,b]3表達(dá)式3表達(dá)式3表達(dá)式3表達(dá)式RAPID3HAC065039-010RAPIDRAPID3HAC065039-010<functioncall>::=<function>'('[<functionargumentlist>]<function>::=<functionargumentlist><firstfunctionargument>{<functionargument><firstfunctionargument><requiredfunction|<optionalfunction|<conditionalfunction<functionargument>','<requiredfunction|<optionalfunction|','<optionalfunction|<conditionalfunction|','<conditionalfunction<requiredfunctionargument>::=[<ident>':=']<expr><optionalfunctionargument>::='\'<ident>[':='<expr>]<conditionalfunctionargument>::='\'<ident>'?'<parameter>
polar(3.937,polar(dist:=3.937,angle:=3.11一項必要參數(shù)和一項開關(guān)型(可選)dist(\base:=p1,比如,如果存在可選參數(shù)b,那么distancedist(\basebp);被解讀為distance:=dist(\base:=b,p);,否則會解讀為distance:=dist(IFPresent(b)distance:=dist(\base:=b,p);distance:=dist(p);check(\switchon|switchoff可以check(\on?high\off?low
有返回值程序的參數(shù)表(參見第90頁的參數(shù)聲明)數(shù)的訪問模式對相應(yīng)調(diào)用參數(shù)施加了限制,指定了RAPID有關(guān)程序參數(shù)、訪問模式和調(diào)用參數(shù)限制的完整說明,請參見第89頁的程序聲明。下表指定了各運(yùn)算符的結(jié)果類型和合法運(yùn)算元類型。請注意,關(guān)系運(yùn)算符=和<>是對見第41頁的Equal型),將引起類型錯誤(參見第19頁的錯誤分類)。
num*numdnum*dnumnum*pos或pos*pos*orient*num/dnum/numDIVdnumDIVnumMODdnumMODnum+numdnum+dnum+num或dnum或iipos+string+num-numdnum-dnum-num或-dnum或-同左3.12pos-只要運(yùn)算元和結(jié)果仍在數(shù)值類型的整數(shù)子域內(nèi),那么就可保留整數(shù)(精確)num<dnum<num<=dnum<=任意類型i=num>=dnum>=num>dnum>boolANDboolXORboolORNOT4語句4語句4語句4語句RAPIDRAPID3HAC065039-010RAPID3HAC065039-010利用安裝程序(和類型)來支持機(jī)械臂應(yīng)用編程者的特定需求,能夠?qū)APID限制到最少水平。RAPID特定RAPID語句。語句僅可出現(xiàn)在程序定義之中。<statement><simple|<compound|||
<simplestatement><assignment|<procedure|<goto|<break|<continue|<return|<raise|<exit|<retry|<trynext|<connect<compoundstatement><if|<compactif|<for|<while|<testWHILEindex<100!Loopindex:=index+“endwhile”將終止while<statementlist>::={<statement>IFa>bpos1:=a*!thisisapos2:=<label>::=<identifier>GOTO
<assignmentstatement>::=<assignmenttarget>':='<expression><assignmenttarget>|||count:=counthome.x:=x*matrix{i,j}:=posarr{i}.y:=assignment<VAR>:=temp+<procedurecall>::=<procedure>[<procedureargumentlist>]<procedure>|'%'<expression><procedureargumentlist><firstprocedureargument>{<procedureargument><firstprocedureargument><requiredprocedure|<optionalprocedure|<conditionalprocedure|<procedureargument>','<requiredprocedure|<optionalprocedure|','<optionalprocedure|<conditionalprocedure|','<conditionalprocedure|','<requiredprocedureargument>[<identifier>':=']<optionalprocedureargument>'\'<identifier>[':='<expression><conditionalprocedureargument>'\'<identifier>'?'(<parameter>|<VAR>
proc1x,y,z;例%"proc"+NumToStr(product_id,0)%x,y,CASEproc2x,y,例CASEVARstringprocname{3}:=["proc1","proc2",%procname{product_id}%x,y,4.6
movet1,pos2,movetool:=t1,dest:=pos2,movedata:=move\reltool,t1,dest,以開關(guān)型move\reltool,t1,dest,mv\speed:=以可選型move\reltool,t1,dest,mv\time:=以可選型Goto<gotostatement>::=GOTO<identifier>i:=i+GOTOBreakBreak語句WHILE(TRUE)TPWrite"StartWHILE";Incrreg1;IF(reg1>2)BREAK;!Forreg1>2theexecutionwillcontinueaftertheWhileloopBreakContinueFORiFROM1TO5TPWrite"ABC";!willberunfori=1,2,3,4,5IF(i>3)THENTPWrite"DEF";!willonlyberunfori=1,2,3Return<returnstatement>::=RETURN[<expression>]FUNCnumabs_value(numvalue)IFvalue<0THENRETURN-value;RETURNPROCmessage(stringmess)writeprinter,mess;RETURN;!couldhavebeenleftoutRaiseRaise<raisestatement>::=RAISE[<errornumber>]<errornumber>::=
CONSTerrnumescape:=RAISEescape;!recoverfromthisIFERRNO=escapeTHENRETURNval2;ExitExit<exitstatement>::=EXITTESTstateCASEready:DEFAULT:!illegal/unknownstate-writeconsole,"Fatalerror:illegalstate";Retry<retrystatement>::=RETRY';'!openopen\append,logfile,IFERRNO=ERR_FILEACC!createmissingfilecreate"temp.log";!resumeexecution!propagate"unexpected"errorRAISE;ENDFUNC<trynextstatementTRYNEXT!Removethelogfiledeletelogfile;IFERRNO=ERR_FILEACC!Logfilealreadyremoved-Ignore!propagate"unexpected"errorConnect<connectstatement>::=CONNECT<connecttarget>WITH<trap><connecttarget>||<trap>::=
VARintnumPROCCONNECThpWITHTRAPhigh_pressure<ifstatement>IF<conditionalexpression>THEN<statement{ELSEIF<conditionalexpression>THEN<statementlist>|[ELSE<statementlist>]IFcounter>100THENcounter:=100;ELSEIFcounter<0THENcounter:=0;counter:=counter+1;<compactifstatement>IF<conditionalexpression>(<simplestatement>|<SMT>IFERRNO=escape1GOTOForFor具備語句表范圍(doendfor)<forstatement>FOR<loopvariable>FROM<expression>TO<expression>[STEP<expression>]DO<statementlist>ENDFOR<loopvariable>::=使用Break語句可以提前終止For循環(huán)。參見第75頁的Break語句Continue。FORiFROM10TO1STEP-1a{i}:=While<whilestatement>WHILE<conditionalexpression><statementlist>使用Break語句可以提前終止While循環(huán)。參見第75頁的Break語句Continue。WHILEa<ba:=a+1;TestTest<teststatement>::=TEST<expression>{CASE<testvalue>{','<testvalue>}':'<statementlist>|<CSE>[DEFAULT':'<statementlist>]<testvalue>::=TESTCASE1,2,3picknumber:=choice;CASE4:writeconsole,"Illegalchoice";5程序聲明5程序聲明5程序聲明5程序聲明RAPIDRAPID3HAC065039-010RAPID3HAC065039-010一項程序是可執(zhí)行代碼的指定載體。用戶程序?qū)⒁訰APID義程序?qū)⒂上到y(tǒng)提供,一直可供使用。起來(使用connect語句,參見第82頁的Connect語句),在后續(xù)發(fā)生該特定中斷的情況下,被自動執(zhí)行。決不可從RAPID代碼明確調(diào)用軟中斷程序。<routinedeclaration>[LOCAL](<procedure|<function|<trapdeclaration>||數(shù)據(jù)類型(僅對有返回值程序有效參數(shù)(不適用于軟中斷程序數(shù)據(jù)聲明和語句(體回退處理器(僅對無返回值程序有效<parameterlist><firstparameterdeclaration>{<nextparameterdeclaration><firstparameterdeclaration><parameter|<optionalparameter|<nextparameterdeclaration>::=','<parameterdeclaration>|<optionalparameter|','<optionalparameter|','<optionalparameterdeclaration>'\'(<parameterdeclaration>|<ALT>){'|'(<parameterdeclaration>|<ALT>)}<parameterdeclaration>[VAR|PERS|INOUT]<datatype><identifier>['{'('*'{',''*'})|<DIM>'}']|'switch'
5.2只讀變量參數(shù)參數(shù)參數(shù)參數(shù)inout-參數(shù)inout-比如,F(xiàn)OR循環(huán)變量(參見第85頁的For語句)、errno、intno執(zhí)行錯誤(參見第19頁的錯誤分類)
PROCglue(\switchon|switchoff,...!switchIFPresent(off)!checkpresenceofoptionalparameterglue\off,pos2;!argument...,VARnumpallet{*,*},!num-matrix對象的范圍表示名稱顯示范圍。預(yù)定義程序的范圍包括RAPID用戶程序有效:
有關(guān)任務(wù)模塊的信息,請參見第121頁的任務(wù)模塊<proceduredeclaration>::=PROC<procedurename>'('[<parameterlist>]<datadeclaration<statement[BACKWARD<statementlist>[ERROR[<errornumberlist>]<statementlist>][UNDO<statementlist>]<procedurename>::=<datadeclarationlist>::={<datadeclaration>數(shù)據(jù)聲明表可包含注釋,請參見第30頁的備注
PROCarrmul(VARnumarray{*},numFORindexFROM1TODim(array,1)DOarray{index}:=array{index}*factor;ENDPROC!implicit
并將該參數(shù)聲明為VARnum,那么,被同一后期綁定語句調(diào)用的其他無返回值程序的<functiondeclaration>::=FUNC<datatype><function'('[<parameterlist>]<datadeclaration<statement[ERROR[<errornumberlist>]<statementlist>][UNDO<statementlist>]<functionname>::=
FUNCnumveclen(posRETURNsqrt(quad(vector.x)+quad(vector.y)+quad(vector.z));IFERRNO=ERR_OVERFLOWRETURN!propagate"unexpected"error<trapdeclaration>::=TRAP<trapname><datadeclaration<statement[ERROR[<errornumberlist>]<statementlist>][UNDO<statementlist>]<trapname>::=
TRAPlow_pressure!returntopointofinterruptTRAPhigh_pressure!returntopointofinterrupt6步退執(zhí)行6步退執(zhí)行6步退執(zhí)行6步退執(zhí)行RAPIDRAPID3HAC065039-010RAPIDRAPID3HAC065039-010RAPID語言支持對語句進(jìn)行逐步步退執(zhí)行。在RAPID程序開發(fā)期間,步退執(zhí)行對調(diào)試、測試和調(diào)節(jié)十分有用。RAPID無返回值程序可能包含回退處理器(語句表),退處理器定義了無返回值程序(調(diào)用)的步退執(zhí)行“行為”。僅簡單(非復(fù)合)不可在語句表頂部從程序進(jìn)行回退(并且無法實現(xiàn)程序調(diào)用)不采取行動或否決I回退調(diào)用。無返回值程序定義中對該行為進(jìn)行了定義。 PROCMoveToMoveLp1,v500,z10,tool1;MoveCp2,p3,v500,z10,tool1;MoveLp4,v500,z10,tool1;MoveLp4,v500,z10,tool1;MoveCp2,p3,v500,z10,tool1;MoveLp1,v500,z10,tool1;PROCMoveToMoveLMoveCMoveLp4,v500,z10,tool1;MoveLp4,v500,z10,tool1;MoveCp2,p3,v500,z10,tool1;MoveLp1,v500,z10,tool1;PROCMoveToMoveLp1,v500,z10,tool1;MoveCp2,p3,v500,z10,tool1;MoveLp4,v500,z10,tool1;MoveLMoveCMoveLp1,v500,z10,tool1;另請參閱第99頁的回退處理器中對MovePROCMoveToMoveLMoveCMoveLp4,v500,z10,tool1;3.MoveL2.MoveC1.MoveLp1,v500,z10,tool1;注意:MoveC中CirPointp2和ToPointp37錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)RAPIDRAPID3HAC065039-010RAPID3HAC065039-010執(zhí)行錯誤(參見第19頁的錯誤分類)系指RAPID程序代碼特定段的執(zhí)行出現(xiàn)異常情況。錯誤會造成無法進(jìn)一步執(zhí)行(或者說至少執(zhí)行是危險的)?!耙绯觥焙汀俺恪本鶠楸黄椒€(wěn)地中止。FUNCnumsafediv(numx,numy)RETURNx/y;IFERRNO=ERR_DIVZERO!returnmaxnumericvalueRETURNmax_num;
相應(yīng)錯誤。在采取必要行動后,錯誤處理器可:用RETRY語句,從出錯語句重新開始執(zhí)行程序,參見第80頁的Retry語句
CONSTerrnumescape1:=RAISEIFERRNO=escape1THENRETURNval2;
執(zhí)行等級系指RAPID程序運(yùn)行所處的背景。系統(tǒng)有三種執(zhí)行等級,即,中斷等級和用戶等級。
MODULEexamplePROCmain()!DosomethingimportantERROR(56,ERR_DIVZERO)[ERROR[<errornumberlist>]<statementlist><errornumberlist>::='('<errornumber>{','<errornumber>}<errornumber><num|<entire|<entire|<entire
MODULEexample2PROCmain()!ErrorrecoveryERROR(56)PROCroutine1()PROCroutine2()RAISE56;!Thiswillpropagatetheerror56tomain用戶程序跳轉(zhuǎn)至程序,不論調(diào)用鏈處于軟中斷等級、用戶等級和常規(guī)等級的何對這類異常情況的處理很有幫助。
MODULEExample3PROCmainWHILEmyFunction()=TRUEDOERROR(LONG_JMP_ALL_ERR)
MODULEexample4PROCmain()!ErrorrecoverypointERROR(56)PROCroutine1()VARiodevlog;Open"HOME:"\File:="FILE1.DOC",Writelog,"routine1endswithnormalexecution";Closelog;!AnothererrorhandlerClosePROCroutine2()RAISE56;!Thiswillpropagatetheerror56tomain
7.2Nostepin7錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)RAPID3HAC065039-010RAPID3HAC065039-010
ProcerrRecovery\SyncOrgMoveInst造成的異步錯誤與產(chǎn)生當(dāng)前機(jī)械臂7.4
PROCPROCMoveLp1,v300,z10,tool1;MoveLp2,v300,z10,PROC錯誤處理器來即刻進(jìn)行處理。以ProcerrRecovery\SyncLastMoveInst產(chǎn)生的理該錯誤。程序調(diào)用my_process并放棄write_log。如果主程序中的錯誤處理器7.4
PROCPROCMoveLp1,v300,z10,tool1;MoveLp2,v300,z10,如果以ProcerrRecovery\SyncOrgMoveInst發(fā)出錯誤,那么,將在調(diào)用7.4MODULEVARintnumproc_sup_int;VARiodevlogfile;PROCPROCmy_process()MoveLp1,v300,z10,tool1;MoveLp2,v300,z10,tool1;IFERRNO=ERR_PATH_STOPPROCOpen"HOME:"\File:="log.txt",logfile\Append;Writelogfile"my_processexecuting";CloseIFERRNO=ERR_FILEOPENTHENCloseTRAPiprocfailProcerrRecovery\SyncLastMoveInst;PROCmy_proc_on()SetDOdo_myproc,1;CONNECTproc_sup_intWITHiprocfail;ISignalDIdi_proc_sup,1,proc_sup_int;PROCmy_proc_off()SetDOdo_myproc,0;IDeleteproc_sup_int;如果機(jī)械臂正在朝p1如果機(jī)械臂正在朝p2如果采用開關(guān),那么將在主程序中發(fā)出錯放棄的情況下,調(diào)用該程序的程序()將發(fā)出此錯誤。7錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)7錯誤恢復(fù)RAPIDRAPID3HAC065039-010RAPID3HAC065039-0107.4RaiseToUser\Resume。在錯誤解決后,
PROCPROCMoveLp1,v300,z10,tool1;MoveLp2,v300,z10,tool1;PROCwrite_log()Open..logile..;Writelogfile;Closelogfile;Close指令指令需注意,最多重試次數(shù)取決于參數(shù)NoOfRetry。為確保進(jìn)行4次以上重試,必須配置PROCroutine1()VARiodevreport;Open"HOME:"\File:="FILE1.DOC",report;Writereport,"NopartsfromRob1="\Num:=reg1;Closereport;IFERRNO=ERR_FILEOPENWaitTime0.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公室員工招聘與錄用制度
- 公共采購品質(zhì)承諾函8篇范文
- 參與愛心助學(xué)活動承諾書6篇范文
- 個人信用和職業(yè)品德承諾書范文8篇
- 友情的議論文(11篇)
- 企業(yè)公眾形象塑造承諾書5篇
- 醫(yī)療設(shè)備質(zhì)量安全保障承諾書范文4篇
- 我熱愛閱讀的抒情文12篇
- 培訓(xùn)機(jī)構(gòu)運(yùn)營規(guī)范制度
- 規(guī)范村班子聯(lián)席會議制度
- 邀約來訪活動策劃方案(3篇)
- 2025年煙臺理工學(xué)院馬克思主義基本原理概論期末考試筆試真題匯編
- 《型材知識介紹》課件
- 幼兒園小班美術(shù)《雪花飄飄》課件
- 期末測試卷-2024-2025學(xué)年外研版(一起)英語六年級上冊(含答案含聽力原文無音頻)
- 橋架彎制作方法及流程
- DB13(J)-T 298-2019 斜向條形槽保溫復(fù)合板應(yīng)用技術(shù)規(guī)程(2024年版)
- HG/T 3811-2023 工業(yè)溴化物試驗方法 (正式版)
- (正式版)SHT 3229-2024 石油化工鋼制空冷式熱交換器技術(shù)規(guī)范
- 健康政策與經(jīng)濟(jì)學(xué)
- GB/T 42506-2023國有企業(yè)采購信用信息公示規(guī)范
評論
0/150
提交評論