文档详情

Arobotstudio使用详细步骤

痛***
实名认证
店铺
DOC
1.08MB
约31页
文档ID:85555750
Arobotstudio使用详细步骤_第1页
1/31

步骤on November 22, 2020搬运码垛工作站建模1、 创建机器人系统2、 创建动态输送链3、 创建动态夹具4、 工作站逻辑连接5、 添加10(设置好需重启)6、 示教目标点(同步到RAPID)7、 RAPID 编程一、创建机器人系统1、创建空工作站■说立件t MJII 丈件・口EUHISS申盯开2、导入IRB 260机器人模型•j 出-■ J /:・ 7 |莉9存工炸站 1 • &BB ROtoOtStudQ 6....二・.左;:» 3^ CTR »*«<□ WTO aE «2T挿朋5 •Defiuft) -(3EZ ・■ ■舌41$人吕巧工曲斥SDK审刊回丘绢 a NuFNo%^ 鼻 ML v vImwo»9r*夕A8«a» - g号入n何分・ 筒 y $人・J H£・ 匕, — QCxi3 “从统•疋立工临吊•曲和曰时!妊.X【走停稈工件诂>洁 Iffi<&0.U0JJ40_J)ltWi xfrEend4 ^RobotStudK) J x MaRobc»t$^c=«3L 7%惑整 4"・ 匕审换r •lie©■A GFroQ«rr> di(T.fz>&c>t»an>BoDotStu>o 沁U” • - ■!■:<': •::二• ':•: ?• • ・、.” ・.•,:;,:• 二注:••: • ▼ UL, 1^5 画 u j6!^»3、从布局创建机器人系统,勾选Chinese和709-1网络二、创建动态输送链1、添加输送链并修改位置(S•G»e【X拠g恋・>emaA=^工7冻«otyO■2 rAJCMwIMtoow•'X苫Q於牡畤龙・由离 fi«Nrd»Six]v> H 町■ .<2 •〒— ) - ASS Robotstudio 6.03)01却 (nX St!3lG RAPID AcW4njktortl ・• .1COO ・ zLOO ・ toclO ・ \WObj-.sobjO国 。

