EPSON機械手培訓(xùn)-課件.ppt_第1頁
EPSON機械手培訓(xùn)-課件.ppt_第2頁
EPSON機械手培訓(xùn)-課件.ppt_第3頁
EPSON機械手培訓(xùn)-課件.ppt_第4頁
EPSON機械手培訓(xùn)-課件.ppt_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

EPSON 機械手培訓(xùn),深圳市長榮科機電設(shè)備有限公司 2012年8月,一、關(guān)于機械手的基礎(chǔ)知識 二、硬件概要 三、EPSON RC+ 用戶界面 四、RC+5.4.3軟件操作 五、SPEL+語言 六、動作指令 七、I/O 八、Pallet 九、!.! 并列處理 十、多任務(wù)處理 十一、循環(huán)控制指令 十二、程序?qū)嵗?1、機械手坐標系,1.1 SCARA機械手坐標系,XY方向坐標(前后左右),Z方向坐標(上下),U方向坐標(旋轉(zhuǎn)),2. 機械手的手臂姿勢 在使用機械手作業(yè)時,有必要使其用示教時的手臂姿勢在指定的點上動作。如果不這樣做,根據(jù)手臂姿勢的不同,會產(chǎn)生輕微的位臵偏移,或朝著意想不到的路徑動作的結(jié)果,有干涉周邊設(shè)備的危險。為了避免這種情況,在點數(shù)據(jù)中必須事先指定使其在此點上動作時的手臂姿勢(如下圖)。此信息也也可以從程序中變更(L或者R)。,2.1 SCARA機械手的手臂姿勢圖,系統(tǒng)構(gòu)成,NPN接法,PNP接法,NPN接法,PNP接法,1、控制器運行時序圖,2、急停時序圖,3、程序執(zhí)行時序圖,4、安全門輸入時序圖,1、I/O擴展板輸入輸出定義及設(shè)置,2、1號I/O擴展引腳定義,不外接急停時可以將安全I/O按如下方式接線:1,2,3,7,9,18,20短接 4,11短接 8,19,21,25短接 12,17短接 10,14,15,16短接,1. 軟件IP設(shè)置(使用以太網(wǎng)連接時用) (1)單擊“設(shè)置” “電腦與控制器通訊”進入IP設(shè)置畫面,然后單擊工具欄圖 標“ ”進入IP設(shè)置畫面 ,然后單擊“增加”進入右下圖畫面選擇“通 過以太網(wǎng)連接到控制器”單擊確定,(2)設(shè)置新增以太網(wǎng)連接名稱及IP地址 ,控制器出廠默認控制器IP設(shè)置如右下圖所示 設(shè)置好IP后單擊應(yīng)用,如果控制器IP忘記了,可以先用USB線連接控制器然后在 “設(shè)置”|控制器|configuration里可以查看控制器IP,電腦IP的前三位要與控制 器的前三位相同,例如“192.168.0.10”。設(shè)置好IP地址后單擊“連接”連接控 制器 。,2.控制器設(shè)置 (1)單擊“設(shè)置” “控制器”進入控制器設(shè)置畫面,然后單擊“configuration” 設(shè)置控制的IP地址及控制方式,當(dāng)要使用外部I/O控制時須將“Control Device” 遠程I/O,然后單擊“Apply”,再單擊關(guān)閉,等待控制器重啟完畢后,按“F5”, 單擊“激活遠程I/O”后關(guān)閉軟件即可使用外部I/O控制控制器,3. 示教畫面 打開Jog&Teach頁面: Tools Robot Manager Jog&Teach或單擊工具欄 圖標后,選擇Jog&Teach頁面。如下圖示,Mode說明: World:在當(dāng)前的局部坐標系、工具坐標系、機械手屬性、ECP坐標系上,向X、Y、Z軸的方向微動動作。如果是SCARA型機械手,也可以向U方向微動。如果是垂直6軸型機械手,則可以向U方向(傾斜)、V方向(仰臥)、W方向(偏轉(zhuǎn))微動。 Tool : 向工具定義的坐標系的方向微動移動。 Local: 向定義的局部坐標系的方向微動移動。 Joint : 各機械手的關(guān)節(jié)單獨微動移動。不是直角坐標型的機械手使用Joint模式時,顯示單獨的微動按鈕。 ECP : 在用當(dāng)前的外部控制點定義的坐標系上,微動動作。,4. 示教點步驟 (1)在“點數(shù)據(jù)”頁面中“點文件”下拉菜單中選擇需要教點的點文件,單擊選擇點文件,(2)在步進示教頁面右下角位位置選擇需要示教的點編號,單擊選擇要示教的點位,(3)微動將機械手移動的需要示教點的位置。如果是SCARA機械手,Motor On情況下,可以在Control Panel 頁面Free All釋放所有軸后,手動將機械手移動需要示教點的位置后,Lock ALL鎖定所有軸。,微動按鈕,點位追蹤按鈕,在馬達上伺服ON時直接移動到之前示教的點位,一般在之前點位變化需做微調(diào)時用,(4)點擊Teach按鈕,系統(tǒng)自動記錄下示教點在當(dāng)前坐標系的具體數(shù)值。如果需要示教的點為新增點,將彈出以下對話框,用戶可根據(jù)需要對該點編輯標簽及描述,編輯點標簽及描述然后單擊“確定”,(5)在“點數(shù)據(jù)”頁面單擊“保存”按鈕,完成示教點。,5. 馬達重置及伺服OFF 工具 機器人管理器控制面板或單擊工具欄 圖標后,選擇“控制面板”頁面。如下圖示,伺服ON,運行功率設(shè)置,馬達報警時重置馬達,剎車釋放,Z軸剎車釋放后要按住伺服指示燈旁邊白色按鈕才能手動移動Z軸,6. 工具坐標設(shè)置 工具 機器人管理器工具或單擊工具欄 圖標后,選擇“工具”頁面。如下圖示,(1)在“工具”畫面單擊“工具向?qū)А?,進入工具向?qū)М嬅妫x擇工具坐標編號,(2)選擇好工具坐標編號后單擊“NEXT”,進入如下畫面,單擊“Teach”進入機器人示教畫面,(3)將U軸旋轉(zhuǎn)到0度,在機器人運動范圍內(nèi)固定一個參考位置,然后通過移動X、Y軸移動到參考位置,然后單擊確定,(4)示教好第一個位置后單擊“Teach”進入如下畫面,然后單擊“Teach”進入第二點示 教畫面,(5)將Z后提起后,旋轉(zhuǎn)180度后,重新移動X、Y軸至之前保存的位置,然后單擊“Teach”進入下圖畫面,然后單擊“Finish”,完成工具坐標校準,7. I/O監(jiān)控 “工具” “I/O監(jiān)視器”工具或單擊工具欄 圖標后,進入如下圖示畫面監(jiān)控I/O狀態(tài),雙擊輸出位時可以強制輸出ON,1. 概述 SPEL+是在RC170/180、RC90控制器上運行的與BASIC相近的程序語言。它支持多任務(wù),動作控制和I/O控制。程序以ASCII文本形式創(chuàng)建,被編輯在可以執(zhí)行的對象文件中。 2. 程序結(jié)構(gòu) 一個SPEL+程序包括有函數(shù),變量和宏指令,每一個程序以.PRG的擴展名保持到對應(yīng)的項目里(Project)。一個項目至少包含有一個程序和一個main函數(shù)。函數(shù)以Function開始,F(xiàn)end結(jié)束,函數(shù)名可以使用最多32個字符的半角英文數(shù)字和下劃線,不區(qū)分大小寫,但是不可以使用以數(shù)字和下劃線開始的名稱或SPEL+關(guān)鍵字。 3. 變量 SPEL+中有3種不同的變量。 Local : 局部變量(用在同一Function內(nèi)使用的變量) Module : 模塊變量(在同一程序內(nèi)使用的變量) Global : 全局變量(在同一項目內(nèi)使用的變量),程序示例:,MAIN.PRG Function Main Call Func1 . Fend Function Func1 Jump pickpnt .,Integer m_i 模塊變量m_i Global (Preserve) Integer g_i 全局變量(全局保護變量)g_i Function main Integer I 局部變量i . Fend Function Func1 Integer I 局部變量i . Fend,4. 變量的數(shù)據(jù)類型 變量有多種數(shù)據(jù)類型,使用前先說明類型,格式為:數(shù)據(jù)類型變量名。例如:Integer i,定義變量i為整型數(shù)據(jù)。另外,代入的數(shù)據(jù)和變量的類型必須一致。在下表中列出SPEL+ 語言中使用的數(shù)據(jù)類型。,動作指令分類 使機械手動作的指令叫作動作指令。 可分為:PTP動作指令,CP動作指令,Curves動作指令,Joint動作指令。,NOTE: * CP模式,即Continuous Path 連續(xù)路徑模式。 * 指定PTP動作指令和Joint動作指令的速度和加/減速度時,使用SPEED指令和ACCEL指令。指定CP模式動作指令時,使用使用SPEEDS指令和ACCELS指令。,2. PTP指令 包括指令:Go、Jump、BGo、TGo PTP(Pose To Pose)動作,是與其動作軌跡無關(guān),以機械手的工具頂端為目標位臵使其動作的動作方法。PTP動作,使用各關(guān)節(jié)上配置的電動機,使機械手通過最短的路徑到達目標位置。 優(yōu)點:運動速度快,缺點:運動軌跡無法預(yù)測。指定PTP動作速度和加/減速,使用SPEED指令和ACCEL指令。 2.1 Go 指令 功能:全軸同時的PTP動作,動作的軌跡是各關(guān)節(jié)分別對從當(dāng)前的點到目標坐標進行插補。 格式:Go 目標坐標 示例: 1. Go P1 機械手動作到P1點 2. Go XY(50, 400, 0, 0) 機械手動作到X=50,Y=400,Z=0,U=0 3. Go P1+X(50) 機械手動作到P1點X坐標值偏移量為+50的位置 4. Go P1:X(50) 機械手動作到P1點對應(yīng)X坐標值為50的位置 2.2 Jump 指令 功能:通過“門形動作”使手臂手臂從當(dāng)前位臵移動至目標坐標。 格式:Jump 目標坐標 示例: 1. Jump P1 機械手以“門形動作”動作到P1點 2. Jump P1 LimZ -10 以限定第三軸目標坐標Z=-10的門形動作移動到P1點,如圖1示 3. Jump P1:Z(-10)LimZ -10 以限定第三軸目標坐標Z=-10的門形動作移動到P1點位臵Z坐標值為-10的位置,圖1,NOTE: Go與Jump的區(qū)別Jump與Go都是使機械手手臂用PTP動作移動的命令。但是Jump有Go沒有的一個功能。Jump將機械手的手部先抬起至LimZ 值,然后使手臂水平移動,快要到目標坐標上空的時候使其下降移動。此動作的標準是可以更準確地避開障礙物這一點,更重要的是通過吸附、配置動作,提高作業(yè)的周期時間。 3. CP指令 包括指令:Move、Arc、Arc3、Jump3/Jump3CP、BMove、TMove、CVMove CP(Continuous Path )指令可以指定機械手到達目標位臵的運動軌跡。 優(yōu)點:軌跡可以控制,勻速動作。缺點:速度慢。 指定Linear動作速度和加/減速度,使用SPEEDS指令和ACCELS指令。 3.1 Move 指令 功能:以直線軌跡將機械手從當(dāng)前位置移動到指定目標位置。全關(guān)節(jié)同時啟動,同時停止。 格式:Move 目標坐標 示例:Move P1 機械手以直線軌跡動作到P1點 NOTE: Move與Go的區(qū)別到達目標點時的手臂的姿勢重要的時候使用Go命令,但是比控制動作中的手臂的軌跡重要的時候,使用Move 命令。在SCARA機械手只有Z軸上下動作時,Go與Move的軌跡一樣。,3.2 Arc和Arc3 指令 功能:Arc 在XY平面上以圓弧插補動作。 Arc3 在3D空間里以圓弧插補動作。 格式:Arc 經(jīng)過坐標,目標坐標 說明:將機械手從當(dāng)前位臵到目標坐標,通過經(jīng)過坐標用圓弧插補動作活動時使用。從所給的3點(當(dāng)前坐標、經(jīng)過坐標、目標坐標)自動演算圓弧插補軌道,并沿著此軌道移動機械手直至目標坐標為止。 示例:Arc P2,P3 NOTE: 即使目標坐標在機械手的動作范圍內(nèi),一旦在Move或Arc運動軌跡超過允許動作范圍外,機械手會突然停止,給伺服電機帶來撞擊,有產(chǎn)生故障的危險。為了防止這樣的事發(fā)生,請在高速執(zhí)行之前先以低速進行動作范圍確認。,3.3 Jump3/Jump3CP指令 功能將手臂用3 維門形動作移動。Jump3是兩個CP動作與1個PTP動作的組合 格式Jump3 退避坐標,接近開始坐標,目標坐標 示例Jump3 P1,P2,P3從當(dāng)前位臵經(jīng)過保存坐標P1,接近坐標P2運動到目標坐標P3。圖2示 NOTE: 1、Jump不能用于6軸機械手,6軸機械手只能使用Jump3和Jump3 CP指令 2、Jump3CP指令用法與Jump3類似,不同在于Jump3CP是3個CP動作的組合 3、SCARA機械手Z軸上升或下降動作時,使用Jump指令可以提高運動速度 3.4 BMove 、TMove、CVMove 指令 BMove 在指定的局部坐標系(Local)上執(zhí)行偏移直線插補動作。沒有指定局部坐標系時,以局部0(基準坐標系)為基準,進行進行偏移PTP 動作。 TMove 在當(dāng)前的工具坐標系上執(zhí)行偏移直線插補動作。,圖2,CVMove 用Curve 命令執(zhí)行定義的自由曲線CP 動作。CVMove 執(zhí)行設(shè)定控制器硬盤上的文件名的文件數(shù)據(jù)的自由曲線CP 動作。此文件必須事先用Curve 命令制作。 Curve “mycurve”, O, 0, 4, P1, P2, On 2, P(3:7) 設(shè)定自由曲線 Jump P1 用直線將手臂移動至P1 CVMove “mycurve” 用定義的自由曲線“mycurve”移 動手臂 5. 速度設(shè)定指令 5.1 PTP指令的速度設(shè)定 Speed 功能用于設(shè)定PTP動作速度的百分比 格式:Speed s,a,b 說明:s 速度設(shè)定值;a 第三軸上升速度設(shè)定值;b 第三軸下降速度設(shè)定值。 示例:1. Speed 80 2. Speed 80,40,30 Accel 功能用于設(shè)定PTP動作加減速度的百分比。 格式:Accel a,b,c,d,e,f 說明:a/b 加/減速度設(shè)定值;c/d 第三軸上升加/減速度設(shè)定值; e/f 第三軸下降加/減速度設(shè)定值 示例:1. Accel 80,80 2. Accel 80,80,30,30,60,60,圖2,5.2 CP指令的速度設(shè)定 SpeedS 功能用于設(shè)定CP動作速度值 格式:SpeedS 速度設(shè)定值 說明:表1 為不同機型對應(yīng)的速度設(shè)定值范圍 示例:SpeedS 800 CP動作的速度設(shè)置為800mm/s AccelS功能用于設(shè)定CP動作加減速度值 格式:AccelS 加速設(shè)定值,減速設(shè)定值 說明:表1 為不同機型對應(yīng)的加減速度設(shè)定值范圍 示例:AccelS 800 加減速度均為800mm/S,表1,4.3 Power指令 功能:電源模式的設(shè)定 格式:Power High|Low 說明:默認值為Low。低功率模式下電機輸出被限制,實際動作速度變?yōu)槟J初始值的范圍內(nèi)。低功率模式設(shè)定時,從監(jiān)控窗口或程序中即使出現(xiàn)設(shè)為高速的指示,也會按初始值速度動作。如果需要用更高的速 度動作時,必須設(shè)定為Power High。 4.4 Weight指令 功能:進行補償PTP 動作時的速度加減速度的參數(shù)設(shè)定 格式:Weight 手部重量 說明:手部重量指指定手臂上垂掛的夾治具和其他工件的重量。由設(shè)定值計算出的等價搬運重量超過最大可搬運重量時,會出現(xiàn)錯誤。,5. Jump 指令的修飾 5.1 拱形動作 在Jump指令后通過指定門形參數(shù)Cn(n=07),可以改變拱形的形狀。 上圖中a,b的值與C06對默認初始值(單位:mm)如下表列,7為門形動作。要改變C06對應(yīng)的a,b的值,使用Arch指令。也可以Tools|Robot Manager|Arch選項卡中修改。,5.2 Arch指令 功能:用于設(shè)定Jump動作拱形參數(shù)設(shè)定格式Arch 拱形編號,垂直上升距離,垂直下降距離說明設(shè)定值比垂直移動距離大時變?yōu)殚T形動作。設(shè)定值即使掉電也會被保持。運動軌跡根據(jù)運動速度、機械手的動作方式而改變,所以動作前請先確認動作軌跡 示例:Arch 0,10,40,RC90控制器標配了24位輸入和16位輸出,用戶可以通過安裝I/O板卡擴展I/O位數(shù)。每張I/O板卡包括32位輸入和32位輸出,最多可以安裝4張I/O板卡,既最多可增加128位輸入和128位輸出。 1硬件連接 1.1 輸入電路:輸入電壓范圍: + 12 24V 10 ON 電壓: + 10.8V(最?。㎡FF 電壓: + 5V(最大) 輸入電流: 10mA,24V輸入時,典型值,1.2 輸出電路 額定輸出電壓: + 12 24V 10 最大輸出電流::100mA(典型值)1輸出 輸出驅(qū)動器::Photo Mos繼電器 通態(tài)電阻(平均)::23.5以下輸出,2 輸出指令 On 功能:打開指定輸出位 格式:On 輸出位編號, 時間, 非同步指定 輸出位編號:可使用的輸出位編號;時間:以秒為單位,最小有效位為0.01秒;非同步指定:0或1 說明:非同步指定在時間指定時可以指定,功能如表1 示 示例:1. On 1 2. On 1,0.5,0 Off 功能:關(guān)閉指定輸出位 格式:Off 輸出位編號, 時間, 非同步指定 輸出位編號:可使用的輸出位編號;時間:以秒為單位,最小有效位為0.01秒;非同步指定:0或1 說明非同步指定在時間指定時可以指定,功能如表1 示 示例:1. Off 1 2. Off 1,0.5,0,表1,2 輸出指令 Out 功能:同時設(shè)定輸出8個輸出位 格式:Out 端口編號,輸出數(shù)據(jù) 端口編號:構(gòu)成可使用輸出位的組;輸出數(shù)據(jù):用端口編號指定的組的輸出模式 說明:端口編號與輸出數(shù)據(jù)的組合后同時設(shè)定8個輸出位。輸出位8位1組。首先在用端口編號指定的組中 指定輸出數(shù)據(jù)參數(shù)中特定的輸出模式。輸出數(shù)據(jù)參數(shù)用10進制數(shù)(0255)或16進制數(shù)(&H0 &HFF)指定。端口編號如下與位編號對應(yīng)。 端口編號 位編號 0 0-7 1 8-15 2 16-23 . . 63 504-511 示例: Out 0, 0 將07位全部關(guān)閉 Out 1, 255 將815位全部打開 Out 0, 100 將2,5,6位全部關(guān)閉 Out 0, &H64 將2,5,6位全部關(guān)閉,3 輸入指令 3.1 Wait 功能:時間等待或輸入位等待 格式:Wait 時間 Wait 輸入條件,時間 時間:02147483,最小有效位為0.01秒;輸入條件:記述待機條件 說明:只指定時間時,指定時間待機后執(zhí)行下一個命令。只指定輸入條件式時,待機至條件成立。指定輸入條 件與時間時,條件式成立或指定時間到都會執(zhí)行下一個命令。使用Sw函數(shù),可以確認輸入條件式是否成 立,或指定時間是否已到。 示例:Wait 1.5 待機1.5秒后,繼續(xù)執(zhí)行程序 Wait Sw(3)=On 待機直到輸入位3開啟 3.2 Sw函數(shù) 功能:返回指定的輸入位狀態(tài) 格式:Sw (輸入位編號) 輸入位編號:可以使用的輸入位編號 說明:進行I/O輸入的狀態(tài)確認。指定的輸入打開時返回1,關(guān)閉時返回0。 示例:Print Sw(3) 打印輸入位3的狀態(tài) Wait Sw(1)=On and Sw(2)=On 待機直到輸入位1和2開啟 Wait Sw(1)=On or Sw(2)=On 待機直到輸入位1或2開啟,3.3 In函數(shù) 功能:返回指定的輸入位端口 格式:In(端口編號) 端口編號:構(gòu)成可以使用輸入位的組 說明:可同時確認8個輸入位的值。可以使其待機直到2個以上的I/O位的狀態(tài)在特定的條件下一致。 返回值為0255范圍的整數(shù)值。 示例:Print In(0) 打印輸入位3的狀態(tài) Wait In(0)=0 待機到07位全部關(guān)閉 Wait In(0)=255 待機到07位全部開啟,格式:Pallet Outside, Pallet 編號, Pi, Pj, Pk,Pm , 列數(shù), 行數(shù) 參數(shù): Outside 創(chuàng)建在指定的行及列的范圍外可以訪問的Pallet。指定范圍:-32768 to 32767??墒÷?。 Pallet 編號用0到15的整數(shù)指定Pallet編號。 Pi, Pj, Pk 指定使用在Pallet定義(標準的3 點定義)中的點變量。 Pm 與Pi, Pj, Pk 一起使用定義Pallet的點變量??墒÷?。 列數(shù) 用整數(shù)指定Pi 與Pj的列數(shù)。范圍為1到32767。(行數(shù)列數(shù)32767) 行數(shù) 用整數(shù)指定Pi 與Pk的行數(shù)。范圍為1到32767。(行數(shù)列數(shù)32767) 說明:在機械手上至少必須示教Pi, Pj, Pk這3 點,并指定Pi 與Pj的分割數(shù)及Pi 與Pk的分割數(shù),才能定義pallet。,Pallet 如果是高精度的四方形,則只要指定角上4 點中的3 個點就足夠了,但是,還是建議指定全角4點的位臵后進行pallet 定義。 定義pallet 時,首先要示教角的3 或4 個點,4 點定義時:以下表示P1、P2、P3 及P4。P1-P2 間有3 點,P1-P3 間有4點,總計使用12點用以下格式定義。表示Pallet的分割的各點自動地分配分割編號 (1-12)。 示教P1、P2、P3 時,盡量使三點的姿勢一致。 Notes 不正確的pallet 的定義 如果搞錯了點的順序或點間的分割數(shù),會出現(xiàn)錯誤的pallet順序。,Pallet 面的定義 用角上3 點的Z 坐標值定義pallet 平面的高度。所以,也可以定義垂直方向的pallet。 1 列pallet 的pallet 定義 通過3 點指定的Pallet 命令,也可以定義1 列的pallet。如果是1 列,應(yīng)示教兩端的2 點,并如下輸入、執(zhí)行。 同一編號方向的分割數(shù)為1。 Pallet 2, P20, P21, P20, 5, 1 定義一個5x1 的pallet Pallet 使用示例 以下是從監(jiān)控窗口設(shè)定用P1、P2、P3 定義的pallet 的示例。Pallet 而平均配臵15 點,P1-P2 間排列。 pallet 1, P1, P2, P3, 3, 5 jump pallet(1, 2) Jump to position on pallet 此設(shè)定的創(chuàng)建的pallet 如右圖所示。,動作中并列進行I/O 等的輸入輸出處理。 使用示例 1) 將并列處理連同Jump命令同時使用。第3 關(guān)節(jié)上升移動結(jié)束,第1、第2、第4 關(guān)節(jié) 開始動作的階段打開輸出位1。輸出位1 在Jump動作完成50%的階段再次關(guān)閉。 Function test Jump P1 !D0; On 1; D50; Off 1! Fend 2) 將并列處理連同Jump 命令一起使用。第3 關(guān)節(jié)上升移動結(jié)束,第1、第2、第4 關(guān)節(jié)各自完成到P1 的移動的 10%的階段打開輸出位5,0.5 秒后關(guān)閉輸出位5。 Function test2 Jump P1 !D10; On 5; Wait 0.5; Off 5! Fend 注意: 所有I/O 命令結(jié)束前動作結(jié)束的情況下 即使結(jié)束特定動作命令的動作所有的并列處理語句的執(zhí)行也沒有結(jié)束時,等全部結(jié)束以后執(zhí)行下一個程 序。這種狀況在必須并列處理多個I/O 命令的短距離移動動作時特別要注意 用停止手臂的Till 語句中途結(jié)束動作時,并聯(lián)I/O 的執(zhí)行 如果移動的中途停止手臂的Till 語句被使用,動作語句執(zhí)行的下一個語句等待至全部并列處理語句執(zhí)行結(jié) 束后執(zhí)行。,多重任務(wù)是多個作業(yè)同時執(zhí)行,可以大幅度縮短任務(wù)時間(作業(yè)時間)。也可以同時控制周邊設(shè)備,這樣系統(tǒng)整體效率提高生產(chǎn)性也會提高。作業(yè)分為各個任務(wù)后,程序會變得易懂,且維修也可以對各任務(wù)分別進行,要新增作業(yè)時只需添加任務(wù)就可以了??梢酝瑫r執(zhí)行的任務(wù)最多可以是16 個。 格式:Xqt 任務(wù)編號, 函數(shù)名(自變量一覽表) ,Normal | NoPause | NoEmgAbort 動作 任務(wù)1 : 重復(fù)P1P4的Jump動作 任務(wù)2 : 每5秒打開/關(guān)閉1次I/O。 程序: Function test9 Integer i Xqt IO Do For i= 1 To 4 Jump P(i) Next Loop FEND FUNCTION IO Do On 1; Wait 0.5 Off 1; Wait 0.5 Loop Fend,1、Do . Loop 功能:條件一致或不一致時反復(fù)執(zhí)行Do Loop直接的程序,直到條件一致為止 格式1:Do while |until條件式 語句】 Exit Do 語句 Loop 格式2:Do 語句】 Exit Do 語句 Loopwhile |until條件式 說明:當(dāng)條件式省略時,且Do . Loop循環(huán)中沒有Eixt Do語句則為一個無限循環(huán)。當(dāng)條件式成立時退出循環(huán)。退出Do.Loop的另一個方法是可以在Do.Loop中的任何位置,插入任意個Exit Do語句。Exit Do經(jīng)常使用在對If.Then 等幾個條件進行評價之后。在If.Then 上使用Exit Do語句后,將控制Loop移至下一個語句。 示例:Do While Sw(8) =On 當(dāng)輸入8為ON時一直執(zhí)行Do . Loop之間語句 Go p1 移動到P1位置 On 8 打開輸入8 Go p2 移動P2位置 Off 8 關(guān)閉輸入8 Loop,2、If . Then . Elseif . Endif 功能:根據(jù)指定條件分歧執(zhí)行命令 格式1:If 條件式 Then 語句 T1 . . Elseif 條件式 Then 語句 T1 . . Else 語句 F1 . . Endif 格式2:If 條件式 Then 語句T1 ;語句T2. Else 語句 F1 ;語句 F2. 說明:If . Then . Else 在滿足條件時執(zhí)行語句T1以后部分,不滿足條件時執(zhí)行F1以后部分,Else部分可省略,不滿足條件時就執(zhí)行 Endif 以后部分。按照格式1編輯程序時必須以Endif結(jié)束,按照格式2將語句編輯到同一行時可省略 Endif,If.Then.Else 語句的程序段,嵌套最多可以有20段 示例: If SW(8)=ON then 當(dāng)輸入8接通時移動到P1 Go P1 Endif,3、 For . Next 功能:For . Next 之間一連串的語句執(zhí)行指定次數(shù) 格式1:For 變量名=初始值 To 結(jié)束值 Step 增值 語句 . Next 變量名 說明: 初始值的數(shù)值為計數(shù)器最初的值。如果正確設(shè)定了結(jié)束值變量與增值,就可以設(shè)定負的數(shù)值。結(jié)束值為計數(shù)器的最終值。到達此值后循環(huán)立即結(jié)束,程序控制移至Next 命令的下一個命令。 For 語句的下一個語句被執(zhí)行至到達Next 命令為止。計數(shù)器變量(變量名)根據(jù)增值參數(shù),只增值指定的值。如果沒有設(shè)定增值值,計數(shù)器每1 增減。 然后計數(shù)器變量(變量名) 與最終值比較。計數(shù)器比最終值小或相同時, For 命令的下一個語句被再次執(zhí)行。計數(shù)器變量(變量名)大于最終值時在For.Next循環(huán)以外分支,在Next 命令的下一個命令上繼續(xù)。 在For. Next間再次使用For.Next語句叫做嵌套。嵌套最高可以到16段 示例: For ctr = 1 to 10 Go Pctr Next ctr For ctr = 10 to 1 Step -1 Go Pctr Next ctr,4、GoSub . Return 功能:GoSub 是將程序控制轉(zhuǎn)移至子程序。子程序的執(zhí)行結(jié)束后控制回到GoSub 命令的下 一行。 格式1:GoSub 行編號 | 標簽 行編號|標簽: 語句 Return . 說明:GoSub 命令將程序控制轉(zhuǎn)移至指定的行或標簽。程序執(zhí)行轉(zhuǎn)移目標的語句,就這樣一直執(zhí)行轉(zhuǎn)移目標行,直到Return 命令。GoSub 命令在執(zhí)行子程序以后用Return 返回GoSub 命令的下一行。請務(wù)必用Return 結(jié)束子程序。 NOTE: 1)GoSub 命令在轉(zhuǎn)移目標中指定不存在的行編號或標簽后,會發(fā)生錯誤1650。 2)GoSub 命令的嵌套最多只能有16段。即轉(zhuǎn)移目標的子程序內(nèi)再次執(zhí)行GoSub 命令, 并再次執(zhí)行子程序可以有16次。想執(zhí)行第17次GoSub 命令就會發(fā)生錯誤7 。 3)Return 命令將執(zhí)行了GoSub 命令的部分恢復(fù)至原來的程序。如果沒有GoSub ,但使 用了Return ,就會發(fā)生錯誤3 。沒有GoSub 時使用Return ,不知道恢復(fù)至哪里,所以 無任何意義。 示例:Function main Go Sub checkio GoSub using Label On 1 Exit Function checkio: Subroutine starts here var1 = In(0) var2 = In(1) Return Subroutine ends here,5、Goto 功能:GoTo命令是將程序控制轉(zhuǎn)移至指定的行或標簽 格式:GoTo 行編號 | 標簽 說明:GoTo 命令將程序控制轉(zhuǎn)移至指定的語句行或標簽。程序執(zhí)行轉(zhuǎn)移目標的語句行,并執(zhí)行以下的行 NOTE:在1 個程序中,如果過多使用GoTo命令,程序就會變得難懂,請注意。通常盡量不要使用GoTo命令。實際上,有時不得不使用GoTo,但是像GoTo 語句將源代碼到處轉(zhuǎn)移的使用會造成錯誤或引起其他問題 示例:Function main If Sw(1) = Off Then GoTo mainAbort EndIf Print “Input 1 was On, continuing cycle“ . Exit Function mainAbort: Print “Input 1 was OFF, cycle aborted!“ Fend,6、Call 功能:將函數(shù)作為子程序調(diào)出 格式1:Call 函數(shù)名 ( 自變量列表) . 說明:通過Call 命令,F(xiàn)unction.Fend 將程序控制移至定義的函數(shù)。通過Call 命令,程序的執(zhí)行 從當(dāng)前的函數(shù)移至Call 命令指定的函數(shù)。程序一直用調(diào)出的函數(shù)繼續(xù),直到找開Exit Function 或Fend。接著用Call 命令的下一個語句返回原來的函數(shù)控制。 示例: Function main Call InitRobot(1) Fend Function InitRobot(robotNumber As Integer) Integer savRobot savRobot = Robot Robot robotNumber Motor On If Not MCalComplete Then MCal End If Robot savRobot Fend,7、While. Wend 功能:條件成立期間,執(zhí)行While. Wend 之間的指定的語句。 格式1:While 條件式 語句 Wend . 說明:指定While條件。如果條件成立,在WhileWend 間的語句被執(zhí)行,再一次確認While條件。 While條件成立期間,重復(fù)WhileWend 間的語句的執(zhí)行與While條件的確認。如果While 條件不成立,程序控制移至Wend的下一個命令。如果第1 次確認后While條件不成立, WhileWend 間的語句一次都不被執(zhí)行。 NOTE:在一個While.Wend 循環(huán)中可嵌套的While.Wend循環(huán)最多為16段。 示例: Long i i = 1 While i 60 Execute statements between While/Wend if i 60 . i = i + 2 Wend,8、Select. Send 功能:根據(jù)表達式的值將控制移至幾個語句中的任意一個上。 格式1:Select 表達式 Case項目 語句 Default 語句 Send . 說明:1)Case 語句的項目中如果有與Select 語句的表達式結(jié)果一致的,則執(zhí)行Case 語句后的語 句群。執(zhí)行后,程序控制移至Send語句上連接的語句。 2)Case 語句的項目中如果沒有與Select 語句的表達式結(jié)果一致的,則執(zhí)行Default語句,程 序控制移至Send語句上連接的語句。 3)Case 語句的項目中如果沒有與Select 語句的表達式結(jié)果一致的,且Default被省略,不執(zhí) 行任何語句,程序控制移至Send語句的下一個語句。 4)Select 語句的表達式與CASE 語句的項目中可以指定使用常數(shù)、變量、And Or Xor 等 的邏輯算符。 5)1 個Select 命令上最多可以創(chuàng)建250 段的Case 語句。 示例:Select I Case 0 Off 1;On 2;Jump P1 Case 3 On 1;Off 2 Jump P2;Move P3;On 3 Case 7,9、OnErr 功能:發(fā)生錯誤時,在錯誤處理子程序上設(shè)定使控制分支的中斷。使用記可以進行錯誤處理。 格式1: OnErr GoTo 標簽 | 行編號 | 0 . 說明:1)通過OnErr 用戶可以進行錯誤處理。如果沒有使用OnErr,發(fā)生錯誤時任務(wù)被中止,顯示 錯 誤。但是,如果使用OnErr,為做到自動地從錯誤中恢復(fù),可以將控制移至錯誤處理子 程序。恢復(fù)錯誤后,控制移至用OnErr 命令指定的行編號。這樣,即使發(fā)生錯誤,也不會 中斷任務(wù)的執(zhí)行,且可以自動進行錯誤處理。另外,容易變得復(fù)雜的問題也可以用同樣的 方法自動處理,所以可以明顯地提高工作效率。 2)OnErr 命令在指定參數(shù) 0 后被設(shè)定時,清除當(dāng)前的OnErr 設(shè)定。 OnErr 0執(zhí)行后,如 果發(fā)生錯誤,程序的執(zhí)行會立即停止。 示例:Function errDemo Integer i, errNum OnErr GoTo errHandler For i = 0 To 399 temp = CX(P(i) Next i Exit Function errHandler: errNum = Err If errNum = 78 Then Print “Point number P“, i, “ is undefined!“ Else Print “ERROR: Error number “, errNum, “ occurred while“ Print “ trying to process point P“, i, “ !“ EndIf EResume Next Fend,1、以下程序為一個分揀演示程序,先通過EPSON視覺照相獲取模版位置,然后 將不同的料排列到不同矩陣盤,然后再從矩陣盤就料取出隨意放入料盤, 如此往復(fù)運行。 Integer num, num1 定義全局整形變量 *主函數(shù)* Function main Call InitRobot 調(diào)用初始化子函數(shù) Jump daiji 移動到待機位置 Do Call Robot1 調(diào)用Robot1子函數(shù) Loop Fend *初始化子函數(shù)* Function InitRobot If Motor = Off Then 當(dāng)馬達伺服未上時使伺服ON Motor On 開伺服 EndIf Power High 運行功率為高功率 Speed 10 定義PTP速度 Accel 80, 80 定義加減速 Off 8 關(guān)閉輸出8 Pallet 1, y1, y2, y3, 3, 2 定義一個三列二行矩陣1 Pallet 2, y10, y11, y12, 3, 2 定義一個三列二行矩陣2 Fend,*視覺子程序* Function Vision1 Integer i, j 定義整形變量 Real

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論