방향이 있는 모션 계산 변환 위치(MCTPO)
이 정보는
Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.다음 작업을 수행하려면 방향이 있는 모션 계산 변환 위치(MCTPO) 명령어를 사용하십시오.
- 변환 방향이 정방향으로 구성되면 주어진 관절 위치에서 데카르트 좌표 위치를 계산합니다.
- 변환 방향이 역방향으로 구성되면 주어진 데카르트 좌표 위치에서 관절 위치를 계산합니다.
- 이것은 전환 명령어입니다. 사용할 경우 다음 단계를 수행하십시오.
- 래더 로직에서 명령어가 실행되어야 할 때마다 렁-입력-조건을 거짓에서 참으로 전환하는 명령어를 삽입합니다.
- Structured Text 루틴에서 명령어가 전환 시에만 실행되도록 하는 조건을 삽입합니다.
아키텍처 | 표준 | 안전 |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러 | 예 | 아니요 |
Compact GuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 및 ControlLogix 5590 컨트롤러 | 예 | 아니요 |
사용 가능한 언어
래더 다이어그램

펑션 블록
이 명령어는 함수 블록에서 사용할 수 없습니다.
구조화된 텍스트
MCTPO(CartesianSystem, RobotSystem, MotionControl, WorkFrame, ToolFrame, Direction, ReferencePosition, TransformPosition, RobotConfiguration, TurnsCounter);
피연산자
중요:
동일 프로그램에서 둘 이상의 명령어에 동일한 태그 이름을 사용하지 마십시오. 어떠한 상황에서도 명령어 출력 태그에 쓰기 작업을 수행하지 마십시오.
중요:
실행 모드 중 명령어 피연산자가 변경되면 보류 중인 편집을 수락하고 컨트롤러 모드를 프로그램 모드에서 실행 모드로 전환해야만 변경 내용이 적용됩니다.
구성
다음 테이블에는 명령어를 구성하는 데 사용되는 피연산자가 나와 있습니다. 이러한 피연산자는 런타임에 변경할 수 없습니다.
피연산자 | 데이터 유형 | 형식 | 설명 |
|---|---|---|---|
Cartesian System | COORDINATE_SYSTEM | 태그 | 이동을 프로그래밍하는 데 사용된 데카르트 좌표계. REF_TO 모션 데이터 유형을 지원하는 컨트롤러의 경우 좌표계 피연산자 유형을 REF_TO_COORDINATE_SYSTEM 유형으로 바꿀 수 있습니다. |
Robot System | COORDINATE_SYSTEM | 태그 | 실제 장비를 제어하는 데카르트 좌표가 아닌 좌표 시스템. 실제 장비를 제어하는 데카르트 좌표가 아닌 좌표계에 대한 참조. REF_TO 모션 데이터 유형을 지원하는 컨트롤러의 경우 좌표계 피연산자 유형을 REF_TO_COORDINATE_SYSTEM 유형으로 바꿀 수 있습니다. |
Motion Control | MOTION_INSTRUCTION | 태그 | 명령어의 제어 태그 |
Work Frame | POSITION_DATA | 즉시 태그 | 작업 프레임 오프셋은 로봇 베이스 프레임 원점을 기준으로 로봇의 사용자 작업 프레임을 지정하는 데 사용되는 오프셋입니다. 이 오프셋은 XYZ 및 RxRyRz 값으로 구성됩니다. 이 값을 사용하여 사용자 작업 공간이나 월드 프레임 내에 프로그램을 작성하여 로봇 기준 프레임으로 변환할 수 있습니다. X, Y, Z 축을 기준으로 목표 위치를 회전하거나 로봇 기준 좌표 시스템의 X, Y, Z 축을 따라 목표 위치를 오프셋하려면 Rx, Ry, Rz 태그 구성원에 회전 각도 단위의 회전 각도를 입력합니다. X, Y, Z 태그 구성원에는 좌표 단위의 오프셋 거리를 입력합니다. ID 구성원을 0보다 크거나 같은 값으로 설정하십시오. 로봇 기준 프레임에서 작업 프레임을 유지하려면 구조화된 값을 0으로 남겨 두거나 피연산자 태그 값을 0으로 설정합니다. |
Tool Frame | POSITION_DATA | 즉시 태그 | 툴 중심점(TCP) 오프셋은 EOA(암 끝)의 중심을 기준으로 툴 중심을 지정하는 데 사용되는 오프셋입니다. 이 오프셋은 XYZ 및 RxRyRz 값으로 구성됩니다. 변환 및/또는 방향 오프셋을 포함하여 연결된 툴이 목표 위치에 반영되도록 하려면 X, Y, Z 태그 구성원에 좌표 단위의 툴 오프셋 거리를 입력합니다. Rx, Ry, Rz 태그 구성원에는 회전 각도 단위의 툴 회전 각도를 입력합니다. ID 구성원을 0보다 크거나 같은 값으로 설정하십시오. 목표 위치에 EOA(암 끝)의 점만 반영되도록 하려면 구조 값을 0으로 남겨 두거나 피연산자 태그 값을 0으로 설정합니다. |
좌표계 구성에 대한 자세한 내용은
모션 좌표계 사용자 설명서
, 발행 번호 MOTION-UM002를 참조하십시오.연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 초기화되지 않은 참조 또는 잘못된 유형의 참조가 좌표계 피연산자로 전달되면 주 폴트가 발생할 수 있습니다. 배열 인덱싱 폴트의 경우 배열을 통한 인덱스 항목을 참조하십시오.
실행
래더 다이어그램
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 렁-입력-조건이 거짓일 때와 같습니다. |
렁-입력-조건이 거짓임 | .EN, .DN, .ER은 거짓으로 해제됩니다. |
렁-입력-조건이 참 및 .EN 비트가 거짓임 | .EN 비트가 참으로 설정되고 명령어가 실행됩니다. |
렁-입력-조건이 참 및 .EN 비트가 참 | N/A |
사후 스캔 | 렁-입력-조건이 거짓일 때와 같습니다. |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 래더 다이어그램 표의 사전 스캔을 참조하십시오. |
정상 실행 | 래더 다이어그램 표에서 렁-입력-조건이 거짓이고 이어서 렁-입력-조건이 참인지 확인하십시오. |
사후 스캔 | 래더 다이어그램 표에서 사후 스캔 섹션을 참조하십시오. |
입력
피연산자 | 데이터 유형 | 형식 | 설명 |
|---|---|---|---|
Transform Direction | DINT | 태그 | 데카르트 좌표 위치를 계산하려면 정방향(0)을 선택합니다. 로봇 관절 위치를 계산하려면 역방향(1)을 선택합니다. |
Reference Position | REAL[6] | 태그 | 변환 방향이 정방향인 경우 관절 각도가 포함된 배열을 입력합니다. 변환 방향이 역방향인 경우 데카르트 좌표 위치가 포함된 배열을 입력합니다. |
Robot Configuration | DINT | 태그 | 로봇 구성의 비트 0은 중요하지 않으며 TD = 역방향 및 TD = 정방향에서 무시됩니다. 이 입력 피연산자는 역방향 변환 방향에만 유효합니다. 비트 값 목록 : Bit0 – 로봇 구성 변경(1)/동일(0)Bit1 – 왼손잡이(1)/오른손잡이(0)Bit2 – 위(1)/아래(0)Bit3 – 뒤집기(1)/뒤집기 없음(0)델타 로봇 기하 구조의 경우 로봇 구성이 0으로 되어야 합니다. |
Robot Turns Counters | INT16[4] | 태그 | 180도 지점이 각 축이 회전한 +/- 방향으로 넘겨진 횟수를 나타내는 카운터입니다. 변환 방향이 정방향인 경우 시스템에서 값이 계산되어 이 태그를 통해 반환됩니다. 변환 방향이 역방향인 경우 이 값으로 최종 관절 위치가 결정됩니다. 관절 축 전환 카운터의 배열 인덱스 지정은 다음과 같습니다. 인덱스 0 - J1 축 인덱스 1 - J4 축 인덱스 2 - J6 축 인덱스 3 - 예약됨 |
출력
피연산자 | 데이터 유형 | 형식 | 설명 |
|---|---|---|---|
Transform Position | REAL[6] | 태그 | 계산된 위치가 저장되는 배열. 변환 방향
|
Robot Turns Counters | INT16[4] | 태그 | 변환 방향이 정방향인 경우 시스템에서 이 값이 계산되어 이 태그를 통해 반환됩니다. |
Robot Configuration | DINT | 태그 | 이 출력 피연산자는 정방향 변환 방향에만 유효합니다. 정방향 변환의 경우 시스템에서 값이 계산되어 이 태그를 통해 반환됩니다. 델타 로봇 기하 구조의 경우 로봇 구성 출력이 항상 0입니다. |
중요:
4축 다관절 의존 로봇 기하 구조의 경우 J2의 관절 값 -179.00에 매핑되는 데카르트 좌표 위치를 입력하면 기구학 계산에서 반올림 에러로 인해 MCTPO 역방향 변환이 에러 JOINT_ANGLE_EXCEEDED를 반환합니다.
J3 제한은 로봇 제조업체에서 제공하는 사용자 설명서를 참조하세요.
폴트 코드
잘못된 피연산자 값을 제공하는 경우 런타임 시 에러가 발생합니다.
확장 에러 코드
확장 에러 코드는 다른 명령어에 일반적인 에러 코드에 대한 해당 명령어 관련 추가 정보를 제공합니다. 모션 명령어는 모션 에러 코드 .ERR 항목을 참조하십시오. 확장 에러 코드의 의미는 해당 에러 코드에 따라 달라집니다.
에러 코드 | EX_ERROR 코드 | 설명 |
|---|---|---|
13 | 3 | 값이 범위를 벗어남(기준 각도) 모든 방향 각도 360 또는 -360. |
13 | 3 | 값이 범위를 벗어남(기준 ID) ID가 음수 값과 같습니다. |
13 | 4 | 값이 범위를 벗어남(툴 각도) 모든 방향 각도 360 또는 -360. |
13 | 4 | 값이 범위를 벗어남(툴 ID) ID가 음수 값과 같습니다. |
13 | 5 | 범위를 벗어난 파라미터 변환 방향. |
13 | 6 | 범위를 벗어난 파라미터 참조 위치 배열 끝 6 |
13 | 6 | 범위를 벗어난 파라미터 입력 위치 Rx, Ry 또는 Rz가 존재하며 값이 ![]() 180도입니다. |
13 | 6 | 범위를 벗어난 파라미터 피연산자 6 로봇 기하 구조가 Delta J1J2J6 또는 Delta J1J2J3J6이고 입력 위치 Rx가 있고 180°가 아닌 경우. 로봇 기하 구조가 Delta J1J2J6 또는 Delta J1J2J3J6이고 입력 위치 Ry가 0°가 아닌 경우. 로봇 기하 구조가 Delta J1J2J3J4J5이고 입력 위치 Rx가 있고 값이 0° 또는 180°가 아닌 경우. |
13 | 7 | 범위를 벗어난 파라미터 변환 위치 배열 끝 6 |
13 | 9 | 범위를 벗어난 파라미터 역방향 변환에 대해 제공된 전환 카운터가 127 또는 -127 회전(방향 전환)을 초과합니다. |
61 | 1 | 연결 충돌 변환 모션 그룹 에러 데카르트 또는 로봇 좌표 시스템이 그룹화되지 않았거나 다른 모션 그룹에 연결됨. |
61 | 2 | 연결 충돌 변환 중복 좌표 시스템 에러 피연산자 0과 피연산자 1이 같은 좌표 시스템 유형입니다. |
61 | 3 | 연결 충돌 변환 소스 차원 에러 데카르트 좌표 시스템의 변환 차원이 < 2입니다. |
61 | 4 | 연결 충돌 변환 대상 차원 에러 로봇 좌표 시스템의 변환 차원이 0입니다. |
61 | 9 | 연결 충돌 변환 축 중복 에러 축이 데카르트 및 로봇 두 좌표 시스템의 구성원입니다. |
61 | 12 | 연결 충돌 변환 유효하지 않은 링크 길이 로봇 기하 구조의 링크 길이 값은 0.0 단위여야 합니다. |
61 | 15 | 연결 충돌 변환 유효하지 않은 델타 구성 Link Length1은 LinkLength2와 같을 수 없음 엔드이펙터 Offset1 Re는 음의 값이 될 수 없음 Delta J1J2J6 및 Delta J1J2J3J6의 경우 엔드이펙터 Offset3(D3)는 음의 값이 될 수 없음 (Link length 1 + Rb - Re)는 length 2보다 작아야 함 (Link length 1 + Rb – Re)는 0보다 크거나 양의 값이라야 함 |
61 | 18 | 연결 충돌 유효하지 않은 다관절 구성 변환 다관절 독립 J1J2J3J4J5J6 기하 구조의 오프셋 값이 유효하지 않으면 이 에러가 생성됩니다. 기본 오프셋 Yb는 0.0과 같아야 합니다 엔드이펙터 오프셋 Ye는 0.0과 같아야 합니다 엔드이펙터 오프셋 Ze는 0.0과 같아야 합니다 |
67 | 1 | 유효하지 않은 변환 위치 MOP 유효하지 않은 Rx 방향 EOA 변환 시 Rx 방향 값이 유효하지 않습니다. 축이 4개인 기하 구조(델타, SCARA, 다관절 의존)에서는 Rx = 180도 위치만 허용됩니다. 그 외 다른 모든 위치에서는 에러가 생성됩니다. |
67 | 2 | 유효하지 않은 변환 위치 MOP 유효하지 않은 Ry 방향 EOA 변환 시 Ry 방향 값이 유효하지 않습니다. 축이 4개인 기하 구조에서는 작업 프레임 및 도구 프레임을 제거한 후 EOA에 Ry 방향 값이 없어야 합니다. |
67 | 3 | 유효하지 않은 변환 위치 MOP 유효하지 않은 Ry 방향 |
147 | 3 - 5 | 유효하지 않은 방향 배율 상수 확장 에러 코드 3 : Rx 확장 에러 코드 4 : Ry 확장 에러 코드 5 : Rz 방향 축이 MAX_K_CONSTANT_FOR_ORIENTATION_AXIS인 배율 상수를 가지거나정수가 아닌 배율 상수를 가지거나 좌표 단위 및 위치 단위 간 전환 비율이 1:1이 아닙니다. |
148 | 3 -5 | MCPM 방향 오프셋이 0이 아님 Rx 방향 오프셋이 유효하지 않습니다. 확장 에러 코드 3 : Rx 방향 오프셋이 유효하지 않습니다. 확장 에러 코드 4 : Ry 방향 오프셋이 유효하지 않습니다. 확장 에러 코드 5 : Rz 방향 오프셋이 유효하지 않습니다. 로봇 기하 구조가 (MO_CD_J1J2J6 또는 MO_CD_J1J2J3J6)이고 다음 조건에 해당하는 경우 또는 로봇 기하 구조가 MO_CD_J1J2J3J4J5이고 다음 조건에 해당하는 경우 |
151 | 1 | 관절 각도 J1 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
151 | 2 | 관절 각도 J2 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
151 | 3 | 관절 각도 J3 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
151 | 4 | 관절 각도 J4 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
151 | 5 | 관절 각도 J5 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
151 | 6 | 관절 각도 J6 초과 제한 자세한 내용은 관절 범위 제한에 대한 기하 구조별 구성 섹션을 참조하세요. |
153 | 1 | 유효하지 않은 전환 위치 MOP 유효하지 않은 X 전환 X 축 상 전환이 유효하지 않음 |
153 | 2 | 유효하지 않은 전환 위치 MOP 유효하지 않은 Y 전환 Y 축 상 전환이 유효하지 않음 |
153 | 3 | 유효하지 않은 전환 위치 MOP 유효하지 않은 Z 전환 Z 축 상 전환이 유효하지 않음 |
156 | 1 | 특이성 조건 에러 관절 1 축은 6축 다관절 독립 기하 구조의 암 특이성 조건에 가깝습니다 확장 에러 1: 암 특이성 조건 |
156 | 2 | 특이성 조건 에러 관절 3 축은 6축 다관절 독립 기하 구조의 팔꿈치 특이성 조건에 가깝습니다 확장 에러 2: 팔꿈치 특이성 조건 |
156 | 3 | 특이성 조건 에러 관절 5 축은 6축 다관절 독립 기하 구조의 손목 특이성 조건에 가깝습니다 확장 에러 1: 손목 특이성 조건 |
예
래더 다이어그램
이 예에서는 변환 방향이 역방향인 MCTPO 명령어를 보여주며 여기에서 사용자는 데카르트 좌표 위치 및 전환 카운터를 입력합니다. 그러면 명령어에 의해 해당하는 대상 관절 각도가 계산되어 변환 위치 파라미터에 출력으로 기록됩니다.

이 예에서는 변환 방향이 정방향인 MCTPO 명령어를 보여줍니다. 목표 위치가 참조 위치 피연산자에 입력으로 전달됩니다. 그러면 명령어에 의해 해당하는 데카르트 좌표 위치와 전환 카운터가 출력으로 계산됩니다.

구조화된 텍스트
MCTPO(CS1, CS2, MCTPo1[0], BaseFrame, ToolFrame, Forward, refPos[0], transPos[0], robotConfig[0], TurnsCounter[0]);
팁:
방향이 지원되는 기하 구조를 만드는 방법에 대한 자세한 내용은 모션 좌표계 사용자 매뉴얼(발행 번호 MOTION-UM002)을 참조하십시오.
의견을 작성 부탁드립니다.
360 또는
-360.
6
180도입니다.