回中 < « <*> - 201X.2、创建600*400*200的物料并修改位置3、添加一个smart组件0.! -rfi aW V J JL Z、枣切 Ctrl-X复観 Ctrl-C粘站 Ctrl^V%転为段件“研与库的舷a导出几何体・・・已何体 ►可见检査螢竝为gcs&S ►修改璽 ►物理6、添加LINEMOVER和QUEUE组件〔布局I建複[嗣Z [未保存工作站1*,屯sc_输側 胡 Line ar Mo ver 血 Queue 胡 Source!>讶物糾即物料_27设置LINEMOVER属性思SC_输送链组成子对象组件Smart组件So-urce创題一个图形组件的拷贝Li near Hower移动一个对象到一条线上属性与连结|信号和连接设计Queue克示茄对象的从列,可作为组进行操纵&添加面传感器组件| 届性:PliarwSensor | 7 X:属性 □fifferi gin (mm) 1000.00 -220.00 773.00Axi si Gnm)0.00 ; 450.00 ; 0.00 ]HP|9、设置输送链不能被传感器检测奥切Ctrl-XCtrl-C粘站CtrRV经存为库文件・・・ 斷开与库曲淫接导出几何饥已链聞何憔 ►检杳麻MLCS►惨改耐冊除CAD几何弊;© [外叛損坏盘拆涂o施X艇除 Del起徐内部几何it可由传感器检瀝10、设置sc 输送链的属性连接倉设置信号连接J | x 壬SC_输送链 I樹 I血少血;Mil 佶号和连務 I/O信号渤肛/Q 曲工逊信县 15&毗%jlDT70 Corm«etig 鴉殒 黄佣DO forjL&ZSonE册I炼 上移 下移12、添加信号处理组件,用于检测传感器下降沿 | 届性 LogicG@te[NOT]| & || 硒 1 | SCj&^ X |属性□Op era.tor布局建棋标记▼ XL衆SC_输送链组成I属性与连结;信号和连接设计子对象组件Source 创建一个图形组件的拷贝r™ . Linear Mover死移动-个对朝-条线上Queue表示为对象的队列,可作为组进行接纵j PlaiteSensor a电监测对象与平面相交A Los:i eGate [HOT]iz进衿数宇信号的逻辑运算13>传感器下降沿触发source进行copyZ【未保存工作站J* 机械装罟錨 S 进编属opDe输IILIIL输Ou.14、传感器与SC输送链的输出联系«gi | sc.»«s x| -aSC 输送链 融 ~| [E3sh ■组氏|离性与產结「佶号和连核设计]_I/O信号信註型 re勸叮川& 5“・ 注开¥彳才启信吕 ifilfi (ftEi 皿擡®fsS目怖捞目悔怯心诚锤StATtCWSo-arcaSourceEmocut adQuauAEnquogFl^aieSensorSensorOctQueueDequ逸Log) eGate [回】OutputLoeic^t^ (xrrriInputXLoc)cG^le【W7T ]OutputSourceExecutePL^neSensorSeasorOut花希注铤BoKinPosConn& et i on 绸话 澄]孕 If ° CMxsx’mt; IM除 上移下移15、添加仿真开始结束组件,用于激活传感器(衆sc_输送链组咸I属性与连结I信号和连雷丽子对象组件Source 创建一个图形组件的拷贝Li near Mover 移动-个对象到-条线上Queue耒示芮对象的队別,可作为组逬行操纵'j FlaneSensora 33监测对象与平面相交厂、LogieGate [HOT]» 进春数宇信号的逻辑运算L/— S i mul at i onE vent 5£修仿真开贻和僖止时龙出的脉冲信号16、添加置位复位组件,对仿真开始结束信号进行保持 超SC_输送链组成 属性与连结1信号和连接|设计子右象组件LinearMover移动一个对象到一条线上Q'ueue裘示为对象的队列,可作为组迸行换纵PlaneSensor 监测对象与平面相交Logi eGate [HOT] 逬行数字信号的逻辑运算—Simul ati ojiEvents%仿真开始和傳止时发出的脉冲信号Logi cSRLateh设春套位锁圭in17、| 氏虽:sc.BW x卫sc_输送隹 聖绍区GE枪逢窃M•刊<7,5 Grrd, 护M*"如・[KiTJOtrtyolL«CC;M・ IM!)LiKicHU BTJOvtjQlW-?UC«BcvscUricm*«>sC曲肛ot出B»t4tOvJ440|pdl«lln>&tD« (itdOutputb久MTQ SlflKils 已maftU fSA1心^册检st初*曲”05»«5«f*>tcS«ra«r&4>.Ucid;jutkL・°63・ [»7]Oct^ttSecretExecut*Rlw^SeciccSanttrCKilMsSiaultii •r£vw><»St*vAl«(i<51L«tchI mulm erZ^smcZirMAl*tl«r2tco<^L>(l<51Lki

±E ]-iSiTi18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘-1—1 J2、添加SMART组件 k j m / xz ▼RAPID Add-Ins修狡爼坪组空毎件Smarts导入几何低雀莱 标记 盍体走面 国疾▼ ▼ ▼ ▼ ▼ ▼|布启|連模丨标曰1 [耒保祚工作站“ 纟冃炜Jscjca枚;氏2 I SCJIR X$ SC_工具 |雌组咸 IB性与逮结|信寻和连接|设计| 子时歙组件 爲flD细廿潟捲贷射金3、添加 ATTACHER 和 DETACHER 组件念sc_工具组成 属性与连结]信号和连接设计子对象组件Attacher安装一个对象Detacher拆除一个已安装的对象4、设置属性属性;Attach er | * ①]属性 □xipan ▼dang©;hdd▼MountJEfset血證3. 00 0. 00 0.00Jr i ent at i on (de g) ®3.00 ^0.00 ^0.005、添加一个线传感器组件视图]I sc JL具X 每sc_工具就—:属性与连结:信号和连接设计子对象组件Sm辺rt^件Attacher 安装一个对象D0函仿真件届性IIBody 1Body 1IRB460 110 240 01xipa n9、设置属性连接蘆态属社811猱tilfi甜 逐垢您 醮 mug: gE^zl^Eit 运伺 H”. 民性连牯10「添加信号及连接 二昭sc_工具 |耐La&」jait远 信号和连桜 型 g佶号通协70山初gR 締■千为乾佑层ifltc ttl^ 8S棧更(£号目找菇J?目标2曲GripLj a«S«n»orAct*$ci*:SKLatchResetLa rSRLxlcbOutput丈二[:耳V»cu«OK无tEIfD Coiwtifc 疚犢 呈^他 I/O〔:ors,"【生占 g以13、添加一个示教物料14、应用手动线和捡证SC_1■項馳 SC.TW # 2 iaB ieo_3io_2^o_0]刃伪榕“ W xiptfi-迅&51?E桩架SM▲ ^scjeRAl I arLwrDatarhwrLiwSwiXor®E1 X SCT«四、工作站逻辑连接Us >« (*«*5in? 恥吩勺权竝kH■H71 a 3丄 W 闵」<2多& g 匕 B @xN&L心一■QMMi<*«.r3»v M Ur a購A ■・—»X....=QX,*;=…«,曲 乂K<*a二•二••OlfMA■MSfcfl 5•»R2WglpW65-S*1 * X mttKx - DA SC Pallet注环WM «rWJTO red*t>eweu wEvstiiwat.>3*□W?2»SC.3*• >*' •SCJTtdg创 qurrM"XjrisW 17SCEVAkmjvOK(AVmmjvCK、「2:*“B>hPW畑+五、参考代码MODULE MainMoudlePERS tooldatatGrip: = [TRUE, [[0, 0, 200], [1, 0, 0, 0]], [25, [0,, ], [1, 0, 0, 0], 0, 0, 0]];!吸盘工具数据PERS loaddata LoadEmpty: = [, [0, 0, 1], [1, 0, 0, 0], 0, 0, 0];PERS loaddata LoadFull: = [40, [0, 0, 50], [1, 0, 0, 0], 0, 0, 0];!有效载荷数据PERS robtargetpHome: = [[,[0, 0, 1, 0], [9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09]];!基准点PERS robtargetpActualPos: = [[1620,[0, 0, 1, 0], [9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09]];!实际点PERS robtargetpPickl : = [0, ,,0], [0, 0, 1,0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];!1路拾取目标点PERS robtargetpPlacel: = [[,[0,,, 0], [1, 0, 2, 0], [9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09 ]];!1路放置基准点PERS robtargetPBasel_0: = [[,, ], [0,,, 0], [1, 0, 2, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];!1路放置0度姿态PERS robtargetpBasel_90: = [[,, ], [0, 1,, 0], [1, 0, 3, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];! 1路放置90度姿态PERS robtarget pPick2: = [[,, ], [0, ,,0[,[-1, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];PERS robtarget pPlace2 : = [[,, ], [0, ,,0[, [-2, 0,-1,0], [9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09]];PERS robtarget pBase2_0:二[[,,],[0,,, 0], [-2, 0,-1, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];PERS robtarget pBase2_90: = [[,, ], 10, 1,, 0],[-2, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];PERS speeddata MinSpeed:二[1000, 300, 5000, 1000Z;PERS speeddata MidSpeed:二[2500, 400, 5000, 1000];PERS speeddata MaxSpeed: = [4000, 500, 5000, 1000];!搬运速度定义PERS bool bPalletFulll:=FALSE;PERS bool bPalletFull2:=FALSE;!逻辑布尔量,拾取后为UE,放置后为FALSEPERS num nCountl:=1:PERS num nCount2:=l:!输送链计数PROC Main()rlnitAll;WHILE TRUE DOIF diBoxInPosl二1 AND diPalletInPosl=l ANDbPalletFulll二FALSE THENrPickl;rPlacel;ENDIFIF diBoxInPos2二1 AND diPalletInPos2=l ANDbPalletFull2=FALSE THENrPick2;rPlace2;ENDIFWaitTime ;ENDWILEENDPROCPROC rlnitAllOReset doGrip;pActualPos:二CRobT(\tool:=tGrip);MoveL pActualPos, MinSpeed, fine, tGrip\WObj:=wobj0;MoveJ pHome, MidSpeed, fine, tGrip\WObj:=wobj0;bPalletFulll:二FALSE;nCountl:=1;bPalletFul12:=FALSE;nCount2:=l;ENDPROCPROC rPicklOMoveJ Offs(pPickl, 0, 0, 400), MaxSpeed, z50, tGrip\W0bj:=wobjO;MoveL pPickl, MinSpeed, fine, tGrip\WObj:=wobjO;Set doGrip;WaitTime ;GripLoad LoadFull;MoveL Offs(pPickl, 0, 0, 400), MinSpeed, zoO, tGrip\WObj:=wobjO; ENDPROCPROC rPick2()MoveJ Offs(pPick2, 0, 0, 400), MaxSpeed, z50, tGrip\W0bj:=wobjO;MoveL pPick2, MinSpeed, fine, tGrip\W0bj:=wobjO;Set doGrip;WaitTime ;GripLoad LoadFull;MoveL Offs(pPick2, 0, 0, 400), MinSpeed, zoO, tGrip\WObj:=wobjO; ENDPROCPROC rPlacelOrPositionl;MoveJ Offs(pPlacel, 0, 0, 400), MidSpeed, zoO, tGrip\WObj:=wobjO;MoveL pPlacel, MinSpeed, fine, tGrip\W0bj:=wobjO;Reset doGrip;WaitTime ;GripLoad LoadEmpty;MoveL Offs(pPlacel, 0, 0, 400), MidSpeed, zoO, tGrip\WObj:=wobjO;MoveJ Offs (pPickl, 0, 0, 400), MaxSpeed, z50, tGrip\W0bj: =wobjO: nCountl:=nCountl+l;IF nCountl>20 THENbPalletFulll:二TRUE;ENDIFENDPROCPROC rPlace2()rPosition2;MoveJ Offs(pPlace2, 0, 0, 400), MaxSpeed, z50, tGrip\W0bj:=wobjO;MoveL pPlace2, MinSpeed, fine, tGrip\WObj:=wobj0;Reset doGrip;WaitTime ;GripLoad LoadEmpty;MoveL Offs(pPlace2, 0, 0, 400), MidSpeed, z50, tGrip\WObj:=wobjO;MoveJ Offs(pPick2, 0, 0, 400), MaxSpeed, z50, tGrip\WObj:=wobj0; nCount2:=nCount2+l;IF nCount2>20 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPositionl()TEST nCountlCASE 1: pPlacel:=Offs(pBasel_0, 0, 0, 0);CASE 2: pPlacel:=Offs(pBasel_0, 600+10, 0, 0);CASE 3: pPlacel:=Offs(pBasel_90, 0, 400+10, 0);CASE 4: pPlacel:=Offs(pBasel_90, 400+10, 400+10, 0);CASE 5: pPlacel:二Offs(pBasel_90, 800+20, 400+10, 0);CASE 6: pPlacel:=Offs(pBasel_0, 0, 600+10, 200);CASE 7: pPlacel:=Offs(pBasel_0, 600+10, 600+10, 200);CASE 8: pPlacel:=Offs(pBasel_90, 0, 0, 200);CASE 9: pPlacel:二Offs(pBasel_90, 400+10, 0, 200);CASE 10: pPlacel:=Offs(pBasel_90, 800+20, 0, 200);CASE 11: pPlacel :=Offs(pBasel_0, 0, 0, 400);CASE 12: pPlacel:=Offs(pBasel_0, 600+10, 0, 400);CASE 13: pPlacel:=Offs(pBasel_90, 0, 400+10, 400);CASE 14: pPlacel:=Offs(pBasel_90, 400+10, 400+10, 400);CASE 15: pPlacel:二Offs(pBasel_90, 800+20, 400+10, 400);CASE 16: pPlacel:=Offs(pBasel_0, 0, 600+10, 600);CASE 17: pPlacel:=Offs(pBasel_0, 600+10, 600+10, 600);CASE 18: pPlacel :=Offs (pBasel_90, 0, 0, 600);CASE 19: pPlacel:=Offs(pBasel_90, 400+10, 0, 600);CASE 20:pPlacel:=Offs(pBasel_90, 800+20, 0, 600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it! Stop;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 1:pPlace2:=0ffs(pBase2_0, 0, 0, 0);CASE 2:pPlace2:=0ffs(pBase2_0, 600+10, 0, 0);CASE 3:pPlace2:=Offs(pBase2_90, 0, 400+10, 0);CASE 4:pPlace2:=0ffs(pBase2_90, 400+10, 400+10, 0);CASE 5:pPlace2:=0ffs(pBase2.90, 800+20, 400+10, 0);CASE 6:pPlace2:=Offs(pBase2_0, 0, 600+10, 200);CASE 7:pPlace2:=0ffs(pBase2_0, 600+10, 600+10, 200);CASE 8:pPlace2:=0ffs(pBase2_90, 0, 0, 200);CASE 9:pPlace2:=Offs(pBase2_90, 400+10, 0, 200);CASE 10:pPlace2:=0ffs(pBase2_90, 800+20, 0, 200);CASE 11:pPlace2: =Offs (pBase2_0, 0, 0, 400);CASE 12:pPlace2:=Offs(pBase2_0, 600+10, 0, 400);CASE 13:pPlace2:=0ffs(pBase2_90, 0, 400+10, 400);CASE 14:pPlace2:二Offs(pBase2_90, 400+10, 400+10, 400);CASE 15:pPlace2:=0ffs(pBase2_90, 800+20, 400+10, 400);CASE 16:pPlace2:=0ffs(pBase2_0, 0, 600+10, 600);CASE 17:pPlace2:=0ffs(pBase2_0, 600+10, 600+10, 600);CASE 18:pPlace2: =0ffs (pBase2_90, 0, 0, 600);CASE 19: pPlace2:=Offs(pBase2_90, 400+10, 0, 600);CASE 20: pPlace2:=Offs(pBase2_90, 800+20, 0, 600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!" Stop;ENDTESTENDPROCPROC rModifyOMoveJ pHome, MinSpeed, f ine, tGrip\WObj: =wobj0;MoveJ pPickl, MinSpeed, fine, tGrip\W0bj:=wobjO;MoveJ pBasel_0, MinSpeed, fine, tGrip\WObj:=wobj0;MoveJ pBasel_90, MinSpeed, fine, tGrip\WObj:二wobjO;MoveJ pPick2, MinSpeed, fine, tGrip\W0bj:=wobjO:MoveJ pBase2_0, MinSpeed, fine, tGrip\WObj:=wobj0;MoveJ pBase2_90, MinSpeed, fine, tGrip\WObj:=wobj0;ENDPROCENDMODULE。

下载提示
相关文档
正为您匹配相似的精品文档