版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
?KUKARoboterGmbHZugspitzstra?e140D-86165Augsburg此文獻或節(jié)選只有在征得庫卡機器人公司明確同意的情況下才允許或?qū)Φ陂_放KIM-PS5- PubCOLLEGEP2KSS8Rtepriug2(TG-COL)zh P2KSS8Roboterprogrammierung2V2.3版本 P2KSS8Roboterprogrammierung2V1結(jié)構(gòu)化編程 創(chuàng)建結(jié)構(gòu)化機器人程序的輔助工 如何創(chuàng)建程序流程圖 專家界面介紹 使用專家界面 變量和協(xié)定 KRL中的數(shù)據(jù)保存 涉及簡單數(shù)據(jù)類型的工作 變量 簡單數(shù)據(jù)類型變量的初始 用KRL對簡單數(shù)據(jù)類型的變量值進行 KRLArrays/數(shù)組 KRL結(jié)構(gòu) 枚舉數(shù)據(jù)類型ENUM 子程序和函數(shù) 用局部子程序工作 用全局子程序工作 將參數(shù)傳遞給子程序 函數(shù)編程 使用KUKA標(biāo)準(zhǔn)函數(shù)工作 用KRL進行運動編程 借助KRL給運動編程 借助KRL給相對運動編程 計算或機器人位置 有針對性地更改狀態(tài)和轉(zhuǎn)角方向比特 用系統(tǒng)變量工作 用計時器測量節(jié)拍時間 使用程序流程控制 詢問或if分支的編程 給wicase分支編程 給循環(huán)編程 給無限循環(huán)編程 給計數(shù)循環(huán)編程 當(dāng)型循環(huán)的編程 直到型循環(huán)的編程 等待函數(shù)編程 時間等待函數(shù) 信號等待函數(shù) KRL的切換函數(shù) 簡單切換函數(shù)的編程 使用TRIGGERWHENPATH語句并以軌跡為參照的切換函數(shù)編 使用WorkVisual編程 用WorkVisual打開項目 用WorkVisual比較項目 將項目傳輸給機器人控制系統(tǒng)(安裝 在機器人控制系統(tǒng)中激活項 用WVl編輯KRL程 文件處理 KRL編輯器的使用 索引 結(jié)構(gòu)采用統(tǒng)一編程方法的
采用統(tǒng)一編程方法,以便通過嚴(yán)密的分段結(jié)構(gòu)方便地解決復(fù)雜的以清晰易懂的方式展示基本方 (無需深度編程知識提高、修改和擴展程序的效率使復(fù)雜的任務(wù)得以分解成幾個簡單的分步降低編程時的總耗使相同性能的組成部分得以更單獨開發(fā)各組成部對一個機器人程序的6高無易簡清晰明具有良好的經(jīng)濟效創(chuàng)建結(jié)構(gòu)化機器人程序的輔助工注釋有什么用處 對程序內(nèi)容或功能的說內(nèi)容和用途可任意選改善程序的可讀有利于程序結(jié)構(gòu)注釋的時效性由程序員負KUKA控制器不會將注釋理解為
關(guān)于整個源程序的信DEFDEF該程序?qū)⒎綁K從庫中取作者Max源程序DEFDEF;*16個方塊堆垛在工作臺上;*作者:Max ;*創(chuàng)建日期: ;;;1616單行的PTPHOMEVel=100%PTPPre_Pos駛至抓取預(yù)備位LINGrip_Pos至方塊抓取對需執(zhí)行的工作的說;此處還必須插入貨盤位置的計PTPHOMEVel=100%PTPPre_Pos;駛至抓取預(yù)備位LINGrip_Pos;駛至方塊抓取位;此處尚缺少抓爪的關(guān)變?yōu)樽⑨孎OLD有什么作
FOLDFOLD的內(nèi)容對用戶來說是不可見的FOLD通過使用Fold可改善程序的可讀DEFKUKADEFKUKAFOLD關(guān)DEFDEFKUKAFOLD關(guān)DEFKUKAFOLD關(guān)
可以多次使避免程序碼節(jié)省空各組成部分可單獨開隨時可以更換具有相同性能的組成部使程序結(jié)構(gòu)將總?cè)蝿?wù)分解成分步任和排除程序錯誤更為IF$IN[1]THENDEFDEFINTPART,COUNTERPTPHOMEVel=100%DEFAULTFORCOUNTER=1TO20PART=PART+1;聯(lián)機表格無法縮PTPP1CONTVel=100%TOOL[2]:GripperBASE[2]:TablePTPXP5
輸入和輸出信號的長文本工具與基坐標(biāo)的名輸入和輸出的信號協(xié)點的名如何創(chuàng)建程序流程
用于程序流程結(jié)構(gòu)化的工程序流程更加易結(jié)構(gòu)錯誤更加易于識同時生成程序的文程序流程圖圖 一個過程或程序的開始或結(jié)1-指令與運算的連1-if分1-程序代碼中的一般指1-子程序1-輸出1-程序流程圖圖1-如何創(chuàng)建程序流12頁的紙上將整個流程大致地劃圖將總?cè)蝿?wù)劃分成小的分步大致劃分分步任細分分步任KRL專家使用專家說 機器人控制器可向不同的用戶組提供不同的功能??梢赃x擇以下幾個用戶組操作人操作人員用戶組。此為默認(rèn)用戶應(yīng)用人操作人員用戶組。(在默認(rèn)設(shè)置中操作人員和應(yīng)用人員的目標(biāo)群是一樣專編程人員用戶組。此用戶組有保護管理功能與專家用戶組一樣。另外可以將插件(Plug-Ins)集成到機器人控制器安全人該用戶組可以激活和配置機器人的安全配置。此用戶組有保護安全投KUKA.SafeOperationKUKA.SafeRangeMonitoring專家用戶組的擴展功能保護(默認(rèn)KRL模塊的詳細說明界面可供DEF展開和合攏折疊)在程序中顯示詳細說明界創(chuàng)建程序時可從預(yù)定義的模板中在下列情況下將自動退出專家用戶組當(dāng)運行方式切換至AUT(自動)或AUTEXT(外部自動運行)在一定的持續(xù)時間內(nèi)未對操作界面進行任何操作時(300秒功 借助模板創(chuàng)建程Cell:現(xiàn)有的Cel程序,只能被替換或者在刪除Cell程序后重新創(chuàng)建ExpertSRCDATExpertSubmit:附Smt(SUB)由程序頭和程序結(jié)尾Function:SRC函數(shù)創(chuàng)建,在SRCBOOLMd:odl(模塊)由具有程序頭、程序結(jié)尾以及基本框架(NI個PTPHOME)的SRC和DAT文件構(gòu)成Submit:附加的Sut(SUB)由程序頭、程序結(jié)尾以及基本框(DECLARATION、INI、LOOP/ENDLOOP)構(gòu)成過濾器決定了在文 中如何顯示程序。有以下過濾器可供選擇詳細信SRCDAT(默認(rèn)設(shè)置模程序以模塊形式顯示
對于那些被打開并選中了的程序來說,DEF行將各自獨立地顯示或隱藏。對于應(yīng)用人員 始終關(guān)閉,但可以以專家打?qū)<乙部梢跃幊淘O(shè)立自己的Fold句法;FOLD名指;ENDFOLD名稱激活專作為專家登錄:點擊登錄。選定用戶組專家并用登錄此時需要:輸 (默認(rèn):kuka)并用登錄確認(rèn)糾正程序中的錯在導(dǎo)航器中選擇出錯的模2-1:有錯誤的程選擇菜單錯誤顯示(程序名ERR隨即選定錯誤,在下面的錯誤顯示中將顯出詳細在錯誤顯示窗口中按顯示按鍵,跳到出錯的程序糾正錯退出編輯器并保變量KRL中的數(shù)據(jù)保
變量概KRL器人進程的運行過程中出現(xiàn)的計算值(“數(shù)值”)的容器。每個變量都在計算機的器中有一個專門指定的地址每個變量都有一個非KUKA的名每個變量都屬于一個專門的數(shù)據(jù)在使用前必須數(shù)據(jù)類KRLKRL生存期是指變量預(yù)留空間的時間運行時間變量在退出程序或者函數(shù)時重新釋放位KRL為局部的變量只能在本程序中可用、全局變量則在(全局)數(shù)據(jù)列表中創(chuàng)全局變量也可以在局部數(shù)據(jù)中創(chuàng)建,并在時配上global(全數(shù)據(jù)類型是對某一集合中對象的統(tǒng)預(yù)定義的標(biāo)準(zhǔn)數(shù)據(jù)類自定義的標(biāo)準(zhǔn)數(shù)據(jù)類預(yù)定義的KUKA使用KRL變 命名規(guī)KRL24KRL中的名稱允許包含字母(A-Z)、數(shù)字(0-9)以及特殊字符“_”和“$”KRLKRL中的名稱不允許為KRL預(yù)定義的標(biāo)準(zhǔn)數(shù)據(jù)簡單的數(shù)據(jù)整實數(shù)單個字?jǐn)?shù)值范-231(231-±1.110-38...3.4ASCII符示-199 TRUE或“”Voltage[10]=Voltage[10]=Voltage[11]=借助下標(biāo)保存相同數(shù)據(jù)類型的多個變初始化或者更改數(shù)值均借助下標(biāo)最大數(shù)組的大小取決于數(shù)據(jù)類型所需的空間大color=color=枚舉類型的所有值在創(chuàng)建時會用名 (明文)進行定系統(tǒng)也會規(guī)定順元素的最大數(shù)量取決于位置的大Date={day14,month12,Date={day14,month12,year由不同數(shù)據(jù)類型的數(shù)據(jù)項組成的復(fù)合數(shù)據(jù)這些數(shù)據(jù)項可以由簡單的數(shù)據(jù)類型組成,也可以由結(jié)構(gòu)SCR不能被一直僅在的程序段中有在到達程序的最后一行(END行)時重新釋放位局部DAT文件中的SRCSCR也可創(chuàng)建為全局變DAT系統(tǒng)文件$CONFIG.DAT中的變在所有程序中都可用(全局即使沒有程序在運行,也始終可以被獲得GDAT文件中的當(dāng)前變量的雙雙重始終出現(xiàn)在使用相同的字符串(名稱)如果在不同的SRCDAT不屬于雙重在同一個SCR和DAT文件中進行雙重是不允許的,并且會生成錯SRCDAT$CONFIG.DAT運行已定義好變量的程序時,只會更改局部值,而不會$CONFIG.DAT程序時只會調(diào)用和$CONFIG.DAT中的KUKA系統(tǒng)數(shù)系統(tǒng)數(shù)據(jù)類枚舉數(shù)據(jù)類型,例如:運行方式結(jié)構(gòu),例如:日期/時間系統(tǒng)信息可從KUKA 當(dāng)前的系統(tǒng)信更改當(dāng)前的系統(tǒng)配已經(jīng)預(yù)定義好并以$”字符$DATE(當(dāng)前時間和日期$POS_ACT(當(dāng)前機器人位置涉及簡單數(shù)據(jù)類型的在下文中將介紹如何創(chuàng)建、初始化和改變變量。在此僅使用簡單的數(shù)據(jù)使用KRL的簡單數(shù)據(jù)類單個變量建立變 變在使用前必須總是先進行每一個變量均劃歸一種數(shù)據(jù)類命名時要遵守命名規(guī)的為對四種簡單數(shù)據(jù)類型DECL可省用預(yù)進指針變量可以不同形式進行,因為從中得出相應(yīng)變量的生存期和有效SRCDAT文件中在局部DAT文件中配上“全局”創(chuàng)建常常量 CONST建常量只允許在數(shù)據(jù)列表中變 的原 SRC文件中的程序結(jié)在部分必須變初始化部分從第一個賦值開始,但通常都是從IN”行開在指令部分會賦值或更改DEFDEFmain( 部初始化部;PTPHOMEVel=100%更改標(biāo)DEF為了在模塊時于I”行前進入部分,這是必要在將變量傳遞到子程序中時能夠看到DEFEND規(guī)定生SCR文件:程序運行結(jié)束時,運行時間變量 DAT文件:在程序運行結(jié)束后變量還保在具有簡單數(shù)
規(guī)定有效性可用在局部SRC文件中:僅在程序中被的地方可用。因此變量僅在局部DEF和END行之間可用(主程序或局部子程序)在局DAT文件中:在整個程序中有效,即在所有的局部子程序中也$CONFIG.DAT:全局可用,即在所有程序中都可以DATDATPUBLIC并在時再另外指定GOLBAL,就在所有程序規(guī)定數(shù)據(jù)類N:用于計數(shù)循環(huán)或件數(shù)計數(shù)器的經(jīng)典計數(shù)CHAR字符串或文本只能作為CHAR數(shù)組來實現(xiàn)命名和使用DECL使用可讓人一目了然的合理變量使用晦澀難懂的名稱或縮使用合理的名稱長度,即不要每次都使用24個字在SCR專家用DEF行顯SCR變DEFDEFMY_PROG(DECLINTcounterDECLREALpriceDECLBOOLerrorDECLCHARsymbol關(guān)閉并保存在DAT文件中創(chuàng)建變專家用DAT變DEFDATMY_PROGDEFDATMY_PROGDECLINTcounterDECLREALpriceDECLBOOLerrorDECLCHAR關(guān)閉并保存數(shù)據(jù)列在$CONFIG.DAT中創(chuàng)專家用在編輯器中打開SYSTEM(系統(tǒng))文件夾中的DEFDAT$CONFIGDEFDAT$CONFIGAUTOEXTGLOBALSUSERGLOBALSFold“USERGLOBALS”,然后用軟鍵Fold”將其變DEFDATDEFDAT$CONFIG(用戶自定義類外部用戶自定用戶自定義變DECLINTcounterDECLREALpriceDECLBOOLerrorDECLCHAR關(guān)閉并保存數(shù)據(jù)列在DAT文件中創(chuàng)建專家用DAT通過IC擴展程序頭中的數(shù)據(jù)列DEFDATDEFDATMY_PROG變DEFDATDEFDATMY_PROGPUBLICEXTERNALDECLGLOBALINTcounterDECLGLOBALREALpriceDECLGLOBALBOOLerrorDECLGLOBALCHAR關(guān)閉并保存數(shù)據(jù)列簡單數(shù)據(jù)類型變量的初始KRL初始化說 每次后變量都只預(yù)留了一個位置,值總是無效在SRC文件中和初始化始終在兩個獨立的行中進在DAT文件中和初始化始終在一行中進行常量必須在時立即初始化初始化部分以第一次賦值初始化的方 整數(shù)的初始初始化為十進制valuevalue=初始化為二進制valuevalue=二進十進8421計算:1*32+1*16+1*8+0*4+1*2+0*1初始化為十六進制valuevalue=123456789ABCDEF12345678910
計算:3*16+10在SRC文件中和初始SCR已完執(zhí)行初DEFDEFMY_PROG(DECLINTcounterDECLREALpriceDECLBOOLerrorDECLCHARsymbolcounter=price=0.0symbol="X"關(guān)閉并保存在DAT文件中和初始DAT已完執(zhí)行初DEFDATMY_PROGEXTERNALDEFDATMY_PROGEXTERNALDECLINTcounter=10DECLREALprice=0.0DECLBOOLerror=DECLCHARsymbol=關(guān)閉并保存數(shù)據(jù)列DAT進DEFDATMY_PROGDEFDATMY_PROGDECLINTcounterDECLREALpriceDECLBOOLerrorDECLCHAR關(guān)閉并保存數(shù)據(jù)列SCR執(zhí)行初始DEFDEFMY_PROG(counter=price=0.0error=FALSEsymbol="X"DAT進行和初始DEFDATMY_PROGDEFDATMY_PROGDECLCONSTINTmax_size=99DECLCONSTREALPI=3.1415關(guān)閉并保存數(shù)據(jù)列KRL
根據(jù)具體任務(wù),可以以不同方式在程序進(SRC件)中改變變量值。以下通過以下途徑進行數(shù)據(jù)基本運算類(+)加(*除比較運(>)大(<)小大于小于邏輯運(NOT)反(AND)(OR)EXR“異或位運(B_NOT)按位取反運(B_AND)(B_OR)(B_EXOR)按位異標(biāo)準(zhǔn)函絕對函根函正弦和余弦正切函反余弦反正切多種字符串處理函數(shù)據(jù)時的關(guān) 使用數(shù)據(jù)類型REAL和NT時的數(shù)值更四舍五;;DECLINTA,B,CDECLREAL初始A= ;B5.5B=6(x.5起湊成整數(shù)C2.25;C=2(四舍五入R= ;S= ;T ;T=2.0(應(yīng)用四舍五入后的整數(shù) 算結(jié)果(+;-運算對;;DECLINTD,EDECLREAL初始D=E=U=V=;指令部分(數(shù) D=D*E;D=2*5=EE+VE=510.615.6舍五E=16U=U*V;U=0.5*10.6=5.3V=E+V;V=16+10.6= 算結(jié)果使用整數(shù)值運算時的特點純整數(shù)運算的中間結(jié)果會去掉所有小給整數(shù)變量賦值時會根據(jù)一般計算規(guī)則對結(jié)果進行四舍;;DECLITFDECLREALWF=W=;指令部分(數(shù) ;INT/INT->INTF=F/2;F=5;REAL/INT->W=W/4;比較運通過比較運算可以構(gòu)成邏輯表達式。比較結(jié)果始終是BOOL運算符說允許的數(shù)據(jù)相N、REAL、CHAR、不INT、REAL、CHAR、>大N、REAL、<小N、REAL、大于等N、REAL、小于等N、REAL、;;DECLBOOL初始化指令部G=10>10.1;G=G<>H;G=TRUE邏輯運通過邏輯運算可以構(gòu)成邏輯表達式。這種運算的結(jié)果始終是BOOL運NOTAANDAOR;;DECLBOOLM初始化指令部K=L=NOTK;M=(KANDL)OR(KEXORL);M=TRUEL=NOT(NOTK);L=TRUE運算將根據(jù)其優(yōu)先級順序優(yōu)先運算1NOT)2*34AND56)7各種比<>;;;DECLBOOLX,YDECLINTZ初始指令部X=TRUEZ=4Y=(4*Z+16<>32)ANDX;1.確定一個或多個變量的數(shù)據(jù)類2.確定變量的有效性和生存3.進行變量4.初始化5.SCRKRLArrays數(shù)KRL數(shù)組的說明 數(shù)組,亦即Arrays,可為具有相同數(shù)據(jù)類型并借助下標(biāo)區(qū)分的多個變量提供存的的時,數(shù)組大小和數(shù)據(jù)類型必須已KRL1初始化始終可以逐個進SRCdimension1[4]=dimension1[4]=dimension2[2,1]=dimension2[2,1]=dimension1[3,4,1]=dimension1[3,4,1]=
數(shù)組變量的生存期和有效性與使用簡單數(shù)據(jù)類型的變量時數(shù)在SCRDEFMY_PROG()DECLDEFMY_PROG()DECLBOOLerror[10]DECLREALvalue[50,2]在數(shù)據(jù)列表(亦$CONFIG.DAT)DEFDATMY_PROGDEFDATMY_PROGDECLBOOLerror[10]DECLREALvalue[50,2]DECLINT在SRC文件中對數(shù)組進行并初始通過調(diào)用索引單獨對每個數(shù)組進行和初始DECLDECLBOOL以合適的循DECLDECLBOOLerror[10]DECLINTxFORx=1TO在數(shù)據(jù)列表中初始化DEFDATMY_PROGDEFDATMY_PROGDECLBOOLerror[10]在數(shù)據(jù)列表中不允許進行的和初始DEFDATMY_PROGDEFDATMY_PROGDECLBOOLerror[10]DECLINTsize=32在數(shù)據(jù)列表中對數(shù)組進行并在SRC文件中進行初始假如數(shù)組是如此建立在數(shù)據(jù)列表中的,則不能DEFDATMY_PROGDECLBOOLerror[10]只能通過變量顯示檢查DEFDATMY_PROGDECLBOOLerror[10]DEFDEFMY_PROG()或DEFDEFMY_PROG()FORx=1TO借助于循環(huán)進行初DECLDECLINTparts[15]DECLINTxFORx=1TODECLINTx,yFORx=1TOFORy=1TOparts_table[x,y]=6DECLINTx,y,zFORx=1TOFORy=1TOFORz=1TOparts_palette[x,y,z]=12
確定數(shù)組的數(shù)據(jù)類確定數(shù)組的有效性和生存進行數(shù)組初始化數(shù)組SCRSRCDEFDEFMY_PROG(DECLINTcounterFORcounter=1TO10palette_size[counter]=counter*1.5palette_size[8]=;IFpalette_size[3]>4.2
3-復(fù)合型數(shù)據(jù)類型:結(jié)為所有部分匯總起來可描述一輛汽用STRUC可自行定義一個結(jié)結(jié)構(gòu)是不同數(shù)據(jù)類型的組STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOL一種結(jié)構(gòu)必須首先經(jīng)過定義,然后才能繼續(xù)結(jié)構(gòu)的使 結(jié)構(gòu)的可用性/定在結(jié)構(gòu)中可使用簡單的數(shù)據(jù)類型INT、REAL、BOOL及STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOL在結(jié)構(gòu)中可以嵌入CHAR數(shù)STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOLair_condition,CHARPOSSTRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOLair_condition,POS定義完結(jié)構(gòu)后還必須對此工作變STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOLair_conditionDECLCAR_TYPEmy_car結(jié)構(gòu)的初始化更初始化可通過括號進通過括號初始化時只允許使用常量(固定值賦值順序可以不用理my_carmy_car={motor50,price14999.95,air_condition=my_car={price14999.95,motor50,air_condition=在結(jié)構(gòu)中不必指定所有結(jié)構(gòu)元一個結(jié)構(gòu)將通過一個結(jié)構(gòu)元素進行初未初始化的值已被或?qū)⒈辉O(shè)置為未知my_carmy_carmotor75}價格未初始化也可以通過點號進my_car.pricemy_car.price=通過點號進行初始化時也可以使用變my_car.pricemy_car.price=my_car.pricemy_car.price=END$CONFIG.DAT命不允許使用為了便于辨認(rèn),自定義的結(jié)構(gòu)應(yīng)以TYPE結(jié)KUKA位置范圍內(nèi)預(yù)設(shè)定的KUKA結(jié)AXIS:STRUCAXISREALA1,A2,A3,A4,A5,E,E6FRAME:STRUCFRAMEREALX,Y,Z,A,B,POS:STRUCFRAMEREALX,Y,Z,A,B,INTS,T帶一個位置的結(jié)構(gòu)的初始通過括號初始化時只允許使用常量(固定值STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOLair_condition,POSDECLCAR_TYPEmy_car={price14999.95,motor50,air_condition=TRUE,car_pos{X1000,Y500,A0}}初始化也可以通過點號進my_car.pricemy_car.price=my_car.car_pos={X1000,Y500,A通過點號進行初始化時也可以使用變my_car.price=14999.95my_car.price=14999.95my_car.car_pos.Y=750創(chuàng)建結(jié) 1.結(jié)構(gòu)的定STRUCSTRUCCAR_TYPEINTmotor,REALprice,BOOL工作變量DECLDECLCAR_TYPE工作變量的初始my_carmy_car={motor50,price14999.95,air_condition=值的更改和/或工作變量的值比my_car.price=my_car.price=my_car.price=IFmy_car.price>=20000.0枚舉數(shù)據(jù)類型明文用作變3-枚舉數(shù)據(jù)類型由一定量的常 (例如紅、黃、或藍)組ENUMENUMCOLOR_TYPEgreen,blue,red,常量是可的名常量由編程員確一種枚舉類型必須首先經(jīng)過定義,然后才能繼續(xù)
一個諸COLOR_TYPE型箱體顏色的工作變量只能總是接受一個常量的一個常量的賦值始終以符號#進可用性應(yīng)只能使用已知常枚舉類型可擴展任意多枚舉類型可單獨ENUMENUMCOLOR_TYPEgreen,blue,red,枚舉類型可嵌入結(jié)構(gòu)ENUMENUMCOLOR_TYPEgreen,blue,red,STRUCCAR_TYPEINTmotor,REALprice,COLOR_TYPE有效性生存創(chuàng)建的局部枚舉類型在到達ENDGAT命枚舉類型及其常量的名稱應(yīng)一目不允許使用 1.枚舉變量和常量的定ENUMENUMLAND_TYPEde,be,cn,fr,es,br,us,工作變量DECLDECLLAND_TYPE工作變量的初始my_landmy_land=工作變量的值比IFIFmy_land==#es子程用局部子程序工局部子程序的定 局部子程序位于主程序之后并以DEFName_Unterprogramm()和標(biāo)DEFDEFMY_PROG(此為主程)DEFLOCAL_PROG2(此為局部子程序DEFLOCAL_PROG3(此為局部子程序SRC255局部子程序允許多次調(diào)局部程序名稱需要使用括
運行完畢局部子程序后,跳回到調(diào)出子程序后面的第一個DEFDEFMY_PROG(此為主程))DATDEFDEFMY_PROG(DEFDATDEFDATMY_PROG(DECLE6POSXP1={X100,Z200,Z300...E6用RETURN可結(jié)束子程序,并由此跳回到先前調(diào)用該子程序的程序模DEFDEFMY_PROG(此為主程)IF$IN[12]==FALSE跳回主程
專家用DEF行顯SCRDEFDEFMY_PROG(用光標(biāo)跳到END行下通過DEF、程序名稱和括號指定新的局部程DEFDEFMY_PROG(DEFPICK_PART(通過END命令結(jié)束新的子程DEFDEFMY_PROG(用回車鍵確認(rèn)后會在主程序和子程序之間插入一個DEFDEFMY_PROG(DEFPICK_PART()這時便可以繼續(xù)編輯主程序和子關(guān)閉并保存用全局子程序工全局子程序的定 DEFDEFGLOBAL1(DEFDEFGLOBAL2(全局子程序允許多次調(diào)
運行完畢局部子程序后,跳回到調(diào)出子程序后面的第一個DEFDEFGLOBAL1(DEFDEFGLOBAL2(DEFDEFGLOBAL3(點坐標(biāo)保存在各個所屬的DAT列表中,并相關(guān)程序使DEFDEFGLOBAL1(PTPP1Vel=100%PDAT1DEFDATDEFDATGLOBAL1(DECLE6POSXP1={X100,Z200,Z300...E60.0}Global2P1的不同DEFDEFGLOBAL2(PTPP1Vel=100%PDAT1DEFDATDEFDATGLOBAL2(DECLE6POSXP1={X800,Z775,Z999...E60.0}用RETURN可結(jié)束子程序,并由此跳回到先前調(diào)用該子程序的程序模塊DEFDEFGLOBAL1(DEFDEFGLOBAL2(IF$IN[12]==FALSETHENRETURN返回GLOBAL1(
專家用新建程DEFDEFMY_PROG(新建第二個DEFDEFPICK_PART(借助程序名和括號編程設(shè)定子程序的DEFDEFMY_PROG(關(guān)閉并保存將參數(shù)傳遞給子程參數(shù)傳遞說 句DEFDEFMY_PROG(CALC(K,DEFDEFCALC(R:IN,可通過兩種方法將參數(shù)傳遞給子IN參作為OUT參既可將參數(shù)傳給局部的子程序,也可傳給全局子參數(shù)傳遞的原 作為IN參數(shù)的參數(shù)傳遞(Callby變量值在主程序中保持不變,即變量以主程序原來的值繼續(xù)子程序只能變量值,但不能寫OUT參數(shù)的參數(shù)(Callby變量值會在主程序中同時更改,即變量應(yīng)用子程序子程序并更改該值,然后返回新的將參速傳遞給局部子程DEFDEFMY_PROG()DECLREALr,sDEF"r"僅為只讀傳num1DECLREALnum1DEF"s"num2、更改并傳回將參速傳遞給全局子程DEFDEFMY_PROG()DECLREALr,DEFDEF"r"num1DECLREALnum1DEFDEF"s傳遞至num2、更改并傳DECLREAL始終可以向相同的數(shù)據(jù)類型進行值傳向其它數(shù)據(jù)類型進行值傳DEFDEFMY_PROG(數(shù)據(jù)類型數(shù)據(jù)類型備錯誤(...參數(shù)不兼容NTREAL使用ASCI表中的使用CI表中的NT使用ASCII中的REALREAL值被四REALASCI表中多參數(shù)DECLREALwDECLINTa,bCALC(w,b,CALC(w,30,DEFCALC(ww:OUT,bb:IN,;1.)w<->ww,b->bb,a<->;2.)w<->ww,30->bb,a<->aaDECLREALwwDECLINTaa,RECHNE(w,,使用數(shù)組進行參數(shù)傳數(shù)組只能被整個傳遞到一個新的數(shù)組數(shù)組只允許以參數(shù)OUT(Callbyreference)的方式進行傳DEFMY_PROG()DECLDEFMY_PROG()DECLCHARname[10]DEFFELD_3D[,,]?3單個數(shù)組元素也可以被傳DEFMY_PROG()DECLDEFMY_PROG()DECLCHARname[10]DEF
預(yù)先考確定在子程序中需要哪些確定參數(shù)傳遞的種類(IN或OUT參數(shù)確定原始數(shù)據(jù)類型和目標(biāo)數(shù)據(jù)類型(數(shù)據(jù)類型最好相同確定參數(shù)傳遞的順將主程序載入編輯在主程序中、初始化及可能需要變通過變量調(diào)用創(chuàng)建子程序關(guān)閉并保存主程將子程序載入編輯在子程序中、初始化及可能需要變DECLREALwDECLINTa,Anzahlw=1.5a=b=5函數(shù)編通過KRL定義函 函數(shù)是一種向主程序返回某一值的子程通常需要輸入一定的值才能計算返回在函數(shù)頭中會規(guī)定返回到主程序中的數(shù)據(jù)待傳遞的值通過指令ETRNrtr_vae)傳有局部和全局函數(shù)兩函數(shù)的DEFFCTDEFFCTDATATYPENAME_FUNCTION(KRL函數(shù)的原 程序名同時也是一種特定數(shù)據(jù)類型的變量名調(diào)用全局函DEFDEFMY_PROG(DECLREALresult,result=DEFFCTDEFFCTREALDECLREALreturn_value,調(diào)用局部函DEFDEFMY_PROG(DECLREALresult,result=DEFFCTREALDECLREALreturn_value,INOUTIN參數(shù)進行值傳DEFDEFMY_PROG(DECLREALresult,valuevalue=2.0result=;value=;result=1000.0DEFFCTDEFFCTREALDECLREALreturn_value,numnum=num+8.0return_value=num*100.0OUT參數(shù)進行值傳DEFDEFMY_PROG(DECLREALresult,valuevalue=2.0result=;value=;result=1000.0DEFFCTDEFFCTREALDECLREALreturn_value,numnum=num+8.0return_value=num*100.0
確定該函數(shù)應(yīng)提供哪個值(返回數(shù)據(jù)類型確定函數(shù)中需要哪些參數(shù)(傳遞數(shù)據(jù)類型INOUT確定需要的是局部還是全局函將主程序載入編輯在主程序 、初始化及可能需 變創(chuàng)建函數(shù)調(diào)關(guān)閉并保存主程創(chuàng)建函數(shù)(全局或局部將函數(shù)載入編輯DEFFCT行中補充數(shù)據(jù)類型、變量及在函數(shù)中、初始化及變創(chuàng)建RETRUN(return_value關(guān)閉并保存使用KUKA標(biāo)準(zhǔn)函數(shù)使用KUKA
數(shù)學(xué)函說絕對平方)正余)正反余反正字符串變量的函數(shù)說時確定字符串長)初始化后的字符串變量長)刪除字符串變量的內(nèi))擴展字符串比較字符串變量的內(nèi)p(字符串用于信息輸出的函數(shù)說設(shè)置信設(shè)置檢查信Exst_r檢刪除信信息緩每一標(biāo)準(zhǔn)函數(shù)均用傳遞參數(shù)調(diào)出帶固定resultresult=簡單數(shù)據(jù)類型變resultresult=數(shù)組變resultresult=枚舉數(shù)據(jù)類型變結(jié)構(gòu)變帶多個不同resultresult= g(#QUIT,message_parameter,parameter[],構(gòu)每個函數(shù)均需要一個可將該函數(shù)的結(jié)果其中的合適變量字符串函數(shù)返回(BOOL)或INT刪除字符result=信息函數(shù)返回BO)或NT;;刪除信息提示(BOOL:已刪除result= KRL行運動KRL運動編運動的定 對運動的必要說運動方式PTP、LIN、目標(biāo)位置,必要時還有輔助位精確暫?;蜍壽E可能還有軌跡近距加速TCP工作基機器人引導(dǎo)型或外部工沿軌跡運動時的姿態(tài)引可能還有軌跡近距CRC運動編程原 運動方式PTP目標(biāo)點<C_PTP<軌跡近DAT給機器人,機器人軌跡近P3點。PTPPTPXP3機器人運動到輸入的位(AXISPTPPTP{A10,A2-80,A375,A430,A530,A6空間位置(以當(dāng)前激活的工具和基坐標(biāo)PTPPTP{X100,Y-50,Z1500,A0,B0,C90,S3,T3機器人僅在輸入一個或多個集合時運PTPPTP{A130}僅A1移動至PTP{X200,A30}僅在X至200mmA至運動方式LIN目標(biāo)點<軌跡近機器人運行到一個算出的位置并軌跡近點]LINLINABLAGE[4]運行方式CIRC輔助點,目標(biāo)點<,CA圓心角><軌跡近DAT給機器人,機器人運行一段對應(yīng)19°圓心角的弧段。CIRCCIRCXP3,XP4,CA5-1CA°°運動參數(shù)的功 運動編程的預(yù)設(shè)可以應(yīng)用現(xiàn)有的設(shè)置從INI行的運從最后一個聯(lián)機表單從相關(guān)系統(tǒng)變量的最后設(shè)工具:$TOOL激活所測量的$TOOL$TOOL=tool_data[x];x=激活所屬的負載數(shù)$LOAD$LOAD=load_data[x];x=參考基坐標(biāo)/工作基坐標(biāo)激活所測量的基坐$BASE$BASE=base_data[x];x=機器人引導(dǎo)型或外部工具機器人引導(dǎo)型工$IPO_MODE$IPO_MODE=外部工$IPO_MODE$IPO_MODE=速度進行PTP動$VEL_AXIS[x]$VEL_AXIS[x];x=1...8,針對每根LINCIRC$VEL.CP2.0$VEL.CP2.0[m/s]軌跡速$VEL.ORI1150/s]回轉(zhuǎn)速$VEL.ORI2200/s]轉(zhuǎn) 加進行PTP動$ACC_AXIS[x]$ACC_AXIS[x];x=1...8,針對每個LINCIRC$ACC.CP2.0$ACC.CP2.0[m/s]軌跡加速$ACC.ORI1150/s]回轉(zhuǎn)加速$ACC.ORI2200/s]轉(zhuǎn)動加速圓滑過PTPXP3PTPXP3$APO_CPTP50C_PTP的軌跡近大小,單位與目標(biāo)點的距離必須低于$APO.CDIS的值PTPPTPXP3C_DISLINXP4$APO.CDIS250.0[mm]距LIN、CCC_ORIAPOCRI的值LINLINXP4$APO.CORI50.0LIN、CRC在駛向目標(biāo)點的階段中速度必須低于$APO.CVEL的LINLINXP4$APO.CVEL75.0LINCIRC$ORI_TYPE$ORI_TYPE=圖5-3穩(wěn)定的方向?qū)?ORI_TYPE$ORI_TYPE=在進行軌跡運動期間,姿態(tài)會根據(jù)目標(biāo)點的姿態(tài)不斷地自動改圖5-4:標(biāo)準(zhǔn)或手動$ORI_TYPE$ORI_TYPE=在進行軌跡運動期間,工具的姿態(tài)從起始位置至終點位置不斷地被改變。這是通過手軸角度的線性超控引導(dǎo)來實現(xiàn)的。手軸奇點問題可通過該選項予以避免,因為繞工具作業(yè)方向旋轉(zhuǎn)和回轉(zhuǎn)不僅限$CIRC_TYPE$CIRC_TYPE=圓周運動期間以軌跡為參照的姿態(tài)引圖5-5恒定姿態(tài),以軌跡為參$CIRC_TYPE$CIRC_TYPE=圓周運動期間以空間為參照的姿態(tài)引圖5-6:恒定的姿態(tài),以基坐標(biāo)為參
作為專家借助打開鍵將程序載入編輯檢查、應(yīng)用或重新初始化運動編程的預(yù)設(shè)定$TOOL基坐標(biāo)設(shè)置機器人引導(dǎo)型或外部工具)速加速可能還有軌跡近距可能還有姿態(tài)引創(chuàng)建由以下部分組成的運動指令(PTP、LN、激活軌跡近(C_PTP、C_DS、C_ORI、重新運動時返回點關(guān)閉編輯器并保KRL相對運動說 絕對運PTPPTP{A3相對運PTP_RELPTP_REL{A3相對運動的RELRELREL相對運動PTP_REL目標(biāo)點<C_PTP<軌跡近2沿負方向移動30度。其它的軸都不PTP_RELPTP_REL{A2-X100mm,Z200mm。Y、A、B、C和S保持不變。T將根據(jù)最短路徑加以計算。PTP_RELPTP_REL{X100,Z-相對運動LIN_REL目標(biāo)點<軌跡近>動200mm。Y、A、B、C和S保持不變。T則從運動中得出。LIN_RELLIN_REL{X100,Z200}#BASE為默認(rèn)設(shè)B、CS保持不變。T則從運動中得出。XLIN_RELLIN_REL{X-100}相對運動CIRC_REL輔助點,目標(biāo)點<,CA圓心角><軌跡近圓周運動的目標(biāo)點通過5°的圓心角加以規(guī)定。目標(biāo)點被軌跡近CIRC_RELCIRC_REL{X100,Y30,Z-20},{Y50},CA500
作為專家借助打開鍵將程序載入編輯檢查、應(yīng)用或重新初始化運動編程的預(yù)設(shè)定$OOL基坐標(biāo)設(shè)置機器人引導(dǎo)型或外部工具速加速可能還有軌跡近距可能還有姿態(tài)引創(chuàng)建由以下部分組成的運動指運動方PTP_REL、LNREL、LIN(#BASE激活軌跡近(C_PTP、C_DS、C_ORI、重新運動時返回點關(guān)閉編輯器并保計算或機器人位說 機器人的目標(biāo)位使用以下幾種結(jié)構(gòu)可以DAT文件中的現(xiàn)有位現(xiàn)有位置上的單個集合可以通過點號有針對性地加以原重要的$POS_ACT(E6POS)TCP$AXIS_ACT:基于軸坐標(biāo)的當(dāng)前機器人位置(額定值。變量包含當(dāng)前的軸角或軸位計算絕對目標(biāo)位DATXP1.x=450;XP1.x=450;新的X值450mmXP1.z30*distance計算新的Z值PTPXP1DATX值每次推移450mmXP2.xXP2.x450PTPXP2位置被應(yīng)用,并被保存在一個變mypositionmyposition=myposition.xmyposition.x100x值加上100mmmyposition.z=10*distance;計算新的Z值myposition.t35設(shè)置轉(zhuǎn)角方向PTPXP3未改PTPmyposition;計算出的操作步 作為專家借助打開鍵將程序載入編輯器計算/位置。新計算得出的值可能要暫存在新的變量檢查、應(yīng)用或重新初始化運動編程的預(yù)設(shè)定$TOOL基坐標(biāo)設(shè)置機器人引導(dǎo)型或外部工具)速加速可能還有軌跡近距可能還有姿態(tài)引創(chuàng)建由以下部分組成的運動指令(PTP、LN、(CIRC激活軌跡近(C_PTP、C_DIS、C_ORI、重新運動時返回點關(guān)閉編輯器并保有針對性地更改狀態(tài)和轉(zhuǎn)角方向比 TCP位置XY,Z)和姿態(tài)AB,C)的數(shù)值不足于明確規(guī)定機器人的位置,因為雖然TCP相同,但軸的位置仍可能有多個。狀態(tài)和轉(zhuǎn)角方向用于從5-9:TCPST)POSE6POSSTRUCSTRUCPOSREALX,Y,Z,A,B,C,INTS,STRUCE6POSREALX,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6,INTS,POSE6POS型的完P(guān)TP指AXISE6AXIS完整PTP“完整”表示必須輸入目標(biāo)點的所有組成內(nèi)容。HOME位置始終是完整的PTP指令。在其它指令中可以略去狀態(tài)和轉(zhuǎn)角方機器人控制器保留現(xiàn)有的狀態(tài)值CP(即不會損壞軟件限位開關(guān),同時最接近起始角)功 STATUS位0(A4、A5、A6)圖5-10:例如:手軸的交(紅色的點)位于基本區(qū)域位1:給出軸3的位置。比特位1值改變時對應(yīng)的角取決于機器人類型。對軸3和軸4相交的機器人,適用:位值A(chǔ)3≥1A3<15-11:A3A4KR位2:給5位值A(chǔ)5>2A5≤2比特位30 4:說明是否用一臺絕對精確的機器人對點進行示教44。說值該點未用絕對精確的機器人示教4該點已用一個絕對精確的機器人示教4大于+180或小于180的軸角。對于旋轉(zhuǎn)軸來說,各比特位如下決定各軸概值5432100A60A50A40A3≥°A20A101A6<0A5<0A4<0A3<0A2<0A1<0示DECLDECLPOSXP1={X900,Y0,Z800,A0,B0,C0,S6,TT19相當(dāng)于TB11。即軸角二進A負1A負2A正4A正8A負A正操作步 作為專家借助打開鍵將程序載入編輯器2.狀態(tài)和轉(zhuǎn)角方向。新計算得出的值可能要暫存在新的變量檢查、應(yīng)用或重新初始化運動編程的預(yù)設(shè)定$OOL基坐標(biāo)設(shè)置機器人引導(dǎo)型或外部工具速加速可能還有軌跡近距可能還有姿態(tài)引創(chuàng)建由以下部分組成的運動指令運動方式(PTP、LIN、)激活軌跡近(C_PTP、C_DS、C_ORI、重新運動時返回點關(guān)閉編輯器并保用系用計時器測量節(jié)拍時用KUKA系統(tǒng)計時6-系統(tǒng)變量TERN]用于測量時 通過KRL啟動和停啟動:$TIMER_STOP[Nr停止:$TIMER_STOP[Nr
計時器的預(yù)交貨時計時器的預(yù)設(shè)為0計時器保持其當(dāng)可將計時器往前或往后調(diào)到任意一個計時器5預(yù)設(shè)為$TIMER[5]=計時器12設(shè)定為1.5$TIMER[12]=時器4回調(diào)至-8$TIMER[4]=-計時器的復(fù)位和啟計時器7復(fù)位至$TIMER[7]=啟動計時器$TIMER_STOP[7]=停止計時器并接著進行比計計時器7計時停止計時器$TIMER_STOP[7]=;10秒 時IF$TIMER[7]>=10000
32種可能的計時器中選擇一個計時器的預(yù)設(shè)在注意預(yù)進指針的情況下啟動計在注意預(yù)進指針的情況下停止計可能需要臨時保存當(dāng)前的節(jié)拍時間或者重新預(yù)設(shè)計DEFDEFMY_TIME($TIMER[1]0復(fù)位計時器?1PTPHOMEVel=100%DEFAULTWAITSEC0PTPXP1PTPXP2LINXP3PTPPTPHOMEVel=100%$TIMER_STOP[1]=TRUE12使用程序流程詢問或if分支的
if分支用于將程序分為多個路徑IFTE)FALSEif分 if分
if分帶選擇分支IFIFcondition指無選擇分支語句(詢問IFIFconditionif分支示 沒有可選分支的if分DEFDEFMY_PROG(DECLINTerror_nr=error_nr5P21IFerror_nr==5THENPTPP21Vel=100%PDAT21有可選分支的if分DEFDEFMY_PROG(DECLINTerror_nr=僅在error_nr5時駛至P21,否則P22IFerror_nr==5THENPTPP21Vel=100%PDAT21PTPP22Vel=100%PDAT22有復(fù)雜執(zhí)行條件的if分DEFDEFMY_PROG(DECLINTerror_nr=僅在error_nr1或10或大于99時駛至IF((error_nr==1)OR(error_nr==10)OR(error_nr>99))THENPTPP21Vel=100%PDAT21有表達式的if分DEFDEFMY_PROG(DECLBOOLno_error=僅在無故障(no_error)時駛至P21IFno_error==TRUETHENPTPP21Vel=100%PDAT21IFno_error==TRUETHENIFno_errorTHEN(TRUE)給switch-case分支編分支
若需要區(qū)分多種情況并為每種情況執(zhí)行不同的操作,則可用swihcase指switch指令用于區(qū)分各種情況switch指令中傳遞的變量用作開關(guān),在指令塊中跳到預(yù)定義的case指令switch指令未找到預(yù)定義的case,則運行default(默認(rèn))switch-caseSWITCHSWITCHCASECASE
圖7-2:程序流程圖switch-case分可使用有下列數(shù)據(jù)類型的swic-caseCASE1CHAR(單個字符CASE"X"ENUM(枚舉數(shù)據(jù)類型CASE#T1僅含定義的swicaseCASE1 不等于或或時則直接跳至僅含定義的wicase分支和一種替代情CASE1當(dāng)編號123DEFAULTwihcase分支中有多種解決CASE1,2CASE
無替代情況的switch-case分DEFDEFMY_PROG(DECLINTerror_nr=;僅在 情況下才可運CASE1PTPP21Vel=100%CASEPTPP22Vel=100%PDAT22CASE3PTPP23Vel=100%PDAT23CASE4PTPP24Vel=100%PDAT24無替代情況的switch-case分DEFDEFMY_PROG(DECLINTerror_nr=(HOME)SWITCHerror_nrCASEPTPP21Vel=100%PDAT21CASE2PTPP22Vel=100%PDAT22CASE3PTPP23Vel=100%PDAT23CASE4PTPP24Vel=100%PDAT24PTPHOMEVel=100%DEFAULT帶枚舉數(shù)據(jù)類型的switch-case分DEFDEFMY_PROG(ENUMCOLOR_TYPEred,yellow,blue,greenDECLCOLOR_TYPEmy_colormy_color=CASE#redPTPP21Vel=100%CASEPTPP22Vel=100%CASEPTPP23Vel=100%CASEPTPP24Vel=100%PDAT24給循環(huán)編循環(huán)概 循環(huán)用于重復(fù)程序指不允許從外部跳入循環(huán)結(jié)循環(huán)可互相有不同的循環(huán)類無限循計數(shù)循條件循當(dāng)型循直到型給無限循環(huán)無限循環(huán)的說 無限循環(huán)是每次運行完之后都會重新運行的循環(huán)運行過程可通過外部控制而終止句 指無限循環(huán)的
圖7-3程序流程圖:無限循無限循環(huán)可直接用EXIT退用EXIT退出無限循環(huán)時必須注意避免如果兩個無限循環(huán)互相嵌套,則需要兩個EXIT無中斷的無限循PTPHOMEVel=100%PTPP1Vel=90%PDAT1PTPP2Vel=100%PDAT2PTPP3Vel=50%PDAT3PTPP4Vel=100%PDAT4PTPP5Vel=30%PTPHOMEVel=100%DEFAULT帶中斷的無限循DEFDEFMY_PROG()PTPHOMEVel=100%PTPP1Vel=90%PDAT1PTPP2Vel=100%IF$IN[3]==TRUETHENPTPP3e=%PTPP5e=3%PTPHOMEVel=100%DEFAULT給計數(shù)循環(huán)計數(shù)循環(huán)的定 循環(huán)是一種可以通過規(guī)定重復(fù)次數(shù)執(zhí)行一個或多個指令的控制結(jié)構(gòu)FORFORcounter=startTO指步幅(increment)也可通過STEP指定為某個整數(shù)FORFORcounter=startTOlastSTEP指計數(shù)循環(huán)的圖7-4:程序流程圖:計數(shù)循要進行計數(shù)循環(huán)則必須事先一個整數(shù)變該計數(shù)循環(huán)從值等于start時開始并最遲于值等于lastFORFORcounter=startTO指DECLDECLINTFORcounter=1TO3Step指循環(huán)計數(shù)器被用起始值進行初始化:counter循環(huán)計數(shù)器在ENDFOR時會以步幅STEP遞增計后程序在R使用計數(shù)循環(huán)進行遞減計DECLDECLINTFORcounter=15TO1Step-指使用計數(shù)循環(huán)編 計數(shù)循環(huán)編程的示沒有指定步幅的單層計數(shù)DECLDECLINTFORcounter=1TO指定步幅的單層計數(shù)循DECLDECLINTFORcounter=1TO4STEPcounter=35指定步幅的雙層計數(shù)循DECLDECLINTcounter1,FORcounter1=1TO21STEPFORcounter2=20TO2STEP-當(dāng)型循環(huán)的當(dāng)型循環(huán)的說 當(dāng)型循環(huán)也被稱為前測試循環(huán)這種循環(huán)會一直重復(fù)過程,直至滿足某一條件(conition)為止句WHILEWHILE指當(dāng)型循環(huán)可通過EXIT指令立即退當(dāng)型循環(huán)的
圖7-5:程序流程圖:當(dāng)型循當(dāng)型循環(huán)用于先檢測是否開始某個重復(fù)如要完成循環(huán),必須滿足執(zhí)行條執(zhí)行條件不滿足時會導(dǎo)致立即結(jié)束循環(huán),并執(zhí)行ENDWHILE后的指令
具有簡單執(zhí)行條件的當(dāng)型WHILEWHILEIN[41]==TRUE部件備好在具有簡單否定型執(zhí)行條件的當(dāng)型WHILENOTIN[42]==TRUE輸入端42為或WHILEIN[42]==FALSE輸入端42為具有復(fù)合執(zhí)行條件的當(dāng)型WHILE((IN[40]==TRUE)AND(IN[41]==FALSE)OR(counter>20))PALETTE()直到型循環(huán)的編直到型循環(huán)的說 直到型循環(huán)也稱為后測試循環(huán)這種直到型循環(huán)先執(zhí)行指令,在結(jié)束時測試退出循環(huán)的條件是否已經(jīng)滿足句指UNTIL直到型循環(huán)可通過EXIT指令立即退直到型循環(huán)的原
圖7-6:程序流程圖:直到型循條件滿足時,退出循環(huán),執(zhí)行UNTIL后的指 PICK_PART(UNTILIN[42]==TRUE輸入端42為具有復(fù)雜執(zhí)行條件的直到型循UNTIL((IN[40]==TRUE)AND(IN[41]==FALSE)OR等待函數(shù)7-KRL時間等待函信號等待函時間等待函
在過程可以繼續(xù)運行前,時間等待函數(shù)等待指定的時間(time)句WAITWAITSEC時間等待函數(shù)原 時間等待函數(shù)的單位為秒 時間值也可用一個合適的變量來如果給出的時間為負值,則不等時間等待函數(shù)觸發(fā)預(yù)進停止,因此無法軌跡WAITSECPTPP1PTPP1Vel=100%PDAT1PTPP2Vel=100%PDAT2WAITSEC5.25PTPP3Vel=100%
具有固定時間的時間等待圖7-8邏輯運動示具有計算出時間的時間等待函WAITWAITSEC具有變量的時間等待函DECLDECLREALtimetime=12.75WAITSECtime信號等待函 信號等待函數(shù)在滿足條件(condition)時才切換到繼續(xù)進程,使過程得以句WAITWAITFOR信號等待函數(shù)原 信號等待函數(shù)觸發(fā)預(yù)進停止,因此無法軌跡盡管已滿足了條件,仍生成預(yù)進用指令CONTINUE可預(yù)進停圖7-9:帶預(yù)進的邏輯運動示PTPP1PTPP1Vel=100%PTPP2CONTVel=100%PDAT2WAITFOR$IN[20]PTPP3Vel=100%
WAIT圖7-10:輯運動示PTPPTPP1Vel=100%PTPP2CONTVel=100%PDAT2WAITFOR($IN[10]OR$IN[20])PTPP3Vel=100%PDAT3圖7-11:預(yù)進的邏輯運動示KRL的切換函簡單切換函數(shù)的編簡單切換函數(shù)說 概輸入/輸出端通過可作為選項配備的現(xiàn)場總線系統(tǒng)根據(jù)用戶要求進行專門配項目設(shè)計通過okVsul
8-簡單切簡單開關(guān)一個輸(含預(yù)進預(yù)進停止給輸出端加上脈用主進指針來切換輸出端(無預(yù)進停止簡單開/關(guān)一個輸出接通一個輸關(guān)閉一個輸通過輸出端的切換將生成一個預(yù)進停止,因此不能進行軌跡近運PTPPTPP20CONTVel=100%PTPP21CONT圖8-2:帶預(yù)進停止的切用指令CONTINUE可取消預(yù)進停用指令CONTINUE也同時切換到預(yù)可用CONTINUE軌跡CONTINUE僅涉及下一行(包括空行PTPP20CONTVel=100%PDAT20PTPP21CONT最多可有8個輸出端根據(jù)主進切換,不會引起預(yù)進如果編程設(shè)定了精確停止,則達到目標(biāo)點時如果編程設(shè)定了軌跡近,則將在向目標(biāo)點進行軌跡近運動的中點切LINLINP20CONTVel=100%LINP21CONT設(shè)定一個脈在此過程中,輸出端在特定時間內(nèi)設(shè)置為定義的此后輸出端由系統(tǒng)自動復(fù)PULSE(脈沖)指令觸發(fā)一次預(yù)進停句PULSE信號,電平,脈沖寬度PULSEPULSE($OUT[30],TRUE,20);正脈PULSE($OUT[31]FALE,20);負脈如果在結(jié)束指令之前編程設(shè)定了一個脈沖,則程序處理時間將相應(yīng)圖8-5:PULSE+END如果在脈沖激活狀態(tài)將程序處理復(fù)位RESET或中斷CANCEL),則脈;;現(xiàn)在程序復(fù)位或取消選圖8-6:PULSE+RESET
帶預(yù)進停止的輸出端切LINP20CONTVel=100%$OUT[50]=TRUELINP21CONTLINP22CONT借助脈沖功能帶預(yù)進停止的輸出端切LINP20CONTVel=100%PULSE$OUT[50TRUE,1.5)正脈沖PULSE($OUT[51],FALSE,1.5);負脈沖LINP21CONTVel=100%PDAT21在預(yù)進過程中的輸出端切LINP20CONTVel=100%PDAT20$OUT[50]=TRUELINP21CONTVel=100%PDAT21LINP22CONT借助脈沖功能在預(yù)進過程中的輸出端切LINP20CONTVel=100%PDAT20PULSE$OUT[50TRUE,1.5)PULSE$OUT[51]FALSE,1.5);LINP21CONT帶主進的輸出端切LINP20CONTVel=100%LINP21CONTTRIGGERWHENDISTANCE語句并以軌跡為參照的切換函數(shù)編WHENDISTANCE句法并以軌跡為8-7:循環(huán)應(yīng)用程軌跡切換指令TRIGGER可以觸發(fā)一個定義的指令指令與運動語句的起點或目標(biāo)點指令與機器人運動同時執(zhí)可以有切換點延使用TRIGGERWHEN使用TRIGGERWHEN
句TRIGGERWHENDISTANCE位置DELAY時間DO指令<PRIO優(yōu)先級位置:規(guī)定在哪個點觸發(fā)指令??赡艿?:指令在動作語句的起點處被觸發(fā)時間:以此可確定所選位置的延遲可應(yīng)用正值和負時間以毫秒ms)為單位時間值過大或過小時最遲或最早將于切換極限處指令:可行的方式有給一個變量OUT指PULSE調(diào)出一個子程序。在此情況下,必須給明優(yōu)先級優(yōu)先級(僅當(dāng)調(diào)出一個子程序時優(yōu)先級40-80預(yù)留給優(yōu)先級由系統(tǒng)自動分配的情況。如果優(yōu)先級系統(tǒng)自動給出,則應(yīng)如下進行編程:PRIOTRIGGERWHENDISTANCELINXP1LINTRIGGERWHENDISTANCE=0DELAY=20DOduese=TRUETRIGGERWHENDISTANCE=LINXP1LINTRIGGERWHENDISTANCE=0DELAY=20DOduese=TRUETRIGGERWHENDISTANCE=1DELAY=-25DOUP1()PRIO=75LINXP3LIN圖8-8:帶精確暫停精確暫停的TRGGERWHENDTNCE起點是軌跡近點,目標(biāo)點是精確停止LINLINLINXP2TRIGGERWHENDISTANCE=0DELAY=20DOduese=TRUEWHENDISTANCE=1DELAY=-25DOUP1()PRIO=75LIN圖8-9:帶軌跡近/精確暫停的TRGGERWHENDTNCE示起點是精確停止點,目標(biāo)點是軌跡近LINTRIGGERWHENDISTANCE=0DELAY=20DOduese=TRUETRIGGERWHENDISTANCE=1DELAY=-25DOUP1()PRIO=75LINXP3C_DISLIN圖8-10:帶精確暫停/軌跡近的TRIGGERWHENDSTANE示起點和目標(biāo)點均為軌跡近LINLINLINXP2TRIGGERWHENDISTANCE=0DELAY=20DOduese=TRUETRIGGERWHENDISTANCE=1DELAY=-25DOUP1()PRIO=75LINXP3C_DISLIN圖8-11:帶軌跡近/軌跡近的TRIGGERWHENDSTANE示使用TRIGGERWHENPATH語句并以軌跡為參照的切換函數(shù)TRIGGERWHENPATH句法8-12:軌跡切換指令TRIGGER可以觸發(fā)一個定義的指令指令PATH與運動語句的目標(biāo)點有指令與機器人運動同時執(zhí)可以與切換點有空間和/或時間上的位移/。TRIGGER
句TRIGGERWHENPATH行程段DELAY時間DO<PRIO行程段:確定相對目標(biāo)點的位移正值:向運動結(jié)束方向推送該指負值:向運動開始方向推送該指值過大或過小時最遲或最早將于切換極限處時間:在此通過PATH值確定至選定位置的位移時可應(yīng)用正值和負時間以毫秒ms)為單位時間值過大或過小時最遲或最早將于切換極限處指令給一個變量OUT指PULSE調(diào)用一個子程序。在此情況下,必須給明優(yōu)先級優(yōu)先級(僅當(dāng)調(diào)用一個子程序時優(yōu)先級40-80預(yù)留給優(yōu)先級由系統(tǒng)自動分配的情況。如果優(yōu)先級系統(tǒng)自動給出,則應(yīng)如下進行編程:PRIO切換區(qū)朝運動結(jié)束方向位移指令可最多執(zhí)行至TRIGGERWHENPATH后的第一個精確停止點(經(jīng)圖即:即:如果目標(biāo)點是一個精確停止點,則該指 出該目標(biāo)點朝運動起始方向位移指令可最多執(zhí)行(TRIGGERWHENPATH前的最如果起點是一個精確停止點,則指令可最多執(zhí)行至起圖8-14RGERWHENPATH換點的切換(精確暫停如果起點是一個軌跡近的PTP點,則指令最多可執(zhí)行至其軌跡近圖8-15:RGERWHENPATH切換點的切換極限(軌跡近使用TRIGGERWHENPATH句法
向運動結(jié)束方向切LINLINXP2TRIGGERWHENPATH=YDELAY=XDO$OUT[2]=TRUELINXP3C_DISLINXP4C_DISLINXP5LIN圖8-16:TRGERWHENPATH向運動起始方向切LINLINXP2TRIGGERWHENPATH=YDELAY=XDO$OUT[2]=TRUELINXP3C_DISLINXP4C_DISLINXP5LIN圖8-17:TRGERWHENPATHWorkVisual用kVsual進行項目管項目流將項目從機器人控制系統(tǒng)載入W比較項目(合并W將項目從WoVsal載入機器人控制系統(tǒng)(deployen,即調(diào)度激活項目(確認(rèn)Wrul打開項WorkVisual的縮寫 軟件包WorkVisual是受控于KRC4的機器人工作單元的工程環(huán)境。它具有以圖9-1:oVial操作將項目從機器人控制系統(tǒng)傳輸?shù)絣將項目與其它項目進行比較,如果需要則應(yīng)用將項目傳送給機器人控制架構(gòu)并連接現(xiàn)場總編輯安全配對機器圖9-2操作界面概
管理長診斷功顯示機器人控制系統(tǒng)的系統(tǒng)配置測量記錄、啟動測量記錄、分析測量記 (用示波器除了此處圖示的窗口和編輯器之外,還有可供選用。這些可通過菜單【窗口】和【編輯器】顯示【項目結(jié)構(gòu)】窗圖9-3:例如:自動生成的文件為灰設(shè)備在選項卡【設(shè)備】中顯示設(shè)備的關(guān)聯(lián)性。此處可將單個設(shè)備分配給一個機器產(chǎn)品幾何形狀選項卡【幾何形狀】主要用于WrslProcess,較少用于文件選項卡【文件】包含屬于項目的程序和配置文件。自動生成文件(用功能【生成代碼】)在WorkVsul中手動貼入的文件:藍
9-4:項目瀏覽【最后的文件】顯示最后使用的文【建立項目】用于生成一個新的空根據(jù)模板建立一個新項在現(xiàn)有項目基礎(chǔ)上創(chuàng)建新【項目打開】用于打開現(xiàn)有項【查找】用于從機器人控制系統(tǒng)加載一個在每個具有網(wǎng)絡(luò)連接的機器人控制系統(tǒng)中,都可選出一個項目并傳送WorkVisual即使該電腦里尚沒有該項目時也能實 :EigeneDaeen(我的文檔)\WorkVisualPrjctsDnlodedProjects之下。中選項卡【查找】。在展開所需機器人控制系統(tǒng)的節(jié)點。所有項目均將顯選中所需項目,并點擊【打開】鍵。項目將在WVisal里打開用WokVsl比較說 一個WokVl中的項目可以與另一個項目比這可以是機器人控制系統(tǒng)上的一個項目或一個本機保存的一目了然地列出不同之處并可以顯示詳細信用戶可以針對每個不同之處分別是否要保持當(dāng)前項目中的或者要接受另一個項目中的狀項目比較的原 合并項圖9-5項激活的控制系統(tǒng)里的同名項目(只限于通過網(wǎng)絡(luò)連接主項初始項9-6:例如:區(qū)別概覽列說項目結(jié)每個單元都由其被選定的列中的顏色顯所有單元都以黑色顯示綠色:在打開的項目中不存在但在比較項目中存在的單藍色:在打開的項目中存在但在比較項目中不存在的
9-圖9-8項點擊繼續(xù)。顯示一個進度條。(如果項目包含多個機器人控制系統(tǒng),則顯示當(dāng)進度條已填滿且出現(xiàn)狀態(tài)顯示合并準(zhǔn)備就緒時,點擊【顯示區(qū)別】如果合適的話,也可保留默認(rèn)選按動合并,以將更改傳給WoVl應(yīng)用56關(guān)閉窗口【比較項目為這些附加軸打開窗口機器參數(shù)配置在一般軸相關(guān)機器參數(shù)區(qū)域內(nèi)按用于導(dǎo)入機器參數(shù)的按鍵。數(shù)據(jù)即被更新。9-9圖9-10:例:合并項【詳細信息】功能鍵激活時,可顯示不同文件之間的圖9-11例:細節(jié)已將項目傳輸給機器人控制系統(tǒng)(安裝說 如果項目里已發(fā)生變化 必須將變化情況發(fā)送給控制系庫卡將該做法叫做“Deployen”(調(diào)度在將一個項目傳輸?shù)綑C器人控制系統(tǒng)時,總是先生成代與實際機器人控制系統(tǒng)之間的網(wǎng)絡(luò)連接是Dlye”的首要功 生成代以此步驟可單獨生成代碼,這樣可事先檢驗生成過程是否無調(diào)用可通過按序打開菜單:或者按動按鈕<“{”V1}>操作步 1.在菜單欄中點擊【安裝...】鍵。窗口【項目傳輸】打開圖9-13:整配置的概覽及提如果所涉及的項目還從來未從機器人控制系統(tǒng)回傳至WVisal,則它還不包含所有配置文件。這通過一個提示顯示出來。(。13點擊【完整化】。顯示以下安全詢問:項目必須保存,并重置激活的控制系統(tǒng)!您想繼續(xù)嗎?點擊【是】應(yīng)答。窗口【合并項目】隨即打開9-14:完整化項選擇一個要應(yīng)用其配置數(shù)據(jù)的項目,例如一個在實際存在的機器人控制系繼續(xù)】。顯示一個進度條。
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人無息借款合同稅務(wù)處理指南3篇
- 2025年北京公交有軌電車有限公司招聘筆試參考題庫含答案解析
- 2025年冀少新版八年級地理下冊月考試卷含答案
- 2025年浙江嘉興海寧市康源再生資源科技有限公司招聘筆試參考題庫附帶答案詳解
- 2025年遼寧葫蘆島市興城市城建交通集團有限公司招聘筆試參考題庫附帶答案詳解
- 2025年外研版2024高二地理下冊月考試卷含答案
- 2025年人教B版九年級生物上冊階段測試試卷含答案
- 商品房開發(fā)和銷售管理
- 2025年度個人租房合同范本(含家具家電清單)
- 2025年粵人版選修4地理上冊月考試卷含答案
- 拆遷評估機構(gòu)選定方案
- 趣味知識問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標(biāo)全冊教學(xué)設(shè)計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- 徐州市2023-2024學(xué)年八年級上學(xué)期期末地理試卷(含答案解析)
- CSSD職業(yè)暴露與防護
- 飲料對人體的危害1
- 移動商務(wù)內(nèi)容運營(吳洪貴)項目三 移動商務(wù)運營內(nèi)容的策劃和生產(chǎn)
評論
0/150
提交評論