SRC+ Robot Controller FARAL Factory Automation Robust Architecture Language Mechatronics Center SRC+ Robot Controller FARAL 내 용 • • • • • • 로봇 언어란 무엇 인가 ? FARAL 언어의 구성 언어의 편집 및 실행 TEACH PENDANT의 조작 및 로봇 기본 조작 로봇 언어의 소개 실습 SRC+ Robot Controller FARAL 로봇 언어란 무엇인가 ? • 사용자와 로봇간의 대화수단 • 다양한 적용 프로그램의 작성 • 일반적인 프로그램 언어 + 로봇 동작 구동 언어 • FARAL 의 특징 – BASIC 수준의 고급 언어 구조 – 쉽게 익숙해질 수 있는 언어구조 SRC+ Robot Controller FARAL FARAL 언어의 구조 SRC+ Robot Controller FARAL 언어의 편집 및 실행 EDIT Menu LANG Menu Language NEW LOAD EXIT SAVE DEFINE INT, REAL, LOC, SUB, ENDSUB QUIT MOTION MOVE, MOVES, MOVEA, READY, UP, MOVEC, APPRO, ROTATE, ALIGN, DRIVE, CONT, FINE, LEFT, RIGHT, ABOVE, ELBOW, FLIP, NOFLIP COPY LOCATION PASTE I/O LANG PROGRAM CUT COMMUNICATION DEL FUNCTION SEARCH PARAMETER LSET, LDEL, LREN, LCOPY, LDATA, SHIFT, HERE, WORK, TOOL, TCP IFSIG, GOSIG, SDATA, SDEF, SIG, SIGIN, SIGOUT, SINT, PULSE, WAIT, SCHK, SOUT GOTO, IF, THEN, ELSE, ENDIF, RETURN, FOR, NEXT, WHILE, ENDWHILE, STOP, GOSUB, DELAY READ, WRITE, TRANS, LOAD SIN, COS, ATAN2, LN, LOG, EXP, ABS, POW, EXT, SQRT ACC, MSPD, GAIN, UL, LL, INPOST, INPOSA, ENVELA, REFPNT, SPEED REPLACE GOLINE KEYS @ ^ ~ - 175 - ! , % SRC+ Robot Controller FARAL Teach Pendant의 Key 배치 - 영문/숫자/특수문자 F1 ~ F7 RUN/STOP SERVO JOG ESC 《 F1 F2 F3 F4 F5 F6 F7 》 BS SHIFT SP A A RC RUN B C 2 1 D E 4 H 5 7 L P / ) = +J 1 -J 1 +X -X ZR +J 2 -J 2 RESET +Y -Y JOG +J 3 -J 3 MODE +Z -Z ESTOP +J 4 -J 4 REC +α -α +J 5 -J 5 +β -β +J 6 -J 6 +γ -γ SERVO W [ Z > ; S V Y < # - ( , O R U X 9 0 + . K N Q T 6 8 * G J M ENTER ESC 3 F I PAUSE R OBOT ] : | & SPEED SHIFT SRC+ Robot Controller FARAL TP Main 화면 • Booting 후 Main 화면 ROBOT NO. SPEED [R1/S010] SRC+ ROBOT CONTROLLER SYSTEM VER 4.20 TEACH PENDANT VER 3.0 OPTIONS : NONE SAMSUNG ELECTRONICS CO.,LTD MAIN VERSIO N T/ P VERSIO N OPTION EXT-BATTERY ...OK PARAMETER CHECK...OK LOC. CHECK ...OK FILE CHECK ...OK BATTERY CHECK PARAMETER CHECK LOCATION CHECK FILE CHECK FILE LOC PARA EXEC DIAG APPL SRC+ Robot Controller FARAL FILE 관리 • FARAL 편집/삭제/이름변경/복사 1/ 1 2 3 4 5 6 선택된 화일 명령어 라인 메 뉴 라 인 6 FIL E SER VI CE [R1/ S0 10 ] FIL E2 15 38 BYT ES EXT .N UM = - 1 GOO D 8 23 60 BYT ES EXT .N UM = - 1 NCC 1 2 75 20 BYT ES EXT .N UM = - 1 PIC KU P 90 38 5 BYT ES EXT .N UM = - 1 SUB 10 64 53 BYT ES EXT .N UM = - 1 TES T1 45 38 BYT ES EXT .N UM = - 1 _ FDI R FDE L FCP Y FRE N FTY P EDI T EXI T SRC+ Robot Controller FARAL LOCATION 관리 • LOCATION 입력/삭제/복사 등 LOC AT IO N #A1 #A2 #B1 #B4 AAA 1 AAA 2 AAA 3 AAA 4 FIN D [ 8 /1 99 2] 2 3. 45 -1 03 .2 9 6 3. 34 -1 30 .1 0 10 2. 13 -1 00 .1 2 10 0. 02 1 02 .3 0 5 00 .0 0 1 00 .0 0 3 00 .0 0 1 00 .0 0 5 00 .0 0 - 10 0. 00 3 00 .0 0 - 10 0. 00 SET COP Y REN DEL [ R1/ S1 00 ] 3 0. 10 1 50. 24 1 00 .1 0 1 20 .00 1 10 .0 0 0. 00 90 .0 0 2 0. 00 50 .0 0 0. 00 50 .0 0 0. 00 50 .0 0 0. 00 50 .0 0 0. 00 HER E EXI T SRC+ Robot Controller FARAL PARAMETER 관리 • SYSTEM 설정 PAR AM ET ER [ R1/ S0 10 ] SYS : SYS TE M CON FI GU RA TI ON BOD Y : BOD Y CON FI GU RA TI ON SER V : SER VO PAR AM ET ER MOV E : MOV E PAR AM ET ER ARM : ARM CON F. PAR AM ET ER WOR K : WOR K FRA ME PAR AM ET ER PAR AM ET ER < SYS BODY SERV MOVE ARM WORK EXIT TOO L TCP REF COM M MIS C > < TOO L : : : : : [ R1/ S0 10 ] TOO L FRA ME PAR AM ET ER TCP FRA ME PAR AM ET ER REF ER EN CE POI NT COM MU NI CA TI ON PAR AM ET ER MIS CE LL AN Y PAR AM ET ER TCP REF COMM MISC EXI T > SRC+ Robot Controller FARAL 실행 • 프로그램 실행 (CONTINUS/CYCLE/STEP/DRY) EXE CU TE FIL E 1 : TES T1 2 : TES T2 3 : TES T3 4 : TES T4 5 : TES T5 6 : TES T6 7 : TES T7 8 : TES T8 70 1 00 1 10 2 00 1 000 1 100 1 300 7 05 BYT ES BYT ES BYT ES BYT ES BYT ES BYT ES BYT ES BYT ES [R1/ S0 10 ] 1 EXT .N UM = 2 EXT .N UM = 3 EXT .N UM = 4 EXT .N UM = 5 EXT .N UM = 6 EXT .N UM = 7 EXT .N UM = 8 EXT .N UM = E D A C B CON T CYC L SRU N DRU N 8 FIL ES EDI T EXI T SRC+ Robot Controller FARAL DIAGNOSIS • 제어기의 모든 상태를 감시 관리한다. DIA GN OS IS RMO N EHI S I/O LMT S FRE E SRE G < : : : : : : RMO N MEN U 1 [ R1/ S0 10 ] RUN NI NG LIN E MON IT OR IN G ERR OR HIS TO RY SIG NA L SET /M ON IT OR IN G LIM IT SEN SO R STA TU S DIS PL AY BRA KE OFF AND SER VO FRE E SPE CI AL REG IS TE R SET /D IS PL AY EHI S I/O LMT S FRE E SRE G EXI T > DIA GN OS IS STA B TIM E WHE R MCH K TP SER V < STA B : : : : : : MEN U 2 [R1/ S0 10 ] ERR OR PUL SE MON IT OR IN G POW ER ON/ SE RV O ON/ RU N TIM E CUR RE NT POS IT IO N MON IT OR IN G BAC KU P MEM OR Y CHE CK TP DIS PL AY CON TR OL SER VO STA TU S TIM E WHE R MCH K TP SER V EXI T > SRC+ Robot Controller FARAL Teaching Pendant 의 기본 조작법 1. 전원을 인가한다. 2. SERVO ON을 한다 (SHIFT + SERVO) 3. 원점 복귀를 한다 ( SHIFT + ZR) 4. JOG 5. JOG MODE 6. TEACH 7. SPEED 조정 SERVO ON/OFF 키 원점복귀 키 JOG 모드 키 속도 조정 키 +J 1 -J 1 +X -X ZR +J 2 -J 2 RESET +Y -Y JOG +J 3 -J 3 MODE +Z -Z ESTOP +J 4 -J 4 REC +α -α +J 5 -J 5 +β -β +J 6 -J 6 +γ -γ SERVO SPEED JOG 키 SRC+ Robot Controller FARAL Location 이름 지정 및 위치의 저장 1. Location 이름 규칙 • 관절좌표계 # + 영문 + 숫자 SERVO ON/OFF 키 원점복귀 키 JOG 모드 키 예) #POINT1 , #A1 • 직각좌표계 영문 + 숫자 예) POS1, Z2 속도 조정 키 +J 1 -J 1 +X -X ZR +J 2 -J 2 RESET +Y -Y JOG +J 3 -J 3 MODE +Z -Z ESTOP +J 4 -J 4 REC +α -α +J 5 -J 5 +β -β +J 6 -J 6 +γ -γ SERVO SPEED JOG 키 SRC+ Robot Controller FARAL MOVE • Syntax – MOVE [target location] • Function – 각 축 동기동작으로 목표위치로 이동한다. – Point-To-Point Motion • 예 #TARGET – MOVE #TARGET #FROM SRC+ Robot Controller FARAL MOVES • Syntax – MOVES [target location] • Function – 로봇의 End-Effector가 직선으로 동작을 한다. – Continuous Path Motion • 예 – MOVES #TARGET #TARGET #FROM SRC+ Robot Controller FARAL MOVEC • Syntax – MOVEC [via location], [target location] • Function – 로봇의 End-Effector가 호(원)의 궤적 동작을 한다. – Continuous Path Motion #T1 • 예 – MOVEC #T1, #T2 #FROM #T2 SRC+ Robot Controller FARAL MOVEA • Syntax – MOVEA [Location],[UP],[UP_ARCH],[Z_OFFSET],[DOWN],[DOWN_ARCH] Location : Target Location Up : The distance upward from current location along Zaxis (positive value) [mm] Up_Arch : up-arch rate [%] Z_Offset : OFFSET from the target location along Z-axis Down : The distance downward from current location along Z-axis Down_Arch : Down-arch rate [%] • Function – X-Y 평면에 대하여 Z축 방향으로 Arch 를 그리며 이동한다. – 복합 동작 SRC+ Robot Controller FARAL MOVEA A Up_Arch Up Down_Arch B Start Location Down Z_offset Target Location SRC+ Robot Controller FARAL MOVEA B Up_Arch Down_Arch Down A Z_offset Up Target Location Start Location SRC+ Robot Controller FARAL READY • Syntax – READY • Function – 로봇의 원점으로 이동을 한다. – PTP 동작으로 이동을 한다. • 예 – READY SRC+ Robot Controller FARAL DRAW • Syntax – DRAW [Dx], [Dy], [Dz] • Function – 로봇의 현재위치에서 직각좌표계의 X,Y,Z방향으로 지장한 거리 Dx, Dy, Dz만큼 직선으로 이동한다. – 직선 동작을 하며, 상대위치 이동 명령이다. • 예 [DZ] – DRAW 100,100,100 Z o X [DY] Y [DX] SRC+ Robot Controller FARAL DRIVE • Syntax – DRIVE axis, displacement, speed • Function – 하나의 축을 구동하는 PTP 동작 언어이다 – 상대위치 이동 명령이다 • 예 (XY 로봇의 경우) – DRIVE 1, 200, 30 • 1축을 현재위치에서 30%의 • 속도로 200 mm 이동한다 SRC+ Robot Controller FARAL 다른 동작 언어 • APPRO / APPROS – APPRO [location], [distance] • DEPART / DEPARTS – DEPART [distance] • ALIGN – 5,6축 다관절 로봇 언어 • UP – SCARA, XY의 3축 명령어 • SPLINE – SPLINE #A, 100 ; #A로 시작하는 모든 경로 이동 SRC+ Robot Controller FARAL DELAY • Syntax – DELAY [time] • 기능 – 지정된 시간동안 로봇의 동작을 지연시킨다. • 예 • MOVE #P1 • DELAY 0.5 • MOVE #P2 SRC+ Robot Controller FARAL CONT / FINE • SYNTAX – CONT [ 정수] – FINE • FUNCTION – 여러 개의 단독 동작 명령을 연속하여 이동하는 기 능을 설정 하고 해제한다. – 도포 공정등에 사용한다. • 예 – – – – – CONT 16 MOVES #P1 MOVES #P2 MOVES #P3 FINE SRC+ Robot Controller FARAL DEFINE 문 • 변수의 선언 – INT, REAL, LOC • 프로그램의 끝 – END • 부 프로그램의 시작 및 끝 – SUB , ENDSUB INT A REAL ABC GOSUB [subprogram] ; END SUB [subprogram] ENDSUB SRC+ Robot Controller FARAL LOCATION 관련 언어 • • • • • LSET : 기존 Location의 설정 또는 신규 Location의 작성 LCOPY : Location의 복사 LDATA : Location에서 특정축의 Data을 꺼내오기 SHIFT : Location Data를 직각좌표계 상에서 이동시키기 HERE : 현재위치를 저장한다. • LREN : Location의 이름을 변경한다. • LDEL : Location을 삭제한다. SRC+ Robot Controller FARAL Location 언어 사용예(XY 로봇) LOC #P1, #P2, #P3, #P4 REAL AX1,AX2 INT I READY HERE #P1 LCOPY #P1, #P2 LCOPT #P1, #P3 LCOPT #P1, #P4 LDATA AX1=#P1,1 LDATA AX2=#P1,2 AX1 = AX1 + 200 AX2 = AX2 + 150 SHIFT #P2 BY AX1,0,0,0 SHIFT #P3 BY AX1,AX2,0,0 LSET #P4=0,AX2,0,0 FOR I=1 TO 4 MOVE #P[I] NEXT I END #P2 200mm #P1 150mm #HERE #P3 200mm #P4 SRC+ Robot Controller FARAL IO 관련언어 • • • • • • • • • • IFSIG : 입력 접점 조건에 의한 분기 GOSIG : 입력 접점에 조건에 의한 다중분기 SDATA : 출력 접점의 상태를 변수에 저장한다. SDEF : 입력 접점에 의한 interrupt service SIG : 접점 출력 SIGIN : 입력 포트로부터 접점 값을 읽는다. SIGOUT : 출력 PORT로 접점 값을 출력 한다. SINT : 지정된 SIGNAL Interrupt의 enable/disable PULSE : pulse 형 출력 WAIT : 입력 접점의 대기 SRC+ Robot Controller FARAL IFSIG Syntax IFSIG External input 1, [ external input 2, ...] THEN Label Function Branch to the designated label if the external input fits the condition, otherwise execute the next line Example 1. LOC #POS1,#POS2 2. LSET #POS1=16,12,6.5,3.5,11,11 3. LSET #POS2=24,16,10,-12,24,-12 4. MOVE #POS1 5. IFSIG -1, 2, -5 THEN 10 ; If external input 1 and 5 are OFF and 2 is ON, branch to LABEL 10, otherwise execute the next line 6. MOVE #POS2 7. 10 MOVE #POS1 8. READY 9. END SRC+ Robot Controller FARAL SDATA, SIGIN, SIGOUT • Syntax SDATA [변수]=출력port SIGIN 출력port , 변수 SIGOUT 출력port, 변수 * 1번 port의 입력을 받아 1번 port의 출 력으로 내보낸다. 입력값이 128이면 이전의 출력 값을 유지하고 종료한 다. INT O1, I1 1 SIGIN 1, I1 IF I1==128 THEN 99 SIGOUT 1, I1 GOTO 1 SDATA O1=1 SIGOUT 1, O1 END SRC+ Robot Controller FARAL WAIT Syntax WAIT (time) external input1, [external input2, ...] [ THEN Label ] WAIT (0) external input1, [external input2, ...] Function Check ON/OFF status of external input for the given time, branch to the specified label if the status fits the condition, otherwise execute the next line after the given time. If several external input signals are checked, branch to the specified label only if all input signals meet the condition. ※ Wait infinitely if time is set to 0. Example WAIT(1) 1 THEN 20 ; Go to 20 if input signal 1 goes off within one second, otherwise execute the next line SRC+ Robot Controller FARAL SIG , PULSE • Syntax SIG 1,2,3 DELAY 2 PULSE(1) –1, -3 DELAY 3 SIG –1,-2,-3 END SIG 번호, 번호,,, PUSLE(time) 번호, 번호,,, SIG1 SIG2 SIG3 2초 1 3초 SRC+ Robot Controller FARAL PROGRAM 제어 • LOOP 제어 – FOR ~ NEXT – WHILE ~ ENDWHILE • 조건부 분기 – IF ~ THEN ~ ELSE ~ ENDIF • 무조건 분기 – GOTO • SUBROUTINE 호출 및 복귀 – GOSUB, RETURN • 프로그램 종료 – STOP SRC+ Robot Controller FARAL LOOP 제어 • Syntax FOR 변수=초기값 TO 목표값 STEP 증분량 NEXT I WHILE condition ENDWHILE • 기능 동일한 작업을 반복실행 하거나, 조건이 참인 경우에 반복 실행을 한다. For I=1 to 10 GOSUB PICK(I) GOSUB PLACE(I) NEXT I I=1 WHILE I<10 GOSUB PICK(I) GOSUB PLACE(I) I=I+1 ENDWHILE SRC+ Robot Controller FARAL 분기/ 호출/ 종료 INT I • 분기 : – GOTO , – IF condition THEN label • 호출 : – GOSUB [subprogram] • 종료 : – STOP I=0 10 IF ((I % 2)==0) THEN 20 GOSUB ODD() GOTO 30 20 GOSUB EVEN() 30 I = I + 1 IF I<100 THEN 10 STOP END SUB ODD() ; do odd operation ENDSUB SUB EVEN() ; do even operation ENDSUB Program Command FARAL SRC+ Robot Controller SUB ROUTINE Call subroutine in same program GOSUB SUBNAME (PARA1,PARA2,..) SUB SUBNAME (PARA1,PARA2,..) … ENDSUB Call subroutine in other program GOSUB FILENAME: SUBNAME (PARA1,PARA2,..) SUB SUBNAME (PARA1,PARA2,..) … ENDSUB SRC+ Robot Controller FARAL FUNCTION • • • • • • SIN, COS, TAN, ATAN LN, LOG EXP ABS POW SQRT SRC+ Robot Controller FARAL 연산자 • 산술연산자 – +, -, * , / , % • 관계 연산자 – <, >, <=, >=, ==, != • 논리연산자 – &&, ||, ! • 비트연산자 – <<, >>, &, |, ^, ~ 연산우선순위 높음 ( ) ! ~ -(부호) * / % + << >> < <= > >= == != 낮음 && || SRC+ Robot Controller FARAL PARAMETER • • • • • • ACC : 가감속 구간의 설정 MSPD : motor의 RPM 설정 UL, LL : 로봇의 동작영역 설정 INPOST, INPOSA : 목표위치 검사시간 및 값 설정 ENVELOPA : 동작 중 에러 상한 값 설정 SPEED : 속도 지정 • 프로그램에서 설정된 PARAMETER는 저장되지 않고 프 로그램 종료와 함께 원상복귀가 된다. SRC+ Robot Controller FARAL SPEED • Syntax – SPEED/P vel : PTP 동작 속도를 지정한다 – SPEED/C vel : CP 동작 속도를 지정한다 • 기능 – PTP 또는 CP 속도를 지정한다 – /P는 1 ~ 100 의 값이 유효하며 단위는 %이다. – /C는 mm/SEC의 단위로 입력 한다. 이 값은 로봇의 CP 속도와 관련이 있다. SRC+ Robot Controller FARAL 통신 관련 언어 • RS232C / ETHERNET 지원 – READ , WRITE – LOAD, TRANS • 세 종류의 PROTOROL 지원 SRC+ Robot Controller FARAL PC Applicarions • SRCWIN – 프로그램, Location, Parameter를 통합관리 • SRCSCope – Motion 및 IO monitoring