10.3.6. 쉬프트의 CFG정보
10.3.6. 쉬프트의 CFG정보
표10‑7 쉬프트의CFG 요소 값의 구성
13~10 bit | 5 bit (수신여부) | 4, 3 bit (온라인 쉬프트 요청) | 2, 1, 0 bit (쉬프트 좌표계) | |
0~10 사용자좌표계 번호 | 0: 미수신 1: 수신완료 | 0: OFF 1: COM 1 2: COM 2 | 0: base 1: robot 2: tool | 4: user 5: master 6: angle |
l 3, 4, 5 bit는 보통 사용자에 의해 사용되지는 않습니다. 하지만, 쉬프트값을 레지스터에 저장해두고, 마치 수신 완료한 것처럼 5bit를 1로 설정한 후, 온라인 쉬프트나 온라인 좌표변환 (SONL, TONL1, TONL2)을 사용하는 등의 응용을 할 수도 있겠습니다.
l 4, 3 bit는 온라인 시프트 요청(SREQ) 전송여부 및 어느 시리얼 포트로 요청을 전송했느냐를 저장합니다.
이 비트를 쉽게 접근하기 위한 CFG의 맴버로 “.REQ”가 제공됩니다. 예를들어 R1.CFG.REQ=1을 실행하면 시리얼 포트 1로 온라인 시프트 데이터를 요청한 것으로 설정됩니다.
l 5 bit는 온라인 쉬프트 응답이 수신되었는지 여부가 저장됩니다.
이 비트를 쉽게 접근하기 위한 CFG의 맴버로 “.ASSIGN”가 제공됩니다. 예를들어 R1.CFG.ASSIGN=1를 실행하면 시리얼 포트 1로 온라인 시프트 데이터가 수신되었음을 나타냅니다.
l 0~2 bit :
시프트의 좌표계형식. 프로그램 루틴 내에서 시프트 변수의 좌표계 정보를 읽어 사용하기를 원할 때,이 비트를 사용합니다.
이 비트를 쉽게 접근하기 위한 CFG의 맴버로 “.CRD”가 제공됩니다. 예를들어 R1.CFG.CRD=4를 실행하면 R1의 좌표계 형식이 user로 설정됩니다.
l 10~13 bit :
시프트의 사용자좌표계 번호. 시프트의 좌표계 형식이 User인 경우는 사용자좌표계 번호가 필수적으로 사용되며 이때 사용자좌표계 번호를 읽거나 변경하기를 원할 때, 이 비트를 사용합니다.
이 비트를 쉽게 접근하기 위한 CFG의 맴버로 “.UCRD”가 제공됩니다. 예를들어 R1.CFG.UCRD=2를 실행하면 R1의 사용자좌표계 번호가 2로 설정됩니다.
표 10‑8 시프트 멤버
멤버 | 의미 | 범위, 단위 | 예제 |
X, Y, Z | 직교 위치 | mm | R9.X=V200!*1000 IF R3.Z<0 THEN *ERR (직교 좌표계에서만 접근 가능) |
RX, RY, RZ | 직교 각도 | deg. | R9.RY=V210! IF R3.RZ=0 THEN 100 (직교 좌표계에서만 접근 가능) |
J1~J16 | 축 값 | mm or deg. | PRINT #0,”R1=”;R20.J6 (축 좌표계에서만 접근 가능) |
CFG | 로봇 형상 | bit-field (14bit) | R9.CFG=&H0001 (시프트 CFG 구성표 참조) |
CFG.CRD | 좌표계 종류 | bit-field | R9.CFG.CRD=1 (R9 변수의 좌표계를 로봇 좌표계로 설정 주의: 좌표계 종류가 바뀌는 경우에는 좌표계변환이 수행됨.) |
CFG.UCRD | 사용자좌표계 번호 | 0~10 | R9.CFG.UCRD=1 |
CFG.REQ | 온라인 시프트 데이터 요청 여부 | 0~3 | R1.CFG.REQ=1 (시리얼 포트 1로 온라인 쉬프트 데이터를 요청한 것으로 설정) |
CFG.ASSIGN | 온라인 시프트 데이터 수신 여부 | 0: 미수신 1: 수신 | R1.CFG.ASSIGN=1 (시리얼 포트 1로 온라인 쉬프트 데이터가 수신된 것으로 설정) |
NJ | 축 개수 | 0~16 | 시프트 변수의 유효 축 개수 |
EXIST | 변수 존재 여부 (읽기 전용) | 1: 있음 0: 없음 | IF R35.EXIST=0 THEN *NO_SFT (R35변수가 정의되지 않았으면, *NO_SFT로 분기) |