东芝机器人编程语言(中文).ppt
TH系列/TV系列机械手语言,学校教材,1,机械手坐标与示教(系列),X,+,-,+,-,A2,(523123,-234.567),(+,+),(-,+),Y,(+,-),(-,-),+,X Y Z C T CONFIG(姿势)示教点A2A2=523.123,-234.567,180.945,45.345,0.0/LEFTY,CONFIG(机械手姿势),3轴/4轴的坐标,180.945,2,机械手坐标与示教(系列),X Y Z A B C U V CONFIG(姿势)示教点A2A2=-20.0,0.0,1220.0,0.0,0.0,0.0,0.0,0.0/LANSS,Z,Y,A2,C,B,A,前面反射镜,仰面,旋转以上,3,程序,程序的讲述必须在语句到语句之间。PROGRAM程序名程序开始END 程序结束,例)PROGRAM TESTMOVE A1MOVE A2MOVE A3END,程序开始,程序本体,程序结束,4,PTP(Point to Point)动作,MOVE位置名从现在位置移动到位置名的位置。,例)PROGRAM TESTMOVE A1MOVE A2MOVE A3END,A1,A2,A3,机械手顶端的路径与路径无关,通过移动到目标位置的动作,使全轴同时开始动作;同时结束动作。,现在位置,X,Y,+,-,+,-,5,直线插补动作,MOVES位置名从现在位置直线移动到位置名的位置。,例)PROGRAM TESTMOVES A1MOVES A2MOVES A3END,A1,A2,A3,现在位置,X,Y,+,-,+,-,6,位置型数据的生成,POINT(X,Y,Z,C,T)位置数据的生成。X,Y,Z,C,T是机械手坐标值(mm或者度单位),例)PROGRAM TESTMOVE A1MOVE A1+POINT(0,0,50,0)MOVE A2+POINT(0,0,30,0)MOVE A2 END,A1,A2,Z,+,-,50mm,30mm,机械手动作,7,动作速度的指定,SPEED=超程()按指定对应最高速度的比例,例)PROGRAM TESTSPEED=80MOVE A1MOVE A2SPEED=50 MOVE A3 END,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,8,指定每个动作的动作条件,动作指令语句 WITH动作条件语句动作指令语句MOVE,MOVES指令等动作条件语句SPEED,ACCEL,DECEL指令语句等,例)PROGRAM TESTSPEED=100MOVE A1MOVE A2MOVE A3 WITH SPEED=20 END,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=100,SPEED=100,SPEED=20,9,指定机械手停止时间,DELAY时间指定机械手动作的停止时间。时间:按秒单位指定,例)PROGRAM TESTMOVE A1DELAY1.5MOVE A2DELAY1.0END,A1,A2,现在位置,X,Y,+,-,+,-,1.5秒 停止,1秒 停止,10,实习课题(1),请编制移动下图点位置间的程序。其中,在A1以及A3侧进行Z轴30mm上下移动;在A2侧向X轴方向进行直线插补50mm 移动,然后,等待2秒钟后按直线插补返回A2侧。从A1到A2侧以80速度移动;直线插补为50速度、从A2到A3为80速度。,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,2秒钟待机,TSPC侧进行程序编制,设定假设位置,检验TSPC侧编制的程序的语法,通过TSPC的模拟进行动作确认,进行控制器的传送,TP侧进行实际示教。,11,实习课题(1)解答,PROGRAM TESTSPEED=80MOVE A1MOVE A1+POINT(0,0,-30)MOVE A1MOVE A2MOVES A2+POINT(50)WITH SPEED=50 DELAY 2.MOVES A2 WITH SPEED=50MOVE A3MOVE A3+POINT(0,0,-30)MOVE A3END,12,外部信号输出,DOUT(信号序号)输出外部输出信号与辅助输出信号。信号序号按输出信号分配的序号符号:无指定为ON 指定为OFF,例)PROGRAM TESTDOUT()DELAY5DOUT(-1,2,3)DELAY5DOUT(-2,-3)END,DOUT(),DOUT(2),DOUT(3),5秒钟,5秒钟,程序开始,RESET DOUT使输出信号全部为OFF。辅助输出不能为OFF。,13,外部信号输入,DIN(信号序号)以外部输入信号与辅助输入信号为读入条件 判断真伪。信号序号按输入信号分配的序号符号:无指定为ON 指定为OFF,例)PROGRAM TESTDOUT(2)WAIT DIN(2,-3)DOUT(-2)END,DOUT(2),DIN(2),DIN(3),等待到条件达到一致,程序开始,WAIT 条件等待条件达到真。数个信号可用(,)区分,最大可指定为10个。,14,实习课题(2),请在实习课题(1)中编制的程序内添加下列所记内容。添加内容)A1下端侧手臂闭(OFF);A3下端侧手臂开(ON)空气电磁阀输出为DOUT(5)。手臂闭检验 DIN(5,-6)手臂开检验DIN(-5,6)当A2侧DIN(2)为ON后,启动直线插补。(准备确认)通过直线插补返回到A2后,使DOUT(1)为ON。(作业结束)在最后的程序段侧使DOUT(1)为OFF,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,2秒钟待机,15,实习课题(2)解答,PROGRAM TESTSPEED=80MOVE A1MOVE A1+POINT(0,0,-100)DOUT(-5)WAIT DIN(5,-6)MOVE A1MOVE A2WAIT DIN(2)MOVES A2+POINT(80)WITH SPEED=50 DELAY 2.MOVES A2 WITH SPEED=50DOUT(1)MOVE A3MOVE A3+POINT(0,0,-100)DOUT(5)WAIT DIN(-5,6)MOVE A3DOUT(-1)END,16,无条件分支,GOTO 标签名按持有已指定的标签名的语句分支。标签,在字符串的后面用:表示。,例)PROGRAM TESTMOVE A1LOOP:MOVE A2MOVE A3GOTO LOOPEND,A1,A2,A3,現在位置,X,Y,+,-,+,-,17,条件分支,IF 条件THEN 语句如果条件为真,则继THEN之后继续执行语 句;如果为伪,则执行下一步。条件按DIN指令等给予的条件式 语句程序语句,例)PROGRAM TESTMOVE A1IF DIN(1)THEN GOTO L1 MOVE A2 GOTO L9L1:MOVE A3L9:END,A1,A2,A3,现在位置,X,Y,+,-,+,-,DIN(1)为OFF,DIN(1)为ON,18,条件分支,GOTO(变量名)标签名根据变量的值改变分支端。标签名,用(,)区分,可指定为个。,例)PROGRAM TESTMOVE A1N=0IF DIN(1,-2)THEN N=1IF DIN(-1,2)THEN N=2GOTO(N)L1,L2STOPL1:MOVE A2 GOTO L9L2:MOVE A3L9:END,A1,A2,A3,現在位置,X,Y,+,-,+,-,DIN(1,-2)的时候 N=1,DIN(-1,2)的时候 N=2,19,重复(FOR 语句),FOR 变量=初始值TO 终端值开始程序重复部分NEXT 变量结束程序重复部分,例)PROGRAM TESTFOR K=1 TO 10DOUT(K)MOVE A1DELAY 0.5DOUT(-K)MOVE A2DELAY 0.5NEXT KEND,A1,A2,現在位置,X,Y,+,-,+,-,从DOUT(1)到DOUT(10)按顺序为,从DOUT(2)到DOUT(10)按顺序为,使DOUT(1)为,20,实习课题(3),请将实习课题(2)编制的程序的WAIT语句变更为使用语句的程序。A1下端侧手臂闭(OFF);A3下端侧手臂开(ON)空气电磁阀输出为DOUT(5)。手臂闭检验 DIN(5,-6)手臂开检验DIN(-5,6)当A2侧DIN(2)为ON后,启动直线插补。(准备确认)通过直线插补返回到A2后,使DOUT(1)为 ON。(作业结束)在最后的程序段侧使DOUT(1)为OFF,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,2秒钟待机,21,实习课题()解答,PROGRAM TESTSPEED=80MOVE A1MOVE A1+POINT(0,0,-100)DOUT(-5)WAIT DIN(5,-6)MOVE A1MOVE A2L1:IF DIN(2)THEN GOTO L2GOTO L1L2:MOVES A2+POINT(80)WITH SPEED=50 DELAY 2.MOVES A2 WITH SPEED=50DOUT(2)MOVE A3MOVE A3+POINT(0,0,-100),DOUT(5)WAIT DIN(-5,6)MOVE A3DOUT(-2)END,22,实习课题(),摁压着UF1键时,UF1灯点亮,离开后,灯熄灭。摁压着UF2键时,UF2灯点亮,离开后,灯熄灭。请编制程序。TS1000控制器 UF1键:DIN(17)UF1灯:DOUT(17)UF2键:DIN(18)UF2灯:DOUT(18)TS2000/TS2100控制器 UF1键:DIN(63)UF1灯:DOUT(63)UF2键:DIN(64)UF2灯:DOUT(64),UF1键,UF2键,UF1灯,UF2灯,7段,23,实习课题(4)解答,PROGRAM TEST1L1:IF DIN(63)THEN DOUT(63)IF DIN(-63)THEN DOUT(-63)IF DIN(64)THEN DOUT(64)IF DIN(-64)THEN DOUT(-64)GOTO L1END,PROGRAM TEST2L1:IF DIN(63)THEN GOTO L10L2:IF DIN(-63)THEN GOTO L20L3:IF DIN(64)THEN GOTO L30L4:IF DIN(-64)THEN GOTO L40L5:GOTO L1:L10:DOUT(63)GOTO L2L20:DOUT(-63)GOTO L3L30:DOUT(64)GOTO L4,L40:DOUT(-64)GOTO L5END,24,子程序,机械手程序由数个程序与位置数据构成。所谓数个程序的含义就是个主程序和数个子程序。,例)PROGRAM TESTMOVE A1 SUBENDPROGRAM SUB MOVE A2 SUB1 MOVE A3ENDPROGRAM SUB1 DOUT(201,-202)END,主程序,子程序,子程序,ABC,EFG,RETURN,END,END,END,ABC,EFG,请指定按子程序的PROGRAM语句指定的程序名。子程序名为英文字符,为字符的英文、数字字符。要示教的位置数据在主、子程序侧可以共通使用。子程序的组最大为7组。使用在主、子程序侧共通变量的时候,请按GLOBAL说明。,25,快捷动作,PASS=通过率(指定快捷(short cut)动作的通过率)ENABLE PASS开始进行快捷动作DISABLE PASS 结束进行快捷动作,例)PROGRAM TESTPASS=80MOVE A1ENABLE PASSMOVE A1+POINT(0,0,50,0)MOVE A2+POINT(0,0,50,0)DISABLE PASSMOVE A2ENABLE PASSMOVE A2+POINT(0,0,50,0)MOVE A1+POINT(0,0,50,0)DISABLE PASSEND,A1,A2,X,是通过示教点近旁,向下一个示教点方向的动作。谋求移动时间的缩短,可以缩短循环时间。注)根据示教点的位置关系以及程序,也有不能进行通过动作的情况发生。,通过率为80时的动作,X,80%,100%,26,机械手程序的先解析,机械手程序的先解析 所谓先解析就是指为实现简捷动作等,在动作前先对最大4个动作指令进行解析。此时,若输入输入输出指令,则会因NOWAIT系统变量而出现不同的结果。,ENABLE NOWAIT 不等待机械手动作结束,直接进行输入输出信号的处理。DISABLE NOWAIT 等待机械手动作结束后,进行输入输出信号的处理。,例)PROGRAM TESTRESET DOUTDELAY 2.0WAIT MOTION=100ENABLE NOWAITENABLE PASSMOVE A1DOUT(1)MOVE A2DOUT(2)MOVE A3DOUT(3)MOVE A4DOUT(4)WAIT MOTION=100DISABLE NOWAITEND,DISABLE NOWAIT,EABLE NOWAIT,27,停止机械手程序的先解析,先解析的停止 通过WAIT 指令,先解析可以停止解析。例WAIT DIN(1)WAIT MOTION=80 用DEALY指令不能停止先解析。,EABLE NOWAIT,例)PROGRAM TESTRESET DOUTENABLE NOWAITMOVE A1WAIT MOTION=80DOUT(1)MOVE A2WAIT MOTION=100 DOUT(2)END,A1,A2,现在位置,X,Y,+,-,+,-,移动的80以上时,执行DOUT(1),移动的100以上时,执行DOUT(2),80%,28,实习课题(5),请在实习课题(2)中编制的程序中添加或变更下列所记内容。添加、变更内容)请将手臂闭(OFF)以及其状态确认、手臂开(ON)以及其状态确认 制定为子程序。确认达到A1以及A3的最下限的移动,并移动到下一个程序段。由直线插补返回到A2途中达到50后,使DOUT(2)为ON。要缩短循环时间,请设定通过(pass)为60。,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,2秒钟待机,A1,A3,DOUT(2),29,实习课题(5)解答,PROGRAM TESTPASS=60ENABLE PASSSPEED=80MOVE A1MOVE A1+POINT(0,0,-100)WAIT MOTION=100SUBCHUCKMOVE A1MOVE A2L1:IF DIN(2)THEN GOTO L2GOTO L1L2:MOVES A2+POINT(80)WITH SPEED=50 DELAY 2.ENABLE NOWAITMOVES A2 WITH SPEED=50WAIT MOTION=50DOUT(2)DISABLE NOWAIT,MOVE A3MOVE A3+POINT(0,0,-100)WAIT MOTION=100SUBUNCHUCKMOVE A3DOUT(-2)DISABLE PASSENDSUBCHUCKDOUT(-5)WAIT DIN(5,-6)RETURNENDSUBUNCHUCKDOUT(5)WAIT DIN(-5,6)RETURNEND,30,条件监视(中断处理),ON 条件DO 语句 在机械手动作中进行条件监视,当条件为真 时,执行继DO后的语句。IGONORE 条件 解除通过ON指令指定的条件监视。,例)PROGRAM SAMPLEENABLE NOWAITRESET DOUTMOVE A1WAIT MOTION=100WAIT DIN(-1)DOUT(-1)ON DIN(1)DO DOUT(1)MOVE A2MOVE A3WAIT MOTION=100IGNORE DIN(1)END,A1,A2,A3,现在位置,X,Y,+,-,+,-,等待到DIN(1)为OFF,DOUT(1)为OFF。,由A1位置向A2或A3移动途中,若DIN(1)为ON,则DOUT(1)为ON。,X,A3定位结束后(100)解除条件监视。,WAIT MOTION=100的指令没有时,在A2位置侧解除条件监视。,31,条件监视(中断处理/停止动作),ON 条件BREAK DO 语句 在机械手动作中进行条件监视,当条 件为真时,停止机械手动作,并执行继DO 后的语句。,例)PROGRAM SAMPLEENABLE NOWAITSPEED=5WAIT DIN(1)ON DIN(-1)BREAK DO SUBMOVE A1MOVE A2MOVE A3WAIT MOTION=100IGNORE DIN(-1)ENDPROGRAM SUBWAIT DIN(1)ON DIN(-1)BREAK DO RESUMEEND,A1,A2,A3,现在位置,X,Y,+,-,+,-,等待到DIN(1)为ON。,由A1位置向A2或A3方向移动途中,DIN(1)为ON时,进行减速停止,并呼叫SUB。,X,A3定位结束后(100)解除条件监视。,在SUB侧等待到DIN(1)为OFF。,SUB,32,全程变量定义,GLOBAL 变量 对能从程序中任意一个起可参照的大区域的变 量进行定义 END,例)GLOBAL A=1ENDPROGRAM SAMPLE SUB PRINT“A=“,A,CRDELAY 1ENDPROGRAM SUB A=A+1END,GLOBAL内说明的变量可在主程序及子程序中作同一变量使用。主程序及子程序中说明的变量,只能在此中使用。,能使用的类型有:整数型、实数型、位置型、坐标型、负荷型。例)整数型A=1实数型 B=1.0排列型 DIM D(10)AS INT 整数 DIM E(10,3)AS REAL 实数 DIM F(5)AS POINT 位置排列必须按GLOBAL说明。,33,排列,DIM 字符串(变量)AS 数据型 根据字符串、变量、数据型排列名 生成排列名。,例)GLOBAL DIM P(5)AS POINTENDROGRAM SAMPLE WAIT DIN(1)FOR K=1 TO 5 DOUT(-3)MOVE P(K)DOUT(3)NEXT KENDDATA POINT P(1)=185.892,249.492,55.000,159.998,0.0/RIGHTY POINT P(2)=125.357,356.345,50.000,90.345,0.0/RIGHTY POINT P(3)=201.356,345.892,33.000,174.893,0.0/RIGHTY POINT P(4)=98.372,125.876,45.000,34.692,0.0/RIGHTY POINT P(5)=155.892,263.492,99.000,24.994,0.0/RIGHTY END,GLOBALDIM A(10)AS INT:整数型A(1),A(2)A(10)DIM B(3,3)AS REAL:实数型B(1,1),B(1,2)B(3,3)DIM C(5,2)AS POINT:位置型C(1,1),C(1,2)C(5,2)DIM D(3)AS TRANS:坐标系 D(1),D(2)D(3)DIM E(7)AS PAYLOAD:负荷型 E(1),E(2)E(7)END,34,信息的显示,PRINT信息 示教操作手柄上显示信息。显示用双引号(“”)的字符串若指定变量,则会显示变量的值信息,用(,)区分,可以显示数个最后,若带有(,CR)符号,则会在信息显示后换 行,例)PROGRAM SAMPLE K=1 PRINT“*WELCOME*K=”,K,CREND,*WELCOME*K=1,TP 显示,PRINT通信信道没有指定COM0,COM1,TP等通信信道的时候,TP为通信信道。,35,计时器与注释,TIMER 按系统变量TIMER设定秒单位的值。系统变量TIMER为减法计时。,例)PROGRAM SAMPLE WAIT MOTION=100 TIMER=100.0 MOVE A1 MOVE A2 MOVE A3 WAIT MOTION=100 PRINT 100.0-TIMER,CR END,REMARK 程序中所记述的注释。取代REMARK,也可以记述为。之后,行结束前作注释处理。,显示由A1点到A3点移动结束为止的动作时间。,3.325,TP 显示,TIMER的值为96.675秒,例)PROGRAM SAMPLE MOVE A1 WAITING POSITION*COMMENT*MOVE A2 END,红色字体为程序内的注释。,36,实习课题(6),注释输出在实习课题(5)中编制的程序的手臂开闭确认和准备确认,并在TP侧显示一系列动作的循环时间。此外,变化动作速度后,要确认循环时间的不同变化。,A1,A2,A3,现在位置,X,Y,+,-,+,-,SPEED=80,SPEED=80,SPEED=50,2秒钟待机,A1,A3,DOUT(1),37,实习课题(6)解答,PROGRAM TESTTIMER=300PASS=60ENABLE PASSSPEED=80MOVE A1MOVE A1+POINT(0,0,-100)WAIT MOTION=100SUBCHUCKMOVE A1MOVE A2 L1:IF DIN(2)THEN GOTO L2 GOTO L1 L2:MOVES A2+POINT(80)WITH SPEED=50 DELAY 2.ENABLE NOWAITMOVES A2 WITH SPEED=50WAIT MOTION=50DOUT(2),DISABLE NOWAITMOVE A3MOVE A3+POINT(0,0,-100)WAIT MOTION=100SUBUNCHUCKMOVE A3DOUT(-2)DISABLE PASSPRINT”CYCLETIME=”,300-TIMER,CRENDSUBCHUCKDOUT(-5)WAIT DIN(5,-6)RETURNENDSUBUNCHUCKDOUT(5)WAIT DIN(-5,6)RETURNEND,38,码垛堆积,码垛堆积(palletising)装载码垛堆积库,并进行初始设定。码垛堆积的位置(点)使用排列。示教点仅设3点示教,例)GLOBAL LOADLIB PALLET.LIB DIM PLTP(1,7)AS POINT ENDPROGRAM SAMPLEINITPLT(1,4,5,1)FOR I=1 TO 20 STEP 1 HANDOP MOVE P0+POINT(0,0,30,0)MOVE P0 CLOSEI MOVE P0+POINT(0,0,30,0)MOVEPLT(1,I,0,0,30,0)MOVEPLT(1,I,0,0,0,0)OPENI MOVEPLT(1,I,0,0,30,0)NEXT I END,4行5列1段,部件供给位置,装载码垛堆积库。,P0,PLTP(1,1),PLTP(1,2),PLTP(1,3),说明托板的位置。(1,7)中的“1”为托板枚数;“7”为常数,托板的初始设定 第1枚,4行5列,第1段,供给位置P0上以30mm移动,P0侧夹持部件,然后上升30mm。,MOVEPLT(1,I,0,0,30,0)为1枚托板、I 号、X,Y,Z,C的补偿 I号部件上以30mm移动,然后下降30mm,放置部件,返回30mm。,39,实习课题(7),从供给托板(4行5列1段)起按部件检查位置进行检查。DIN(1)为ON的时候为合格品;DIN(2)为ON的时候为不合格品。合格品的时候,会按顺序进入接纳托板侧。不合格品的时候,会移动到不合格品位置侧,作废弃。手臂开闭的空气电磁阀输出为DOUT(5),进行手臂开(ON)闭(OFF)手臂闭检验 DIN(5,-6)手臂开检验DIN(-5,6),部品的检查,供给托板1,接纳托板2,废弃,DIN(-1,2)不合格品,DIN(1,-2)合格品,Z,Z,Z,