ABB机器人编程实用技巧.docx
一、ABB机器人PdiSP轨迹偏移使用1 .如果有下图两个产品,已经完成了右边产品轨迹,左边产品估计一样,如何快速生成左边轨迹(左边产品可能有平移和旋转)。2 .完成右边轨迹示教Path_30,如上图。起点为Target_20。3 .完成左边起点的示教,为Target_ref_start,如下图。注:如果左边产品轨迹有旋转,示教的Target,ef_start相对于左边产品的姿态要和Target_20相对于右边产品的姿态一致(此处左边产品旋转了30。,示教的角度Z方向也旋转了30°)4.插入指令如下MOVeJPHOme,v 1000,zl 00,tWeldGunWObj :=WObj0;移动至IJ Home 位置87se899091929394»596*9899100PROC main()MoveJ pHomezvl000,ZlOOz tWeldGunWObj:=wobj 0;Path_30;MoveJ pHomezvl000,ZlOOz tWeldGunWObj:=wobjO;MoveJ TargeJreJStart / vl 00 0, fine, tWeldGunWC ConfJ0ff;ConfLOff;PDispOnRot, Target_20 , tWeIdGun;Path_30;PDispOff;,vl000, ZlOO , tWeldGunWObj : =WObjOENDPRoCpHomePath_30;运行右边产品轨迹MOVeJPHOme,V1000,z1OOjWeldGunWObj:=WObj0;回到HomeMoveJTarget_ref_start,V1000,fine,tWeldGunWObj:=wobjO;/走到左边产品起点COnfJO任;因为布南偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报错ConfLOff;因为使用偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报错PDiSPonROt,Target_20,tWeldGun;设定当前位置和Target_20的偏差关系(包括平移和旋转),因为立时机器人停在Targeuef_start起点,即设定左边轨迹和右边轨迹的整体偏移关系。使用Ot表示平移和旋转均计算。如果不使用。3则只使用平移,旋转不计算Path_30;运行原有轨迹,此时轨迹参考坐标移动关系,机器人实际走左边产品轨迹PDispOff;/轨迹完成,关闭平移关系MoveJpHome,V1000,z100,tWeldGunWObj:=wobj0;二、ABB机器人单工位多次预约程序1.机器人有程序如下:2 .工艺过程如下:机器人在home等待。有人按过di信号,机器人开始执行。人工可以一次性多次预约,即如果人工一次性按过3次,机器人执行三次。3 .我们通过中断来实现。4 .中断的意义为,机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动lvl手劭PC2016110721145 .新建一个例行程序,取名tr_l,注意:类型选中断(trap)归更改声明-LRoBI内的未命名程序oduleltjl例行程序声明名称:翘:然:雌理:模块:本地声明:错误处J?程序:6 .进入中断程序,插入指令如下,即当机器人执行中断程序时,给regl记录次数加1regl! 7.进入主程序,设置中断及对应的i。信号+t匕M器Mi)六区TROBt内的未。名神像oduleltjl任务与,席1发TRAPtri-I:三regl+l;ENDTRAP37行的意思是,任何时候di.1信号0变1,就会触发执行tr_l中断程序,即置Aagl为true35-37行程序只要运行过一遍即可,类似于设置开关,不需要反复运行8.主要程序如下。即如果regl=O,机器人在home等待三、在robotstudio创建两台机器人的socket连接1 .什么是socket通讯?就是TCP/IP通讯,无协议,在微软环境下称为SOCke32 .socket通讯能干什么?可以收发制定的数据,包括Sting字符串,byte数组等。3 .创建socket机器人需要什么选项?机器人需要616-ipc-interface选项。4 .socket通讯网线插哪个网口?ServiceQ(IP固定:192.168.125.1)或者Wan口都可以(可以自己设置)。5 .创建client端的实例通常机器人和相机通讯,机器人作为Client端。(1)新建一个机器人系统,注意建立系统时加入pc-interface选项。类别System OptionsGxnmunicatienApplication ArcPaintApplication Paint(2)为了避免之前的连接没有关闭,先插入socketclose指令,后面的socket1为自己新建的Socketdev类型的变量。OraXP316030E停止(SSIOM>IevProcraaJIaae-T_KtWl/sock_clicnt/aain任务与程序I/块例行程席ConaunicateSOSocketCreate SSocketConnepS; ? Communicatio! TPWrite , socke SocketSend so0:<上一个I 下一个一>13(3)(4)PROCmain()TPErase;SocketClose之后插入创建连接SocketCreateo插入建立连接SocketConnect,后面需要制定Server的ip和端口,如果是在电脑和另一台虚拟控制器连接,ip设为“127.0.0.1”,端口自定义,建议不要用默认的1025 olvlOMrc3WC3O¾ereff± (逮叟 * XevProcraMa>e - TvROB 1/sock.client/aain任务与程序块例行程序13iaTPErase;SocketClose socketl;SocketCreate socketl;SocketConnect socketl t ,127.0.0.1”, 8005; ! CommunicationTPWrite "socket client connect successful',;SocketSend socketlStr:=Hello server"SocketReceive socketlStr:=received_string;TPWrite "Server wrote stop; SocketClose socketl;- +received_s tring;这一步作用为机器人会和SerVer建立连接,如果没有建立成功会一直等待,如果成功则往下执行。(5)此处做测试,在建立成功后,插入TPWEe指令,可以在示教器看到Socketclinentconnectsuccessfulo(6)接下去可以收发数据,此处示例为Client先发送数据给SerVer,再接受server发送回来的数据。(7) SOCketSend后面可以发送String或者byte数组,具体可以选择不同可选变量。(8)发送完毕后,client接受到SerVer发回的数据并写屏。6 .以下为server端示例(1)(2)(3)重新创建一个工作站,创建时不要忘记添加pcinterface选项。作为server,机器人需要创建2个Socketdev变量。为了避免之前的连接没有关闭,同样建议先Socketcloseo(4)O-L-OlMMc”e停/ « m>R*(*r<<ra*lan T. ROO>laulolM>MMhff>PROC maln()TPBraae;SocketClose terapawsockt:SoclcetClose client_socket:SocketCseat tap_sockt;SocketBind tempsockt, 127.0.0.1, ,8005;SocketListen temp><ockt;)SoclcetAccept t<Map_socKet, cllnt-sockt:WHILEkeep listeningSocketReceive cllntocktStr:*rcivd TPWrit "Client wrote - " ÷rcld±xlnp SocketSend client_socket8!yt6s,:加酎Q-X(5)(6)127.0.0.1,(7)(8)(9)接着创建 socketCreatetemp_socket 服务器端 SocketdevoSocketBind为绑定socket要监控的ip和端口,如果是虚拟仿真,ip为 端口自定义(和CIient端设置一致)。SocketListen为机器人server监听是否有client连接。SocketAccept 为接受 client 的连接。建立连接后,机器人就可以执行死循环,即一直处于收发状态。(10)之前client程序为client先发后收,故这里server先收后发。SocketCreate temp_socket;SocketBind temp_socket, ,127.0 .SocketListen temp_socket;SocketAccept temp_sock,etz client_socket;WHILEKeep_listeningDOSocketReceive client socketStr:=rectfiye<TPWrite ,Client wrote'+received StriJ1819202122SocketSend client socketStrJ=nServe= vryOKLP3160303停止(MS 100*)ENDWHILESocketClosete115)_socket;SocJcetCloseclient_socket;FDPAD7 .client和SerVer都写完后,可以运行,注意先运行SerVer端,即SerVer机器人处于监听状态,如果连上,两台相互通讯,效果如下:8.server机器人收到的讯息如下:金萧任务?ROBl-XJlientwrote-HelloserverCV-LP31603。金务9.client机器人收到的讯息如下:已停止(*Stoo*)r_ROBl->socktclientconnectsuccessfulr_ROBl->Serverwrote-ServerMessageaoknowledged四、双工位预约程序1.有如下双工位生产2 .工艺过程如下:人工完成1#工位上料后按按钮di(按钮不带保持,即人手松开信号为O)机器人焊接1#工位。此过程中人工对2#工位上下料,完成后按di_2完成预约(即不需要等机器人完成1#工作)。机器人完成1#工作后,由于收到过di_2预约信号,机器人自动去完成2#工位3 .我们通过中断来实现。4 .中断的意义为,机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动5 .新建一个例行程序,取名tr_l,注意:类型选中断(trap)手就PQ0½ J1072114归更改声明-T_RDB1内的未命名程序"BOdulelAjl例行程序声明名称:数据类型:模块:槌声明:偌误处理程序:true611072114qjMn内的未命8程序"MAnol/“修身与理席S9»*停止已停止(,夏16)块TRAP tr 1flagl:=TRUE ;ENDTRAP同理设置第二个中断程序107211«归LRDBl内的未命名程序Bdulc1tr 2VftPtUHfikm停止(<S >00»)%区64任务与&用TRAP tr 2flag2:=TRUE;枚埃例行程序ENDTRAP6 .进入中断程序,插入指令如下,即当机器人执行中断程序时,给bool量置7 .进入主程序,设置中断及对应的io信号'=IUb*,“5r区I乂-V彳4P<20Ul>072114Cffjfc(*X10M)feTROBl内的奉畲名留序oiol311任务与停0决MtrCirPROCmain()!DeleteIntnol;CONNECTintnolWITHtr_l;ISignalDIdi_lz1zintnol;!Deleteintno2;CONNECTintno2WITHtr_2;ISignalDIdi_2,1,intno2;flag1:=FALSE7flag2:=FALSE;WHILETRUEDOMoveJpHome,VlOOO,fine,tool0WOIFfIagl=TRUETHEN37行的意思是,任何时候di.1信号0变1,就会触发执行tr_l中断程序,即置Aagl为true35-40行程序只要运行过一遍即可,类似于设置开关,不需要反复运行8 .主要程序如下。即如果没有人给di信号,机器人就在home位等待。9 .任务与&序枚埃)例行理序WHILETRUEDOMoveJpHomezvlOOOzfineztooIFflagl=TRUETHENflagl:=FALSE;path_l;MoveJpHomezvl000,fineztoolOWENDIFIFflag2=TRUETHENflag2:=FALSE;path_2;MoveJpHome,VlOOO,fine,toolENDIFENnWHTTlE五、与相机通讯的Socket收发数据处理与提取1.相机通常发送字符串给机器人,比如1.23,4.56,7.89D即X为1.23,y为4.56,Z的角度为7.89,用D作为结束符,数据之间用“,”隔开。2 .如果机器人收到上述字符串,如何把字符串提取出来并付给变量deltaX,deltaY,和thetaZ?3 .建立若干num变量,用以存储过程数据,比如StartBit1,表示X的数据从第几位开始,Endbitl表示X的数据结束是第几位,Lenbitl表示X数据的长度,si表示提取的X的值的字符串5 .先假设x的第一位是1,给Startbitl赋值为16 .插入函数Strfind,查找第一个“,”在第几位,得到EndBiH值眼因JK-Xe(Mi«n>8.EndBitl减去StartBitl就是x的数据长度9.同理得到y和theta的信息l三v%*-Ba<,rn<ra*lan-T.N0lcfc.c)ant/dat-dcoStartBlt3:=EndBlt2+l;EndBlt3:三Strind(tr-rcv,StacL«nBit3:«EndBit3-StartBit3;6。1:"Strpart(str_rcv,StartBitl,LnBitl);s2:HStrPaXt(str二rev,StartBit2,LnBit2);s3:SStrPart(atr_rcv,StartBit3,LenBit3);flagl:"StrToVal(«1,d«lt«_x);flaglzStrToVal(s2,delta_y);flagl:StrToval(s3,delta_theta):TPWrit"dlta-x"NuB!三dlt-x;TPWrite"deltaX":三dlta"7ITBulm,二qmLhakA,'Nai"1t0t10.通过StrPart函数,提取从StartBitl开始到LenBitl结束的字符串,即X的值的字符串sv工大. b,×l NoaPracraalMM* - V. RMIiZxocA.cltntrt/dirt«.<lacodaStartBlt3:BndBit2*l;EndBlt3:fl trFi nd (tr_rcv, Star LnBit3:EndBit3-StartBit3;3电公升启BLP316030ff± (逑St ICB*)si:uj22Q3113JB53ESEH392:"8trPart(etr_rcv,StartBit2«3:三3trPart(etrrcv,StartBitS,LenBit3);fIagl:StrToVal7l,dlta-x);fIagl:StrToVal(s2,dlta_y);fIagl:"StrToV*l(«3,fTPWrit"d«lta_x"Num:dlt*-x:.,TPWrlte"deltay"Num:三dlV/TPWNite,d1tatheta,lNum:dolta丫umiMaiiaMt.,:.1Hw12 .同理得到y和Z的字符串13 .通过StrToVal函数,把Sl转为num型,付给delta_x,StrToVal函数的反馈值为bool量,即转换成功为true不成功为false14 .同理得到delta-y和delta-theta15 .成功后可以写赢测试,如下图,ROBl->deltax12.3,_ROBl->delta_y45.616 OBl->deltatheta78.9六、ABB机器人如何创建数组1.什么是数组?将相同数据类型的元素按一定顺序排列的集合17 有什么用?比如创建一个robtarget类型的数组p_array,p_array里有10个点位,走完10个位置就可以用如下代码,方便简洁FORiFROMlTOlODOMoveLp_arrayi,v500,z1,toolO;ENDFOR18 哪些数据类型能创建数组所有数据类型都可以创建数组19 数组最大几维?ABB机器人”>ABB机器人数组最大三维!20 数组起始序号是。还是1?是121 如何创建(1)程序数据%手电haUuncwi&M(Or-L-O316030)济手趣停止三停止(选度10«)HotEdit输入摘出手动操纵自动生产窗口程序编辑器助雌g备份与恢复校准控制面板事件日志ElexPendant资源管理器系统信息Z需皿UScr©问启动(2)选中类型,比如Robtarget(3)新建,设置名称,维数(这里举例1维),每个维度的元素数量(举例为10)l三vl后新救掘声明b*harMi*M(a-LPAM)MftttftS:COlrtarget名称:范国:存橘类型:三¼:模块:例行程序:雄数(4)创建完,就有了一个10个数据的p_array,InalUBCWishi(CJHL-031WM)点击雷翌编幅的维件第件值110.72,-18.58,-30,0.222093,0.0112633,-0.00302.(2)10.72,-18.58,-30,0.222093,0.0112633,-0.00302.310.72,-18.58,-30,0.222093,0.0112633,-0.00302.(4)10.72,-18.58.-30,0.222093,0.0112633,-0.00302.(5)(10.72,-18.58,-30,0.222093,0.Ol12633.-0.00302.rrnrcXZ7(6)10.72,-18.b8,30,0.222093,0.。1126区产0诚以.维数名称:p_array10(5)修改点位,点击上图上某一行,修改位置,即把数组里的某一个元素位置修改了。RAPID中停止指令说明在ABB机器人编程中,大家常用的停止程序执行的指令为stop,不过在RAPlD语言中还有很多中停止方式,下面将做介绍:1 .指令SysteinStopAction立即停止所有任务中的所有机器人Stop;类似于通过停止按钮实现的正常程序停止StopBlock:如上所述,但要重新启动,必须移动PPHalt:这类似于类别0停止,即引发电动机关闭状态、程序执行和所有运动任务中机器人运动的停止。在重新启动程序执行之前,必须按下电机启动按钮2 .指令Stop当前移动指令在机器人停止前完成。重新启动将继续程序执行XNoRegain:重新启动时(比如在点动之后),机器人不会返回停止点VAllMoveTasks:所有机器人都会停止3 .指令StOPMoVe在软停止时,当前移动指令会立即停止,但程序会继续执行下一个指令。它经常用于示例陷阱程序XAllMotionTasks:所有机器人都会停止4 .指令BREAK在正常程序停止时,当前移动指令和程序执行会立即停止。重新启动会继续程序执行5 .指令EXit在正常程序停止时,当前移动指令和程序执行会立即停止。停止之后,”程序指针”必须复位为Main6 .指令ExitCycle当前移动指令和程序执行会立即停止。"程序指针”会复位为Main,并且如果运行模式为连续的话,程序将会重新启动应用实例说明:1.PROCStop_types_show()SystemStopActionHalt;ENDPROC这将导致电机关闭、程序执行停止以及所有运动任务中的机械臂移动。必须在可重启程序执行前,完成电机开启。MotionSup禁用/启用运动监控指令MotionSup用于在程序执行期间,停用或启用关于机械臂运动的运动监控功能,或调节碰撞检测灵敏度。本指令仅可用于主任务T_ROB1,或者如果在MUItiMOVe系统中,则可用于运动任务中。只有在安装选项CollisionDetectionie13-1,才可以使用这条指令。程序执行说明:在执行新的MOtiOnSUP指令前,执行的下一道运动指令仍将采用该规定运动监控。如果同时在系统参数和RAPlD程序中激活了运动监控功能,那么运动监控就会因碰撞而被触发机械臂将尽快停止之后机器人将倒退以消除任何残余力(如果上一次MotionSup指令未使用XNoBackoff开关)出现错误消息时,程序执行将停止如果在系统参数中激活了运动监控,那其在程序执行期间是默认激活的(TuneValuei=100,且倒退以消除任何残余力)。这些数值是自动设定的当使用重启模式重置RAPID时当加载一则新程序或一个新模块时当从起点开始执行程序时当将程序指针移动到main时当将程序指针移动到子程序时移动程序指针造成执行顺序丢失时指令介绍:MotionSuplOnOffTuneValuelNoBackoff;0n0ff启用和关闭运动监控功能;'TuneValue调整运动监控灵敏度等级,以占系统参数水平的百分比(1-300%)计。水平越高,表示灵敏度越稳固。该参数仅可与参数0n结合;'NoBackoff如果使用此开关,那么机器人就不会在发生运动碰撞时避让。该变元只能与变元0n相组合。应用实例:1 )MotionSupOnTuneValue:=150;说明:执行此指令运动监控功能打开,灵敏度调整为150%2 )PROCmainOMotionSupOnTuneValue:=!50;WaitTime1;motsetdatal:=C_MOTSET;ENDPROC刍娼辑名称:motsetdatal点击一个学段以编辑值。执行上述程序后,从motsetdatal中可以看到当前的监控功能打开,灵敏度值为150.ABB机器人程序类型介绍及坐标系偏移指令应用一、ABB机器人编程语言为rapid语言,在例行程序中可分为三类:普通程序、功能程序和中断程序。例如新建一个例行程序,会选择一个程序类型,三种类型的区别如下:BflfiVirM,rr三0*TBMl*arMl向京外IT利序:例行程住户明名务:加Mh数据受R模伏:5次处IT际序:声耽1普通程序(procedures):常用的main程序和其他的例行程序。2、功能程序(function):会返回一个指定程序数据类型的数值,在其他指令中可作为参数调用。3、中断程序(trap):中断程序监控开启,当中断条件满足时候,则立即暂停当前正在执行的正常运行程序,程序指针PP转而调转去中断标识符关联的中断程序,去执行中断程序中的指令,中断程序运行完成后程序指针PP自动返回发生该中断的正常程序指令处继续往下执行。二、ABB机器人在坐标系中偏移用到的指令有:OffS和RelTOO1。OffS用在工件坐标系中偏移,而RelTool是在工具坐标系中偏移。1、Offs用于在一个机械臂位置的工件坐标系中添加一个偏移量。Offs(Point,XOffset,YOffset,ZOffset)其中,Point指一个偏移的基准点位,XoffSet指工件坐标系中X方向的位移,YOffset指工件坐标系中Y方向的位移,ZOffset指工件坐标系中Z方向的位移。例1:MoVeLoffS(P2,0,00),vl000,z50,tool1;将机械臂移动至距位置p2(沿Z方向)IOmm的一个点。例2:pl:=OffS(PI,5,10,15);机械臂位置Pl沿X方向移动5mm,沿y方向移动IOmm,且沿Z方向移动15mm。2、RelTool(RelativeTool)用于将通过有效工具坐标系表达的位移和/或旋转增加至机械臂位置。例1:MOVeLRerrOOl(PlQ0,100),VlOO,fine,tool1;沿工具的Z方向,将机械臂移动至距pl达100mm的一处位置。例2:MoveLRelTooKp1,0,0,0Rz:=25),v100,fine,tool1;将工具围绕其Z轴旋转25°。如果同时指定两个或三个旋转,则旋转将以如下顺序执行:1、围绕X轴旋转2、围绕新y轴旋转3、围绕新Z轴旋转RelTool(PointDxDyDzRxlRylRz)ABB机器人调用例行程序的方法在机器人的编程中例行程序的调用是必不可少的,今天来分享一下例行程序调用的三种方法。一、通过RAPID指令“ProcCal调用程序1、在程序编辑器中添加指令"ProCCaH”调用相应的程序,适用于调用固定程序被调用的程序允许有参数传递。二、通过RAPlD指令“CallByVar”调用程序1、在程序编辑器中添加指令''CallByVal调用相应的程序,适用于调用有规律的程序;例如:RtKRt2、Rt3这类“字符+数字”为名称的程序,经常配合循环指令使用。例如:调用Rtl、Rt2、Rt3这三个例行程序。FORNrlFROMlTO3DOCallByVar,'Rt",Nrl;ENDFOR2、注意该种调用方法不支持带有参数的例行程序,否则运行过程中会报警“执行错误”如下图;事件日志-事件消息事件消息401932023-03-1222:55:16执行错误说明任务T-ROBl,后期绑定13过程调用错误。动住三、通过“程序名称%”的方式调用程序1、在程序中输入程序名称的方式调用程序,程序名称可以是类型为String的变量,也可以直接写程序名称。2、使用此调用方法可以调用有参数的程序但是不常用,此调用方法通常应用于相同位置调用不同程序例如:通过Nr2的值调用不同程序TESTNr2CASEl:pn:="Rtl"CASE2:pn:="Rt2u;CASE3:pn:="Rt3H;ENDTEST%pn%;3、使用此方法调用有参数的程序写法与第一种调用方法相同如下图所示三种写法功能相同,结合使用场景,选择最适合的方法。39pn:="Routine2"40%pn%T3,T2,T4;41%"Routine2"%T3,T2,T4;机器人示教器三位开关状态输出用户PLC希望获取机器人示教器的三位开关的状态输出信号,如何实现?翦入餐出安全信号I从列表中迭杼一个Vo信号舌动过避名:通降布局I默认名称IM设备Drvispeed0DIDRVlTESri0DIDXZ/DRV1TES20DIDRV_1DRVlTESrE20DODRuDRVOVLD0DIPANELEHl0DIPANELEH20DIPAIELEBAELE11DIPAIELEHAELE2_11DIr/BHARLK221DI/通视图示教器中的安全信号中的ENl和EN2代表示教器三位开关(三位开关内部为双回路)的状态,正常情况,按下三位开关,ENl和EN2均为1,松开/不通均为0.可以在机器人创建一个Do输出信号,例如manual_enable,并使用crossconnection功能,如果ENl和EN2均为L则manual_enable信号为1.PLC监控该manual_enable信号即可。NamemanResultantmanual.enablevActor1EN1InvertActor1OYesNoOperator1AndvActor2EN2vInvertActor2OYesNoOperator2实例编辑器名称值信息ABB机器人轨迹编程机器人的轨迹编程是指根据作业任务的要求,机器人末端执行器在工作过程中位置、姿态、速度及加速度等的人为设定,机器人通过给定初始状态、目标状态以及路径所经过的插补点,生成一定的轨迹。ABB机器人轨迹编程中最常见的编程,有直线运动指令MOVeL、关节运动指令MoVeJ、圆弧运动指令MOVeC,绝对位置运动指令AbSMOVeJ。语法格式为:zoneToolOWobj ;MoveJXAbsMoveJMoveL!positionI运动Ill位置I I j II速度I 数据I区域I 数据1JLI:I件数据U TT VVWV*WWWVSVWW'jia指令MoveJ:关节运动指令,机器人的工具中心点TCP从一个位罩移动到另一个位置,两个位置之间的路径不一定是直线。该指令在机器人运动过程中轨迹没有严格要求,只需机器人能快速平滑的运动到下个目标点。通常在轨迹之间的过渡位置或者在任务开始或结束阶段回归机器人Home点时会经常使用到这个指令。MoveL:直线运动指令,机器人以线性移动方式运动至目标点,当前点与目标点两点确定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现死点,机器人作业时使用该指令。AbsMoveJ:关节轴运动指令,机器人以单轴运行的方式运动至目标点,绝对不存在死点,运动状态完全不可控,避免在正常生产中使用此指令,常用于检查机器人零点位置,指令中TCP与WObi只与运行速度有关,与运动位置无关。常用于机器人六个轴回到机械零点的位置。机器人在运动中出现奇异点位置的时候,可以酌情使用AbsMoveJ指令。MoveC:圆弧运动指令,机器人通过中间点以圆弧移动方式运动至目标点,当前点、中间点与目标点三点决定一段圆弧,机器人运动状态可控,运动路径保持唯一,机器人作业时使用该指令。参数位置数据:用于定义移动机械臂和附加轴的移动指令中的位置,包含:位置(Pos)四元数(C)rient)、轴配置(COnfdata)、附加轴位置(Extjoint)o示教目标点,位置移动机器至目标点即可,四元数的数据取决与机器人的姿态,重定位运动让机器人姿态位最佳,轴配置系统自动计算。速度数据:用于规定机械臂和外轴均开始移动时的速率,可以在Speeddata中定义,也可以选用系统自带的速度数据,不可以随便输入速度数据,如V900。轨迹编程的最高标准,运动速度可控、机器人运转得更快、定位更精确、更稳定可靠,那么,当它启动和停止时就必须是平缓的,而不是猛然加速和骤然减速,在此速度数据的选择上我们应该有比较好的答案。区域数据:用于规定如何结束一个位置,即在朝下一个位置移动之前,轴必须如何接近编程位置,可以在Zonedata中定义,也可以选用系统自带的区域数据,也不可以随便输入。关节运动指令区域数据选择ZO以上,作用是有效提高运行效率;设置原则越大越好、不超过下段路径长度的一半。直线运动指令区域数据选择ZO或者Fine5Fine是阻止预读,如果直线运动指令中全选用Fine,机器人运行轨迹不但不平滑,还影响生产节拍。Fine是阻止预读,常用于信号指令前面,在某些生产中机器人回HOme点时,也需要用Fine。轨迹编程的主要目的就是使机器人,运动轨迹平滑、准确、稳定,达到最优轨迹,提高机器人的工作效率。工具数据:用于描述工具(例如,焊枪或夹具)的特征。此类特征包括工具中心点(TCP)的位置和方位以及工具负载的物理特征。建立工具坐标系的主要目的把控制点转移到工具的尖端点上,工具坐标系的方向随腕部的移动而发生变化。工件数据:用于描述机械臂作业