9. 프로그램 프로그래밍
9.1. 개요
왼쪽 명령을 클릭하면 프로그램 트리에 프로그램 노드를 추가할 수 있습니다. 프로그램 실행 시 현재 실행 중인 프로그램 노드는 녹색으로 하이라이트 표시됩니다.
수동 모드에서는 노드 오른쪽의 첫 번째 아이콘을 클릭하면 로봇이 해당 명령만 단독 실행합니다. 두 번째 아이콘은 해당 노드의 내용을 편집합니다.
그림 9.1-1 프로그램 트리 인터페이스
`⇄`를 클릭해 모드를 전환하면 티칭 프로그램 텍스트가 편집 상태로 바뀝니다.
그림 9.1-2 티칭 프로그램 편집 상태
프로그램명 오른쪽 아이콘 설명은 다음과 같습니다:
9.2. 툴바
프로그램 트리 상단의 툴바를 사용해 프로그램 트리를 수정합니다.
상단 오른쪽 아이콘 설명은 다음과 같습니다:
9.3. 프로그램 명령
왼쪽 영역은 주로 프로그램 명령 추가를 위한 곳이며, 각 키워드 위 아이콘을 클릭하면 오른쪽의 프로그램 명령 추가 상세 화면으로 들어갑니다. 프로그램 명령을 파일에 추가하는 방식은 크게 두 가지입니다:
관련 명령을 열고 적용 버튼만 클릭하면 해당 명령이 프로그램에 추가됩니다.
먼저 추가 버튼을 클릭합니다. 이 시점에는 명령이 프로그램 파일에 아직 저장되지 않습니다. `적용`을 클릭해야 비로소 파일에 저장됩니다.
두 번째 방식은 같은 종류의 명령을 여러 번 발행할 때 주로 사용됩니다. 이 유형의 명령에는 추가 버튼과 추가된 명령 내용 표시 기능이 함께 제공됩니다. `추가`를 클릭하면 명령 하나가 추가되고, 추가된 명령 목록에 모든 추가 항목이 표시됩니다. `적용`을 클릭하면 추가된 명령이 오른쪽에 열려 있는 파일에 저장됩니다.
9.4. 논리 명령 인터페이스
그림 9.4 논리 명령 인터페이스
9.4.1. 루프 명령
루프 아이콘을 클릭해 While 명령 편집 화면으로 들어갑니다.
While 명령의 루프 조건을 선택합니다. 선택 가능한 조건은 다음과 같습니다:
무한 루프
유한 횟수 루프: 루프 횟수와 변수명을 입력합니다
식이 참인 동안 루프: 입력창을 클릭해 식 편집기를 열고 용도에 맞는 식을 선택합니다
그림 9.4-1-1 While 명령 인터페이스
그림 9.4-1-2 While 명령 - 무한 루프
그림 9.4-1-3 While 명령 - 유한 횟수 루프
그림 9.4-1-4 While 명령 - 식 편집기
그림 9.4-1-5 While 명령 - 식이 참인 동안 루프
조작을 쉽게 하기 위해 `do`의 내용은 임의로 입력해 두고, 프로그램 안에서 다른 명령을 편집해 삽입한 뒤 대체할 수 있습니다.
9.4.2. 조건 판단 명령
판단 버튼을 클릭해 if…else 명령 편집 화면으로 들어갑니다.
이 명령에는 다음 버튼이 포함됩니다:
else if 추가: else 식이 없을 때 이 버튼을 눌러 else if 식을 추가합니다
else if 삭제: else if 식이 있을 때 이 버튼을 눌러 else if 식을 삭제합니다
else 추가: 이 버튼을 눌러 else 식을 추가합니다
else 삭제: 이 버튼을 눌러 else 식을 삭제합니다
해당 버튼을 눌러 추가한 뒤 입력창을 클릭해 식 편집기를 열고, 상황에 맞는 식을 선택합니다. 추가가 끝나면 추가, `적용`을 클릭합니다.
이 명령은 어느 정도의 프로그래밍 기초 지식이 필요합니다. 도움이 필요하면 당사에 문의하세요.
그림 9.4-2 if…else 명령 인터페이스
9.4.3. 점프 명령
점프 버튼을 클릭해 Goto 명령 편집 화면으로 들어갑니다.
Goto 명령은 점프 명령입니다. 오른쪽 입력창에 문장을 입력하고, 편집이 끝나면 추가, `적용`을 클릭합니다. 이 명령 역시 어느 정도의 프로그래밍 기초 지식이 필요합니다.
그림 9.4-3 Goto 명령 인터페이스
9.4.4. 대기 명령
대기 아이콘을 클릭해 Wait 명령 편집 화면으로 들어갑니다.
이 명령은 지연 명령이며 WaitMs, WaitDI, `WaitAI`의 세 부분으로 나뉩니다.
WaitTime 명령의 지연 대기 시간 단위는 밀리초입니다. 대기할 밀리초 값을 입력하고 추가, `적용`을 클릭합니다.
그림 9.4-4 WaitTime 명령 인터페이스
WaitDI 명령, 즉 단일 DI 대기에서는 대기할 IO 포트 번호, 대기 상태, 최대 대기 시간, 대기 타임아웃 처리 방식을 선택하고 추가, `적용`을 클릭합니다.
그림 9.4-5 WaitDI 명령 인터페이스
WaitMultiDI 명령, 즉 다중 DI 대기에서는 먼저 다중 DI 성립 조건을 선택하고, 다음으로 대기할 DI 포트와 상태를 체크한 뒤, 마지막으로 최대 대기 시간과 대기 타임아웃 처리 방식을 설정하고 추가, `적용`을 클릭합니다.
그림 9.4-6 WaitMultiDI 명령 인터페이스
WaitAI 명령에서는 대기할 아날로그 값, 수치, 최대 대기 시간, 대기 타임아웃 처리 방식을 선택하고 추가, `적용`을 클릭합니다.
그림 9.4-7 WaitAI 명령 인터페이스
9.4.5. 일시정지 명령
일시정지 아이콘을 클릭해 Pause 명령 편집 화면으로 들어갑니다.
이 명령은 일시정지 명령입니다. 프로그램 안에 이 명령을 삽입하면, 프로그램이 이 명령을 실행하는 시점에 로봇이 일시정지 상태가 됩니다. 계속 실행하려면 제어 영역의 일시정지/재개 키를 클릭합니다.
그림 9.4-8 Pause 명령 인터페이스
9.4.6. 서브루틴 명령
서브루틴 아이콘을 클릭해 Dofile 명령 편집 화면으로 들어갑니다.
Dofile 명령은 컨트롤러 내부 프로그램을 호출합니다. Dofile 명령을 사용하려면 호출될 서브루틴을 저장해야 합니다. 메인 프로그램이 바뀌지 않았다면 다시 저장할 필요는 없습니다. Dofile 명령은 2단계 호출을 지원하며, 두 가지 파라미터 설정에 주의해야 합니다. 하나는 현재 호출이 몇 번째 계층인지, 다른 하나는 호출 ID 번호입니다. 원칙적으로 같은 프로그램 안에서 같은 ID가 중복되면 안 됩니다.
그림 9.4-9 Dofile 명령 인터페이스
9.4.7. 변수 명령
변수 아이콘을 클릭해 Var 명령 편집 화면으로 들어갑니다.
이 명령은 변수 시스템 명령으로, Lua 변수 정의와 변수 조회, 그리고 Sys 변수 이름 변경/값 읽기/값 설정의 두 부분으로 나뉩니다. Lua 변수 정의는 변수를 선언하고 초기값을 할당할 수 있으며, while, if-else 같은 명령과 함께 사용합니다. Lua 변수 조회 명령은 입력한 변수명의 값을 실시간으로 조회해 상태 바에 표시합니다. Sys 변수의 개수는 고정되어 있으며 이름 변경, 변수값 읽기, 변수값 설정이 가능합니다. 이 변수에 저장된 값은 시스템 종료 시에도 지워지지 않습니다.
그림 9.4-10 Var 명령 인터페이스
중요
변수명은 영문자 또는 밑줄(_)로 시작해야 합니다. 숫자나 기타 특수문자로 시작할 수 없습니다.
9.5. 운동 명령 인터페이스
그림 9.5 운동 명령 인터페이스
9.5.1. 포인트투포인트 명령
포인트투포인트 아이콘을 클릭해 PTP 명령 편집 화면으로 들어갑니다.
도달할 포인트를 선택할 수 있습니다. 부드러운 전환 시간 설정을 통해 이 포인트에서 다음 포인트까지의 움직임을 연속적으로 수행할 수 있습니다. 오프셋 사용 여부를 선택할 수 있고, 베이스 좌표계 기준 오프셋과 툴 좌표계 기준 오프셋을 선택할 수 있으며, x, y, z, rx, ry, rz 오프셋량 설정 팝업이 표시됩니다. PTP의 실제 경로는 운동 컨트롤러가 자동으로 계획한 최적 경로입니다. 추가, `적용`을 클릭하면 이 명령을 저장할 수 있습니다.
그림 9.5-1 PTP 명령 인터페이스
9.5.2. 직선 명령
직선 아이콘을 클릭해 Lin 명령 편집 화면으로 들어갑니다.
이 명령의 기능은 PTP 명령과 비슷하지만, 이 명령으로 도달하는 포인트까지의 경로는 직선입니다.
그림 9.5-2 Lin 명령 인터페이스
중요
포인트명이 `seamPos`인 경우, 직선 명령은 용접 장면에서 레이저 센서를 사용하는 상황에 적용됩니다. 용접 중 누적되는 운행 오차를 보정하기 위해 `오프셋 사용 여부`와 `오프셋량`이 추가되었습니다.
오프셋 사용 여부: 없음, 베이스 좌표계 오프셋, 툴 좌표계 오프셋, 레이저 원시 데이터 오프셋
오프셋량: ∆x, ∆y, ∆z, ∆rx, ∆ry, ∆rz, 범위 -300~300
그림 9.5-2-1 Lin 명령 인터페이스(용접 장면)
9.5.2.1. LIN 명령 관절 과속도 처리 기능
데카르트 공간 직선 운동 명령 `LIN`을 사용할 때 계획 조건은 선속도이지만, 실제 운행은 작업 공간의 영향을 받기 때문에 선속도 요구를 만족하는 순간 관절 각속도가 이미 제한을 초과할 수 있습니다. 이 기능은 LIN 운동 중 관절 과속도에 대응하기 위한 선택 가능한 처리 전략을 제공합니다.
Step1: 직선 운동 명령 버튼을 클릭합니다.
그림 9.5-3-1 직선 운동 명령 버튼 클릭
Step2: 직선 운동 명령의 목표 경로점을 선택합니다.
그림 9.5-3-2 직선 운동 목표 경로점 선택
Step3: 관절 과속도 보호 스위치를 켭니다.
그림 9.5-3-3 관절 과속도 보호 스위치 켜기
Step4: 관절 과속도 처리 전략을 선택합니다. 과속도 오류 또는 `자적응 감속`을 선택할 수 있으며, 그 외는 기본 전략으로 보호 기능이 없습니다.
그림 9.5-3-4 관절 과속도 처리 전략
- Step5:
처리 전략과 처리 전략 파라미터를 설정한 뒤 추가 버튼을 클릭하면 lua 명령을 추가할 수 있습니다.
자적응 감속 전략에서는 감속 임계값이 설정 선속도 대비 선속도 감소 비율을 의미합니다. 감속값이 설정 임계값을 초과하면 로봇은 오류 정지합니다.
그림 9.5-3-5 관절 과속도 처리 전략 선택과 설정
Step6: 추가된 lua 명령은 아래 그림과 같이 표시됩니다.
그림 9.5-3-6 lua 명령
- 과속도 보호 시작: JointOverSpeedProtectStart(a, b)
a: 전략 번호(드롭다운 메뉴 순서 참조)
b: 임계값 백분율(0~100, 자적응 감속일 때만 유효)
과속도 보호 종료: JointOverSpeedProtectEnd()
참고
특이점 통과 운동 보호에 대해서는 자동 모드의 특이점 통과 기능 설명을 참조하세요.
9.5.2.2. 포위각 자세 통과 각속도 조절 기능
용접 과정 중 포위각 용접이 필요한 워크를 다루거나, 자세 변화는 크고 위치 변화는 작지만 선속도를 높일 수 없는 상황에서 빠른 통과가 필요한 특정 직선 계획의 경우, 이 기능을 사용해 작업할 수 있습니다.
Step1: 툴 좌표계를 설정하고 용접 토치의 툴 크기와 자세를 교정합니다.
참고
인터페이스 수치는 예시일 뿐입니다. 실제 툴 상태에 맞게 설정하세요.
그림 9.5-3-7 툴 좌표계 설정
Step2: 티칭 프로그램`을 클릭하고 `프로그램 프로그래밍`을 선택한 뒤, `운동 명령 분류에서 `직선`을 선택합니다.
그림 9.5-3-8 직선 명령 설정 인터페이스
Step3: 포위각 용접의 각 직선 시작점을 통과점으로 설정하고, 통과점 각속도 조절 가능 버튼을 켠 뒤 최대 각속도 백분율을 설정합니다. 기본 최대 각속도 `100%`는 `360°/s`입니다.
그림 9.5-3-9 통과점 각속도 조절 파라미터 설정 인터페이스
Step4: 추가 버튼을 클릭해 통과 자세 각속도 조절이 포함된 직선 명령을 생성합니다.
그림 9.5-3-10 통과점 직선 운동 명령 추가
Step5: 로봇은 시작점에서 자세 통과를 완료하고, 정상적으로 직선 명령을 실행해 이 세그먼트의 종료점으로 이동합니다. 통과점 각속도 조절 가능 버튼을 끄고 종료점을 추가합니다.
그림 9.5-3-11 직선 종료점 삽입
Step6: 적용 버튼을 클릭해 대응하는 LUA 명령을 생성합니다.
그림 9.5-3-12 통과점을 포함한 직선 LUA 명령 생성
하나의 완전한 포위각 용접은 보통 여러 개의 통과점을 가집니다. 그림 7의 포위각 예시에서는 용접 과정 중 위치 변화는 작고 자세 변화는 큰 자세 통과점이 2개 있습니다.
점 1은 용접 첫 번째 세그먼트의 시작점, 점 2는 첫 번째 세그먼트의 종료점입니다.
점 3은 용접 두 번째 세그먼트의 시작점, 점 4는 두 번째 세그먼트의 종료점입니다.
점 5는 용접 세 번째 세그먼트의 시작점, 점 6은 세 번째 세그먼트의 종료점입니다.
자세 통과는 이전 세그먼트 용접의 종료점에서 다음 세그먼트 용접의 시작점으로 넘어가는 구간에서 발생하므로, 다음 세그먼트 시작점에 자세 각속도 조절 명령을 추가해야 합니다. 이렇게 하면 포위각 자세 통과 동안 최대 선속도는 유지하면서 최대 각속도를 증가시켜 용접 과정이 더 부드럽게 진행됩니다.
그림 9.5-3-13 포위각 용접 흐름 예시
9.5.3. 원호 명령
원호 아이콘을 클릭하면 Arc 명령 편집 인터페이스로 들어갑니다.
Arc 명령은 원호 운동 명령으로, 3개의 점을 포함합니다. 첫 번째 점은 원호 시작점, 두 번째 점은 원호 중간 통과점, 세 번째 점은 종료점입니다.
통과점과 종료점 모두에 대해 오프셋 사용 여부를 설정할 수 있으며, 베이스 좌표 기준 오프셋과 툴 좌표 기준 오프셋 중 하나를 선택해 x, y, z, rx, ry, rz 오프셋 값을 설정할 수 있습니다. 종료점에서는 부드러운 전환 반경을 설정해 운동의 연속성을 구현할 수 있습니다.
중요
원호 운동을 사용하려면 먼저 PTP 또는 Lin 명령을 추가해 시작점으로 이동해야 합니다.
그림 9.5-4 Arc 명령 인터페이스
9.5.4. 완전 원 명령
완전 원 아이콘을 클릭해 Circle 명령 편집 화면으로 들어갑니다.
협동 로봇은 완전 원 명령을 추가해 완전 원 궤적 운동을 수행할 수 있습니다. 완전 원 명령을 추가하기 전에 완전 원 궤적 위의 3개 경로점을 먼저 티칭해야 합니다. 이 3개 경로점을 각각 P1, P2, P3`라고 가정합니다. 이 중 `P1`은 완전 원 궤적 시작점이고, `P2, P3`는 각각 완전 원 궤적 중간점 1, 중간점 2입니다. 로봇을 위 3개 점으로 각각 이동시킨 뒤 티칭 포인트명을 `P1, P2, `P3`로 추가합니다.
중요
완전 원 궤적 운동은 먼저 PTP 또는 Lin 명령을 추가해 시작점으로 이동해야 합니다.
그림 9.5-5 완전 원 궤적
그림 9.5-6 티칭한 P1, P2, P3 점
9.5.4.1. 완전 원 명령 추가
Step1: 새 사용자 프로그램 testCircle.lua`를 만들고 `완전 원 버튼을 클릭해 완전 원 명령 추가 페이지를 엽니다.
그림 9.5-7 완전 원 명령 추가 버튼
Step2: 완전 원 명령 추가 페이지에서 시작점 운동 방식과 시작점을 `P1`로 선택합니다.
그림 9.5-8 시작점 운동 방식과 시작점 P1
Step3: 완전 원 명령 추가 페이지에서 완전 원 중간점 1`을 `P2 점으로 선택합니다.
그림 9.5-9 완전 원 중간점 1
Step4: 완전 원 중간점 2`를 `P3 점으로 선택하고, 페이지 하단의 추가 버튼과 적용 버튼을 순서대로 클릭합니다.
그림 9.5-10 완전 원 중간점 2
Step5: 이 시점에서 `testCircle.lua`에 완전 원 운동 명령이 추가됩니다.
그림 9.5-11 완전 원 운동 명령 추가
로봇을 자동 모드로 전환하고 안전을 확보한 뒤 이 프로그램을 실행하면 로봇은 완전 원 궤적을 따라 움직입니다.
9.5.4.2. 완전 원 궤적 오프셋
협동 로봇의 완전 원 운동은 완전 원 궤적 중간점 1과 중간점 2 위치에 대한 오프셋을 지원하며, 오프셋 타입은 다음 두 가지가 있습니다.
완전 원 2개 궤적 중간점 동일 오프셋량: 완전 원 궤적 중간점 1(P2)과 중간점 2(P3)가 같은 오프셋량 ∆(dx, dy, dz, drx, dry, drz)을 사용해 오프셋됩니다.
완전 원 2개 궤적 중간점 서로 다른 오프셋량: 완전 원 궤적 중간점 1(P2)과 중간점 2(P3)는 각각 서로 다른 두 오프셋량 ∆1(dx1, dy1, dz1, drx1, dry1, drz1)과 ∆2(dx2, dy2, dz2, drx2, dry2, drz2)를 사용해 오프셋됩니다.
아래에서는 `동일 오프셋량`과 `서로 다른 오프셋량`의 사용 방법을 각각 예시로 설명합니다.
동일 오프셋량
그림과 같이 완전 원 명령 추가 페이지를 열고 `오프셋 타입`에서 `동일 오프셋량`을 선택합니다. 이어서 시작점 운동 방식과 시작점을 `P1`로, 완전 원 중간점 1을 `P2`로 선택합니다.
그림 9.5-12 완전 원 동일 오프셋량
완전 원 중간점 2에서 `P3`를 선택하고, `오프셋 사용 여부`에서 `베이스 좌표 오프셋`을 선택합니다.
참고
실제 작업 상황에 따라 `툴 좌표 오프셋`을 선택할 수도 있습니다.
오프셋량 dx`에 `10mm`를 입력하고, 페이지 하단의 `추가 버튼과 적용 버튼을 차례대로 클릭합니다.
그림 9.5-13 오프셋량 설정
이 시점에서 완전 원 시작점이 P1`이고, 두 중간점 `P2`와 `P3`가 모두 베이스 좌표계의 X축 방향으로 `10mm 오프셋된 완전 원 명령이 testCircle.lua 프로그램에 추가됩니다.
그림 9.5-14 완전 원 동일 오프셋량 프로그램
로봇을 자동 모드로 전환하고 안전을 확보한 뒤 이 프로그램을 시작하면, 로봇의 실제 운동 궤적은 P1, P2, P3`를 지나는 원이 됩니다. 이때 `P2`는 원래 `P2`점이 X 방향으로 `10mm 오프셋된 점이고, P3`는 원래 `P3`점이 X 방향으로 `10mm 오프셋된 점입니다.
그림 9.5-15 동일 오프셋량 X10mm 궤적
서로 다른 오프셋량
완전 원 명령 추가 페이지를 열고 `오프셋 타입`에서 `서로 다른 오프셋량`을 선택합니다. 이어서 시작점 운동 방식과 시작점을 `P1`로, 완전 원 중간점 1을 `P2`로 선택하고, `오프셋 사용 여부`에서 `베이스 좌표 오프셋`을 선택합니다.
참고
실제 작업 상황에 따라 `툴 좌표 오프셋`을 선택할 수 있습니다.
그림 9.5-16 서로 다른 오프셋량
완전 원 중간점에서 `P3`를 선택하고, `오프셋 사용 여부`에서 `베이스 좌표 오프셋`을 선택합니다.
참고
실제 작업 상황에 따라 `툴 좌표 오프셋`을 선택할 수 있습니다.
오프셋량 dx`에 `10mm`를 입력하고, 페이지 하단의 `추가 버튼과 적용 버튼을 차례대로 클릭합니다.
그림 9.5-17 서로 다른 오프셋량 설정: 중간점 2 오프셋
이 시점에서 완전 원 시작점이 P1, 중간점 P2`는 베이스 좌표계 Y 방향으로 `10mm 오프셋되고, P3`는 베이스 좌표계 X축 방향으로 `10mm 오프셋된 완전 원 명령이 testCircle.lua 프로그램에 추가됩니다.
그림 9.5-18 완전 원 2점 서로 다른 오프셋량 프로그램
로봇을 자동 모드로 전환하고 안전을 확보한 뒤 이 프로그램을 시작하면, 로봇의 실제 운동 궤적은 P1, P2’, P3’`를 지나는 원이 됩니다. 이때 `P2’`는 원래 `P2`점이 Y 방향으로 `10mm 오프셋된 점이고, P3’`는 원래 `P3`점이 X 방향으로 `10mm 오프셋된 점입니다.
그림 9.5-19 완전 원 2개 궤적점 각각의 오프셋 궤적
9.5.5. 스파이럴 명령
스파이럴 아이콘을 클릭해 Spiral 명령 편집 화면으로 들어갑니다.
Spiral 명령은 스파이럴 선 운동이며 3개의 점을 포함합니다. 이 3개 점이 하나의 원을 구성합니다. 세 번째 점 설정 페이지에는 스파이럴 횟수, 자세 보정각, 반경 증가량, 회전축 방향 증가량 파라미터 설정이 포함됩니다. 스파이럴 횟수는 이 스파이럴 선의 운동 횟수입니다. 자세 보정각은 스파이럴 종료 시의 자세와 스파이럴 첫 포인트의 자세를 보정합니다. 반경 증가량은 각 회차의 반경 증가량이며, 회전축 방향 증가량은 스파이럴 축 방향의 증가량입니다. 오프셋 사용 여부를 설정하면 이 오프셋량은 스파이럴 전체 궤적에 적용됩니다.
그림 9.5-20 Spiral 명령 인터페이스
9.5.6. 신규 스파이럴 명령
신규 스파이럴 아이콘을 클릭해 N-Spiral 명령 편집 화면으로 들어갑니다.
N-Spiral 명령은 최적화 버전의 스파이럴 선 운동으로, 하나의 포인트와 각 파라미터 설정만으로 스파이럴 선 운동을 구현합니다. 로봇은 현재 위치를 시작점으로 사용하며, 사용자가 디버그 속도, 오프셋 사용 여부, 스파이럴 횟수, 스파이럴 기울기 각도, 초기 반경, 반경 증가량, 회전축 방향 증가량, 회전 방향 파라미터를 설정합니다. 스파이럴 횟수는 이 스파이럴 선의 운동 횟수입니다. 스파이럴 기울기 각도는 툴 Z축과 수평 방향 사이의 각도입니다. 자세 보정각은 스파이럴 종료 시의 자세와 첫 포인트의 자세를 보정합니다. 초기 반경은 첫 회차의 반경 크기이고, 반경 증가량은 각 회차의 반경 증가량입니다. 회전축 방향 증가량은 스파이럴 축 방향의 증가량이며, 회전 방향은 시계 방향과 반시계 방향입니다.
그림 9.5-21 N-Spiral 명령 인터페이스
9.5.6.1. 회전별 스파이럴 속도 일치 설정 기능
9.5.6.1.1. 개요
스파이럴 운동 명령 사용 시 스파이럴 운동의 동작 속도를 설정할 수 있으며, 각 회전의 속도가 설정된 동작 속도를 유지하도록 할 수 있습니다.
9.5.6.1.2. 조작 절차
Step1: 스파이럴 운동을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 티칭 포인트 이름을 `P0`로 합니다.
Step2: 티치 프로그램 → 프로그램 프로그래밍 버튼을 클릭하고 신규 스파이럴 명령을 선택합니다. 속도 모드`에서 `물리 속도`를 선택한 뒤 속도값과 가속도값을 설정합니다. 이 속도값은 스파이럴의 실제 동작 속도입니다. 또한 실제 필요에 따라 `스파이럴 회수, 스파이럴 기울기 각도, 초기 반경, 반경 증가량, 회전축 방향 증가량, 회전 방향 등의 파라미터를 설정합니다. 그림 2-1을 참조하십시오.
그림 9.5-21-1 신규 스파이럴 파라미터 설정
Step3: 운동 명령을 추가하고 Lua 프로그램을 생성해 실행하면, 설정한 속도로 스파이럴을 운행하는 기능을 구현할 수 있습니다. 그림 2-2를 참조하십시오.
그림 9.5-21-2 설정 속도로 스파이럴을 운행하는 전형적인 프로그램
9.5.7. 수평 스파이럴 명령
수평 스파이럴 아이콘을 클릭해 H-Spiral 명령 편집 화면으로 들어갑니다.
H-Spiral 명령은 수평 공간 스파이럴 선 운동이며, 이 명령은 단일 세그먼트 운동(직선) 명령 뒤에 설정됩니다.
스파이럴 반경: 0~100mm
스파이럴 각속도: 0~2회전/초
회전 방향: 스파이럴 시계 방향/반시계 방향
스파이럴 기울기 각도: 0~40°
그림 9.5-22 H-Spiral 명령 인터페이스
9.5.8. 스플라인 명령
스플라인 아이콘을 클릭해 Spline 명령 편집 화면으로 들어갑니다.
이 명령은 스플라인 그룹 시작, 스플라인 세그먼트, 스플라인 그룹 종료의 3개 부분으로 나뉩니다. 스플라인 그룹 시작은 스플라인 운동의 시작 표시이며, 스플라인 세그먼트는 SPL, SLIN, SCIRC 세그먼트를 포함합니다. 대응하는 아이콘을 클릭해 명령 추가 화면으로 들어갑니다. 스플라인 그룹 종료는 스플라인 운동의 종료 표시입니다.
그림 9.5-23 Spline 명령 인터페이스
9.5.9. 신규 스플라인 명령
신규 스플라인 아이콘을 클릭해 N-Spline 명령 편집 화면으로 들어갑니다.
이 명령은 Spline 명령 알고리즘을 최적화한 명령이며, 이후 기존 Spline 명령을 대체합니다.
이 명령은 다점 궤적 시작, 다점 궤적 세그먼트, 다점 궤적 종료의 3개 부분으로 나뉩니다. 다점 궤적 시작은 다점 궤적 운동의 시작 표시이며, 다점 궤적 세그먼트에서는 각 궤적점을 설정합니다.
아이콘을 클릭하면 포인트 추가 인터페이스로 들어갑니다. 다점 궤적 종료는 다점 궤적 운동의 종료 표시이며, 여기서 제어 모드와 디버그 속도를 설정할 수 있습니다.
제어 모드: 원호 통과점/지정 경로점
전체 평균 연결 시간: 정수형, 10 이상, 기본값은 2000
그림 9.5-24 N-Spline 명령 인터페이스
9.5.10. 웨이빙 명령
웨이빙 아이콘을 클릭해 Weave 명령 편집 화면으로 들어갑니다. Weave 명령은 두 부분을 포함합니다:
그림 9.5-25 Weave 명령 인터페이스
설정 및 테스트`를 클릭하면 사용 장면에 따라 웨이빙 타입을 선택하고 웨이빙 파라미터를 설정할 수 있습니다. 설정이 끝나면 `웨이빙 시작 테스트`와 `웨이빙 정지 테스트 버튼으로 이 웨이빙 궤적을 시험할 수 있습니다. 현재 지원되는 웨이빙 타입은 다음과 같습니다:
삼각파 웨이빙(LIN/ARC)
수직 L형 삼각파 웨이빙(LIN/ARC)
원형 웨이빙 - 시계 방향(LIN)
원형 웨이빙 - 반시계 방향(LIN)
사인파 웨이빙(LIN/ARC)
수직 L형 사인파 웨이빙(LIN/ARC)
수직 용접 삼각 웨이빙
그림 9.5-26 Weave 설정 및 테스트 명령 인터페이스
9.5.10.1. 경사 톱니형 웨이빙 기능
경사 톱니형 웨이빙 기능을 사용하면 로봇 툴 끝단이 데카르트 공간에서 기울어진 톱니 모양의 웨이빙 궤적을 형성합니다. 경사 톱니형 웨이빙은 직선 궤적에 중첩되며, 기울기 양은 방위각 파라미터로 제어됩니다. 지정된 웨이빙 용접 평면에서 웨이빙 용접 방위각의 기울기(단위: deg)를 설정합니다.
값이 양수이면 왼쪽 끝점이 전진 방향으로 기울어지고, 음수이면 오른쪽 끝점이 전진 방향으로 기울어집니다. 90deg 또는 `-90deg`이면 전진 방향을 따라 웨이빙할 수 있습니다.
그림 9.5-26-1 웨이빙 방위각의 영향
Step1: 기본 직선 운동 설정을 편집합니다.
그림 9.5-26-2 기본 직선 운동 Lua 프로그램 예시
Step2: 웨이빙 명령 추가를 클릭합니다.
그림 9.5-26-3 웨이빙 명령 추가 클릭
Step3: 웨이빙 명령 파라미터 설정 페이지에서 설정 버튼을 클릭하고, 웨이빙 타입 드롭다운 박스에서 삼각파 웨이빙 또는 `사인파 웨이빙`을 선택한 뒤 해당 `웨이빙 방향 방위각`을 입력하고 `적용`을 클릭합니다.
그림 9.5-26-4 웨이빙 파라미터 설정
Step4: 웨이빙 시작 버튼을 클릭하면 웨이빙 명령이 직선 운동 위쪽에 추가됩니다. 웨이빙 종료 버튼을 클릭하면 웨이빙 명령이 직선 운동 아래쪽에 추가됩니다.
그림 9.5-26-5 웨이빙 명령 추가 후 Lua 프로그램
Step5: `실행 시작`을 클릭하면 로봇 끝단의 궤적이 아래와 같이 표시됩니다.
그림 9.5-26-6 톱니형 웨이빙(왼쪽), 경사 톱니형 웨이빙(오른쪽)
9.5.11. 궤적 재생 명령
궤적 재생 버튼을 클릭하면 TPD 명령 편집 화면으로 들어갑니다.
이 명령을 사용하려면 먼저 사용자가 기록된 궤적을 가지고 있어야 합니다.
궤적 기록 방법: 궤적 기록을 준비하기 전에 먼저 궤적 시작점을 저장합니다. 로봇이 드래그 모드에 있는 상태에서 파일명을 입력하고, 주기(값을 `x`라고 하면 `x`ms마다 1점을 기록하며, 4ms 간격 기록을 권장)를 선택한 뒤 `기록 시작`을 클릭합니다. 사용자는 필요에 따라 로봇을 드래그하여 지정한 동작을 수행시키고, 기록이 끝나면 `기록 정지`를 클릭하면 이전 로봇 운동 궤적이 저장됩니다. 한 번의 동작으로 완전히 기록되지 않으면 기록 점수 초과 메시지가 표시되며, 이 경우 사용자는 동작을 여러 번으로 나누어 기록해야 합니다.
프로그램 편집 시에는 먼저 PTP 명령으로 해당 궤적 시작점에 도달한 다음, TPD 궤적 재생 명령에서 궤적을 선택하고, 평활화 여부와 디버그 속도를 설정한 뒤 추가, `적용`을 순서대로 클릭하면 프로그램에 삽입할 수 있습니다. 궤적 로드 명령은 주로 궤적 파일을 미리 읽어 들여 궤적 명령으로 추출하고, 컨베이어 트래킹 시나리오에 맞게 적용하는 데 사용됩니다.
참고
TPD의 자세한 조작은 티칭 프로그래밍(TPD) 기능 설명 모듈을 참조하십시오.
그림 9.5-27 TPD 명령 화면
9.5.12. 점 오프셋 명령
점 오프셋 아이콘을 클릭하면 Offset 명령 편집 화면으로 들어갑니다.
이 명령은 전체 오프셋 명령입니다. 각 오프셋 값을 입력하고 시작 명령과 종료 명령을 프로그램에 추가하면, 시작과 종료 사이의 운동 명령이 베이스 좌표(또는 워크 좌표)를 기준으로 오프셋됩니다.
그림 9.5-28 Offset 명령 화면
9.5.13. 서보 명령
서보 아이콘을 클릭하면 ServoCart 명령 편집 화면으로 들어갑니다.
ServoCart 서보 제어(데카르트 공간 운동) 명령은 절대 자세 제어 또는 현재 자세 기준 오프셋 제어를 통해 로봇의 운동을 제어할 수 있습니다.
그림 9.5-29 ServoCart 명령 화면
절대 자세 제어 프로그램 예시:
이 예시에서 `x, y, z, rx, ry, rz`(데카르트 위치)는 취득한 로봇의 현재 위치입니다. 또한 사용자는 궤적 데이터 파일 읽기, 소켓 통신을 통한 궤적 데이터 전송 등의 방법으로 로봇 운동을 제어할 수 있습니다.
현재 자세 기준 오프셋(베이스 좌표 오프셋) 제어 프로그램 예시:
9.5.14. 궤적 명령
궤적 아이콘을 클릭하면 Trajectory 명령 편집 화면으로 들어갑니다.
그림 9.5-30 Trajectory 명령 화면
9.5.15. 궤적 J 명령
궤적 J 아이콘을 클릭하면 TrajectoryJ 명령 편집 화면으로 들어갑니다.
Trajectory 명령과 TrajectoryJ 명령은 카메라가 직접 궤적을 지정하는 일반적인 인터페이스에 적용되며, 고정 형식의 이산 궤적점 파일이 이미 있는 경우 시스템으로 가져와 로봇이 해당 파일의 궤적을 따라 운동할 수 있게 합니다.
궤적 파일 가져오기 기능: 로컬 컴퓨터의 파일을 선택하여 로봇 제어 시스템으로 가져옵니다.
궤적 프리로드: 이미 가져온 궤적 파일을 선택하고 명령을 통해 로드합니다.
궤적 운동: 프리로드된 궤적 파일과 선택한 디버그 속도를 조합한 명령을 로봇에 전송해 운동시킵니다.
궤적 점 번호 출력: 로봇이 궤적을 실행하는 과정에서 궤적 점 번호를 출력하여 현재 운동 진행 상황을 확인할 수 있도록 합니다.
그림 9.5-31 TrajectoryJ 명령 화면
9.5.16. DMP 명령
DMP 아이콘을 클릭하면 DMP 명령 편집 화면으로 들어갑니다.
DMP는 궤적 모방 학습의 한 방식으로, 사전에 기준 궤적을 계획해 두어야 합니다. 명령 편집 화면에서 새로운 시작점으로 티칭점을 선택하고 추가, `적용`을 클릭하면 이 명령을 저장할 수 있습니다. DMP의 실제 경로는 새로운 시작점에서 기준 궤적을 모방한 새로운 궤적이 됩니다.
그림 9.5-32 DMP 명령 화면
9.5.17. 워크 변환 명령
워크 변환 아이콘을 클릭하면 WPTrsf 명령 편집 화면으로 들어갑니다.
자동 변환할 워크 좌표계를 선택하고 추가, `적용`을 클릭하면 이 명령을 저장할 수 있습니다. 이 명령은 내부의 PTP, LIN 명령을 실행할 때 워크 좌표계 아래의 점 위치를 자동 변환합니다. 사용 예시 영역에는 올바른 명령 조합과 안내 문구가 표시됩니다. 추가 후에는 실제 시나리오에 맞춰 세부 명령을 직접 조정해 조합할 수 있습니다.
그림 9.5-33 WPTrsf 명령 화면
9.5.18. 툴 변환 명령
툴 변환 아이콘을 클릭하면 ToolTrsf 명령 편집 화면으로 들어갑니다.
PTP, Lin 명령을 추가한 뒤 자동 변환할 툴 좌표계를 선택하고 추가, `적용`을 클릭하면 이 명령을 저장할 수 있습니다. 명령 안의 점 위치 데카르트 좌표는 현재 설정된 워크 좌표계를 기준으로 자동 변환됩니다.
참고
사용 예 영역에는 명령의 올바른 조합 사용 방법과 안내가 표시됩니다. 구체적인 명령은 추가한 후 실제 시나리오에 맞게 직접 조정해 조합할 수 있습니다.
그림 9.5-34 ToolTrsf 명령 화면
9.6. 제어 명령 화면
그림 9.6 제어 명령 인터페이스
9.6.1. 디지털 I/O 명령
디지털 IO 아이콘을 클릭하면 IO 명령 편집 인터페이스로 들어갑니다.
IO 명령은 IO 설정(SetDO/SPLCSetDO)과 IO 읽기(GetDI/SPLCGetDI)의 두 부분으로 나뉩니다.
SetDO/SPLCSetDO 명령은 지정한 출력 DO의 상태를 설정할 수 있습니다. 16채널 제어 박스 디지털 출력과 2채널 툴 디지털 출력을 포함하며, 상태 옵션 False`는 닫힘, `True`는 열림입니다. 블로킹 옵션에서 `블로킹`은 운동 정지 후 DO 상태를 설정하고, `논블로킹`은 이전 운동 과정 중에 DO 상태를 설정합니다. 평활 궤적 옵션 `Break`는 평활 전환 반경 종료 후 DO 상태를 설정하고, `Serious`는 평활 전환 반경 운동 과정 중 DO 상태를 설정합니다. 이 명령을 보조 스레드에 추가할 경우 스레드 적용 여부는 `예, 그 외 위치에서 사용할 경우 아니오`를 선택합니다. `추가, `적용`을 클릭합니다.
그림 9.6-1 SetDO 명령 인터페이스
GetDI/SPLCGetDI 명령에서는 읽을 포트 번호를 선택합니다. 블로킹 옵션에서 블로킹`은 운동 정지 후 DI 상태를 읽고, `논블로킹`은 이전 운동 과정 중에 DI 상태를 읽습니다. 이 명령을 보조 스레드에 추가할 경우 스레드 적용 여부는 `예, 그 외 위치에서 사용할 경우 아니오`를 선택합니다. 선택이 끝나면 `추가, 적용 버튼을 클릭합니다.
그림 9.6-2 GetDI 명령 인터페이스
9.6.2. 아날로그 AI 명령
아날로그 AI 아이콘을 클릭하면 AI 명령 편집 화면으로 들어갑니다.
이 명령은 아날로그 출력 설정(SetAO/SPLCSetAO)과 아날로그 입력 읽기(GetAI/SPLCGetAI) 두 기능으로 나뉩니다.
SetAO/SPLCSetAO`에서는 설정할 아날로그 출력을 선택하고, 설정값(범위 `0-10)을 입력합니다. 블로킹 옵션에서 블로킹`은 운동 정지 후 AO 상태를 설정하고, `논블로킹`은 이전 운동 과정 중에 AO 상태를 설정합니다. 이 명령을 보조 스레드에 추가하는 경우에는 스레드 적용 여부를 `예`로, 그 외 위치에서 사용하는 경우에는 `아니오`를 선택합니다. `추가, `적용`을 클릭합니다.
그림 9.6-3 SetAO 명령 인터페이스
GetAI/SPLCGetAI`에서는 읽을 아날로그 입력을 선택합니다. 블로킹 옵션에서 `블로킹`은 운동 정지 후 AI 상태를 읽고, `논블로킹`은 이전 운동 과정 중에 AI 상태를 읽습니다. 이 명령을 보조 스레드에 추가하는 경우에는 스레드 적용 여부를 `예`로, 그 외 위치에서 사용하는 경우에는 `아니오`를 선택합니다. `추가, `적용`을 클릭합니다.
그림 9.6-4 GetAI 명령 인터페이스
9.6.3. 가상 I/O 명령
가상 IO 아이콘을 클릭하면 Vir-IO 명령 편집 인터페이스로 들어갑니다.
이 명령은 가상 IO 제어 명령으로, 외부 DI 및 AI 상태의 설정 시뮬레이션과 시뮬레이션된 DI 및 AI 상태 읽기를 수행할 수 있습니다.
그림 9.6-5 Vir-IO 명령 인터페이스
9.6.4. 확장 IO 명령
확장 IO 아이콘을 클릭하면 Aux-IO 명령 편집 인터페이스로 들어갑니다.
Aux-IO는 로봇과 PLC가 UDP 통신으로 외부 확장 IO를 제어하는 명령 기능이며, 로봇과 PLC 사이에 UDP 통신이 먼저 확립되어야 합니다. 기존 16채널 입출력에 더해 128채널 입출력을 확장할 수 있습니다. 이 명령의 사용법은 앞서 설명한 일반 IO 사용법과 동일합니다. 이 기능은 일정한 기술 난이도가 있으므로, 사용 전에 당사와 상담해 주세요.
그림 9.6-6 Aux-IO 명령 인터페이스
9.6.5. 운동 DO 명령
운동 DO 아이콘을 클릭하면 MoveDO 명령 편집 인터페이스로 들어갑니다.
이 명령은 연속 출력 모드와 단발 출력 모드로 나뉩니다.
연속 출력 모드: 직선 운동 과정 중 설정한 간격에 따라 연속적으로 DO 신호를 출력하는 기능입니다.
그림 9.6-7 MoveDO 명령 연속 출력 인터페이스
단발 출력 모드: 등속 구간 출력과 자유 설정 두 가지를 선택할 수 있습니다. 운동 시작 후 설정 시간을 출력하고, 운동 종료 전에 리셋 시간을 출력합니다. 범위는 `[0, 1000]`입니다.
그림 9.6-8 MoveDO 명령 단발 출력 인터페이스
9.6.6. 운동 AO 명령
운동 AO 아이콘을 클릭하면 MoveAO 명령 편집 인터페이스로 들어갑니다.
개요
이 명령은 운동 명령과 함께 사용하면 운동 과정 중 실시간 TCP 속도에 비례한 AO 신호를 출력할 수 있습니다.
운동 AO 명령 설명
운동 AO 명령은 티칭 시뮬레이션 - 프로그램 티칭 명령 편집 영역에 있으며, 아이콘은 제어 명령 - 운동 AO입니다.
그림 9.6-9 운동 AO 명령
그림 9.6-10 운동 AO 명령 상세
AO 번호: 드롭다운 리스트에서 선택합니다. `Ctrl-AO0`는 제어 박스 AO0, `Ctrl-AO1`은 제어 박스 AO1, `End-AO0`는 말단 AO0에 대응합니다.
최대 TCP 속도: 로봇의 최대 TCP 속도 값입니다. 실시간 TCP 속도와 비례 관계를 형성합니다.
최대 TCP 속도 AO 백분율: 로봇 최대 TCP 속도 값에 대응하는 AO 백분율입니다. AO 출력 상한값을 설정합니다.
데드존 보상값 AO 백분율: 비례 밸브에 데드존이 존재할 경우 AO 출력을 보장하기 위해 설정하는 값입니다. AO 출력 하한값을 설정합니다.
중요
계산식: 출력 AO 백분율 = 실시간 TCP 속도 / 설정 최대 TCP 속도 * 설정 최대 TCP 속도 AO 백분율
이 명령에 대응하는 운동 명령은 다음과 같습니다: PTP/LIN/ARC/CIRCLE/SPLINE/NSPLINE/SERVOJ
9.6.7. 좌표계 명령
좌표계 아이콘을 클릭하면 ToolList 명령 편집 인터페이스로 들어갑니다.
툴 좌표계 이름을 선택하고 `적용`을 클릭해 이 명령을 프로그램에 추가합니다. 프로그램이 이 문장을 실행하면 로봇의 툴 좌표계가 설정됩니다.
그림 9.6-11 ToolList 명령 인터페이스
9.6.8. 모드 전환 명령
모드 전환 아이콘을 클릭하면 Mode 명령 편집 인터페이스로 들어갑니다.
이 명령은 로봇을 수동 모드로 전환합니다. 보통 프로그램 끝에 추가하며, 프로그램 실행이 끝난 뒤 로봇이 자동으로 수동 모드로 전환되어 사용자가 로봇을 드래그할 수 있도록 합니다.
그림 9.6-12 Mode 명령 인터페이스
9.6.9. 충돌 레벨 명령
충돌 레벨 아이콘을 클릭하면 Collision 명령 편집 인터페이스로 들어갑니다.
이 명령은 충돌 레벨 설정 명령입니다. 이 명령을 통해 프로그램 실행 중 각 축의 충돌 레벨을 실시간으로 조정해, 응용 시나리오를 더 유연하게 구성할 수 있습니다.
그림 9.6-13 Collision 명령 인터페이스
9.6.10. 가속도 명령
가속도 아이콘을 클릭하면 Acc 명령 편집 인터페이스로 들어갑니다.
Acc 명령은 로봇의 가속도를 개별적으로 설정할 수 있는 기능을 제공합니다. 운동 명령의 가속도 스케일링 계수를 조정해 가감속 시간을 늘리거나 줄이고, 로봇의 동작 사이클 시간을 조정할 수 있습니다.
그림 9.6-14 Acc 명령 인터페이스
9.7. 주변기기 명령 인터페이스
그림 9.7 주변기기 명령 인터페이스
9.7.1. 그리퍼 명령
그리퍼 아이콘을 클릭하면 Gripper 명령 편집 인터페이스로 들어갑니다.
이 명령은 그리퍼 운동 제어 명령과 그리퍼 활성화/리셋 명령으로 나뉩니다. 그리퍼 제어 명령에서는 설정이 완료되고 활성화된 그리퍼 번호가 표시됩니다. 사용자는 입력 상자를 직접 수정하거나 슬라이더를 원하는 값까지 이동시켜 그리퍼 개폐, 개폐 속도, 개폐 토크를 설정할 수 있습니다. 값은 백분율입니다. 블로킹 기능 옵션에서 블로킹`을 선택하면 그리퍼 동작은 이전 운동 명령이 완료된 뒤 실행되고, `논블로킹`을 선택하면 이전 운동 명령과 병렬로 실행됩니다. `추가, 적용 버튼을 클릭하면 설정한 값이 티칭 파일에 저장됩니다. 그리퍼 리셋/활성화 명령에서는 설정된 그리퍼 번호가 표시되며, 프로그램에 리셋/활성화 명령을 추가할 수 있습니다.
그림 9.7-1 Gripper 명령 인터페이스
9.7.2. 스프레이건 명령
스프레이건 아이콘을 클릭하면 Spray 명령 편집 인터페이스로 들어갑니다.
이 명령은 스프레이 관련 명령으로, 스프레이건의 분사 시작, 분사 정지, 건 클리닝 시작, `건 클리닝 정지`를 제어합니다. 이 프로그램 명령을 편집할 때는 스프레이건 주변기기가 이미 설정되어 있는지 확인하십시오. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
그림 9.7-2 Spray 명령 인터페이스
9.7.3. 외부축 명령
외부축 아이콘을 클릭하면 EAxis 명령 편집 인터페이스로 들어갑니다. 조합 모드를 선택합니다:
컨트롤러 + 서보 드라이버(485)
컨트롤러 + PLC(UDP)
컨트롤러 + PLC(UDP)를 선택하면 이 명령은 외부축을 사용하는 시나리오에 대응하며, PTP 명령과 함께 사용해 공간상 한 점의 X축 방향 이동을 외부축 운동으로 분해할 수 있습니다. 외부축 번호를 선택하고, 운동 방식에서 동기`를 선택한 뒤, 도달할 점을 고르고 `추가, `적용`을 클릭하면 이 명령을 저장할 수 있습니다.
그림 9.7-3 EAxis 명령 인터페이스
컨트롤러 + 서보 드라이버(485)를 선택하면 이 명령에서 확장축 파라미터를 설정할 수 있습니다. 제어 모드에 따라 서로 다른 파라미터를 설정하며, 이미 설정된 확장축에 대해 영점 설정을 수행할 수 있습니다.
그림 9.7-4 확장축 명령 인터페이스
9.7.4. 컨베이어 명령
컨베이어 아이콘을 클릭하면 Convey 명령 편집 인터페이스로 들어갑니다.
이 명령에는 위치 실시간 검출, IO 실시간 검출, 트래킹 시작, 트래킹 정지의 4개 명령이 포함됩니다. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
그림 9.7-5 Conveyor 명령 인터페이스
9.7.5. 연마 장치 명령
연마 장치 아이콘을 클릭하면 Polish 명령 편집 인터페이스로 들어갑니다.
이 명령에서는 연마 장치의 회전수, 접촉력, 돌출 거리, 제어 모드 등을 설정할 수 있습니다.
그림 9.7-6 Polish 명령 인터페이스
9.8. 용접 명령 인터페이스
그림 9.8 용접 명령 인터페이스
9.8.1. 용접 명령
용접 아이콘을 클릭하면 Weld 명령 편집 인터페이스로 들어갑니다.
이 명령은 주로 용접기 주변기기에 사용됩니다. 이 명령을 추가하기 전에 사용자 주변기기에서 용접기 설정이 완료되어 있는지 확인하십시오. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
용접 전압 범위: 0~700V
용접 전류 범위: 0~1000A
중요
출력 AO, 용접 전류, 용접 전압을 설정할 때는 I/O 타입을 선택해야 합니다. 컨트롤러 I/O를 선택하는 경우 해당 출력 AO를 선택하십시오.
그림 9.8-1 Weld 명령 인터페이스
9.8.2. 세그먼트 용접 명령
세그먼트 용접 아이콘을 클릭하면 Segment 명령 편집 인터페이스로 들어갑니다.
협동 로봇은 세그먼트 용접 명령을 추가하여 세그먼트 용접 작업을 수행할 수 있습니다. 세그먼트 용접 명령을 추가하기 전에 먼저 세그먼트 용접 모드를 선택하고, 시작점과 종료점을 티칭해야 합니다. 세그먼트 용접 모드는 자세를 변화시키지 않는 모드와 자세를 변화시키는 모드로 나뉩니다. 로봇은 선택한 세그먼트 용접 모드에 따라 용접 궤적 수행 중 자세를 변화시킬지 여부를 고려합니다.
시작점 `segment01`과 종료점 `segment02`를 티칭하고, 용접 궤적의 시작점과 종료점 위치를 확인합니다. 아래 그림을 참조하십시오.
그림 9.8-2-1 시작점 segment01
그림 9.8-2-2 종료점 segment02
9.8.2.1. 세그먼트 용접 명령 추가
Step1: 새 사용자 프로그램 testSegment1.lua`를 만들고, `세그먼트 용접 버튼을 클릭해 세그먼트 용접 명령 추가 페이지를 엽니다.
그림 9.8-2-3 세그먼트 용접 명령 추가 버튼
Step2: 세그먼트 용접 명령 추가 페이지에서 시작점`을 `segment01, `종료점`을 `segment02`로 선택합니다.
그림 9.8-2-4 세그먼트 용접 시작점, 종료점
Step3: 디버그 속도, 실행 길이, 비실행 길이, 기능 모드, 위빙 선택, 라운딩 규칙을 설정하고 추가 버튼과 적용 버튼을 순서대로 클릭합니다.
Step4: 이제 `testSegment1.lua`에 세그먼트 용접 운동 명령이 추가되었습니다.
그림 9.8-2-5 세그먼트 용접 운동 명령 추가
9.8.2.2. 세그먼트 용접 운동 궤적의 자세 변화
협동 로봇의 세그먼트 용접 운동에서는 세그먼트 용접 모드를 선택할 수 있습니다. 모드 유형은 다음 두 가지입니다:
자세를 변화시키지 않음: 로봇은 용접 궤적 수행 중 항상 용접 궤적 시작점의 자세를 유지하며 동작합니다.
자세를 변화시킴: 로봇은 용접 궤적 수행 중 각 궤적 세그먼트의 데카르트 위치 자세와 관절 위치를 계산하여 세그먼트 용접 실행 과정에서 자세를 변화시킵니다.
아래에서는 자세를 변화시키지 않음 모드와 자세를 변화시킴 모드의 사용 방법을 각각 설명합니다.
자세를 변화시키지 않음
세그먼트 용접 명령 추가 페이지를 열고, 세그먼트 용접 모드`에서 `자세를 변화시키지 않음`을 선택합니다. 이어서 `시작점`을 `segment01, 종료점`을 `segment02`로 설정하고, 실행 길이를 `100, 비실행 길이를 `50`으로 설정한 뒤 기타 관련 설정을 선택하여 프로그램을 저장합니다.
그림 9.8-2-6 자세를 변화시키지 않는 세그먼트 용접 모드
자세를 변화시킴
세그먼트 용접 명령 추가 페이지를 열고, 세그먼트 용접 모드`에서 `자세를 변화시킴`을 선택합니다. 이어서 `시작점`을 `segment01, 종료점`을 `segment02`로 설정하고, 실행 길이를 `100, 비실행 길이를 `50`으로 설정한 뒤 기타 관련 설정을 선택하여 프로그램을 저장합니다.
그림 9.8-2-7 자세를 변화시키는 세그먼트 용접 모드
세그먼트 용접 실행 타입
프로그램을 실행하면 로봇의 세그먼트 용접 실행 상태는 다음과 같습니다:
기능 모드에서 제1구간 실행 기능, 위빙 선택에서 실행 구간 위빙, 라운딩 규칙에서 `라운딩 없음`을 선택한 경우: 로봇은 100mm 위빙 운동과 50mm 직선 운동을 번갈아 수행하고 종료점에서 정지합니다.
그림 9.8-2-8 제1구간 위빙 실행 기능, 라운딩 없음
기능 모드에서 제1구간 비실행 기능, 위빙 선택에서 비실행 구간 위빙, 라운딩 규칙에서 `라운딩 없음`을 선택한 경우: 로봇은 50mm 위빙 운동과 100mm 직선 운동을 번갈아 수행하고 종료점에서 정지합니다.
그림 9.8-2-9 제1구간 위빙 비실행 기능, 라운딩 없음
기능 모드에서 제1구간 실행 기능, 위빙 선택에서 실행 구간 위빙, 라운딩 규칙에서 `라운딩`을 선택한 경우: 로봇은 100mm 위빙 운동과 50mm 직선 운동을 번갈아 수행하고, 마지막 세그먼트의 전체 사이클이 끝난 뒤 남은 거리가 150mm 미만이면 위빙을 정지합니다.
그림 9.8-2-10 제1구간 위빙 실행 기능, 사이클 라운딩
기능 모드에서 제1구간 실행 기능, 위빙 선택에서 비실행 구간 위빙, 라운딩 규칙에서 `라운딩`을 선택한 경우: 로봇은 50mm 위빙 운동과 100mm 직선 운동을 번갈아 수행하고, 마지막 세그먼트의 전체 사이클이 끝난 뒤 남은 거리가 150mm 미만이면 위빙을 정지합니다.
그림 9.8-2-11 제1구간 위빙 비실행 기능, 사이클 라운딩
기능 모드에서 제1구간 실행 기능, 위빙 선택에서 실행 구간 위빙, 라운딩 규칙에서 `단일 구간 라운딩`을 선택한 경우: 로봇은 100mm 위빙 운동과 50mm 직선 운동을 번갈아 수행합니다. 마지막 세그먼트 사이클이 끝난 뒤 다음이 100mm 위빙 실행 계획이고 남은 거리가 100mm 미만이면 위빙을 정지합니다. 다음이 50mm 직선 운동 계획이고 남은 거리가 50mm 미만이면 운동을 정지합니다.
그림 9.8-2-12 제1구간 위빙 실행 기능, 단일 구간 라운딩
기능 모드에서 제1구간 실행 기능, 위빙 선택에서 비실행 구간 위빙, 라운딩 규칙에서 `단일 구간 라운딩`을 선택한 경우: 로봇은 50mm 위빙 운동과 100mm 직선 운동을 번갈아 수행합니다. 마지막 세그먼트 사이클이 끝난 뒤 다음이 50mm 위빙 실행 계획이고 남은 거리가 50mm 미만이면 위빙을 정지합니다. 다음이 100mm 직선 운동 계획이고 남은 거리가 100mm 미만이면 운동을 정지합니다.
그림 9.8-2-13 제1구간 위빙 비실행 기능, 단일 구간 라운딩
자세 비교
9.8.2.3. 세그먼트 용접 실제 시나리오
실제 테스트 환경에서는 로봇에 용접 토치 등의 장치를 장착해야 하며, 생성된 세그먼트 용접 명령에 따라 용접판 위에서 용접 작업을 수행합니다. 실제 시나리오 예시는 아래와 같습니다:
그림 9.8-2-17 세그먼트 용접 실제 시나리오
9.8.3. 레이저 트래킹 명령
레이저 트래킹 아이콘을 클릭하면 Laser 명령 편집 인터페이스로 들어갑니다.
이 명령에는 레이저 명령, 트래킹 명령, 서치 명령의 3개 부분이 포함됩니다. 이 명령을 추가하기 전에 사용자 주변기기에서 레이저 트래킹 센서가 정상적으로 설정되어 있는지 확인하십시오. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
센서 로드 모듈에서 기능에 따라 해당 센서 명령 인터페이스가 표시되면 센서 명령을 설정합니다:
睿牛/創想: 용접 비드 타입 입력, 범위는 `0~49`의 정수
그림 9.8-3-1 Laser 명령 인터페이스(용접 비드 타입)
全視: 작업 번호 입력, 범위는 `0~255`의 정수
그림 9.8-3-2 Laser 명령 인터페이스(작업 번호)
9.8.4. 레이저 기록 명령
레이저 기록 아이콘을 클릭하면 LT-Rec 명령 편집 인터페이스로 들어갑니다.
이 명령은 레이저 트래킹 기록 시작점과 종료점 추출 기능을 제공하며, 로봇이 자동으로 시작점 위치로 이동할 수 있게 합니다. 워크 외부에서 운동을 시작해 레이저 트래킹 기록을 수행하는 경우에 적용됩니다. 동시에 상위 컴퓨터는 기록 데이터 내 시작점과 종료점 정보를 가져와 후속 운동에 사용할 수 있습니다.
레이저 트래킹 재생 속도 조절 기능도 제공하여 로봇이 고속으로 기록하고 정상 용접 속도로 재생할 수 있게 해 작업 효율을 높입니다.
그림 9.8-4 LT-Rec 명령 인터페이스
9.8.5. 와이어 서치 명령
와이어 서치 아이콘을 클릭하면 W-Search 명령 편집 인터페이스로 들어갑니다.
이 명령은 와이어 서치 명령으로, 서치 시작, 서치 종료, 오프셋량 계산의 3개 명령을 포함합니다. 일반적으로 용접 시나리오에 적용되며, 용접기와 로봇의 I/O 및 운동 명령을 조합하여 사용해야 합니다.
그림 9.8-5 W-Search 명령 인터페이스
프로그램 작성 시에는 보통 먼저 서치 시작 명령을 설정한 후 2개의 LIN 명령을 추가하여 서치 방향을 결정합니다. 서치가 성공하면 계산된 오프셋량을 취득하고, 해당 오프셋량을 전체 오프셋 명령을 통해 실제 용접 운동 명령에 반영합니다. 프로그램 예시는 아래와 같습니다.
그림 9.8-5-1 W-Search 예시(1D)
9.8.6. 아크 트래킹 명령
아크 트래킹 아이콘을 클릭하면 Weld-Trc 명령 편집 인터페이스로 들어갑니다.
이 명령은 로봇이 용접 비드의 편차 검출을 이용해 보정 궤적을 수행하는 용접 비드 트래킹 기능을 구현합니다. 아크 센서를 사용하여 용접 비드 편차를 검출할 수 있습니다.
Step1: 상하 보상 기준 전류 설정 방법 - 피드백, 상하 기준 전류 시작 카운트와 상하 기준 전류 카운트를 설정합니다.
그림 9.8-6-1 Weld-Trc 명령 인터페이스 - 피드백
Step2: 상하 보상 기준 전류 설정 방법 - 정수값, 상하 기준 전류를 설정합니다.
그림 9.8-6-2 Weld-Trc 명령 인터페이스 - 정수값
Step3: 좌우 보상 파라미터 대화 페이지
그림 9.8-6-3 Weld-Trc 명령 인터페이스 - 좌우 보상 파라미터
9.8.7. 로봇 아크 트래킹 시스템 구성
협동 로봇의 아크 트래킹 용접 과정에서 용접기는 실시간 용접 전류 신호를 PLC에 피드백하고, 이후 PLC는 UDP 통신을 통해 로봇으로 다시 피드백합니다. 로봇은 실시간으로 피드백되는 용접 전류 값에 따라 용접 궤적 위치를 보정하여 아크 트래킹 효과를 구현합니다. 위와 같은 용접기와 PLC 간 전류 신호 피드백에는 두 가지 방법이 있습니다:
① CANopen 또는 기타 버스 통신: 사용하는 용접기가 CANopen, EtherCAT, ModbusTCP 등의 버스 통신 프로토콜(예: 奥太 NBC-500RP, 麦格米特 A2 시리즈 등)을 지원하는 경우, PLC와 용접기 사이에서 관련 통신 프로토콜을 통해 직접 데이터 통신을 수행할 수 있으며, 해당 용접 전류 신호는 통신을 통해 직접 PLC로 전송된 후 PLC가 UDP 통신을 통해 로봇에 피드백합니다.
그림 9.8-6-4 로봇 아크 트래킹 시스템 구성 토폴로지(PLC와 용접기의 버스 통신)
a-컴퓨터; b-로봇 및 제어 박스; c-PLC 및 버스 통신 모듈; d-용접기
② IO 아날로그량: PLC가 아날로그 신호를 직접 수집하고, 해당 아날로그 신호를 특정 변환 관계에 따라 전류 값으로 변환해 로봇에 피드백할 수도 있습니다. 사용하는 용접기에 실시간 용접 전류 아날로그 출력 채널이 있다면 이 채널을 PLC 아날로그 입력 모듈에 직접 연결할 수 있습니다. 실시간 용접 전류 아날로그 출력 채널이 없다면 홀 전류 센서를 외부에 연결하여, 센서가 실시간 용접 전류 신호를 수집하고 이를 아날로그 신호로 변환해 PLC 아날로그 입력 모듈로 출력할 수 있습니다.
그림 9.8-6-5 로봇 아크 트래킹 시스템 구성 토폴로지(PLC가 아날로그 신호 수집)
a-컴퓨터; b-로봇 및 제어 박스; c-PLC 및 아날로그 입력 모듈; d-용접기 및 홀 전류 센서
9.8.7.1. 용접기 모델 및 설정
표 9.8-1 용접기 모델 및 설정
현재 테스트 완료 및 적용 가능한 용접기 모델 |
麦格米特 ArtsenII CM350 용접기 |
표 9.8-2 용접기 기능 설정
기능 번호 |
설정 파라미터 |
F18 |
20 |
F19 |
56 |
9.8.7.2. PLC 모델 및 설정
표 9.8-3 PLC 모델 및 설정
현재 테스트 완료 및 적용 가능한 PLC 모델 |
汇川 Easy521 |
표 9.8-4 PLC 주요 설정
설정 항목 |
설정 내용 |
통신 프로토콜 |
CANOPEN |
피드백 전류 샘플링 소스 |
용접기 CANOPEN 피드백 데이터 |
동기 주기 |
2ms |
Annex:PLC Program
9.8.7.3. 아크 트래킹 기능
1) 기능 인터페이스 파라미터 개요
그림 9.8-7-1 아크 트래킹 전형적 시나리오
아크 트래킹 기능의 전형적 시나리오는 다음을 포함합니다: a. 용접 워크(용접 개선이 직각 또는 예각), b. 용접 토치, e. 개선 중심선
아크 트래킹 기능은 수집한 용접 전류 정보와 로봇이 설정한 위빙 파라미터를 이용하여 용접 개선에 대한 c. 상하(깊이) 방향 트래킹과 d. 좌우(중심) 방향 트래킹을 구현할 수 있습니다.
2) 통신 설정
WebApp을 열고 초기 설정, 사용자 주변기기 설정, 용접기 설정 순서로 클릭합니다.
그림 9.8-7-2 용접기 설정 열기
제어 타입으로 `디지털 통신 프로토콜`을 선택하고 UDP 통신 파라미터를 설정합니다. 각 파라미터의 의미는 다음과 같습니다:
IP 주소: UDP 통신에서 PLC 측 IP 주소
포트 번호: PLC 측 UDP 통신 포트 번호
통신 주기: 로봇과 PLC 간 UDP 통신 주기, 기본값은 2ms
패킷 손실 검출 주기, 패킷 손실 횟수: 패킷 손실 검출 주기 내 패킷 손실 수가 설정값을 초과하면 로봇은 UDP 통신 패킷 손실 이상 오류를 보고하고 동시에 통신을 자동으로 차단합니다.
통신 중단 확인 시간: 로봇이 이 시간 동안 PLC로부터 완전한 피드백 데이터 패킷을 한 프레임도 수신하지 못하면 UDP 통신 중단 오류 알람을 보고하고 동시에 UDP 통신을 차단합니다.
통신 중단 자동 재연결: 로봇이 UDP 통신 중단을 감지한 뒤 자동으로 재연결을 시도할지 여부
재연결 주기, 재연결 횟수: UDP 통신 중단 자동 재연결이 활성화되어 있고 UDP 통신 중단이 감지된 뒤, 로봇은 설정한 주기에 따라 재연결을 시도합니다. 재연결 횟수가 최대 설정값에 도달해도 연결에 성공하지 못하면 로봇은 UDP 통신 중단 오류 알람을 보고하고 동시에 UDP 통신을 차단합니다.
위 파라미터를 설정한 뒤 설정 버튼과 로드 버튼을 순서대로 클릭합니다.
그림 9.8-7-3 제어 타입 선택
3) 채널 설정
초기 설정, 기본, I/O 설정, AI 순으로 클릭하고, 실제 설정에 따라 해당 확장 AI 채널을 선택한 뒤 적용 버튼을 클릭합니다.
참고
로봇과 PLC 간 UDP 통신 프로토콜은 `8.5.5 부록 1: 로봇 UDP 통신 프로토콜`을 참조하십시오. 이 프로토콜에서 PLC가 로봇으로 보내는 피드백 데이터에는 시퀀스 번호 `70~73`의 4개 아날로그 입력 채널이 포함되며, 그림 4-4의 `Aux-AI0~3`에 대응합니다.
용접 과정에서 PLC는 실시간 용접 전류 신호를 수집하고 이를 0~4095`의 수치 신호로 변환해 특정 아날로그 입력 채널(기본값은 `Aux-AI0)에 할당합니다. 로봇 측은 해당 아날로그 입력 채널 값을 수집해 아크 트래킹 동작을 수행합니다.
아크 트래킹 채널을 Aux-AI1, Aux-AI2, `Aux-AI3`로 변경해야 하는 경우에는 PLC 측 프로그램도 함께 갱신하여 수집한 실시간 용접 전류를 대응하는 아날로그 입력 포트에 할당해야 합니다.
그림 9.8-7-4 아크 트래킹 채널 설정
4) 기능 명령 사용 개요
아크 트래킹 기능은 위빙 용접 운동과 함께 사용할 수 있으며, 위빙 용접에서 아크 발생 후(기호 후) 아크 트래킹 시작 명령을 삽입하고, 위빙 용접에서 아크 소멸 전(소호 전) 아크 트래킹 종료 명령을 삽입합니다.
그림 9.8-7-5 전형적인 아크 트래킹 예제 프로그램
5) 기능 인터페이스 파라미터 개요
표 9.8-5 아크 트래킹 상하 보상 모듈
파라미터명 |
의미 |
비고 |
아크 트래킹 지연 시간 |
피드백 전류의 지연 시간 |
기본값은 0ms, 조정하지 않는 것을 권장 |
상하 편차 보상 |
상하 보상 스위치 |
온 또는 오프 선택 가능 |
상하 조정 계수 |
전류와 보상 거리의 관계 계수(조정 감도) |
용접이 단락 이행 상태에 가까워지면 전류의 S/N 비가 낮아지므로 감도를 낮추는 것을 권장 |
상하 보상 시작 시간 |
가장 빠르게 상하 보상을 시작하는 주기 |
위빙 주파수와 관련됩니다. 기호 후 3~4초에 전류가 안정됐을 때 켜는 것이 좋습니다. 위빙 주파수가 1Hz`이면 파라미터는 `4, 2Hz`이면 `8 |
상하 1회 최대 보상량 |
각 상하 보상 주기의 최대 보상량 |
용접 시나리오에 따라 설정합니다. 위빙 주파수가 빠를수록 보상량은 작게 설정합니다. |
상하 누적 최대 보상량 |
한 번의 전체 용접 과정에서 허용되는 최대 누적 보상량 |
용접 시나리오에 따라 설정합니다. 용접 비드 편차가 클수록 크게 설정합니다. |
상하 좌표계 선택 |
보상값이 적용되는 좌표계 |
용접 위빙이 있는 경우 위빙, 그렇지 않으면 툴 또는 베이스 선택 |
상하 기준 전류 설정 방법 |
기준 전류 취득 방식 선택 |
피드백 전류를 읽어오는 피드백, 또는 전류값을 직접 입력하는 정수값 선택 가능 |
상하 기준 전류 샘플링 시작 카운트 |
기준 전류 수집을 시작하기까지의 지연 주기 수 |
위빙 주파수와 관련됩니다. 기호 후 3~4초에 전류가 안정됐을 때 시작하는 것이 좋습니다. 위빙 주파수가 1Hz`이면 `4, 2Hz`이면 `8 |
상하 기준 전류 샘플링 카운트 |
기준 전류 피드백 모드에서 기준 전류 수집의 통계 주기 |
기본값 1cyc |
상하 기준 전류 |
기준 전류 정수값 모드에서 사용하는 기준 전류 수치 |
수동 입력으로 원하는 보상 높이를 맞출 수 있음 |
표 9.8-6 아크 트래킹 좌우 보상 모듈
파라미터명 |
의미 |
파라미터 설명 |
아크 트래킹 지연 시간 |
피드백 전류의 지연 시간 |
기본값은 0ms, 조정하지 않는 것을 권장 |
좌우 편차 보상 |
좌우 보상 스위치 |
온 또는 오프 선택 가능 |
좌우 조정 계수 |
전류와 보상 거리의 관계 계수(조정 감도) |
용접이 단락 이행 상태에 가까워지면 전류의 S/N 비가 낮아지므로 감도를 낮추는 것을 권장 |
좌우 보상 시작 시간 |
가장 빠르게 좌우 보상을 시작하는 주기 |
위빙 주파수와 관련됩니다. 기호 후 3~4초에 전류가 안정됐을 때 켜는 것이 좋습니다. 위빙 주파수가 1Hz`이면 `4, 2Hz`이면 `8 |
좌우 1회 최대 보상량 |
각 좌우 보상 주기의 최대 보상량 |
용접 시나리오에 따라 설정합니다. 위빙 주파수가 빠를수록 보상량은 작게 설정합니다. |
좌우 누적 최대 보상량 |
한 번의 전체 용접 과정에서 허용되는 최대 누적 보상량 |
용접 시나리오에 따라 설정합니다. 용접 비드 편차가 클수록 크게 설정합니다. |
6) 적용 범위
표 9.8-7 상하 보상 온, 좌우 보상 오프
주요 파라미터 |
파라미터 범위 |
위빙 주파수 Hz |
|
위빙 진폭 mm |
|
설정 전압 V |
>17 |
설정 전류 A |
>160 |
표 9.8-8 상하 보상 오프, 좌우 보상 온
주요 파라미터 |
파라미터 범위 |
위빙 주파수 Hz |
0.5~2 |
위빙 진폭 mm |
3~7 |
설정 전압 V |
>17 |
설정 전류 A |
>160 |
표 9.8-9 상하/좌우 보상 모두 온
주요 파라미터 |
파라미터 범위 |
위빙 주파수 Hz |
0.5~2 |
위빙 진폭 mm |
3~7 |
설정 전압 V |
>19 |
설정 전류 A |
>210 |
7) 주의사항
좌우 보상 아크 트래킹 기능은 직선 궤적에 대해 대칭 삼각파 또는 정현파 위빙을 조합한 상황에만 적용할 수 있습니다.
보상 기능을 사용할 때는 용접 시작 위치가 정확히 용접 비드의 바로 위(용접 토치 축선이 각 용접 비드 중심에 위치)여야 하며, 용접 토치가 용접 비드에 너무 가깝지 않도록 해야 합니다. 그렇지 않으면 용접 토치 충돌 위험이 있습니다.
워크 개선 양측의 재질은 서로 일치해야 합니다.
워크 좌표의 치수와 자세는 6점법으로 정확히 교정해야 합니다.
설정 궤적과 용접 비드의 편차가 클수록 회당 최대 보상량과 누적 최대 보상량도 그에 맞게 크게 설정해야 합니다.
설정 궤적과 용접 비드 종료점의 편차는 `100mm/m`를 넘지 않도록 하십시오. 편차가 너무 크면 용접 와이어나 용접 토치가 워크와 충돌하거나 용접 위치가 예정 궤적에서 벗어나(위빙 부족) 아크 트래킹 기능이 정상 동작하지 않을 수 있습니다.
낮은 설정 전류/전압으로 용접하는 경우에는 아크 트래킹의 상하/좌우 조정 계수를 그에 맞게 작게 설정하여 피드백 전류 노이즈에 의한 불안정한 보상을 줄여야 합니다.
서로 다른 좌표계를 선택해 아크 트래킹을 수행하는 경우에는 상하/좌우 보상 계수의 부호를 조정해야 할 수 있습니다. 해당 좌표계 방향으로 판단할 수도 있고, 시험 용접으로 판별할 수도 있습니다. 경사진 평판에 위빙 용접 궤적(왼쪽 그림)을 티칭한 뒤 아크 트래킹이 활성화된 용접 궤적(오른쪽 그림)이 위빙 평면의 기울기 방향을 따라 하강하고, 동시에 종료 시 용접 토치 높이가 시작 시와 거의 같다면 조정 계수 부호는 올바른 것입니다.
그림 9.8-7-6 경사 위빙 궤적 설정(왼쪽), 부호가 올바른 경우의 용접 비드 궤적(오른쪽)
9.8.8. 자세 조정 명령
자세 조정 아이콘을 클릭하면 Adjust 명령 편집 인터페이스로 들어갑니다.
이 명령은 용접 트래킹에서 용접 토치 자세를 적응적으로 조정하는 시나리오에 대응합니다. 대응하는 3개의 자세점을 기록한 뒤 로봇의 실제 운동 방향에 따라 자세 적응 조정 명령을 추가합니다. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
그림 9.8-8 Adjust 명령 인터페이스
9.9. 힘 제어 명령 인터페이스
그림 9.9 힘 제어 명령 인터페이스
9.9.1. 힘 제어 세트 명령
힘 제어 세트 아이콘을 클릭하면 F/T 명령 편집 인터페이스로 들어갑니다.
이 명령에는 `FT_Guard`(충돌 검출), `FT_Control`(정력 제어), `FT_Compliance`(순응 제어), `FT_Spiral`(나선 삽입), `FT_Rot`(회전 삽입), `FT_Lin`(직선 삽입), `FT_FindSurface`(표면 위치결정), `FT_CalCenter`(중심 위치결정)의 8개 명령이 포함됩니다. 자세한 내용은 로봇 주변기기 장을 참조하십시오.
그림 9.9-1 F/T 명령 인터페이스
9.9.2. 토크 기록 명령
토크 기록 아이콘을 클릭하면 Torque 명령 편집 인터페이스로 들어갑니다.
이 명령은 토크 기록 명령으로, 토크의 실시간 기록과 충돌 검출 기능을 제공합니다. 토크 기록 시작 버튼을 클릭하면 운동 명령 실행 과정에서의 충돌 상태를 지속적으로 기록합니다. 기록된 실시간 토크는 충돌 검출 판단의 기준값으로 사용되어 오검출 확률을 줄입니다. 설정된 임계값 범위를 초과하면 충돌 검출 지속 시간을 기록합니다. 토크 기록 정지 버튼을 클릭하면 기록을 멈추고, `토크 기록 리셋`을 클릭하면 상태가 기본값으로 돌아갑니다.
그림 9.9-2 Torque 명령 인터페이스
9.10. 비전 명령 인터페이스
그림 9.10 비전 명령 인터페이스
9.10.1. 3D 비전 명령
3D 비전 아이콘을 클릭하면 3D 명령 편집 인터페이스로 들어갑니다.
이 명령은 3D 비전 프로그램 인스턴스 생성 명령입니다. 사용자는 생성된 프로그램을 참고하여 다른 비전 장비와의 통신 작업을 수행할 수 있습니다. 카메라 캘리브레이션과 카메라 그리핑의 2개 프로그램 예제가 포함됩니다.
그림 9.10-1 3D 명령 인터페이스
9.11. 팔레타이징 명령 인터페이스
그림 9.11 팔레타이징 명령 인터페이스
9.11.1. 매트릭스 이동 명령
매트릭스 이동 아이콘을 클릭하면 Pallet 명령 편집 인터페이스로 들어갑니다.
이 명령은 팔레타이징 프로그램 생성 명령입니다.
그림 9.11-1 Pallet 명령 인터페이스
이 기능은 3개 점의 좌표와 행, 열, 층, 층고 등의 수치를 설정하여 로봇 암의 규칙적인 이동을 제어하며, 일반적인 팔레타이징 응용에 적합합니다. 1단계에서 로봇의 운동 방식 PTP 또는 Line`을 선택하고, 2단계에서 로봇 운동 경로 `처음부터 끝까지 이동 또는 활자형 이동`을 설정하며, 3단계에서 적재 방식 `쌓기 또는 `내리기`를 설정합니다.
그림 9.11-2 매트릭스 이동
4단계에서 경로를 따라 3개 점을 티칭합니다. 첫 번째 점은 첫 번째 열의 시작점이며, 전체 운동 과정의 암 자세는 이 점으로 결정됩니다. 두 번째 점은 첫 번째 열의 종료점, 세 번째 점은 마지막 열의 종료점입니다. 5단계에서 행 수와 열 수를 설정하고, 6단계에서 층 수와 각 층 높이를 설정합니다.
그림 9.11-3 매트릭스 이동
9.12. 통신 명령 인터페이스
그림 9.12 통신 명령 인터페이스
9.12.1. Modbus 명령
Modbus 아이콘을 클릭하면 Modbus 명령 편집 인터페이스로 들어갑니다.
이 명령 기능은 ModbusTCP 프로토콜 기반 버스 기능입니다. 사용자는 관련 명령을 통해 로봇과 ModbusTCP 클라이언트 또는 서버(마스터 스테이션과 슬레이브 스테이션 간 통신) 사이의 통신을 제어하고, 코일, 이산량, 레지스터에 대한 읽기/쓰기 동작을 수행할 수 있습니다.
그림 9.12-1 Modbus 명령 마스터 스테이션 인터페이스
그림 9.12-2 Modbus 명령 슬레이브 스테이션 인터페이스
ModbusTCP의 기타 조작 기능은 당사에 문의하십시오.
9.12.2. Xmlrpc 명령
Xmlrpc 아이콘을 클릭하면 Xmlrpc 명령 편집 인터페이스로 들어갑니다.
XML-RPC는 소켓과 XML을 사용해 프로그램 간 데이터를 전송하는 원격 프로시저 호출 방식입니다. 이를 통해 로봇 컨트롤러는 원격 프로그램/서비스의 함수(파라미터 포함 가능)를 호출하고 구조화된 데이터를 취득할 수 있습니다. 로봇 컨트롤러는 XML-RPC 클라이언트 메시지 생성과 데이터형/XML 간 변환 처리를 담당합니다.
그림 9.12-3 Xmlrpc 명령 인터페이스
중요
컨트롤러는 클라이언트로서 원격 커스텀 포트에 연결합니다.
컨트롤러는 클라이언트로서 원격 함수를 호출합니다.
서로 다른 원격 함수 호출을 지원합니다.
문자열 배열 파라미터 입력과 문자열 배열 결과 반환을 지원합니다. 배열 요소 수는 사용자 지정할 수 있습니다.
double형 배열 파라미터 입력과 double형 배열 결과 반환을 지원합니다. 배열 요소 수는 사용자 지정할 수 있습니다.
XmlrpcClientCall(serverUrl, methodName, tableType, param)
serverUrl 서버 측 url, 예: "http://192.168.58.29:50000/RPC2"
methodName 호출할 함수명, "example.add"
tableType 1-double형 배열, 2-string형 배열
param 호출할 함수의 파라미터
XmlrpcClientCall(error, result)
error 0-오류 없음, 1-오류 있음
result 파라미터 입력이 double형 배열이면 result도 double형 배열,
파라미터 입력이 string형 배열이면 result도 string형 배열
9.13. 보조 명령 인터페이스
그림 9.13 보조 명령 인터페이스
9.13.1. 보조 스레드 명령
보조 스레드 아이콘을 클릭하면 Thread 명령 편집 인터페이스로 들어갑니다.
Thread 명령은 보조 스레드 기능입니다. 사용자는 메인 스레드와 동시에 실행되는 보조 스레드를 정의할 수 있습니다. 보조 스레드는 주로 외부 장치와의 데이터 교환에 사용되며, 소켓 통신, 로봇 DI 상태 취득, 로봇 DO 상태 설정, 로봇 상태 정보 취득, 메인 스레드와의 데이터 교환을 지원합니다. 메인 스레드는 보조 스레드를 통해 취득한 데이터를 사용해 로봇 운동 로직의 판단을 제어합니다. 사용자 프로그램 예시는 아래와 같습니다.
그림 9.13-1 Thread 프로그램 예시
9.13.2. 함수 호출 명령
함수 호출 아이콘을 클릭하면 Function 명령 편집 인터페이스로 들어갑니다.
이 명령은 함수 호출 인터페이스 기능으로, 사용자가 로봇 인터페이스 함수를 선택할 수 있도록 제공하며, 해당 함수에 필요한 파라미터를 표시해 스크립트 명령 작성을 쉽게 해 줍니다. 기타 함수는 순차적으로 추가 중입니다.
그림 9.13-2 Function 명령 인터페이스
9.13.3. 포인트 테이블 명령
포인트 테이블 아이콘을 클릭하면 PT-Mode 명령 편집 인터페이스로 들어갑니다.
이 명령은 주로 시스템 모드와 포인트 테이블 모드 사이의 모드 전환, 그리고 서로 다른 포인트 테이블로의 전환을 통해 각기 다른 포인트 테이블의 티칭 포인트를 적용하는 데 사용됩니다. 자세한 내용은 11장 `티칭 포인트`를 참조하십시오.
그림 9.13-3 포인트 테이블 명령 인터페이스
9.14. 티칭 프로그램 미저장 확인
프로그램 티칭 페이지에서 프로그램을 열거나 새로 만든 뒤, 티칭 프로그램이 수정되었지만 저장되지 않은 경우입니다.
열기, 새로 만들기, 내보내기, 이름 변경 등 관련 파일 작업을 클릭하면 이 프로그램을 저장하시겠습니까? 팝업이 표시되고, `현재 프로그램이 변경되었습니다. 이 프로그램의 변경 내용을 저장하시겠습니까?`라는 안내가 나타납니다. 아래 그림을 참조하십시오.
그림 9.14-1 현재 페이지 프로그램 미저장 확인
Step1: 저장 안 함 버튼을 클릭하면 프로그램은 변경 전 데이터로 돌아가고, 이전 관련 파일 작업을 계속 수행합니다.
Step2: 저장 버튼을 클릭하면 저장되지 않은 Lua 프로그램이 저장되고, 이전 관련 파일 작업을 계속 수행합니다.
프로그램 티칭 페이지를 벗어나 다른 페이지로 전환할 때도 동일하게 이 프로그램을 저장하시겠습니까? 안내가 표시되며, 현재 티칭 프로그램 페이지에 머무르게 됩니다. 아래 그림을 참조하십시오.
그림 9.14-2 페이지 전환 시 프로그램 미저장 확인
Step1: 저장 안 함 버튼을 클릭하면 이전에 선택했던 페이지로 이동합니다.
Step2: 저장 버튼을 클릭하면 저장되지 않은 Lua 프로그램이 저장되고, 이전에 선택했던 페이지로 이동합니다.
9.15. 티칭 프로그램 암호화
티칭 프로그램은 암호화 상태와 비암호화 상태로 나뉩니다. 암호화 레벨은 1단계 암호화와 2단계 암호화가 있으며, 1단계 암호화가 가장 높은 보호 수준이고 2단계가 그다음입니다. 모든 티칭 프로그램은 `시스템 설정–커스텀 정보`에서 표 형식으로 프로그램 암호화 정보를 표시하고 설정할 수 있습니다. 표 오른쪽에는 암호화 레벨 설명이 배치됩니다.
그림 9.15-1 티칭 프로그램 암호화
프로그램이 1단계 암호화 상태인 경우, 해당 프로그램을 열면: 작업 영역의 내보내기, 저장, 다른 이름으로 저장, 복사, 잘라내기, 붙여넣기, 삭제, 위로 이동, 아래로 이동, 편집 모드 전환 등의 버튼 아이콘이 모두 회색으로 표시됩니다. 아이콘을 클릭해도 동작하지 않으며, 현재 프로그램이 암호화 상태임을 알리는 안내가 표시됩니다. 프로그램 이름 변경 아이콘은 숨김 처리됩니다. 명령 추가 영역과 프로그램 편집 영역은 표시되지 않으며, 1단계 암호화 잠금 상태임을 알리는 안내가 표시됩니다.
그림 9.15-2 프로그램 1단계 암호화 인터페이스
프로그램이 2단계 암호화 상태인 경우 프로그램 티칭 페이지에서 해당 프로그램을 열면: 작업 영역의 저장, 복사, 잘라내기, 붙여넣기, 삭제, 위로 이동, 아래로 이동 등의 버튼 아이콘이 모두 회색으로 표시됩니다. 아이콘을 클릭해도 동작하지 않으며, 현재 프로그램이 암호화 상태임을 알리는 안내가 표시됩니다. 프로그램 이름 변경 아이콘은 숨김 처리됩니다. 명령 추가 영역은 표시되지 않으며, 2단계 암호화 잠금 상태임을 알리는 안내가 표시됩니다. 프로그램 편집 영역에서는 프로그램을 정상적으로 열람하고 읽을 수 있습니다.
그림 9.15-3 프로그램 2단계 암호화 인터페이스
1단계 암호화와 2단계 암호화 모두 내보내기 기능은 사용할 수 있습니다. 가져오기 시에는 검증이 수행되며, 같은 이름의 프로그램이 암호화 파일인 경우 가져오기 작업이 중단되고 암호화 프로그램을 덮어써서 가져올 수 없다는 안내가 표시됩니다.
그림 9.15-4 프로그램 가져오기
9.16. 로컬 티칭 포인트
로컬 티칭 포인트는 현재 티칭 프로그램에 연결됩니다. 프로그램 명령을 추가할 때 현재 티칭 프로그램에만 적용되며, 다른 티칭 프로그램에서는 사용할 수 없습니다.
새로 추가: 프로그램 파일명 맨 오른쪽의 로컬 티칭 포인트 새로 추가 아이콘을 클릭해 로컬 티칭 포인트를 추가합니다. 로컬 티칭 포인트의 상세 기록 방법은 로봇 조작 중 티칭 포인트 기록을 참조하십시오.
그림 9.16-1 로컬 티칭 포인트 새로 추가
삭제: 표의 번호 열을 클릭해 삭제할 로컬 티칭 포인트를 선택한 뒤, 로컬 티칭 포인트 제목 오른쪽 위의 삭제 아이콘을 클릭해 삭제합니다.
그림 9.16-2 로컬 티칭 포인트 삭제
실행: 로컬 티칭 포인트 테이블 데이터 작업 영역의 실행 시작 아이콘을 클릭해 로컬 티칭 포인트 단일점 실행을 수행하고, 로봇을 해당 점 위치로 이동시킵니다.
그림 9.16-3 로컬 티칭 포인트 실행
상세: 로컬 티칭 포인트 테이블 데이터 작업 영역의 상세 아이콘을 클릭해 로컬 티칭 포인트의 상세 정보를 표시합니다.
그림 9.16-4 로컬 티칭 포인트 상세
9.17. 현재 프로그램 백업
사용자가 티칭 프로그램을 수정하고 저장을 클릭하면 현재 프로그램의 백업 기능(백업 기간 1년)이 실행되어, 현재 프로그램의 초기 내용이 저장되고 오른쪽에 표시됩니다. 이를 통해 사용자는 수정한 내용을 쉽게 비교할 수 있습니다. 사용자는 날짜를 선택해 해당 프로그램 백업 내용을 볼 수 있으며, 오른쪽 위의 삭제 아이콘을 클릭하면 현재 프로그램 백업 내용을 삭제할 수 있습니다. 현재 프로그램 백업 내용은 보기만 가능하며 수정할 수 없습니다.
그림 9.17 현재 프로그램 백업
9.18. Modbus TCP 통신
ModbusTCP는 산업 생산 현장에서 일반적으로 사용되는 통신 프로토콜입니다. Nurirobot 협동 로봇은 고객 장비와의 통신을 위해 ModbusTCP 마스터 스테이션과 ModbusTCP 슬레이브 스테이션 두 가지 방식을 제공합니다.
협동 로봇은 최대 8개의 ModbusTCP 마스터 스테이션이 동시에 외부 장비와 통신하는 것을 지원하며, 각 마스터 스테이션은 최대 128개의 레지스터를 지원합니다. 협동 로봇 ModbusTCP 슬레이브 스테이션은 128개의 코일, 128개의 이산 입력, 64개의 유지 레지스터, 64개의 입력 레지스터를 가지며(유지/입력 레지스터 데이터형은 부호 없음, 부호 있음, 부동소수점 3종류 포함), 일부 입력 레지스터 주소는 현재 로봇의 관절 위치, 운동 속도 등을 피드백하는 데 전용으로 사용되고, 일부 코일 레지스터 주소는 로봇 프로그램 시작/정지, 제어 박스 DO 설정 등의 기능 제어에 전용으로 사용됩니다.
로봇 ModbusTCP 슬레이브 스테이션은 하나의 마스터 스테이션과의 연결만 지원합니다. 로봇은 마스터 스테이션과 슬레이브 스테이션 역할을 동시에 사용해 서로 다른 장비와 통신할 수 있습니다. 아래에 자세한 사용 방법을 설명합니다.
9.18.1. ModbusTCP 마스터 스테이션
협동 로봇을 ModbusTCP 마스터 스테이션으로 사용해 고객 장비와 통신하기 전에, 먼저 장비와 로봇의 네트워크 연결을 확인하고 네트워크 인터페이스가 동일한 서브넷에 있는지 확인하십시오.
로봇 ModbusTCP 마스터 스테이션 사용 절차는 다음과 같습니다:
마스터 스테이션 추가
레지스터 추가
통신 테스트
사용자 프로그램 작성
사용자 프로그램 실행
9.18.1.1. ModbusTCP 마스터 스테이션 추가
WebApp을 열고 티칭 시뮬레이션, `프로그램 티칭`을 순서대로 클릭한 뒤, 새 사용자 프로그램 `testModbusMaster.lua`를 생성합니다.
그림 9.18-1 ModbusTCP 마스터 스테이션 사용자 프로그램 생성
ModbusTCP 설정 버튼을 클릭해 ModbusTCP 기능 설정 페이지를 엽니다.
그림 9.18-2 ModbusTCP 설정 열기
마스터 스테이션 설정, `Modbus 마스터 스테이션 추가`를 순서대로 클릭하면 ModbusTCP 마스터 스테이션 추가가 완료됩니다.
그림 9.18-3 ModbusTCP 마스터 스테이션 추가
고객 장비 상황에 맞춰 이름, 슬레이브 스테이션 IP, 포트 번호, 슬레이브 스테이션 번호, 통신 주기, `타임아웃 시간`을 순서대로 입력합니다. 각 파라미터의 의미는 다음과 같습니다.
이름: 로봇 ModbusTCP 마스터 스테이션의 이름입니다. 로봇은 최대 8개의 마스터 스테이션을 생성해 대응 슬레이브 스테이션과 연결할 수 있으며, 서로 다른 마스터 스테이션은 PLC, 카메라, 데이터 수집 카드, RYRobot1 등 고유한 이름으로 구분할 수 있습니다.
슬레이브 스테이션 IP: 로봇 ModbusTCP 마스터 스테이션이 연결할 슬레이브 스테이션의 IP 주소입니다.
참고
먼저 로봇과 슬레이브 스테이션 장비를 LAN 케이블로 연결하고, 로봇과 슬레이브 스테이션 장비의 IP 주소가 동일한 서브넷에 있는지 확인하십시오.
포트 번호: 연결할 ModbusTCP 슬레이브 스테이션의 포트 번호입니다.
슬레이브 스테이션 번호: 연결할 ModbusTCP 슬레이브 스테이션 번호입니다.
통신 주기: 로봇 ModbusTCP 마스터 스테이션이 슬레이브 스테이션 상태를 조회하는 주기(ms)입니다. 이 값은 ModbusTCP 설정 페이지에서 슬레이브 스테이션 레지스터 데이터 표시 갱신 속도에만 영향을 주며, 사용자 Lua 프로그램에서 ModbusTCP 슬레이브 스테이션 레지스터 값을 읽거나 쓰는 속도에는 영향을 주지 않습니다.
타임아웃 시간: ModbusTCP 읽기/쓰기 인터페이스를 호출해 동작할 때, 시스템이 설정된 타임아웃 시간을 초과해도 연결에 성공하지 못하면 Modbus 미연결 오류가 보고됩니다. 단위는 `ms`이며, 유효 범위는 `100~60000`입니다.
그림 9.18-4 ModbusTCP 마스터 스테이션 파라미터 설정
위 파라미터를 올바르게 입력하면 로봇 ModbusTCP 마스터 스테이션은 자동으로 설정된 슬레이브 스테이션과 연결을 수립합니다. 연결에 성공하면 페이지의 연결 상태 표시등이 점등됩니다.
참고
이미 ModbusTCP 마스터 스테이션 관련 파라미터가 올바르게 설정되었음을 확인했는데도 로봇과 고객 장비가 정상적으로 연결되지 않는 경우, 아래 항목을 확인하십시오.
① 로봇과 슬레이브 스테이션 장비의 물리적 네트워크 연결
② 로봇 티치 펜던트와 제어 박스의 두 네트워크 물리 포트 IP 주소는 서로 다릅니다. 올바른 네트워크 포트에 연결되어 있는지 확인하십시오.
③ 로봇 네트워크 포트와 슬레이브 스테이션 장비의 네트워크 포트가 동일한 서브넷에 있는지 확인하십시오. 예를 들어 로봇 IP 주소가 192.168.58.2`라면, 슬레이브 스테이션 장비의 IP 주소는 `192.168.58.0~192.168.58.255 범위에 있어야 하며 로봇 IP와 같아서는 안 됩니다.
④ 슬레이브 스테이션 장비의 포트 번호가 설정된 포트 번호와 같은지 확인하십시오. 연결 상태 표시등이 점멸하는 경우, 해당 마스터 스테이션 내 레지스터 주소에 오류가 있음을 의미합니다. 레지스터 타입과 주소가 올바른지 확인하십시오.
그림 9.18-5 ModbusTCP 마스터 스테이션 연결 상태
이로써 로봇 ModbusTCP 마스터 스테이션 생성이 완료됩니다. 다시 Modbus 마스터 스테이션 추가`를 클릭하면 새 ModbusTCP 마스터 스테이션을 만들 수 있습니다. 로봇은 최대 8개의 마스터 스테이션이 동시에 외부 장비와 통신하는 것을 지원합니다. Modbus 마스터 스테이션 우상단의 `삭제 버튼을 더블클릭하면 해당 마스터 스테이션을 삭제할 수 있습니다.
그림 9.18-6 ModbusTCP 마스터 스테이션 다시 추가
9.18.1.2. ModbusTCP 마스터 스테이션 레지스터 추가
마스터 스테이션 레지스터 추가 버튼을 클릭하면 해당 마스터 스테이션에 레지스터를 추가할 수 있습니다.
그림 9.18-7 ModbusTCP 마스터 스테이션 레지스터 추가
마스터 스테이션 레지스터 타입을 선택하고, 주소 번호와 이름을 순서대로 입력합니다. 각 파라미터의 의미는 다음과 같습니다.
타입: 레지스터 타입입니다. DI-이산 입력, DO-코일, AI 부호 없음-부호 없는 입력 레지스터(0-65535), AI 부호 있음-부호 있는 입력 레지스터(-32768~-32767), AI 부동소수점형-부동소수점형 입력 레지스터(부동소수점 레지스터 데이터 길이는 32비트이며, 2개의 부호 있음 또는 부호 없음 레지스터를 점유), AO 부호 없음-부호 없는 유지 레지스터(0-65535), AO 부호 있음-부호 있는 유지 레지스터(-32768~32767), AO 부동소수점형-부동소수점형 유지 레지스터(부동소수점 레지스터 데이터 길이는 32비트이며, 2개의 부호 있음 또는 부호 없음 레지스터를 점유)`를 의미합니다. 여기서 `AI, `AO`의 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다.
주소 번호: 읽기 또는 쓰기를 수행할 ModbusTCP 슬레이브 스테이션 레지스터 주소
이름: 레지스터의 별칭입니다. 로봇 ModbusTCP 마스터 스테이션은 최대 128개의 서로 다른 레지스터를 설정할 수 있으며, 각 레지스터는 실제 의미에 따라 시작, 서보 위치, 액면 등의 이름으로 구분할 수 있습니다.
그림 9.18-8 ModbusTCP 마스터 스테이션 레지스터 파라미터 설정
마스터 스테이션 레지스터 추가 버튼을 다시 클릭하면 레지스터를 하나 더 추가할 수 있습니다. 레지스터 오른쪽의 삭제 버튼을 더블클릭하면 해당 레지스터를 삭제할 수 있습니다. 아래 그림은 각 타입별로 레지스터를 하나씩 추가한 예시입니다.
참고
마스터 스테이션 레지스터를 추가한 뒤 마스터 스테이션 연결 상태 표시등이 점멸하면, 해당 마스터 스테이션 레지스터 주소를 읽을 수 없다는 뜻입니다. 레지스터 타입과 주소가 올바른지 확인하십시오.
그림 9.18-9 복수 마스터 스테이션 레지스터 추가
9.18.1.3. ModbusTCP 마스터 스테이션 통신 테스트
통신 테스트 전에 먼저 ModbusTCP 마스터 스테이션의 연결 상태 표시등이 점등 상태인지 확인하십시오. 표시등이 켜져 있으면 현재 연결이 정상이라는 뜻입니다.
로봇 마스터 스테이션 레지스터에는 주소값 숫자 박스가 있으며, 현재 레지스터 값을 표시하는 데 사용됩니다. 여기서 DI(이산 입력)`와 `AI(입력 레지스터) 타입 레지스터는 읽기 전용 타입이므로, 해당 주소값은 회색의 편집 불가능한 숫자 박스로 표시됩니다.
슬레이브 스테이션의 대응 주소 값이 변경되면 로봇 마스터 스테이션의 대응 레지스터 주소값도 동기화되어 현재 값을 표시합니다. 반면 DO(코일)와 AO(유지 레지스터)는 읽기/쓰기가 가능한 레지스터이므로 해당 주소는 흰색의 편집 가능한 숫자 입력 상자로 표시됩니다. ModbusTCP 슬레이브 스테이션의 해당 레지스터 값을 읽을 수도 있고, 로봇 Modbus 마스터 스테이션 설정 페이지에서 해당 레지스터 값을 변경할 수도 있습니다.
그림 9.18-10 Modbus 마스터 스테이션 주소값
마스터 스테이션 DI, AI 타입 레지스터 수치 모니터링
외부 ModbusTCP 슬레이브 스테이션 장비에서 DI(이산 입력) 레지스터의 255`번 주소값을 `1`로 설정하고, `AI(입력 레지스터)`의 `257`번 주소값을 `123, 258`번을 `-123, `259`번을 `123.3`으로 변경합니다. 이때 로봇 Modbus 마스터 스테이션 설정 페이지의 해당 레지스터 주소값도 대응하여 표시됩니다.
참고
주소 259`의 레지스터를 부동소수점형 레지스터로 설정했기 때문에, 실제로는 `259`와 `260 두 개의 16비트 레지스터를 점유해 하나의 부동소수점 수를 저장합니다. 따라서 `AI`의 `260`번 레지스터를 단독 조작용 레지스터로 설정할 수 없습니다. 그렇게 하면 수치 오류가 발생합니다.
그림 9.18-11 Modbus 마스터 스테이션의 DI, AI 레지스터 수치 표시
마스터 스테이션 DO, AO 타입 레지스터 수치 쓰기
로봇 Modbus 마스터 스테이션 설정 페이지에서 이름이 시작`인 `DO(코일) 타입 레지스터의 255`번 주소값 입력 박스에 `1`을 입력하고, 이름이 `목표 위치 A, 목표 위치 B, 목표 위치 C`인 `AO(유지 레지스터)`의 `260, 261, 262`번 레지스터 주소값 입력 박스에 각각 `65535, -32768, `128.78`을 입력합니다. 이때 Modbus 슬레이브 스테이션의 해당 레지스터 주소에는 대응하는 값이 기록됩니다.
그림 9.18-12 Modbus 마스터 스테이션의 DO, AO 레지스터 쓰기
마스터 스테이션 DO, AO 타입 레지스터 수치 모니터링
ModbusTCP 슬레이브 스테이션에서 DO(코일), AO(유지 레지스터) 값을 변경해도, ModbusTCP 마스터 스테이션 설정 페이지의 레지스터 주소값은 바로 갱신되지 않습니다. 마스터 스테이션 설정 오른쪽 위의 갱신 버튼을 클릭해야 하며, 이때 페이지의 DO, AO 레지스터 주소값이 갱신됩니다.
그림 9.18-13 ModbusTCP 마스터 스테이션 DO, AO 주소값 갱신
9.18.2. ModbusTCP 마스터 스테이션 프로그램 작성
`통신 명령`을 순서대로 클릭해 통신 명령 추가 페이지를 엽니다.
그림 9.18-14 통신 명령 추가 페이지 열기
`Modbus`를 클릭합니다.
그림 9.18-15 Modbus 선택
`Modbus_TCP`를 클릭합니다.
그림 9.18-16 Modbus_TCP 선택
`마스터 스테이션(클라이언트)`을 선택하여 ModbusTCP 마스터 스테이션 명령 추가 페이지를 엽니다.
그림 9.18-17 ModbusTCP 마스터 스테이션 명령 추가
단일 디지털 출력 DO(코일) 쓰기
Modbus 마스터 스테이션 이름`에서 앞서 Modbus 마스터 스테이션 설정 페이지에 추가한 마스터 스테이션 `PLC`를 선택하고, `DO 이름`에서 `시작`을 선택한 뒤, 레지스터 수량을 `1, 레지스터 값을 1`로 설정하고 `디지털 출력 쓰기 버튼을 클릭합니다. 마지막으로 페이지 최하단까지 스크롤해 적용 버튼을 클릭합니다.
그림 9.18-18 단일 디지털 출력 쓰기 추가
이때 로봇 프로그램 testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 단일 디지털 출력을 쓰는 명령이 추가되어 있습니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 마스터 스테이션 `PLC`에 대응하는 코일 레지스터 `시작 주소값에 `1`을 씁니다.
그림 9.18-19 단일 코일 Lua 프로그램 쓰기
복수 디지털 출력 DO(코일) 쓰기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고, Modbus 마스터 스테이션 이름`에서 앞서 추가한 마스터 스테이션 `PLC`를 선택한 뒤, `DO 이름`에서 `시작`을 선택하고, 레지스터 수량을 `5, 레지스터 값을 1,0,1,0,1`로 설정합니다. 이때 레지스터 값 개수는 설정한 레지스터 수량과 일치해야 하며, 여러 레지스터 값은 영문 쉼표로 구분해야 합니다. `디지털 출력 쓰기 버튼을 클릭한 뒤 페이지 맨 아래까지 스크롤하여 적용 버튼을 클릭합니다.
그림 9.18-20 복수 디지털 출력 쓰기 설정
이때 로봇 프로그램 testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 복수 디지털 출력을 쓰는 명령이 추가되어 있습니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 마스터 스테이션 `PLC`에 대응하는 코일 레지스터 `시작 및 그 뒤 4개의 코일 값에 각각 `1,0,1,0,1`을 씁니다.
그림 9.18-21 복수 코일 Lua 프로그램 쓰기
단일 디지털 출력 DO(코일) 읽기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고, Modbus 마스터 스테이션 이름`에서 앞서 추가한 마스터 스테이션 `PLC`를 선택한 뒤, `DO 이름`에서 `시작`을 선택하고, 레지스터 수량을 `1`로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-22 단일 디지털 출력 읽기 설정
이때 로봇 프로그램 `testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 단일 디지털 출력을 읽는 명령이 추가되어 있습니다.
그림 9.18-23 단일 코일 프로그램 읽기
일반적으로 Modbus 레지스터를 읽은 뒤에는 읽은 값을 변수에 저장하기 위해 저장용 변수를 정의해야 합니다. 모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 전환한 다음, ModbusMasterReadDO 명령 앞에 반환값 변수 `startValue`를 추가해 기록합니다. 프로그램 실행 후 읽은 값은 `startValue`에 저장됩니다.
그림 9.18-24 단일 디지털 출력을 변수로 읽어 저장
코일 타입 레지스터 값은 0`과 `1 두 값만 가집니다. 로봇 프로그램에서는 레지스터 값에 따라 서로 다른 동작을 수행하도록 판단 로직을 만들 수 있습니다. 모드 전환 버튼을 클릭해 로봇 티칭 프로그램을 편집 불가 모드로 전환하고, 두 개의 관절 운동 명령을 추가해 각각 다른 두 포인트 P1, `P2`로 이동시킵니다.
그림 9.18-25 서로 다른 포인트 운동 명령 추가
다시 프로그램을 편집 가능 모드로 전환하고, 코일 값 startValue`에 대한 판단 조건을 작성합니다. `startValue 값이 `1`이면 로봇은 `P1`로 이동하고, 그렇지 않으면 `P2`로 이동합니다.
그림 9.18-26 코일 값에 따라 서로 다른 포인트로 이동
마지막으로 다시 로봇 프로그램을 편집 불가 모드로 전환하고, 로봇을 자동 모드로 바꾼 뒤 안전을 확인하고 프로그램을 실행합니다. 이 프로그램의 앞 2줄은 모두 이름이 시작`인 코일 DO 값을 `1`로 설정하므로, 프로그램 실행 후 로봇은 `P1 포인트로 이동합니다.
그림 9.18-27 단일 코일 레지스터 수치를 읽어 이동
복수 디지털 DO(코일) 읽기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고, Modbus 마스터 스테이션 이름`에서 앞서 추가한 마스터 스테이션 `PLC`를 선택한 뒤, `DO 이름`에서 `시작`을 선택하고 레지스터 수량을 `6`으로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-28 복수 디지털 출력 읽기 설정
이때 로봇 프로그램 `testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 복수 디지털 출력을 읽는 명령이 추가되어 있습니다.
그림 9.18-29 복수 디지털 출력 프로그램 읽기
모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 바꿉니다. 읽기 수량이 6개이므로 ModbusMasterReadDO 명령 앞에 6개의 반환값 변수 `value1,value2,value3,value4,value5,value6`를 추가해 작성해야 합니다. 프로그램 실행 후 읽은 6개의 레지스터 값은 각각 위 6개의 변수에 저장되며, `value1`부터 `value6`까지의 값을 판단해 로봇에 서로 다른 동작을 시킬 수 있습니다.
그림 9.18-30 복수 디지털 출력을 변수로 읽어 저장
디지털 입력 DI(이산 입력) 읽기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고, Modbus 마스터 스테이션 이름`에서 앞서 추가한 마스터 스테이션 `PLC`를 선택한 뒤, `DI 이름`에서 `서보 위치`를 선택하고 레지스터 수량을 `2`로 설정한 다음 `디지털 입력 읽기`를 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-31 디지털 입력 읽기 설정
이때 로봇 프로그램 `testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 디지털 입력을 읽는 명령이 추가되어 있습니다.
그림 9.18-32 디지털 입력 프로그램 명령 읽기
모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 전환합니다. ModbusMasterReadDO 명령 앞에 반환값 변수 state1,state2`를 추가해 작성합니다. 프로그램 실행 후 읽은 두 개의 디지털 입력 값은 각각 `state1, state2 변수에 저장되며, 변수 값을 판단해 로봇의 다른 동작을 제어할 수 있습니다.
그림 9.18-33 디지털 입력을 변수로 읽어 저장
아날로그 입력 AI(입력 레지스터) 및 아날로그 출력 AO(유지 레지스터) 읽기/쓰기
아날로그 입력 AI(입력 레지스터)`와 아날로그 출력 `AO(유지 레지스터)`의 읽기/쓰기 동작은 디지털 입력 `DI(이산 입력) 및 디지털 출력 DO(코일)`의 조작과 기본적으로 같습니다. 차이점은 후자의 데이터 범위가 `0 또는 1`로 제한되는 반면, 전자의 데이터 범위는 더 크다는 점입니다. 따라서 구체적인 조작은 디지털 입력/출력 프로그램 작성 예를 참고할 수 있으며, 여기서는 아날로그 입력 `AI 읽기와 아날로그 출력 AO 읽기/쓰기 프로그램 예시만 제시합니다.
그림 9.18-34 아날로그 입력 AI 읽기
그림 9.18-35 아날로그 출력 AO 읽기/쓰기
디지털 입력 대기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고 디지털 입력 대기 설정, 즉 DI 이산 입력의 대기 설정을 찾습니다. DI 이름`에서 설정한 `서보 위치 레지스터를 선택하고, 대기 상태를 True, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 뒤 마지막으로 적용 버튼을 클릭합니다.
그림 9.18-36 DI 입력 대기 명령 추가
이때 로봇 프로그램 testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 디지털 입력 `DI`를 대기하는 명령이 추가되어 있습니다. 프로그램을 시작하면 로봇은 `PLC 마스터 스테이션의 서보 위치 레지스터 값이 true, 즉 숫자 1`이 될 때까지 계속 대기합니다. 설정된 타임아웃 시간이 5초이므로, 로봇이 5초 대기한 뒤에도 `서보 위치 신호가 `0`이면 로봇 프로그램은 타임아웃 오류를 보고하고 프로그램도 자동으로 정지합니다.
그림 9.18-37 디지털 입력 DI 대기 프로그램
아날로그 입력 대기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고 아날로그 입력 대기 설정, 즉 AI 입력 레지스터 대기 설정을 찾습니다. AI 이름`에서 설정한 `액면 레지스터를 선택하고, 대기 상태를 >, 레지스터 값을 255, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 뒤 마지막으로 적용 버튼을 클릭합니다.
그림 9.18-38 아날로그 입력 대기 추가
이때 로봇 프로그램 testModbusMaster.lua`에는 이미 로봇 Modbus 마스터 스테이션이 `AI 입력 레지스터 값을 대기하는 명령이 추가되어 있습니다. 프로그램을 시작하면 로봇은 PLC 마스터 스테이션의 액면 레지스터 수치가 255`보다 커질 때까지 계속 대기합니다. 설정된 타임아웃 시간이 5초이므로, 로봇이 5초 대기한 뒤에도 `액면 신호가 `255`보다 커지지 않으면 로봇 프로그램은 타임아웃 오류를 보고하고 프로그램도 자동으로 정지합니다.
그림 9.18-39 AI 입력 레지스터 대기 프로그램
9.18.3. ModbusTCP 슬레이브 스테이션
로봇 ModbusTCP 슬레이브 스테이션은 범용 디지털 입력(코일), 범용 디지털 출력(이산 입력), 범용 아날로그 입력(유지 레지스터), 범용 아날로그 출력(입력 레지스터)의 4종류 레지스터를 제공합니다. 여기서 범용 디지털 입력과 아날로그 입력은 주로 로봇이 외부 ModbusTCP 마스터 스테이션 데이터를 읽어 로봇 동작을 제어하는 데 사용됩니다. 반면 범용 디지털 출력과 아날로그 출력은 주로 로봇이 외부 ModbusTCP 마스터 스테이션 장비에 데이터 신호를 보내고, 외부 마스터 스테이션 장비가 관련 레지스터 값을 읽어 그 장비의 실행을 제어하는 데 사용됩니다.
위 범용 입출력 외에도 로봇은 외부 마스터 스테이션 장비가 로봇의 프로그램 시작, 프로그램 정지 등을 제어하기 위한 일부 `기능 디지털 입력(코일)`과, 현재 로봇 상태 정보를 표시하기 위한 일부 입력 레지스터도 제공합니다. 여기에는 로봇의 현재 데카르트 위치, 현재 실행 상태 등이 포함됩니다. 구체적인 정의는 `부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오. 로봇 ModbusTCP 슬레이브 스테이션 사용 과정은 주로 ① 파라미터 설정 ② 통신 테스트 ③ 프로그램 작성으로 구성됩니다.
9.18.3.1. ModbusTCP 슬레이브 스테이션 통신 파라미터 설정
WebApp을 열고 티칭 시뮬레이션, `프로그램 티칭`을 순서대로 클릭한 뒤, 새 사용자 프로그램 `testModbusSlave.lua`를 생성합니다.
그림 9.18-40 ModbusTCP 슬레이브 스테이션 사용자 프로그램 생성
ModbusTCP 설정 버튼을 클릭해 ModbusTCP 기능 설정 페이지를 엽니다.
그림 9.18-41 ModbusTCP 설정 열기
`슬레이브 스테이션 설정`을 차례대로 클릭하고 로봇 슬레이브 스테이션의 IP, 포트 번호, 슬레이브 스테이션 번호를 입력합니다. 여기서 `IP`는 로봇 슬레이브 스테이션의 IP 주소입니다. Nurirobot 협동 로봇은 티치 펜던트와 제어 박스의 2개 네트워크 포트를 가지며, 두 포트의 IP 주소는 서로 다릅니다. 외부 장치가 연결하는 네트워크 포트에 맞는 올바른 IP 주소를 입력하십시오. 일반적으로 제어 박스의 네트워크 포트 사용을 권장합니다. 로봇 ModbusTCP 슬레이브 스테이션의 IP 주소, 포트 번호, 슬레이브 스테이션 번호를 변경한 뒤에는 로봇을 재시작해야 적용됩니다.
그림 9.18-42 ModbusTCP 슬레이브 스테이션 설정
ModbusTCP 슬레이브 스테이션 파라미터 설정이 완료되고 로봇을 재시작한 뒤에는, 외부 마스터 스테이션 장비가 설정된 파라미터를 사용해 로봇 슬레이브 스테이션과 연결을 수립할 수 있습니다. 연결에 성공하면 로봇 슬레이브 스테이션 설정 페이지의 연결 상태 표시등이 점등됩니다.
그림 9.18-43 슬레이브 스테이션 연결 상태 표시등
9.18.3.2. ModbusTCP 슬레이브 스테이션 통신 테스트
범용 디지털 입력(코일)
로봇 ModbusTCP 슬레이브 스테이션은 128개의 코일 레지스터를 제공하며, 이 레지스터 주소는 `100~127`입니다.
참고
구체적인 정의는 `부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오.
로봇 ModbusTCP 슬레이브 스테이션의 범용 레지스터는 모두 별칭을 설정할 수 있습니다. 로봇 슬레이브 스테이션 코일 레지스터 DI0`의 이름을 `A위치, `DI1`의 이름을 `B위치`로 변경합니다. 주소 매핑 표에 따르면 `A위치`와 `B위치`의 Modbus 코일 주소는 각각 `100`과 `101`입니다. 외부 ModbusTCP 마스터 스테이션 장비에서 로봇 슬레이브 스테이션 코일 레지스터 주소 `100`과 `101`을 모두 `1`로 설정하면, 이때 로봇 ModbusTCP 슬레이브 스테이션 모니터링 페이지의 두 레지스터 표시등이 점등됩니다.
그림 9.18-44 ModbusTCP 슬레이브 스테이션 코일 상태 모니터링
범용 디지털 출력(이산 입력)
로봇 ModbusTCP 슬레이브 스테이션은 128개의 이산 입력 레지스터를 제공하며, 해당 레지스터 주소는 `100~127`입니다.
참고
구체적인 정의는 `부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오.
마찬가지로 로봇 ModbusTCP 슬레이브 스테이션의 이산 입력 레지스터도 별칭을 설정할 수 있습니다. 범용 디지털 출력(이산 입력)`을 클릭하고, 로봇 슬레이브 스테이션 이산 입력 레지스터 `DO0`의 이름을 `A기동, `DO1`의 이름을 `B기동`으로 변경합니다. 주소 매핑 표에 따르면 `A기동`과 `B기동`의 Modbus 이산 입력 주소는 각각 `100`과 `101`입니다. `A기동`에 대응하는 이산 입력 표시등을 클릭하면 해당 표시등이 점등되고, 대응 레지스터 주소 `100`의 값이 `1`로 바뀝니다. 외부 ModbusTCP 마스터 스테이션 장비는 이 레지스터 값을 읽을 수 있습니다.
그림 9.18-45 ModbusTCP 슬레이브 스테이션 이산 입력 제어
아날로그 입력(유지 레지스터)
로봇은 부호 없음, 부호 있음, 부동소수점형의 3종류 유지 레지스터를 총 64개 제공합니다. `AI0~AI63`의 주소는 `100~195`입니다.
참고
text 구체적인 정의는 부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오. 여기서 부호 없는 레지스터 데이터 범위는 `0~65535, 부호 있는 레지스터 데이터 범위는 `-32768~32767`이며, 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다.
AI0`와 `AI1`의 이름을 각각 `전압, 전류`로 변경합니다. ModbusTCP 슬레이브 스테이션 주소 매핑 표를 보면 두 레지스터의 주소는 각각 `100`과 `101`입니다. 따라서 연결된 마스터 스테이션 장비가 유지 레지스터 `100`과 `101`의 주소값을 변경하면, 로봇 ModbusTCP 슬레이브 스테이션 모니터링 페이지의 `전압, 전류 레지스터 주소값도 대응하여 동기 갱신됩니다. 로봇의 아날로그 입력은 주로 외부 마스터 스테이션 장비의 수치 신호를 읽는 데 사용됩니다.
그림 9.18-46 ModbusTCP 슬레이브 스테이션 아날로그 입력 모니터링
아날로그 출력(입력 레지스터)
로봇은 부호 없음, 부호 있음, 부동소수점형의 3종류 입력 레지스터를 총 64개 제공합니다. `AO0~AO63`의 주소는 `100~195`입니다.
참고
text 구체적인 정의는 부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오. 여기서 부호 없는 레지스터 데이터 범위는 `0~65535, 부호 있는 레지스터 데이터 범위는 `-32768~32767`이며, 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다.
AO0`와 `AO1`의 이름을 각각 `목표 위치 A, 목표 위치 B`로 바꾸고, 입력 레지스터 값을 각각 `2000, `1500`으로 설정합니다. ModbusTCP 슬레이브 스테이션 주소 매핑 표를 보면 두 레지스터 주소는 각각 `100`과 `101`입니다. 따라서 연결된 마스터 스테이션 장비가 입력 레지스터 `100`과 `101`의 주소값을 읽으면 설정된 값을 취득할 수 있습니다. 로봇 슬레이브 스테이션 아날로그 출력은 주로 외부 마스터 스테이션 장비에 수치 신호를 전달하는 데 사용됩니다.
그림 9.18-47 Modbus 슬레이브 스테이션 아날로그 입력 변경
9.18.3.3. ModbusTCP 슬레이브 스테이션 프로그램 작성
전체, `통신 명령`을 순서대로 클릭해 통신 명령 추가 페이지를 엽니다.
그림 9.18-48 통신 명령 추가 페이지 열기
`Modbus`를 클릭합니다.
그림 9.18-49 Modbus 선택
`Modbus_TCP`를 클릭합니다.
그림 9.18-50 Modbus_TCP 선택
`슬레이브 스테이션`을 선택해 ModbusTCP 슬레이브 스테이션 명령 추가 페이지를 엽니다.
그림 9.18-51 ModbusTCP 슬레이브 스테이션 명령 추가
단일 디지털 출력 DO(이산 입력) 쓰기
DO 이름`에서 `A기동`을 선택하고, 레지스터 수량을 `1, 레지스터 값을 0`으로 설정한 뒤 `단일 디지털 출력 쓰기`를 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-52 단일 디지털 출력 쓰기 명령 추가
이때 로봇 프로그램 `testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 단일 디지털 출력을 쓰는 명령이 추가되어 있습니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 이름 `A기동`에 대응하는 디지털 출력 주소값에 `0`을 기록합니다.
그림 9.18-53 단일 디지털 출력 Lua 프로그램 쓰기
복수 디지털 출력 DO(이산 입력) 쓰기
ModbusTCP 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, `DO 이름`에서 `A기동`을 선택하고 레지스터 수량을 `5, 레지스터 값을 1,0,1,0,1`로 설정합니다. 이때 레지스터 값 개수는 설정한 레지스터 수량과 일치해야 하며, 복수의 레지스터 값은 영문 쉼표로 구분해야 합니다. `디지털 출력 쓰기`를 클릭한 뒤 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-54 복수 디지털 출력 쓰기 설정
이때 로봇 프로그램 testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 복수 디지털 출력을 쓰는 명령이 추가되어 있습니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 슬레이브 스테이션 `A기동 및 그 뒤 4개의 이산 입력 레지스터 값에 각각 `1,0,1,0,1`을 기록합니다.
그림 9.18-55 복수 디지털 출력 Lua 프로그램 쓰기
단일 디지털 출력 DO(이산 입력) 읽기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, `DO 이름`에서 `A기동`을 선택하고 레지스터 수량을 `1`로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-56 단일 디지털 출력 읽기 설정
이때 로봇 프로그램 `testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 단일 디지털 출력을 읽는 명령이 추가되어 있습니다.
그림 9.18-57 단일 디지털 출력 프로그램 읽기
일반적으로 Modbus 레지스터를 읽은 뒤에는 읽은 값을 변수에 저장하기 위해 저장용 변수를 정의해야 합니다. 모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 전환한 다음, ModbusSlaveReadDO 명령 앞에 반환값 변수 `AStartValue`를 추가해 작성합니다. 프로그램 실행 후 읽은 값은 `AStartValue`에 저장됩니다.
그림 9.18-58 단일 디지털 출력을 변수로 읽어 저장
코일 타입 레지스터 값은 0`과 `1 두 값만 가집니다. 로봇 프로그램에서는 레지스터 값에 따라 서로 다른 동작을 수행할 수 있습니다. 모드 전환 버튼을 클릭해 로봇 티칭 프로그램을 편집 불가 모드로 전환하고, 두 개의 관절 운동 명령을 추가해 각각 다른 두 포인트 P1, `P2`로 이동시킵니다.
그림 9.18-59 서로 다른 포인트 운동 명령 추가
다시 프로그램을 편집 가능 모드로 전환하고, 디지털 출력 값 AStartValue`에 대한 판단 조건을 작성합니다. `AStartValue 값이 1`이면 로봇은 `P1 포인트로 이동하고, 그렇지 않으면 P2 포인트로 이동합니다.
그림 9.18-60 디지털 출력 값에 따라 서로 다른 포인트로 이동
마지막으로 다시 로봇 프로그램을 편집 불가 모드로 전환하고, 로봇을 자동 모드로 바꾼 뒤 안전을 확인하고 프로그램을 실행합니다. 이 프로그램의 2행은 이름이 A기동`인 디지털 출력 DO 값을 `1`로 설정하므로, 실행 후 로봇은 `P1 포인트로 이동합니다.
그림 9.18-61 단일 코일 레지스터 수치를 읽어 이동
복수 디지털 출력 DO(이산 입력) 읽기
ModbusTCP 마스터 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, `DO 이름`에서 `A기동`을 선택하고 레지스터 수량을 `2`로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-62 복수 디지털 출력 읽기 설정
이때 로봇 프로그램 `testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 복수 디지털 출력을 읽는 명령이 추가되어 있습니다.
그림 9.18-63 복수 디지털 출력 프로그램 읽기
모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 전환합니다. 읽기 수량이 2개이므로 ModbusSlaveReadDO 명령 앞에 반환값 변수 value1,value2`를 추가해 작성해야 합니다. 프로그램 실행 후 읽은 두 개의 디지털 출력 레지스터 값은 각각 위 두 변수에 저장되며, `value1, value2 값을 판단해 로봇에 다른 동작을 수행시킬 수 있습니다.
그림 9.18-64 복수 디지털 출력을 변수로 읽어 저장
디지털 입력 DI(코일) 읽기
ModbusTCP 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 입력 설정`을 찾은 뒤, `DI 이름`에서 `A위치`를 선택하고 레지스터 수량을 `2`로 설정한 다음 `디지털 입력 읽기`를 클릭합니다. 마지막으로 페이지 맨 아래까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.18-65 디지털 입력 읽기 설정
이때 로봇 프로그램 `testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 디지털 입력을 읽는 명령이 추가되어 있습니다.
그림 9.18-66 디지털 입력 프로그램 명령 읽기
모드 전환 버튼을 클릭해 로봇 Lua 프로그램을 편집 가능 상태로 전환합니다. ModbusSlaveReadDI 명령 앞에 반환값 변수 AState,BState`를 추가해 작성합니다. 프로그램 실행 후 읽은 두 개의 디지털 입력 값은 각각 변수 `AState, `BState`에 저장되며, 변수 값을 판단해 로봇의 다른 동작을 제어할 수 있습니다.
그림 9.18-67 디지털 입력 프로그램
아날로그 출력 AO(입력 레지스터) 및 아날로그 입력 AI(유지 레지스터) 읽기/쓰기
아날로그 출력(입력 레지스터), 아날로그 입력(유지 레지스터)의 읽기/쓰기 동작은 디지털 출력(이산 입력), 디지털 입력(코일)의 조작과 기본적으로 같습니다. 차이점은 후자의 데이터 범위가 0 또는 `1`로 제한되는 반면, 전자의 데이터 범위는 더 크다는 것입니다. 따라서 구체적인 조작은 디지털 출력과 디지털 입력 프로그램 작성 예시를 참고할 수 있으며, 여기서는 아날로그 입력 읽기와 아날로그 출력 읽기/쓰기 프로그램 예시만 제시합니다.
그림 9.18-68 아날로그 입력 읽기
그림 9.18-69 아날로그 출력 읽기/쓰기
디지털 입력 대기
ModbusTCP 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 입력 대기 설정`을 찾은 뒤, `DI 이름`에서 설정한 `A위치 레지스터를 선택하고 대기 상태를 True, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 후 마지막에 적용 버튼을 클릭합니다.
그림 9.18-70 디지털 입력 대기 명령 추가
이때 로봇 프로그램 testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 디지털 입력을 대기하는 명령이 추가되어 있습니다. 프로그램을 시작하면 로봇은 슬레이브 스테이션의 `A위치 코일 레지스터 값이 true, 즉 숫자 1`이 될 때까지 계속 대기합니다. 설정된 타임아웃 시간이 5초이므로, 로봇이 5초 동안 대기한 뒤에도 `A위치 신호가 `0`이면 로봇 프로그램은 타임아웃 오류를 보고하고 자동으로 정지합니다.
그림 9.18-71 디지털 입력 대기 프로그램
아날로그 입력 대기
ModbusTCP 슬레이브 스테이션 명령 추가 페이지를 열고 아날로그 입력 대기 설정`을 찾은 뒤, `AI 이름`에서 설정한 `전압 레지스터를 선택하고 대기 상태를 >, 레지스터 값을 255, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 후 마지막에 적용 버튼을 클릭합니다.
그림 9.18-72 아날로그 입력 대기 명령 추가
이때 로봇 프로그램 testModbusSlave.lua`에는 이미 로봇 Modbus 슬레이브 스테이션이 아날로그 입력값을 대기하는 명령이 추가되어 있습니다. 프로그램을 시작하면 로봇은 슬레이브 스테이션의 `전압 레지스터 수치가 255`보다 커질 때까지 계속 대기합니다. 설정된 타임아웃 시간이 5초이므로, 로봇이 5초간 대기한 뒤에도 `전압 신호가 `255`보다 커지지 않으면 로봇 프로그램은 타임아웃 오류를 보고하고 자동으로 정지합니다.
그림 9.18-73 아날로그 입력 레지스터 대기 프로그램
9.18.3.4. ModbusTCP 슬레이브 스테이션 로봇 상태 피드백 및 제어
협동 로봇 ModbusTCP 슬레이브 스테이션의 입력 레지스터 주소 `310~473`은 로봇의 실시간 상태 피드백에 사용됩니다. 구체적인 주소 정의는 `부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오. 마스터 스테이션 장비에서 대응하는 레지스터 값을 읽기만 해도 해당 로봇의 실시간 상태 데이터를 취득할 수 있습니다.
협동 로봇 ModbusTCP 슬레이브 스테이션의 코일 레지스터 주소 `300~599`는 마스터 스테이션 장비가 로봇을 제어하는 데 사용됩니다. 구체적인 주소 정의는 `부록 1: ModbusTCP 슬레이브 스테이션 주소 매핑 표`를 참조하십시오. 예를 들어 코일 주소 `502`의 기능은 `프로그램 시작`입니다.
로봇이 자동 모드에 있을 때 마스터 스테이션 장비가 주소 502`의 값을 `0`에서 `1`로 변경하면, 로봇은 자동으로 현재 설정된 프로그램 실행을 시작합니다. 또 코일 주소 `300`은 로봇 제어 박스 `DO0 출력을 제어하는 데 사용됩니다. 외부 마스터 스테이션이 코일 주소 `300`을 `0`에서 `1`로 바꾸면 제어 박스 `DO0`는 자동으로 유효 출력되고, 반대로 `1`에서 `0`으로 바꾸면 출력이 무효화됩니다. ModbusTCP 슬레이브 스테이션 설정 페이지에서 `기능 디지털 입력(코일)`을 클릭하면 현재의 모든 기능 디지털 입력 상태를 모니터링할 수 있습니다.
그림 9.18-74 로봇 슬레이브 스테이션 기능 디지털 입력
그림 9.18-74 Modbus 슬레이브 스테이션 주소 매핑 표
부록 1: Modbus 슬레이브 주소 매핑 테이블
9.19. 로봇 백그라운드 프로그램
9.19.1. 로봇 백그라운드 프로그램 기능
로봇 백그라운드 프로그램은 로봇이 포그라운드 운동 프로그램을 실행하는 동안 동시에 백그라운드에서도 실행할 수 있는 제어 프로그램으로, 신호 논리 관계를 처리하기 위해 사용되며 두 실행 관계는 서로 독립적입니다.
백그라운드 프로그램은 포그라운드 실행 상태를 감시할 수 있고, 동시에 포그라운드에 제어 신호를 보낼 수도 있습니다. 또한 I/O 통신을 통해 외부 장치와 연결하여 로봇 주변기기의 실행 감시와 제어를 수행할 수도 있습니다. 백그라운드 논리 프로그램이 실행할 수 있는 명령은 포그라운드 티칭 프로그램과 다르며, 어떠한 로봇 축 운동 명령도 포함할 수 없습니다. 논리 제어 기능과 I/O 통신 기능만 유지합니다.
백그라운드 프로그램을 사용할 때 프로그램은 처음부터 끝까지 반복적으로 순환 스캔합니다. 시스템 내 백그라운드 프로그램의 실행 주기는 1밀리초이며, 백그라운드 프로그램에 지연 함수를 추가해 실행 주기를 제어할 수 있습니다. 백그라운드 프로그램 실행 중에는 비상정지, 일시정지, 알람의 영향을 받지 않습니다.
참고
최대 8개의 백그라운드 프로그램을 동시에 실행할 수 있습니다.
전원이 차단된 뒤 다음 번 전원 인가 시에는 백그라운드 논리 프로그램이 자동으로 로드되어 설정된 상태에 따라 실행됩니다.
9.19.1.1. 로봇 백그라운드 프로그램 저장
백그라운드 프로그램의 생성, 편집, 저장은 백그라운드 프로그램 인터페이스에서만 수행할 수 있습니다.
Step1: 로봇 백그라운드 프로그램 인터페이스를 엽니다. 티칭 페이지를 열고 티칭 프로그램, `프로그램 프로그래밍`을 순서대로 클릭합니다. 왼쪽 위의 백그라운드 프로그램 명령을 선택하면 백그라운드 프로그램 인터페이스로 들어갑니다.
참고
백그라운드 프로그램에는 논리 판단, 대입 명령, 포그라운드 제어 명령, I/O 인터페이스 명령 및 Modbus 통신 명령만 포함됩니다.
그림 9.19-1 백그라운드 프로그램 인터페이스
Step2: 수동 모드에서 백그라운드 티칭 프로그램 파일을 엽니다. `새로 만들기`를 클릭해 새 티칭 프로그램 파일을 만들고, 프로그램을 편집한 뒤 `저장`을 클릭해 파일을 저장합니다.
참고
백그라운드 프로그램의 실행 주기는 1밀리초입니다. 프로그램 내부에서 제공되는 지연 함수를 사용할 수 있습니다. 아래 그림의 프로그램 4행처럼 1초 지연을 추가해 실행 주기를 제어할 수 있습니다.
그림 9.19-2 백그라운드 프로그램 파일 새로 만들기 및 저장
9.19.1.2. 로봇 백그라운드 프로그램 관리
저장에 성공한 백그라운드 프로그램은 백그라운드 프로그램 관리 인터페이스에서 생성, 일시정지, 재개, 삭제를 수행할 수 있습니다. 이 인터페이스에서는 생성된 모든 백그라운드 프로그램의 실행 상태를 직관적으로 볼 수 있으며, 녹색은 실행 중, 빨간색은 일시정지 상태를 의미합니다.
Step1: 백그라운드 프로그램을 생성합니다. 백그라운드 프로그램 관리 버튼을 클릭하고 드롭다운 박스에서 이미 저장된 백그라운드 프로그램을 선택한 뒤 `실행 시작`을 클릭하면 해당 백그라운드 프로그램을 실행할 수 있습니다.
그림 9.19-3 백그라운드 프로그램 생성
Step2: 백그라운드 프로그램을 재개하거나 일시정지합니다. 백그라운드 프로그램 관리 인터페이스에서 모니터링 프로그램에 대해 재개`와 `일시정지 버튼을 클릭하면 해당 백그라운드 프로그램을 재개 또는 일시정지할 수 있습니다. 삭제 버튼을 클릭하면 해당 백그라운드 프로그램을 삭제할 수 있습니다.
그림 9.19-4 백그라운드 프로그램 일시정지, 재개, 삭제
9.19.2. 로봇 사용자 변수 사용
참고
협동 로봇은 사용자 변수 기능을 새로 추가했습니다. 로봇의 백그라운드 프로그램과 포그라운드 프로그램, 또는 서로 다른 백그라운드 프로그램 간의 데이터 교환에 적용됩니다.
9.19.2.1. 로봇 사용자 변수 관리
사용자 변수를 사용하기 전에 사용자 변수 이름을 원하는 대로 변경할 수 있습니다. 티칭 페이지를 열고 티칭 프로그램, 프로그램 프로그래밍, `사용자 변수 관리`를 순서대로 클릭합니다. 이 페이지는 포그라운드 프로그램과 백그라운드 프로그램 모두에서 사용할 수 있으며, 변수명을 클릭하면 직접 이름을 변경할 수 있습니다.
그림 9.19-5 사용자 변수 관리
9.19.2.2. 로봇 사용자 변수 사용
사용자 변수를 포그라운드/백그라운드 프로그램에서 사용할 때는 사용자 변수 읽기/쓰기 인터페이스 조작만 사용할 수 있습니다.
Step1: 수동 모드에서 티칭 프로그램 파일을 엽니다. 티칭 페이지를 열고 티칭 프로그램, `프로그램 프로그래밍`을 순서대로 클릭한 뒤 `새로 만들기`를 클릭해 새 티칭 프로그램 파일을 생성합니다.
그림 9.19-6 티칭 프로그램 파일 새로 만들기
Step2: 사용자 변수 읽기 인터페이스를 사용합니다. 변수 명령을 클릭하고 사용자 변수`를 선택한 뒤, 변수값 취득 드롭다운 박스를 클릭해 읽어야 할 사용자 변수를 선택합니다. 이어서 `추가, 적용 버튼을 클릭하면 사용자 변수 읽기 인터페이스 프로그램을 생성할 수 있습니다.
그림 9.19-7 사용자 변수 읽기 인터페이스 사용
Step3: 사용자 변수 쓰기 인터페이스를 사용합니다. 변수 명령을 클릭하고 사용자 변수`를 선택한 뒤, 변수값 설정 드롭다운 박스를 클릭해 설정할 사용자 변수를 선택하고 대응하는 설정값을 입력합니다. 이 값은 상수와 변수값을 모두 지원합니다. `추가, 적용 버튼을 클릭하면 사용자 변수 쓰기 인터페이스 프로그램을 생성할 수 있습니다.
그림 9.19-8 사용자 변수 쓰기 인터페이스 사용
9.20. XY 방향 횡방향 정력 연마
9.20.1. 개요
XY 방향 횡방향 정력 연마의 원리는 다음과 같습니다. 횡방향 정력 연마란 지정된 워크 표면에서 연마 공구(사포, 연마판 등)에 일정한 힘을 가하고, XY 방향으로 공구 이동을 제어해 접촉점에서 항상 일정한 연마력을 유지하는 것입니다.
9.20.2. XY 방향 횡방향 정력 연마 기능 조작 절차
힘 센서를 사용해 정력 연마를 수행하려면 힘 센서 아래에 연마 공구를 장착하고 툴 좌표계를 설정해야 합니다. 초기 설정 -> 기본 -> 좌표계 -> 툴 버튼을 순서대로 클릭하면 툴 좌표계 설정 인터페이스로 들어갑니다. 좌표계 이름`에서 설정할 좌표계를 선택하고(`toolcoord0 좌표계를 예로 사용), 엔드 툴의 크기에 따라 설정합니다.
그림 9.20-1 툴 좌표계 설정
힘 제어 기준 좌표계를 설정합니다. Web 인터페이스에서 FT -> `기준 좌표계`를 순서대로 클릭하고 `커스텀 좌표계`를 선택한 뒤 각 파라미터를 `0`으로 설정합니다. 힘 센서가 동작할 때 서로 다른 기준 좌표계는 센서가 취득하는 외력 크기에 영향을 줍니다.
그림 9.20-2 기준 좌표계 설정
연마할 평판을 로봇 작업 공간 내에 고정하고, 흔들리지 않도록 한 뒤, 공구 끝단이 연마판에 거의 수직이 되게 하고 시작점과 종료점을 티칭합니다.
그림 9.20-3 연마 배치 개요도
티칭 프로그램 -> 프로그램 프로그래밍 -> 힘 제어 세트 버튼을 순서대로 클릭해 FT_Control 명령을 추가합니다. FT_Control 명령은 힘 제어 운동 명령으로, 로봇을 설정된 힘에 가깝게 유지하며 운동시킬 수 있습니다.
그림 9.20-4 힘 제어 명령 추가
그림 9.20-5 힘 제어 연마 명령 예시
파라미터의 구체적 역할:
좌표계 이름: 센서 좌표계를 설정할 때 대응되는 이름
힘 방향 검출 체크: 검출 임계값을 설정합니다. 제어할 힘 방향을 선택하며, 횡방향 연마에서는 Fx, `Fy`를 체크하고 대응하는 목표 정력을 설정합니다.
PID 파라미터: 힘과 모멘트의 PID 비례 계수를 설정하며, 일반적으로 `F_P_gain`을 `0.001`로 설정합니다.
최대 조정 거리: X, Y, Z 방향 최대 이동 거리에 대응
최대 조정 각도: RX, RY, RZ 최대 회전 각도에 대응
연마판 반경: 실제 엔드 연마 공구의 반경에 따라 결정됩니다.
9.21. 궤적 자동 특이점 회피 기능
9.21.1. 개요
로봇이 LIN, ARC 명령 궤적 중 통과할 수 없는 특이 범위를 지나게 되면 오류를 보고하며, 다음 자세가 특이하거나 특이 경고가 발생했음을 나타냅니다. 특이 범위를 지나는 다음 경로점에 도달해야 하는 경우, 이 기능을 사용해 관절 공간 또는 데카르트 공간에서 특이점을 회피하고 다음 목표 자세에 도달할 수 있습니다.
그림 9.21-1 로봇 특이점 간이 개요도
위 그림은 로봇 특이점의 개요도입니다. 로봇 특이점은 어깨, 팔꿈치, 손목의 3종류를 포함하며, 그림의 A`는 5관절 중심 `WCP(Wrist Center Point)`로 어깨 특이점을 판단하는 데 사용됩니다. `B`는 어깨 특이 범위로 원기둥과 유사하며, 반경은 로봇 DH 파라미터 `d4`의 길이입니다. WCP가 원기둥 `B 안으로 들어가면 로봇은 특이 상태에 들어갑니다. C`는 로봇의 팔꿈치 특이 경계로, `J3=0 또는 180°`일 때 로봇은 팔꿈치 특이점 상태가 됩니다. `D`는 로봇 내부 공간으로, 내부 공간의 임의 위치에서 `J5=0 또는 `180°`이면 손목 특이 상태가 됩니다.
참고
특이점은 로봇의 물리 구조에 의해 결정되는 운동 특성이므로, 실제 실행 시에는 가능한 한 피해야 합니다. 알고리즘으로 회피할 때는 엔드 자세와 속도, 나아가 구성 설정 변화가 발생할 수 있으므로, 회피의 부작용이 요구 사항에 영향을 주는지 고려한 뒤 선택해야 합니다.
9.21.2. 궤적 자동 특이점 회피 기능 조작 절차
새로 생성한 프로그램에서 로봇의 LIN/ARC 타입 운동 명령 추가를 클릭합니다.
그림 9.21-2 LIN/ARC 운동 명령 추가
직선 명령을 클릭하고 로봇의 특이점을 지나는 경로점을 선택한 뒤, 명령 파라미터 설정 인터페이스의 운동 보호 하위 옵션에서 특이점 회피 버튼을 클릭합니다.
그림 9.21-3 특이점 회피 기능 활성화
특이점 회피 파라미터에는 보호 모드, 어깨 특이 조정, 팔꿈치 특이 조정, 손목 특이 조정 관련 파라미터가 포함됩니다. 여기서 보호 모드`는 `관절 모드`와 `데카르트 모드`로 나뉘며, 로봇이 관절 공간에서 특이점을 횡단할지, 데카르트 공간에서 특이점을 우회할지를 의미합니다. `특이 조정 파라미터는 특이점을 판정하는 범위와 특이점 회피의 최대 편차를 지정하며, 어깨와 팔꿈치 특이점의 단위는 mm, 손목 특이점의 단위는 `°`입니다.
참고
관절 공간은 관절 간 가장 가까운 궤적을 선택하므로 리미트가 발생하는 상황이 없습니다. 반면 데카르트 공간에서 회피할 때는 관절 리미트가 발생할 가능성이 있으므로, 티칭 시 주의해 조정해야 합니다.
특이점 회피 파라미터를 선택해 설정한 뒤 추가 버튼을 클릭해 명령을 추가하고, 이어서 `적용`을 클릭해 Lua 명령을 프로그램에 추가합니다.
그림 9.21-4 특이점 회피 파라미터 설정 및 Lua 명령 추가
티칭이 완료된 전형적인 LIN 특이 회피 운동 Lua 프로그램은 아래와 같이 표시됩니다.
그림 9.21-5 특이점 회피 명령이 포함된 Lua 프로그램
회피를 구현한 효과는 아래와 같으며, 빨간색은 로봇 엔드 궤적선입니다.
그림 9.21-6 어깨 관절 특이 회피 궤적 예시(위: 데카르트 공간, 아래: 관절 공간)
그림 9.21-7 팔꿈치 관절 특이 회피 궤적 예시(위: 데카르트 공간, 아래: 관절 공간)
그림 9.21-8 손목 관절 특이 회피 궤적 예시(관절 공간)
현재 이 기능은 LIN/ARC 운동 시 단일 특이점을 지나는 상황의 회피만 지원합니다. 운동 시작점과 종료점이 설정된 특이 범위 안에 있는 경우, 또는 운동 중 복수의 특이점을 지나거나 2개 이상의 특이점이 동시에 발생하는 경우에는 인터페이스에 [경고] 특이 자세 팝업창이 표시되며, 현재 특이 상황은 회피할 수 없음을 의미합니다.
그림 9.21-9 현재 특이 상황 회피 불가 경고
9.22. 자동 모드에서의 특이점 통과 기능
9.22.1. 개요
로봇이 LIN 또는 ARC 명령을 실행하며 특이점을 통과할 때, 로봇 속도가 갑자기 변하고 운동 제어가 불안정해질 수 있으며 심하면 설비 손상까지 초래할 수 있습니다. 특이점 통과 기능을 사용하면 로봇은 특이점을 안정적으로 통과할 수 있습니다. 본 문서에서는 손목 특이점을 지나는 LIN 명령을 예로 들어 자동 모드에서의 특이점 통과 기능 사용 방법을 설명합니다.
9.22.2. 조작 절차
로봇이 LIN 명령을 실행할 두 개의 운동 제어점을 티칭합니다. 이 문서에서는 각각 wristlin1, `wristlin2`로 명명합니다.
티칭 프로그램 -> 프로그램 프로그래밍 버튼을 순서대로 클릭하고, 운동 명령 중에서 포인트 to 포인트 명령을 선택해 첫 번째 운동점을 추가합니다.
그림 9.22-1 첫 번째 운동점 추가
운동 명령 중 직선 명령을 선택해 두 번째 운동점을 추가합니다. `운동 보호`에서 `특이점 통과`를 선택하고, 어깨 특이점, 팔꿈치 특이점, 손목 특이점의 조정 범위를 각각 설정합니다.
그림 9.22-2 특이점 통과 파라미터 설정
Lua 프로그램을 생성하여 실행합니다. 이것은 자동 모드에서의 특이점 통과를 위한 전형적인 LIN 명령 프로그램입니다.
그림 9.22-3 전형적인 특이점 통과 LIN 명령
로봇의 운동 결과를 관찰하고, 로봇 운동 속도와 특이점 설정 범위를 조정함으로써 서로 다른 운동 정밀도와 충격 정도를 얻을 수 있습니다.
9.22.3. 정밀도/충격 비교표
손목 특이점은 로봇에서 가장 쉽게 발생하는 특이점 타입입니다. 손목 특이점에 대한 LIN 명령과 ARC 명령의 정밀도 및 충격 비교표를 정리했습니다. 아래 LIN/ARC 명령 비교표에서 `〇`는 충돌 경고가 발생했음을 의미합니다.
표 9.22-3-1 손목 특이점 LIN 명령 오차(단위: mm)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
0.19 |
0.20 |
0.20 |
0.21 |
〇 |
〇 |
4 mm |
0.14 |
0.14 |
0.14 |
0.14 |
0.14 |
0.14 |
6 mm |
0.40 |
0.40 |
0.41 |
0.41 |
0.42 |
0.42 |
8 mm |
0.82 |
0.83 |
0.83 |
0.84 |
0.83 |
0.84 |
10 mm |
1.38 |
1.38 |
1.39 |
1.39 |
1.39 |
1.41 |
표 9.22-3-2 손목 특이점 LIN 명령 선형 저크(단위: m/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
0.605 |
12.040 |
11.370 |
2743.000 |
〇 |
〇 |
4 mm |
0.916 |
34.620 |
110.900 |
241.300 |
303.900 |
400.700 |
6 mm |
0.906 |
59.700 |
139.600 |
343.700 |
445.600 |
582.900 |
8 mm |
1.073 |
67.480 |
199.600 |
438.300 |
553.400 |
623.900 |
10 mm |
1.013 |
69.490 |
195.800 |
556.600 |
649.300 |
953.300 |
표 9.22-3-3 손목 특이점 LIN 명령 각 저크(단위: °/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
1122 |
25140 |
24780 |
54890 |
〇 |
〇 |
4 mm |
305 |
9035 |
26030 |
39330 |
60510 |
80330 |
6 mm |
219 |
8161 |
19450 |
84700 |
109300 |
143400 |
8 mm |
478 |
6651 |
19780 |
121600 |
150500 |
162100 |
10 mm |
281 |
5296 |
14470 |
161600 |
177300 |
256000 |
표 9.22-3-4 손목 특이점 ARC 명령 오차(단위: mm)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
1.06 |
1.06 |
1.05 |
1.05 |
〇 |
〇 |
4 mm |
1.58 |
1.59 |
1.60 |
1.62 |
〇 |
〇 |
6 mm |
3.31 |
3.34 |
3.35 |
3.32 |
3.39 |
3.33 |
8 mm |
5.81 |
5.83 |
5.87 |
5.87 |
5.87 |
5.96 |
10 mm |
9.06 |
9.09 |
9.12 |
9.17 |
9.17 |
9.22 |
표 9.22-3-5 손목 특이점 ARC 명령 선형 저크(단위: m/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
13.970 |
643.000 |
2230.000 |
3408.000 |
〇 |
〇 |
4 mm |
0.635 |
24.850 |
42.480 |
76.990 |
〇 |
〇 |
6 mm |
3.000 |
19.960 |
45.350 |
57.120 |
77.050 |
59.800 |
8 mm |
1.494 |
27.830 |
90.290 |
124.200 |
148.400 |
168.000 |
10 mm |
0.460 |
31.870 |
112.600 |
211.000 |
229.300 |
117.500 |
표 9.22-3-6 손목 특이점 ARC 명령 각 저크(단위: °/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
2 mm |
3378 |
85380 |
228600 |
351900 |
〇 |
〇 |
4 mm |
1098 |
31360 |
71460 |
104800 |
〇 |
〇 |
6 mm |
390 |
15770 |
43650 |
79330 |
93930 |
124200 |
8 mm |
315 |
10270 |
28770 |
57000 |
75840 |
94050 |
10 mm |
504 |
6108 |
21470 |
34920 |
47280 |
97160 |
어깨 특이점과 팔꿈치 특이점은 각각 로봇의 최소 작업 경계와 최대 작업 경계에 대응하므로, 정밀도를 지표로 사용할 수 없습니다. 따라서 어깨 특이점과 팔꿈치 특이점의 충격 비교표를 정리했습니다. 여기서 `〇`는 충돌 경고가 발생했음을 의미합니다.
표 9.22-3-7 어깨 특이점 선형 저크(단위: m/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
40 mm |
1.166 |
99.730 |
253.200 |
273.500 |
〇 |
〇 |
70 mm |
1.047 |
92.440 |
328.900 |
634.500 |
878.400 |
1499.000 |
100 mm |
1.060 |
90.250 |
273.900 |
506.600 |
926.300 |
1555.000 |
표 9.22-3-8 어깨 특이점 각 저크(단위: °/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
40 mm |
396 |
89.83 |
824 |
348 |
〇 |
〇 |
70 mm |
428 |
121 |
681 |
167 |
1783 |
35690 |
100 mm |
440 |
151 |
473 |
246 |
1495 |
39280 |
표 9.22-3-9 팔꿈치 특이점 선형 저크(단위: m/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
40 mm |
0.905 |
14.430 |
52.080 |
87.380 |
129.400 |
657.000 |
70 mm |
1.144 |
24.320 |
79.580 |
270.300 |
793.300 |
1478.000 |
100 mm |
1.852 |
27.930 |
112.700 |
328.100 |
583.000 |
758.600 |
표 9.22-3-10 팔꿈치 특이점 각 저크(단위: °/s3)
특이 범위/인터페이스 속도 |
2 |
20 |
40 |
60 |
80 |
100 |
40 mm |
347 |
128 |
148 |
142 |
63 |
38050 |
70 mm |
424 |
132 |
141 |
21780 |
56190 |
95610 |
100 mm |
46 |
1443 |
6194 |
19940 |
35170 |
46770 |
9.23. 실시간 선읽기 궤적 계획 기능
9.23.1. 개요
실시간 선읽기 궤적 계획은 현재 및 미래의 경로 정보를 기반으로 로봇의 속도, 가속도 등의 운동 파라미터를 동적으로 조정해 운동의 평활성, 연속성, 정밀성을 보장합니다. 로봇의 미래 위치와 자세를 예측함으로써, 선읽기 제어는 경로의 중요한 지점 이전에 미리 반응할 수 있고, 속도와 가속도의 급격한 변화로 인한 운동 불안정이나 궤적 오차를 회피할 수 있습니다.
9.23.2. 조작 절차
Step1: 데카르트 자세로 표현된 각 궤적점을 포함하는 txt 형식의 궤적점 파일을 준비합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 순서대로 클릭하고, 운동 명령 중 궤적 선읽기 명령을 선택한 뒤, `명령 설정`에서 궤적 파일 가져오기와 삭제를 수행합니다.
그림 9.23-1 궤적 파일 가져오기 및 삭제
Step3: 실행할 궤적 파일을 선택하고 궤적 사전 로드 명령을 추가합니다. 먼저 곡선 피팅 방식`에서 궤적점의 피팅 방식을 선택합니다. 여기에는 `직선 연결, 직선 피팅, B-스플라인 곡선, 다항식 최적화 방법 등이 포함됩니다. `직선 피팅`을 선택하는 경우 추가로 오차 제한을 설정해야 하며, 다른 방식은 이 설정이 필요 없습니다. 다음으로 평활화 방식과 평활화 정밀도를 설정합니다. 마지막으로 실행 과정 중 최대 속도, 최대 가속도, 최대 저크를 설정하고, `등속 운동`을 통해 등속 선읽기를 활성화할지 선택할 수 있습니다. 활성화하면 로봇은 등속으로 선읽기를 수행합니다.
그림 9.23-2 궤적 사전 직선 피팅 로드 파라미터 설정
그림 9.23-3 궤적 사전 로드 파라미터 설정
Step4: 궤적 운동 명령을 추가하고 Lua 프로그램을 생성합니다. Lua 프로그램을 실행하면 가져온 궤적 파일에 대해 실시간 선읽기 궤적 계획을 수행합니다. 실시간 선읽기 궤적 계획의 전형적인 프로그램은 아래와 같습니다.
그림 9.23-4 실시간 선읽기 궤적 계획의 전형적인 프로그램(B-스플라인 곡선)
Step5: Lua 프로그램의 LoadTrajectory 명령 줄에서 편집 버튼을 클릭하면 설정 파라미터를 수정해 서로 다른 궤적 계획 효과를 구현할 수 있습니다.
그림 9.23-5 설정 파라미터 수정
9.24. 진폭 점진 변화 아크 트래킹 기능
웨이빙 운동은 급변`과 `점진 변화 두 가지 진폭 전환 방식을 구현할 수 있습니다.
급변 방식은 이전 웨이빙 파라미터와 이후 웨이빙 파라미터가 직접 전환되는 방식이며, 파라미터가 다르지만 서로 인접한 두 개의 웨이빙 운동을 설정해 구현할 수 있습니다. 또한 웨이빙 운동 실행 중에 새로운 웨이빙 번호를 실시간으로 발행하는 방식으로도 구현할 수 있습니다. 자세한 내용은 해당 기능 매뉴얼을 참조하십시오.
점진 변화 방식은 현재 웨이빙 운동 중에 시작 시 설정된 웨이빙 진폭이 종료 시 설정된 웨이빙 진폭으로 서서히 변화하는 방식입니다.
웨이빙 파라미터의 점진 전환 방식은 직선 웨이빙 과정에서만 지원됩니다.
9.24.1. 개요
진폭 점진 변화 웨이빙 운동 궤적은 아래 그림과 같습니다.
여기서 파란 선은 웨이빙 운동 방향, `a`는 시작점의 웨이빙 진폭, `b`는 종료점의 웨이빙 진폭이며, 웨이빙 진폭은 운동 과정 중 점차적으로 변화합니다.
참고
현재는 시작점과 종료점의 타입이 같고 웨이빙 진폭만 다른(`a`에서 `b`로 변화하는) 점진 웨이빙만 지원하며, 다른 파라미터는 서로 일치해야 합니다. 웨이빙 실행 전에 웨이빙 파라미터를 확인하는 것을 권장합니다.
진폭 점진 변화 웨이빙을 설정하는 절차는 다음과 같습니다.
Step 1: 티칭 프로그램, 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 아래의 웨이빙 버튼을 선택해 클릭하고, 웨이빙 명령 설정 페이지로 들어갑니다.
그림 9.24-1 웨이빙 기능 버튼 클릭
Step 2: 명령 편집에서 웨이빙 시작 시의 웨이빙 파라미터 번호를 선택하고 웨이빙 시작`을 클릭한 뒤 `추가 버튼을 클릭합니다.
그림 9.24-2 시작 웨이빙 파라미터 추가
Step 3: 웨이빙 점진 변화의 목표 번호를 선택하고 웨이빙 점진 변화 시작`을 선택한 뒤 `추가 버튼을 클릭합니다.
그림 9.24-3 점진 변화 웨이빙 파라미터 추가
Step 4: 대응하는 직선 운동을 추가한 뒤 `웨이빙 점진 변화 종료`를 선택해 클릭하고 추가합니다. 이어서 `웨이빙 정지`를 선택해 추가하면 한 단계의 진폭 점진 변화 웨이빙 운동 설정이 완료됩니다. `적용`을 클릭해 Lua 프로그램에 추가합니다.
그림 9.24-4 1단계 완전 진폭 점진 변화 운동 Lua 명령
9.25. 오프셋 아크 트래킹 기능
아크 트래킹 용접 과정에서 로봇은 기본적으로 전류 정보에 따라 토치의 웨이빙 중심을 조정해 워크의 홈 중심과 일치시키지만, 일부 공정 요구에서는 토치의 웨이빙 중심이 워크 홈 중심에 대해 일정한 오프셋을 가지도록 해야 할 수 있습니다.
그림 9.25-1 오프셋 아크 트래킹 전형 시나리오
오프셋 아크 트래킹 기능의 전형 시나리오는 다음을 포함합니다. a 용접 워크(용접 홈이 직각 또는 예각), b 토치, e 홈 중심선. 아크 트래킹 기능은 용접 홈에 대해 c 상하(깊이) 방향 트래킹과 d 좌우(중심) 방향 트래킹을 구현하며, `f`는 좌우 방향 트래킹 오프셋 거리입니다.
오프셋 아크 트래킹을 구현하기 위해 좌우 오프셋량을 설정하는 두 가지 방법, 즉 샘플링`과 `퍼센트 조정 방식을 선택할 수 있습니다.
9.25.1. 샘플링 오프셋 아크 트래킹
샘플링 방식은 웨이빙 용접 아크 발생 후 일정 주기 내 웨이빙 시의 좌우 전류값을 기준값으로 채취하고, 이후 용접 과정에서 채취한 전류와 기준 전류를 비교해 트래킹 방향을 도출합니다.
샘플링 방식에서는 웨이빙 용접 시작 위치부터 요구되는 오프셋량까지를 티칭해야 하며, 오프셋량은 웨이빙 진폭을 초과해서는 안 되고 용접부는 접합 홈을 덮어야 합니다.
샘플링 오프셋 명령 설정 절차는 다음과 같습니다.
그림 9.25-2 아크 트래킹 명령 버튼 클릭
Step 1: 티칭 프로그램, 프로그램 프로그래밍`을 클릭한 뒤 `용접 명령 아래의 아크 트래킹 버튼을 선택해 클릭하고, 아크 트래킹 명령 설정 페이지로 들어갑니다.
그림 9.25-3 샘플링 오프셋 아크 트래킹 설정 페이지
Step 2: 오프셋 아크 트래킹은 좌우 보상에 작용합니다. 좌우 보상 서브페이지를 클릭하고, 오프셋 방식 드롭다운에서 샘플링`을 선택한 뒤 샘플링 시작 주기를 설정합니다. 이때 샘플링 시작 주기는 좌우 보상 시작 시간보다 작아야 합니다. 명령 타입에서 `시작`을 선택하고 `추가 버튼을 클릭해 Lua 명령을 생성합니다.
그림 9.25-4 샘플링 오프셋 아크 트래킹 종료 명령 추가
Step 3: 웨이빙 운동 명령을 추가한 뒤, 아크 트래킹 명령 타입 `종료`를 선택하고 `추가`를 클릭해 대응하는 Lua 명령을 생성합니다.
9.25.2. 퍼센트 오프셋 아크 트래킹
퍼센트 오프셋은 아크 트래킹 과정에서 입력된 샘플링 전류에 퍼센트 게인을 적용해 좌우 웨이빙 주기의 전류에 편차를 발생시키고, 로봇이 편차가 적용된 신호에 대해 자동 보상을 수행하게 합니다.
참고
웨이빙 진폭이 작고 홈 각도가 클수록 좌우 전류 편차는 작아지며, 조정 퍼센트도 작아집니다. 1% 간격으로 조정하며 디버깅하는 것을 권장합니다.
퍼센트 오프셋 명령 설정 절차는 다음과 같습니다.
그림 9.25-5 아크 트래킹 명령 버튼 클릭
Step 1: 티칭 프로그램, 프로그램 프로그래밍`을 클릭한 뒤 `용접 명령 아래의 아크 트래킹 버튼을 선택해 클릭하고, 아크 트래킹 명령 설정 페이지로 들어갑니다.
그림 9.25-6 샘플링 오프셋 아크 트래킹 설정 페이지
Step 2: 오프셋 아크 트래킹은 좌우 보상에 작용합니다. 좌우 보상 서브페이지를 클릭하고, 오프셋 방식 드롭다운에서 퍼센트`를 선택한 뒤 퍼센트 값을 설정합니다. 양수 값은 전반 주기의 전류를 게인해 후반 주기 방향으로 보상하고, 음수 값은 그 반대입니다. 명령 타입에서 `시작`을 선택하고 `추가 버튼을 클릭해 Lua 명령을 생성합니다.
그림 9.25-7 퍼센트 오프셋 아크 트래킹 종료 명령 추가
Step 3: 웨이빙 운동 명령을 추가한 뒤, 아크 트래킹 명령 타입 `종료`를 선택하고 `추가`를 클릭해 대응하는 Lua 명령을 생성합니다.
1단계 오프셋 트래킹의 전형적인 Lua 프로그램 구조는 다음과 같습니다.
그림 9.25-8 1단계 전형적 오프셋 아크 트래킹 Lua 프로그램
9.26. 커스텀 충돌 검출 임계값 기능
9.26.1. 개요
커스텀 충돌 검출 임계값 기능은 현재의 수동 충돌 레벨 설정 기능을 보완하는 기능입니다. 현재 충돌 레벨 설정이 사용 시나리오를 만족하지 못할 경우, 사용자는 실제 상황에 맞춰 커스텀 충돌 검출 임계값을 설정할 수 있습니다. 충돌 검출 임계값은 관절 검출 임계값과 TCP 검출 임계값으로 나뉩니다.
9.26.2. 기능 설정 설명
Step1: `티칭 프로그램`을 클릭하고 `프로그램 프로그래밍`을 선택해 해당 인터페이스를 엽니다.
Step2: 상단의 새로 만들기 버튼을 클릭하고 `example`을 입력한 뒤 `empty.lua`를 선택해 새 Lua 스크립트를 생성합니다. 아래 그림을 참조하십시오.
그림 9.26-1 새 Lua 스크립트 생성
9.26.2.1. 관절 검출 임계값 기능 설정 설명
9.26.2.1.1. 파라미터 설정 설명
Step1: 제어 명령 인터페이스에서 충돌 검출 기능을 선택합니다. 그림 2를 참조하십시오. 충돌 검출 시작`을 클릭하고 검출 상태 항목에서 `관절만`을 선택합니다. 실제 필요에 따라 `J1-J6 입력값을 수정합니다. 수치 범위의 단위는 NM`입니다. 이 모드에서는 `X-RZ 방향의 TCP 임계값 수정이 적용되지 않습니다. 실제 필요에 따라 블로킹 여부를 비블로킹 또는 블로킹`으로 선택합니다. `추가 버튼을 클릭하면 시작 명령 추가가 완료됩니다.
Step2: 충돌 검출 종료`를 클릭하고 `추가 버튼을 클릭하면 종료 명령 추가가 완료됩니다. 프로그램 프리뷰 인터페이스는 그림 3을 참조하십시오. 적용 버튼을 클릭하면 기능 추가가 완료됩니다.
참고
커스텀 충돌 검출 임계값 기능은 일련의 명령이므로, 시작한 후에는 적절한 시점에 종료해야 합니다.
Step3: 충돌 검출 기능 안에서 대응하는 운동 명령을 추가합니다. 그림 4를 참조하십시오.
그림 9.26-2 관절 검출 임계값 설정 인터페이스
그림 9.26-3 프로그램 프리뷰 인터페이스
그림 9.26-4 Lua 스크립트 프로그램 예시 인터페이스
9.26.2.2. TCP 검출 임계값 기능 설정 설명
9.26.2.2.1. 파라미터 설정 설명
Step1: 제어 명령 인터페이스에서 충돌 검출 기능을 선택합니다. 그림 5를 참조하십시오. 충돌 검출 시작`을 클릭하고 검출 상태 항목에서 `TCP만`을 선택합니다. 실제 필요에 따라 `X-RZ 방향 입력값을 수정합니다. 수치 범위의 단위는 N`입니다. 이 모드에서는 `J1-J6 관절 임계값 수정이 적용되지 않습니다. 실제 필요에 따라 블로킹 여부를 비블로킹 또는 블로킹`으로 선택합니다. `추가 버튼을 클릭하면 시작 명령 추가가 완료됩니다.
Step2: 충돌 검출 종료`를 클릭하고 `추가 버튼을 클릭하면 종료 명령 추가가 완료됩니다. 프로그램 프리뷰 인터페이스는 그림 6을 참조하십시오. 적용 버튼을 클릭하면 기능 추가가 완료됩니다.
참고
사용자 정의 충돌 검출 임계값 기능은 일련의 명령으로 구성되므로, 시작한 뒤에는 적절한 시점에 반드시 종료해야 합니다.
그림 9.26-5 TCP 검출 임계값 설정 인터페이스
그림 9.26-6 프로그램 프리뷰 인터페이스
Step3: 충돌 검출 기능 안에서 대응하는 운동 명령을 추가합니다. 그림 7을 참조하십시오.
그림 9.26-7 Lua 스크립트 프로그램 예시 인터페이스
9.26.2.3. 관절 및 TCP 검출 임계값 기능 설정 설명
9.26.2.3.1. 파라미터 설정 설명
Step1: 제어 명령 인터페이스에서 충돌 검출 기능을 선택합니다. 그림 8을 참조하십시오. 충돌 검출 시작`을 클릭하고 검출 상태 항목에서 `관절과 TCP`를 선택합니다. 실제 필요에 따라 `J1-J6`과 `X-RZ 방향 입력값을 수정합니다. 여기서 J1-J6 수치 범위의 단위는 NM, X-RZ 방향 입력값의 단위는 N`입니다. 실제 필요에 따라 블로킹 여부를 `비블로킹 또는 블로킹`으로 선택합니다. `추가 버튼을 클릭하면 시작 명령 추가가 완료됩니다.
그림 9.26-8 관절 및 TCP 검출 임계값 설정 인터페이스
Step2: 충돌 검출 종료`를 클릭하고 `추가 버튼을 클릭하면 종료 명령 추가가 완료됩니다. 프로그램 프리뷰 인터페이스는 그림 9를 참조하십시오. 적용 버튼을 클릭하면 기능 추가가 완료됩니다.
참고
사용자 정의 충돌 검출 임계값 기능은 일련의 명령으로 구성되므로, 시작한 뒤에는 적절한 시점에 반드시 종료해야 합니다.
그림 9.26-9 프로그램 프리뷰 인터페이스
Step3: 충돌 검출 기능 안에서 대응하는 운동 명령을 추가합니다. 그림 10을 참조하십시오.
그림 9.26-10 Lua 스크립트 프로그램 예시 인터페이스
9.26.2.4. 검출 임계값 권장 설정
9.26.2.4.1. 관절 검출 임계값
권장 관절 검출 임계값은 충돌 레벨을 10으로 설정했을 때에 해당합니다. 값이 클수록 충돌 검출 감도는 낮아집니다. 수치 범위의 단위는 `NM`입니다. 표의 데이터는 참고용이며, 실제 값은 로봇 실행 속도와 부하 상황에 맞춰 조정해야 합니다.
표 9.26-1 관절 권장 임계값
로봇 타입 |
J1 |
J2 |
J3 |
J4 |
J5 |
J6 |
RY6P3L622 |
0.4 |
0.7 |
0.6 |
0.3 |
0.3 |
0.3 |
RY6P3L622-WMS |
0.4 |
0.7 |
0.6 |
0.3 |
0.3 |
0.3 |
RY6P3L622-WML |
0.4 |
0.7 |
0.6 |
0.3 |
0.3 |
0.3 |
RY6P3L622-C |
0.4 |
0.7 |
0.6 |
0.3 |
0.3 |
0.3 |
RY6P5L922 |
0.6 |
1 |
0.8 |
0.3 |
0.3 |
0.3 |
RY6P10L1400 |
2.5 |
3.6 |
0.8 |
0.6 |
0.6 |
0.6 |
RY6P16L1034 |
2.5 |
3.6 |
0.8 |
0.6 |
0.6 |
0.6 |
RY6P20L1854 |
5 |
8 |
4.5 |
0.9 |
0.9 |
0.9 |
RY6P30L1374 |
5 |
8 |
4.5 |
0.9 |
0.9 |
0.9 |
9.26.2.4.2. TCP 검출 임계값
TCP 검출 임계값은 값이 클수록 충돌 검출 감도가 낮아집니다. 수치 범위의 단위는 `N`입니다. 표의 데이터는 참고용이며, 실제 값은 로봇 실행 속도와 부하 상황에 맞춰 조정해야 합니다.
표 9.26-2 TCP 검출 임계값
로봇 타입 |
X |
Y |
Z |
RX |
RY |
RZ |
RY6P3L622 |
300 |
300 |
300 |
20 |
20 |
20 |
RY6P3L622-WMS |
300 |
300 |
300 |
20 |
20 |
20 |
RY6P3L622-WML |
300 |
300 |
300 |
20 |
20 |
20 |
RY6P3L622-C |
300 |
300 |
300 |
20 |
20 |
20 |
RY6P5L922 |
300 |
300 |
300 |
20 |
20 |
20 |
RY6P10L1400 |
500 |
500 |
500 |
35 |
35 |
35 |
RY6P16L1034 |
500 |
500 |
500 |
35 |
35 |
35 |
RY6P20L1854 |
800 |
800 |
800 |
60 |
60 |
60 |
RY6P30L1374 |
800 |
800 |
800 |
60 |
60 |
60 |
9.27. T형 속도 특성 최적화 + blending 평활 기능
9.27.1. 개요
두 개의 궤적 사이에서 blending을 수행하면 완전 정지로 인한 잦은 시작/정지 문제를 피하고 로봇 운동 효율을 높일 수 있습니다. 이 기능은 주로 PTP, LIN, ARC, CIRCLE 명령 사이의 blending을 대상으로 하며, 두 가지 방식으로 구현할 수 있습니다. `Lua 명령 방식`과 `운동 설정 스위치 방식`입니다.
9.27.2. 조작 절차
9.27.2.1. PTP-PTP blending
9.27.2.1.1. Lua 명령 방식 사용
Step1: PTP-PTP 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-1 가속도 평활 PTP 명령의 blending 명령 설정
Step3: 복수의 PTP 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-PTP blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-2 Lua 명령 방식에 의한 PTP-PTP 간 blending 전형 프로그램
9.27.2.1.2. 운동 설정 스위치 방식 사용
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-3 가속도 평활 모드 설정 스위치 설정
Step2: PTP-PTP 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-4 일반 PTP 명령의 blending 명령 설정
Step4: 복수의 PTP 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-PTP blending 기능이 구현됩니다. 전형 프로그램은 일반 PTP-PTP 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-5 설정 스위치를 사용한 PTP-PTP 간 blending 전형 프로그램
9.27.2.2. PTP-LIN blending
9.27.2.2.1. Lua 명령 방식 사용
Step1: PTP-LIN 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-6 가속도 평활 PTP 명령의 blending 명령 설정
Step3: 복수의 PTP와 LIN 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-LIN blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-7 Lua 명령 방식에 의한 PTP-LIN 간 blending 전형 프로그램
9.27.2.2.2. 운동 설정 스위치 방식 사용
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-8 가속도 평활 모드 설정 스위치 설정
Step2: PTP-LIN 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-9 일반 PTP 명령의 blending 명령 설정
Step4: 복수의 PTP와 LIN 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-LIN blending 기능이 구현됩니다. 전형 프로그램은 일반 PTP-LIN 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-10 설정 스위치를 사용한 PTP-LIN 간 blending 전형 프로그램
9.27.2.3. PTP-ARC blending
9.27.2.3.1. Lua 명령 방식을 사용하는 경우
Step1: PTP-ARC 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-11 가속도 평활 PTP 명령의 blending 명령 설정
Step3: 복수의 PTP와 ARC 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-ARC blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-12 Lua 명령 방식에 의한 PTP-ARC 간 blending 전형 프로그램
9.27.2.3.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-13 가속도 평활 모드 설정 스위치 설정
Step2: PTP-ARC 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-14 일반 PTP 명령의 blending 명령 설정
Step4: 복수의 PTP와 ARC 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-ARC blending 기능이 구현됩니다. 전형 프로그램은 일반 PTP-ARC 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-15 설정 스위치를 사용한 PTP-ARC 간 blending 전형 프로그램
9.27.2.4. PTP-CIRCLE blending
9.27.2.4.1. Lua 명령 방식을 사용하는 경우
Step1: PTP-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-16 가속도 평활 PTP 명령의 blending 명령 설정
Step3: 복수의 PTP와 CIRCLE 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-CIRCLE blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-17 Lua 명령 방식에 의한 PTP-CIRCLE 간 blending 전형 프로그램
9.27.2.4.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-18 가속도 평활 모드 설정 스위치 설정
Step2: PTP-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고, 운동 명령 중 포인트 to 포인트 명령을 선택한 뒤 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-19 일반 PTP 명령의 blending 명령 설정
Step4: 복수의 PTP와 CIRCLE 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 PTP-CIRCLE blending 기능이 구현됩니다. 전형 프로그램은 일반 PTP-CIRCLE 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-20 설정 스위치를 사용한 PTP-CIRCLE 간 blending 전형 프로그램
9.27.2.5. LIN-PTP blending
9.27.2.5.1. Lua 명령 방식 사용
Step1: LIN-PTP 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 운동 명령 중 직선 명령을 선택한 뒤, 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-21 가속도 평활 PTP 명령의 blending 명령 설정
Step3: 복수의 LIN과 PTP 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-PTP blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-22 Lua 명령 방식에 의한 LIN-PTP 간 blending 전형 프로그램
9.27.2.5.2. 운동 설정 스위치 방식 사용
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-23 가속도 평활 모드 설정 스위치 설정
Step2: LIN-PTP 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 운동 명령 중 직선 명령을 선택한 뒤, 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-24 일반 LIN 명령의 blending 명령 설정
Step4: Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-PTP blending 기능이 구현됩니다. 전형 프로그램은 일반 LIN-PTP 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-25 설정 스위치를 사용한 LIN-PTP 간 blending 전형 프로그램
9.27.2.6. LIN-LIN blending
9.27.2.6.1. Lua 명령 방식 사용
Step1: LIN-LIN 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 운동 명령 중 직선 명령을 선택한 뒤, 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-26 가속도 평활 LIN 명령의 blending 명령 설정
Step3: 복수의 LIN 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-LIN blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-27 Lua 명령 방식에 의한 LIN-LIN 간 blending 전형 프로그램
9.27.2.6.2. 운동 설정 스위치 방식 사용
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-28 가속도 평활 모드 설정 스위치 설정
Step2: LIN-LIN 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 운동 명령 중 직선 명령을 선택한 뒤, 명령 편집`에서 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-29 일반 LIN 명령의 blending 명령 설정
Step4: Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-LIN blending 기능이 구현됩니다. 전형 프로그램은 일반 LIN-LIN 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-30 설정 스위치를 사용한 LIN-LIN 간 blending 전형 프로그램
9.27.2.7. LIN-ARC blending
9.27.2.7.1. Lua 명령 방식을 사용하는 경우
Step1: LIN-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 직선 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-31 가속도 평활 LIN 명령의 blending 명령 설정
Step3: 복수의 LIN과 ARC 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-ARC blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에 대해서만 최적화된 T형 속도 운동을 사용하며, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-32 Lua 명령 방식에 의한 LIN-ARC 간 blending 전형 프로그램
9.27.2.7.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정`을 클릭하고 `가속도 평활 모드 스위치를 켭니다.
그림 9.27-33 가속도 평활 모드 설정 스위치 설정
Step2: LIN-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 직선 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-34 일반 LIN 명령의 blending 명령 설정
Step4: Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-ARC blending 기능이 구현됩니다. 전형 프로그램은 일반 LIN-ARC 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-35 설정 스위치를 사용한 LIN-ARC 간 blending 전형 프로그램
9.27.2.8. LIN-CIRCLE blending
9.27.2.8.1. Lua 명령 방식을 사용하는 경우
Step1: LIN-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 직선 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-36 가속도 평활 LIN 명령의 blending 명령 설정
Step3: 복수의 LIN과 CIRCLE 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-CIRCLE blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에 대해서만 최적화된 T형 속도 운동을 사용하며, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-37 Lua 명령 방식에 의한 LIN-CIRCLE 간 blending 전형 프로그램
9.27.2.8.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정`을 클릭하고 `가속도 평활 모드 스위치를 켭니다.
그림 9.27-38 가속도 평활 모드 설정 스위치 설정
Step2: LIN-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A8`을 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 직선 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에서 `전이 반경`과 `전이 방식 파라미터를 설정합니다. 전이 방식은 코너 전이`와 `내접 전이 중에서 선택할 수 있습니다.
그림 9.27-39 일반 LIN 명령의 blending 명령 설정
Step4: 복수의 LIN과 CIRCLE 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 LIN-CIRCLE blending 기능이 구현됩니다. 전형 프로그램은 일반 LIN-CIRCLE 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-40 설정 스위치를 사용한 LIN-CIRCLE 간 blending 전형 프로그램
9.27.2.9. ARC-PTP blending
9.27.2.9.1. Lua 명령 방식을 사용하는 경우
Step1: ARC-PTP 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 원호 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-41 가속도 평활 ARC 명령의 blending 명령 설정
Step3: 복수의 ARC와 PTP 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 ARC-PTP blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에 대해서만 최적화된 T형 속도 운동을 사용하며, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-42 Lua 명령 방식에 의한 ARC-PTP 간 blending 전형 프로그램
9.27.2.9.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정`을 클릭하고 `가속도 평활 모드 스위치를 켭니다.
그림 9.27-43 가속도 평활 모드 설정 스위치 설정
Step2: ARC-PTP 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 원호 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-44 일반 ARC 명령의 blending 명령 설정
Step4: 복수의 ARC와 PTP 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 ARC-PTP blending 기능이 구현됩니다. 전형 프로그램은 일반 ARC-PTP 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-45 설정 스위치를 사용한 ARC-PTP 간 blending 전형 프로그램
9.27.2.10. ARC-LIN blending
9.27.2.10.1. Lua 명령 방식을 사용하는 경우
Step1: ARC-LIN 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 원호 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-46 가속도 평활 ARC 명령의 blending 명령 설정
Step3: 복수의 ARC와 LIN 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 ARC-LIN blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에 대해서만 최적화된 T형 속도 운동을 사용하며, 그 외 명령에는 기존 T형 속도 운동을 사용합니다.
그림 9.27-47 Lua 명령 방식에 의한 ARC-LIN 간 blending 전형 프로그램
9.27.2.10.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정`을 클릭하고 `가속도 평활 모드 스위치를 켭니다.
그림 9.27-48 가속도 평활 모드 설정 스위치 설정
Step2: ARC-LIN 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `운동 명령 안의 원호 명령을 선택하고, 명령 편집`에서 티칭 포인트를 선택해 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-49 일반 ARC 명령의 blending 명령 설정
Step4: 복수의 ARC와 LIN 명령을 추가한 뒤 Lua 프로그램을 생성해 실행합니다. 이를 통해 ARC-LIN blending 기능이 구현됩니다. 전형 프로그램은 일반 ARC-LIN 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-50 설정 스위치를 사용한 ARC-LIN 간 blending 전형 프로그램
9.27.2.11. ARC-ARC blending
9.27.2.11.1. Lua 명령 방식을 사용하는 경우
Step1: ARC-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `원호 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-51 가속도 평활 ARC 명령의 blending 명령 설정
Step3: 여러 개의 ARC 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 ARC-ARC blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-52 Lua 명령 방식에 의한 ARC-ARC 간 blending 전형 프로그램
9.27.2.11.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-53 가속도 평활 모드 설정 스위치 설정
Step2: ARC-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `원호 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-54 일반 ARC 명령의 blending 명령 설정
Step4: 여러 개의 ARC 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 ARC-ARC blending 기능이 구현됩니다. 전형 프로그램은 일반적인 ARC-ARC 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-55 설정 스위치를 사용한 ARC-ARC 간 blending 전형 프로그램
9.27.2.12. ARC-CIRCLE blending
9.27.2.12.1. Lua 명령 방식을 사용하는 경우
Step1: ARC-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `원호 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-56 가속도 평활 ARC 명령의 blending 명령 설정
Step3: 여러 개의 ARC`와 `CIRCLE 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 ARC-CIRCLE blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-57 Lua 명령 방식에 의한 ARC-CIRCLE 간 blending 전형 프로그램
9.27.2.12.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-58 가속도 평활 모드 설정 스위치 설정
Step2: ARC-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `원호 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-59 일반 ARC 명령의 blending 명령 설정
Step4: 여러 개의 ARC`와 `CIRCLE 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 ARC-CIRCLE blending 기능이 구현됩니다. 전형 프로그램은 일반적인 ARC-CIRCLE 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-60 설정 스위치를 사용한 ARC-CIRCLE 간 blending 전형 프로그램
9.27.2.13. CIRCLE-PTP blending
9.27.2.13.1. Lua 명령 방식을 사용하는 경우
Step1: CIRCLE-PTP 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-61 가속도 평활 CIRCLE 명령의 blending 명령 설정
Step3: 여러 개의 CIRCLE`와 `PTP 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-PTP blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-62 Lua 명령 방식에 의한 CIRCLE-PTP 간 blending 전형 프로그램
9.27.2.13.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-63 가속도 평활 모드 설정 스위치 설정
Step2: CIRCLE-PTP 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A9`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-64 일반 CIRCLE 명령의 blending 명령 설정
Step4: 여러 개의 CIRCLE`와 `PTP 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-PTP blending 기능이 구현됩니다. 전형 프로그램은 일반적인 CIRCLE-PTP 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-65 설정 스위치를 사용한 CIRCLE-PTP 간 blending 전형 프로그램
9.27.2.14. CIRCLE-LIN blending
9.27.2.14.1. Lua 명령 방식을 사용하는 경우
Step1: CIRCLE-LIN 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-66 가속도 평활 CIRCLE 명령의 blending 명령 설정
Step3: 여러 개의 CIRCLE`와 `LIN 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-LIN blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-67 Lua 명령 방식에 의한 CIRCLE-LIN 간 blending 전형 프로그램
9.27.2.14.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-68 가속도 평활 모드 설정 스위치 설정
Step2: CIRCLE-LIN 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-69 일반 CIRCLE 명령의 blending 명령 설정
Step4: 여러 개의 CIRCLE`와 `LIN 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-LIN blending 기능이 구현됩니다. 전형 프로그램은 일반적인 CIRCLE-LIN 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-70 설정 스위치를 사용한 CIRCLE-LIN 간 blending 전형 프로그램
9.27.2.15. CIRCLE-ARC blending
9.27.2.15.1. Lua 명령 방식을 사용하는 경우
Step1: CIRCLE-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-71 가속도 평활 CIRCLE 명령의 blending 명령 설정
Step3: 여러 개의 CIRCLE`와 `ARC 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-ARC blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-72 Lua 명령 방식에 의한 CIRCLE-ARC 간 blending 전형 프로그램
9.27.2.15.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-73 가속도 평활 모드 설정 스위치 설정
Step2: CIRCLE-ARC 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-74 일반 CIRCLE 명령의 blending 명령 설정
Step4: 여러 개의 CIRCLE`와 `ARC 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-ARC blending 기능이 구현됩니다. 전형 프로그램은 일반적인 CIRCLE-ARC 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-75 설정 스위치를 사용한 CIRCLE-ARC 간 blending 전형 프로그램
9.27.2.16. CIRCLE-CIRCLE blending
9.27.2.16.1. Lua 명령 방식을 사용하는 경우
Step1: CIRCLE-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-76 가속도 평활 CIRCLE 명령의 blending 명령 설정
Step3: 여러 개의 CIRCLE 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-CIRCLE blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 최적화된 T형 속도 운동을 사용하고, 나머지 명령에는 원래의 T형 속도 운동을 사용합니다.
그림 9.27-77 Lua 명령 방식에 의한 CIRCLE-CIRCLE 간 blending 전형 프로그램
9.27.2.16.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭한 뒤 가속도 평활 모드 스위치를 켭니다.
그림 9.27-78 가속도 평활 모드 설정 스위치 설정
Step2: CIRCLE-CIRCLE 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A12`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭한 뒤, 운동 명령`의 `완전 원 명령을 선택하고 명령 편집`에서 티칭 포인트를 선택한 후 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-79 일반 CIRCLE 명령의 blending 명령 설정
Step4: 여러 개의 CIRCLE 명령을 추가한 뒤 Lua 프로그램을 생성하여 실행합니다. 이렇게 하면 CIRCLE-CIRCLE blending 기능이 구현됩니다. 전형 프로그램은 일반적인 CIRCLE-CIRCLE 프로그램과 동일하며, 이 방식은 모든 명령에 대해 최적화된 T형 속도 운동을 사용합니다.
그림 9.27-80 설정 스위치를 사용한 CIRCLE-CIRCLE 간 blending 전형 프로그램
9.27.2.17. 확장축 비동기 운동 blending
9.27.2.17.1. Lua 명령 방식 사용
Step1: 확장축 비동기 운동 blending 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 주변기기 명령 중 확장축 명령을 선택한 뒤, 운동 방식`에서 `비동기`를 선택하고 티칭 포인트를 선택한 뒤 디버그 속도를 설정합니다. 운동 보호에서 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-81 확장축 비동기 운동 blending 명령 설정
Step3: 운동 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 확장축 비동기 운동 blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에만 S형 속도 계획을 사용해 blending을 수행하고, 그 외 명령에는 T형 속도 계획을 사용합니다.
그림 9.27-82 Lua 명령 방식에 의한 확장축 비동기 운동 blending 전형 프로그램
9.27.2.17.2. 운동 설정 스위치 방식 사용
Step1: 초기 설정 -> 안전 -> 운동 설정 버튼을 클릭하고 가속도 평활 모드 스위치를 켭니다.
그림 9.27-83 가속도 평활 모드 설정 스위치 설정
Step2: 확장축 비동기 운동 blending 기능을 실행할 티칭 포인트를 선택합니다. 이 문서에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍 버튼을 클릭하고 주변기기 명령 중 확장축 명령을 선택한 뒤, 운동 방식`에서 `비동기`를 선택하고 티칭 포인트를 선택한 뒤 디버그 속도를 설정합니다. 운동 보호에서 `없음`을 선택하고, 평활화가 필요한 점에 `평활 전이 파라미터를 설정합니다.
그림 9.27-84 일반 확장축 비동기 운동의 blending 명령 설정
Step4: 복수의 운동 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 확장축 비동기 운동 blending 기능이 구현됩니다. 전형 프로그램은 일반 확장축 운동 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 S형 속도 계획을 사용해 blending 운동을 수행합니다.
그림 9.27-85 설정 스위치를 사용한 확장축 비동기 운동 blending 전형 프로그램
9.27.2.18. 확장축 동기 운동 blending
9.27.2.18.1. Lua 명령 방식을 사용하는 경우
Step1: 확장축 동기 운동 blending 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `주변기기 명령 안의 확장축 명령을 선택하고, 운동 방식`에서 `동기`를 선택한 뒤 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서는 `가속도 평활 모드`를 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-86 확장축 동기 운동 blending 명령 설정
Step3: 운동 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 확장축 동기 운동의 blending 기능이 구현됩니다. 이 방식은 AccSmoothStart()`와 `AccSmoothEnd() 사이의 명령에 대해서만 S형 속도 계획을 사용해 blending을 수행하고, 그 외 명령에는 T형 속도 계획을 사용합니다.
그림 9.27-87 Lua 명령 방식에 의한 확장축 동기 운동 blending 전형 프로그램
9.27.2.18.2. 운동 설정 스위치 방식을 사용하는 경우
Step1: 초기 설정 -> 안전 -> 운동 설정`을 클릭하고 `가속도 평활 모드 스위치를 켭니다.
그림 9.27-88 가속도 평활 모드 설정 스위치 설정
Step2: 확장축 동기 운동 blending 기능을 실행할 티칭 포인트를 선택합니다. 본 매뉴얼에서는 `A0`~`A5`를 티칭 포인트 이름으로 사용합니다.
Step3: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭한 뒤 `주변기기 명령 안의 확장축 명령을 선택하고, 운동 방식`에서 `동기`를 선택한 뒤 티칭 포인트를 선택하고 디버그 속도를 설정합니다. 운동 보호에서는 `없음`을 선택하고, 평활화가 필요한 점에서 `평활 전이 파라미터를 설정합니다.
그림 9.27-89 일반 확장축 동기 운동의 blending 명령 설정
Step4: 복수의 운동 명령을 추가하고 Lua 프로그램을 생성해 실행합니다. 이를 통해 확장축 동기 운동의 blending 기능이 구현됩니다. 전형 프로그램은 일반 확장축 운동 프로그램과 동일합니다. 이 방식은 모든 명령에 대해 S형 속도 계획을 사용해 blending 운동을 수행합니다.
그림 9.27-90 설정 스위치를 사용한 확장축 동기 운동 blending 전형 프로그램
9.28. 진동 경사각 기능
9.28.1. 개요
로봇 진동 경사각 기능은 로봇 엔드 툴이 진동 운동 과정 중 진동 좌표계 Rx 방향으로 사용자 지정 진동 각도만큼 회전하는 것을 지원하며, 겹침 이음 용접 등의 작업 과정에서 필렛 용접과 양쪽 접합 재료 간 접촉 길이 차이를 줄여 줍니다.
9.28.2. 조작 절차
로봇 Web 제어 인터페이스에서 티칭 프로그램 -> 프로그램 편집`을 순서대로 클릭해 `운동 명령 인터페이스로 들어갑니다. 아래 그림을 참조하십시오.
그림 9.28-1 운동 명령 인터페이스
운동 명령 인터페이스에서 진동`을 클릭해 `Weave 명령 편집 인터페이스로 들어갑니다.
그림 9.28-2 Weave 명령 편집 인터페이스
Weave 명령 편집 인터페이스에서 번호 선택 드롭다운 박스를 클릭하면 서로 다른 번호의 진동 파라미터 설정을 선택할 수 있습니다. 번호 선택 드롭다운 박스 오른쪽의 버튼을 클릭하면 해당 번호의 진동 파라미터 설정을 수정할 수 있습니다.
그림 9.28-3 진동 파라미터 설정
진동 파라미터 설정의 진동 방향 경사각 항목에 진동 좌표계 Rx 방향 주변의 사용자 지정 회전 각도를 입력하고 `설정`을 클릭해 진동 파라미터 설정을 완료합니다.
참고
진동 방향 경사각 파라미터는 진동 타입 파라미터 중 삼각파 진동, 사인파 진동, 원형 진동-시계 방향, `원형 진동-반시계 방향`에 적용됩니다.
아래에서는 Lin 운동을 예로 들어 진동 경사각 기능을 구현합니다.
Step1: Weave 명령 편집 인터페이스의 명령 편집 화면에서 번호 선택 드롭다운 박스를 통해 진동 경사각 파라미터가 설정된 번호를 선택합니다. 명령 타입 항목에서 `진동 시작`을 클릭하고 `추가`를 클릭하면 진동 기능이 시작됩니다.
그림 9.28-4 진동 시작 추가
Step2: 운동 명령 인터페이스에서 `직선`을 클릭하면 Lin 직선 운동을 생성할 수 있습니다. 이 단계는 기본 운동 명령이므로 자세한 설명은 생략합니다.
Step3: Weave 명령 편집 인터페이스의 명령 타입 항목에서 `진동 종료`를 클릭하고 `추가`를 클릭하면 진동 기능이 종료됩니다.
그림 9.28-5 진동 정지 추가
Step4: Step1~3이 완료된 뒤 Weave 명령 편집 인터페이스의 프로그램 프리뷰 항목에서 Step1~3이 올바르게 설정되었는지 확인할 수 있습니다.
그림 9.28-6 진동 프로그램 프리뷰
Step5: 프로그램 프리뷰 항목에서 프로그램 설정을 확인한 뒤 `적용`을 클릭하면 실행 가능한 Lua 프로그램이 자동 생성됩니다.
그림 9.28-7 전형적인 Lua 진동 운동 프로그램
9.29. 용접 프로세스 파라미터 점진 변화(전류, 전압, 용접부 전진 속도) 기능
9.29.1. 개요
용접 프로세스 파라미터 점진 변화(전류, 전압 및 용접부 전진 속도) 기능은 용접 과정 중 프로세스 파라미터의 변화 범위를 사용자 지정할 수 있도록 지원합니다.
9.29.2. 전류/전압 파라미터 점진 변화 절차
9.29.2.1. 전류 파라미터 점진 변화
로봇 Web 제어 인터페이스에서 티칭 프로그램 -> 프로그램 프로그래밍`을 순서대로 클릭해 `용접 명령 인터페이스로 들어갑니다. 아래 그림을 참조하십시오.
그림 9.29-1 용접 명령 인터페이스
용접 명령 인터페이스에서 용접`을 클릭해 `Weld 명령 설정 인터페이스로 들어갑니다.
그림 9.29-2 Weld 명령 설정 인터페이스
Weld 명령 설정 인터페이스의 명령 타입 항목에서 용접 전류 점진 변화 시작`을 클릭하고 `시작 전류, 종료 전류, 용접 전류 제어 AO, 평활 선택 파라미터를 설정합니다.
예를 들어 시작 전류`를 `260 A, 종료 전류`를 `220 A, 용접 전류 제어 AO`를 제어 박스 아날로그 채널 `Ctrl-AO0, 평활 선택`을 `Break`로 설정하고 `추가`를 클릭하면 설정이 완료됩니다. `프로그램 프리뷰 항목에서 명령 파라미터에 잘못된 설정이 없는지 확인합니다.
그림 9.29-3 용접 전류 점진 변화 시작 명령 파라미터
Weld 명령 설정 인터페이스의 명령 타입 항목에서 용접 전류 점진 변화 종료`를 클릭합니다. 파라미터 설정은 필요하지 않습니다. `추가`를 클릭하면 설정이 완료됩니다. `프로그램 프리뷰 항목에서 명령 파라미터에 잘못된 설정이 없는지 확인합니다.
그림 9.29-4 용접 전류 점진 변화 종료 명령 파라미터
용접 전류 점진 변화 시작 명령과 용접 전류 점진 변화 종료 명령의 파라미터 설정이 완료된 뒤 `적용`을 클릭하면 실행 가능한 LUA 프로그램이 자동 생성됩니다.
참고
용접 전류 점진 변화 시작 명령과 용접 전류 점진 변화 종료 명령의 파라미터를 설정하는 과정에서는 운동 명령도 함께 설정해야 합니다. 아래는 일련의 아크 트래킹 운동 명령과 전류 파라미터 점진 변화를 조합한 전형적인 LUA 프로그램 예시입니다.
그림 9.29-5 전류 파라미터 점진 변화 아크 트래킹 LUA 프로그램 예시
9.29.2.2. 전압 파라미터 점진 변화
Weld 명령 설정 화면의 명령 타입 항목에서 용접 전압 점진 변화 시작`을 클릭하고 `시작 전압, 종료 전압, 용접 전압 제어 AO, 평활 선택 파라미터를 설정합니다.
예를 들어 시작 전압`을 `25V, 종료 전압`을 `22V, 용접 전압 제어 AO`를 `Ctrl-AO1 제어 박스 아날로그 채널, 평활 선택`을 `Break`로 설정하고 `추가`를 클릭하면 설정이 완료됩니다. `프로그램 프리뷰 영역에서 명령 설정이 잘못되지 않았는지 확인합니다.
그림 9.29-6 용접 전압 점진 변화 시작 명령 파라미터
Weld 명령 설정 화면의 명령 타입 항목에서 용접 전압 점진 변화 종료`를 클릭합니다. 이때 별도의 파라미터 설정은 필요 없습니다. `추가`를 클릭하면 설정이 완료되며, `프로그램 프리뷰 영역에서 명령 설정 오류가 없는지 확인합니다.
그림 9.29-7 용접 전압 점진 변화 종료 명령 파라미터
용접 전압 점진 변화 시작 명령과 용접 전압 점진 변화 종료 명령의 파라미터 설정이 완료된 뒤 `적용`을 클릭하면 실행 가능한 LUA 프로그램이 자동 생성됩니다.
그림 9.29-8 전압 파라미터 점진 변화 아크 트래킹 LUA 프로그램 예시
9.29.3. 전진 속도 파라미터 점진 변화 절차
로봇 Web 제어 인터페이스에서 티칭 프로그램 -> 프로그램 프로그래밍`을 차례로 클릭해 `운동 명령 화면으로 들어갑니다.
그림 9.29-9 운동 명령 인터페이스
운동 명령 화면에서 위빙`을 클릭해 `Weave 명령 설정 화면으로 들어갑니다.
그림 9.29-10 Weave 명령 설정 인터페이스
Weave 명령 설정 화면의 명령 타입 항목에서 위빙 점진 변화 시작`을 클릭하고 `시작 속도, 종료 속도, 점진 변화 모드 파라미터를 설정합니다.
예를 들어 점진 변화 모드`를 `위빙+전진 속도, 시작 속도`를 `24 cm/min, 종료 속도`를 `30 cm/min`으로 설정하고 `추가`를 클릭하면 설정이 완료됩니다. `프로그램 프리뷰 영역에서 명령 설정이 잘못되지 않았는지 확인합니다.
그림 9.29-11 위빙+전진 속도 점진 변화 시작 명령 파라미터
Weave 명령 화면의 명령 타입 항목에서 위빙 점진 변화 종료`를 클릭합니다. 이때 별도 파라미터 설정은 필요 없습니다. `추가`를 클릭하면 설정이 완료되며, `프로그램 프리뷰 영역에서 명령 설정 오류가 없는지 확인합니다.
그림 9.29-12 위빙+전진 속도 점진 변화 종료 명령 파라미터
위빙 점진 변화 시작 명령과 위빙 점진 변화 종료 명령의 파라미터 설정이 완료된 뒤 `적용`을 클릭하면 실행 가능한 LUA 프로그램이 자동 생성됩니다.
참고
위빙 점진 변화 시작 명령과 위빙 점진 변화 종료 명령의 파라미터를 설정하는 과정에서는 운동 명령도 함께 설정해야 합니다. 아래는 일련의 아크 트래킹 운동 명령과 전진 속도 파라미터 점진 변화를 조합한 전형적인 LUA 프로그램 예시입니다.
그림 9.29-13 전진 속도 파라미터 점진 변화 아크 트래킹 LUA 프로그램 예시
참고
Weld 명령 설정 화면과 Weave 명령 설정 화면에서 용접 공정 파라미터 점진 변화 명령의 파라미터를 설정할 때는 먼저 제어 박스와 용접기의 통신 방식을 확정해야 합니다. 아날로그 통신과 디지털 통신의 경우 각각 컨트롤러 I/O 또는 `디지털 통신 프로토콜`을 클릭합니다.
9.30. 로봇 ModbusRTU 통신
9.30.1. 개요
ModbusRTU는 산업 생산 현장에서 일반적으로 사용되는 통신 프로토콜입니다. Nurirobot 협동로봇은 고객 장비와의 통신을 위해 ModbusRTU 마스터 스테이션과 ModbusRTU 슬레이브 스테이션의 두 가지 방식을 제공합니다. 협동로봇은 최대 8개의 ModbusRTU 마스터 스테이션이 동시에 외부 장치와 통신하는 것을 지원하며, 각 마스터 스테이션은 최대 128개의 레지스터를 지원합니다. 협동로봇 ModbusRTU 슬레이브 스테이션은 64개의 코일, 64개의 이산 입력, 32개의 유지 레지스터, 32개의 입력 레지스터를 제공합니다. 유지 레지스터와 입력 레지스터의 데이터 형식은 부호형과 부동소수점형을 포함합니다.
또한 협동로봇의 일부 ModbusRTU 슬레이브 스테이션 입력 레지스터 주소는 현재 로봇의 관절 위치, 운동 속도 등의 정보를 피드백하는 데 전용으로 사용되며, 일부 코일 레지스터 주소는 로봇 프로그램 시작, 프로그램 정지, 제어 박스 DO 설정 등의 기능을 제어하는 데 전용으로 사용됩니다. 로봇 ModbusRTU 슬레이브 스테이션은 하나의 마스터 스테이션과만 연결할 수 있습니다. 아래에 자세한 사용 방법을 설명합니다.
9.30.2. 로봇 ModbusRTU 마스터 스테이션 관련 작업 설명
협동로봇을 ModbusRTU 마스터 스테이션으로 사용해 고객 장비와 통신하기 전에, 먼저 고객 장비와 로봇의 485 하드웨어 연결을 확인하십시오. 로봇 ModbusRTU 마스터 스테이션 사용 절차는 다음과 같습니다. ① 마스터 스테이션 추가 ② 레지스터 추가 ③ 통신 테스트 ④ 사용자 프로그램 작성 ⑤ 사용자 프로그램 실행
9.30.2.1. ModbusRTU 마스터 스테이션 추가
WebApp을 열고 `티칭 시뮬레이션`과 `프로그램 티칭`을 차례로 클릭한 다음, 새 사용자 프로그램 `testModbusRTUMaster.lua`를 생성합니다.
그림 9.30-1 ModbusRTU 마스터 스테이션 사용자 프로그램 생성
ModbusRTU 설정 버튼을 클릭해 ModbusRTU 기능 설정 페이지를 엽니다.
그림 9.30-2 ModbusRTU 설정 열기
마스터 스테이션 설정, `Modbus 마스터 스테이션 추가`를 차례로 클릭하면 ModbusRTU 마스터 스테이션 추가가 완료됩니다.
그림 9.30-3 ModbusRTU 마스터 스테이션 추가
슬레이브 스테이션 장비 설정에 맞춰 보레이트, 데이터 비트, 패리티, `스톱 비트`를 순서대로 선택합니다. 각 파라미터의 의미는 다음과 같습니다.
보레이트: ModbusRTU 통신에 사용하는 보레이트입니다. 9600, 14400, 19200, 38400, 56000, 67600, 115200, `128000`을 지원하며 기본값은 `115200`입니다. 슬레이브 스테이션과 동일하게 설정합니다.
데이터 비트: 현재는 `8비트`만 지원합니다. 슬레이브 스테이션과 동일하게 설정합니다.
패리티: 패리티 방식입니다. None, Odd, `Even`을 지원하며 기본값은 `None`입니다. 슬레이브 스테이션과 동일하게 설정합니다.
스톱 비트: 0.5, 1, 1.5, `2`를 지원하며 기본값은 `1`입니다. 슬레이브 스테이션과 동일하게 설정합니다.
그림 9.30-4 ModbusRTU 마스터 스테이션 파라미터 설정
위 파라미터를 올바르게 입력하면 로봇 ModbusRTU 마스터 스테이션이 슬레이브 스테이션과 통신할 수 있습니다. 이미 ModbusRTU 마스터 스테이션 관련 파라미터가 정확히 설정되어 있는데도 로봇과 고객 장비 간 통신이 되지 않는다면 아래 항목을 확인하십시오.
① 로봇과 슬레이브 스테이션 장비의 물리적 485 연결 ② 슬레이브 스테이션 장비의 통신 설정. 우선 시리얼 포트 디버그 도구를 사용해 통신 링크가 정상인지 테스트하는 것을 권장합니다. 예를 들어 PC 측에서 로봇과 동일한 ModbusRTU 파라미터를 설정하고, 로봇 웹 인터페이스에서 새 레지스터를 만든 뒤 0x03`으로 유지 레지스터를 읽어 시리얼 포트 디버그 도구가 데이터를 수신하는지 확인할 수 있습니다. 아래 그림처럼 `0x03 명령으로 0x1000 주소 레지스터를 읽었을 때 PC 측에서 정상적으로 데이터를 수신하면 통신 설정이 올바른 것입니다.
그림 9.30-5 Modbus 연결 상태 검증
이제 로봇 ModbusRTU 마스터 스테이션 생성이 완료되었습니다. 다시 Modbus 마스터 스테이션 추가`를 클릭하면 새로운 ModbusRTU 마스터 스테이션을 만들 수 있습니다. 로봇은 최대 8개의 마스터 스테이션이 동시에 외부 장치와 통신하는 것을 지원합니다. Modbus 마스터 스테이션 오른쪽 위의 `삭제 버튼을 더블클릭하면 해당 마스터 스테이션을 삭제할 수 있습니다.
그림 9.30-6 ModbusRTU 마스터 스테이션 다시 추가
9.30.2.2. ModbusRTU 마스터 스테이션 레지스터 추가
마스터 스테이션 레지스터 추가 버튼을 클릭하면 해당 마스터 스테이션에 레지스터를 추가할 수 있습니다.
그림 9.30-7 ModbusRTU 마스터 스테이션 레지스터 추가
마스터 스테이션 레지스터 타입을 선택하고 주소 번호와 이름을 입력합니다. 각 파라미터의 의미는 다음과 같습니다.
타입: Modbus 기능 코드입니다. 0x01-코일 읽기, 0x02-이산량 읽기, 0x03-유지 레지스터 읽기(부호형 -32768~32767), 0x03-유지 레지스터 읽기(부동소수점형, 32비트로 레지스터 2개·4바이트 점유), 0x04-입력 레지스터 읽기(부호형 -32768~32767), 0x04-입력 레지스터 읽기(부동소수점형, 32비트로 레지스터 2개·4바이트 점유), 0x05-단일 코일 쓰기, 0x06-단일 유지 레지스터 쓰기, `0x0F-복수 코일 쓰기`를 지원합니다. 읽기/쓰기의 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다.
레지스터 주소: 읽기 또는 쓰기를 수행할 ModbusRTU 슬레이브 스테이션 레지스터 주소입니다.
레지스터 수량: 복수 읽기 또는 복수 쓰기 시 조작할 레지스터 수량입니다. 0x05, `0x06`은 수량 `1`만 가능합니다. 최대 12개의 레지스터 조작을 지원합니다.
주소 값: 읽기 표시값 또는 쓰기 조작값입니다. 복수 값 쓰기 시에는 영문 쉼표 `,`로 구분합니다.
그림 9.30-8 ModbusRTU 마스터 스테이션 레지스터 파라미터 설정
다시 마스터 스테이션 레지스터 추가 버튼을 클릭하면 레지스터를 하나 더 추가할 수 있습니다. 레지스터 오른쪽의 삭제 버튼을 더블클릭하면 해당 레지스터를 삭제할 수 있습니다. 아래 그림은 지원되는 기능 코드 레지스터의 예입니다.
그림 9.30-9 복수 마스터 스테이션 레지스터 추가
9.30.2.3. ModbusRTU 마스터 스테이션 통신 테스트
로봇 마스터 스테이션 레지스터에는 현재 레지스터 값을 표시하는 주소 값 숫자 박스가 있습니다. 여기서 0x01, 0x02, 0x03, 0x04 타입 레지스터는 읽기 전용이므로 대응 주소 값은 회색의 수정 불가 숫자 박스로 표시됩니다. 슬레이브 스테이션의 대응 주소 값이 변경되면 로봇 마스터 스테이션은 읽기 버튼을 눌러 해당 레지스터 주소 값을 읽고 현재 값을 동기화해 표시합니다. 0x05, 0x06, 0x0F, 0x10 기능 코드는 쓰기 동작이며 해당 주소 값은 흰색의 수정 가능한 숫자 박스입니다. 로봇 Modbus 마스터 스테이션 설정 페이지에서 값을 변경할 수 있습니다.
그림 9.30-10 Modbus 마스터 스테이션 주소 값
9.30.2.3.1. 마스터 스테이션 레지스터 읽기 테스트
외부 ModbusRTU 슬레이브 스테이션 장치에서 주소 0x4000`의 코일 10개를 연속 읽고, 주소 `0x3000`의 이산량 12개를 연속 읽고, 주소 `0x2010`의 유지 레지스터 2개를 `int16`으로 연속 읽고, 주소 `0x1029`의 입력 레지스터 1개를 부동소수점 수 1개로 읽습니다. 이때 로봇 Modbus 마스터 스테이션 설정 페이지의 대응 레지스터 주소 값에 해당 값이 표시됩니다. 전송된 데이터 프레임은 아래 그림과 같습니다. 주소 `0x1029`의 레지스터 읽기 방식을 부동소수점형으로 설정했기 때문에 실제로는 `0x1029`와 `0x102A 두 개의 16비트 레지스터를 읽어 부동소수점 수 1개를 저장하지만, 읽기 수량은 `1`로 설정하면 충분합니다.
그림 9.30-11 Modbus 마스터 스테이션이 읽은 레지스터 값 표시(명령 프레임 캡처)
9.30.2.3.2. 마스터 스테이션 레지스터 쓰기 테스트
로봇 ModbusRTU 마스터 스테이션 설정 페이지에서 주소 0x1000`에 단일 코일을 쓰고 값은 `1`로 설정합니다. 주소 `0x1001`에는 단일 레지스터를 쓰고 값은 `2001`로 설정합니다. 주소 `0x2000`에는 코일 5개를 쓰고 값은 `1,1,0,1,1`로 설정합니다. 주소 `0x2010`에는 유지 레지스터 2개를 쓰고 데이터 타입은 `int16, 값은 3001, `3002`로 설정합니다. 주소 `0x1029`에는 부동소수점형 유지 레지스터 1개(실제로는 16비트 레지스터 2개)를 쓰고 값은 `21.55`로 설정합니다. 그러면 Modbus 슬레이브 스테이션의 대응 레지스터 주소에 해당 값이 기록됩니다.
그림 9.30-12 ModbusRTU 마스터 스테이션 쓰기 동작(명령 프레임 캡처)
9.30.2.4. ModbusRTU 마스터 스테이션 프로그램 작성
통신 명령 추가 페이지를 엽니다.
그림 9.30-13 통신 명령 추가 페이지 열기
`Modbus`를 클릭합니다.
그림 9.30-14 Modbus 선택
`Modbus_RTU`를 클릭하고 `마스터 스테이션(클라이언트)`을 선택해 ModbusRTU 마스터 스테이션 명령 추가 페이지를 엽니다.
그림 9.30-15 Modbus_RTU 선택
9.30.2.4.1. 단일 코일 쓰기
레지스터 쓰기`를 선택하고 기능 코드를 `0x05-단일 코일, 레지스터/코일 주소를 0x1000, 레지스터 값/코일 수량을 1, 바이트 배열을 {1}`로 설정한 뒤 `추가 버튼을 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 적용 버튼을 클릭합니다.
그림 9.30-16 단일 코일 쓰기
이때 로봇 프로그램 testModbusRTUSlave.lua`에는 로봇 Modbus 마스터 스테이션이 단일 디지털 출력을 쓰는 명령이 추가됩니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 대응하는 코일 레지스터 `0x1000 주소 값에 `1`을 씁니다.
그림 9.30-17 단일 코일 LUA 프로그램 쓰기
9.30.2.4.2. 복수 코일 쓰기
레지스터 쓰기`를 선택하고 기능 코드를 `0x0F-복수 코일, 레지스터/코일 주소를 0x1010, 레지스터 값/코일 수량을 3, 바이트 배열을 {1,0,1}`로 설정한 뒤 `추가 버튼을 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 적용 버튼을 클릭합니다.
그림 9.30-18 복수 코일 쓰기
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 마스터 스테이션이 복수 디지털 출력을 쓰는 명령이 추가됩니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 대응하는 코일 레지스터에 설정된 값을 기록합니다.
그림 9.30-19 복수 코일 LUA 프로그램 쓰기
9.30.2.4.3. 코일, 이산량 읽기
레지스터 읽기 명령`을 선택하고 기능 코드를 `0x01-코일`로 설정합니다. 이산량을 읽고 싶다면 `0x02-이산량`을 선택합니다. 레지스터/코일 주소를 `0x2000, 레지스터/코일 수량을 3`으로 설정한 뒤 `추가 버튼을 클릭합니다. 동시에 레지스터 데이터 읽기`를 선택하고 레지스터/코일/이산량 수량을 `3`으로 설정한 뒤 `추가 버튼을 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 적용 버튼을 클릭합니다.
그림 9.30-20 코일 읽기
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 마스터 스테이션이 코일을 읽는 두 개의 명령이 추가됩니다.
그림 9.30-21 단일 코일 프로그램 읽기
일반적으로 Modbus 레지스터를 읽은 뒤에는 읽은 값을 변수에 저장해야 하므로, 값을 저장할 변수를 정의해야 합니다. 모드 전환 버튼을 클릭해 로봇 lua 프로그램을 편집 가능 상태로 전환한 뒤, ModbusRegRead 명령 앞에 반환값 변수 value1, value2, value3`를 추가해 작성합니다. 프로그램 실행 후 읽은 값은 `value1, value2, `value3`에 저장됩니다.
그림 9.30-22 복수 코일 값을 변수에 읽어 저장
코일과 이산 입력 타입의 레지스터 값은 0`과 `1 두 가지뿐입니다. 로봇 프로그램에서는 레지스터 값 차이에 따라 다른 동작을 수행할 수 있습니다.
9.30.2.4.4. 유지 레지스터, 입력 레지스터 읽기
레지스터 읽기 명령`을 선택하고 기능 코드를 `0x03-유지 레지스터`로 설정합니다. 입력 레지스터를 읽으려면 `0x04-입력 레지스터`를 선택합니다. 레지스터/코일 주소를 `0x4000, 레지스터/코일 수량을 5`로 설정한 뒤 `추가 버튼을 클릭합니다. 동시에 레지스터 데이터 읽기`를 선택하고 레지스터/코일/이산량 수량을 `5`로 설정한 뒤 `추가 버튼을 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 적용 버튼을 클릭합니다.
그림 9.30-23 유지 레지스터 읽기
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 마스터 스테이션이 레지스터를 읽는 명령이 추가됩니다.
그림 9.30-24 단일 코일 프로그램 읽기
일반적으로 Modbus 레지스터를 읽은 뒤에는 읽은 값을 변수에 저장해야 하므로, 값을 저장할 변수를 정의해야 합니다. 모드 전환 버튼을 클릭해 로봇 lua 프로그램을 편집 가능 상태로 전환한 뒤, ModbusRegRead 명령 앞에 반환값 변수 value1, value2, value3, value4, `value5`를 추가해 작성합니다. 프로그램 실행 후 읽은 값은 각각 해당 변수에 저장됩니다.
그림 9.30-25 복수 유지 레지스터 값을 변수에 읽어 저장
9.30.3. 로봇 ModbusRTU 슬레이브 스테이션 관련 작업 설명
로봇 ModbusRTU 슬레이브 스테이션은 범용 디지털 입력(코일), 범용 디지털 출력(이산 입력), 범용 아날로그 입력(유지 레지스터), 범용 아날로그 출력(입력 레지스터)의 4가지 레지스터를 제공합니다. 이 중 범용 디지털 입력과 아날로그 입력은 주로 로봇이 외부 ModbusRTU 마스터 스테이션 데이터를 읽어 로봇 동작을 제어하는 데 사용되며, 범용 디지털 출력과 아날로그 출력은 주로 로봇이 외부 ModbusRTU 마스터 스테이션 장치로 데이터 신호를 보내고 외부 장치가 해당 레지스터 값을 읽어 자신의 동작을 제어하는 데 사용됩니다.
위 범용 입출력 외에도 로봇은 외부 마스터 스테이션 장치가 로봇의 프로그램 시작, 프로그램 정지 등을 제어할 수 있도록 일부 `기능 디지털 입력(코일)`과 현재 로봇 상태 정보를 표시하는 일부 입력 레지스터를 제공합니다. 여기에는 로봇의 현재 데카르트 위치, 현재 실행 상태 등이 포함됩니다. 자세한 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 로봇 ModbusRTU 슬레이브 스테이션 사용 과정은 주로 ① 파라미터 설정 ② 통신 테스트 ③ 프로그램 작성으로 구성됩니다.
9.30.3.1. ModbusRTU 슬레이브 스테이션 통신 파라미터 설정
WebApp을 열고 티칭 시뮬레이션, `프로그램 티칭`을 차례로 클릭한 뒤 새 사용자 프로그램 `testModbusRTUSlave.lua`를 생성합니다.
그림 9.30-26 ModbusRTU 슬레이브 스테이션 사용자 프로그램 생성
ModbusRTU 설정 버튼을 클릭해 ModbusRTU 기능 설정 페이지를 엽니다.
그림 9.30-27 ModbusRTU 설정 열기
슬레이브 스테이션 설정`을 클릭한 뒤 로봇 슬레이브 스테이션의 보레이트, 데이터 비트, 패리티, 스톱 비트, 슬레이브 스테이션 번호를 입력합니다. 여기서 `보레이트, 데이터 비트, 패리티, `스톱 비트`는 로봇이 ModbusRTU 슬레이브 스테이션으로 동작하기 위한 파라미터 설정이며, `슬레이브 스테이션 번호`는 외부 마스터 스테이션이 명령을 보낼 때 사용하는 슬레이브 장치 번호입니다.
그림 9.30-28 ModbusRTU 슬레이브 스테이션 설정
9.30.3.2. ModbusRTU 슬레이브 스테이션 통신 테스트
9.30.3.2.1. 범용 디지털 입력(코일)
로봇 ModbusRTU 슬레이브 스테이션은 64개의 코일 레지스터를 제공하며, 해당 레지스터 주소는 0x4000~0x403F`입니다. 자세한 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 로봇 ModbusRTU 슬레이브 스테이션의 범용 레지스터는 모두 별칭을 설정할 수 있습니다. 예를 들어 로봇 슬레이브 스테이션 코일 레지스터 `DI0`의 이름을 `A 위치, DI1`의 이름을 `B 위치`로 변경합니다. 주소 매핑표에 따르면 `A 위치`와 `B 위치`의 Modbus 코일 주소는 각각 `0x4000, `0x4001`입니다. 외부 ModbusRTU 마스터 스테이션 장치에서 이 두 주소를 모두 `1`로 설정하면, 로봇 ModbusRTU 슬레이브 스테이션 모니터링 페이지의 두 레지스터 표시등이 점등됩니다.
그림 9.30-29 ModbusRTU 슬레이브 스테이션 코일 상태 모니터링(명령 프레임 캡처)
9.30.3.2.2. 범용 디지털 출력(이산 입력)
로봇 ModbusRTU 슬레이브 스테이션은 64개의 이산 입력 레지스터를 제공하며, 해당 레지스터 주소는 0x3000~0x303F`입니다. 자세한 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 마찬가지로 이산 입력 레지스터에도 별칭을 설정할 수 있습니다. `범용 디지털 출력(이산 입력)`을 클릭한 뒤 로봇 슬레이브 스테이션 이산 입력 레지스터 `DO0`의 이름을 `A 시작, DO1`의 이름을 `B 시작`으로 변경합니다. 주소 매핑표에 따르면 `A 시작, B 시작`의 Modbus 이산 입력 주소는 각각 `0x3000, 0x3001`입니다. `A 시작`에 대응하는 이산 입력 표시등을 클릭하면 표시등이 점등되고, 대응하는 레지스터 주소 `0x3000 값이 `1`로 바뀝니다. 외부 ModbusRTU 마스터 스테이션 장치에서 이 레지스터 값을 읽을 수 있습니다.
그림 9.30-30 ModbusRTU 슬레이브 스테이션 이산 입력 제어
9.30.3.2.3. 아날로그 입력(유지 레지스터)
로봇은 부호 없음, 부호 있음, 부동소수점형의 3가지 유지 레지스터를 총 32개 제공합니다. AI0~AI32`의 주소는 `0x2000~0x202F`입니다. 자세한 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 이때 부호형 레지스터 데이터 범위는 `-32768~32767`이며, 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다. `AI0`와 `AI1`의 이름을 각각 `전압, 전류`로 변경합니다. 주소 매핑표에 따르면 두 레지스터의 주소는 각각 `0x2000, 0x2001`입니다. 따라서 연결된 마스터 스테이션 장치가 유지 레지스터 `0x2000, 0x2001`의 값을 변경하면 로봇 ModbusRTU 슬레이브 스테이션 모니터링 페이지의 `전압, 전류 레지스터 값도 동기화되어 갱신됩니다. 로봇의 아날로그 입력은 주로 외부 마스터 스테이션 장치의 수치 신호를 취득하는 데 사용됩니다.
그림 9.30-31 ModbusRTU 슬레이브 스테이션 아날로그 입력 모니터링(명령 프레임 캡처)
9.30.3.2.4. 아날로그 출력(입력 레지스터)
로봇은 부호 없음, 부호 있음, 부동소수점형의 3가지 입력 레지스터를 총 64개 제공합니다. AO0~AO63`의 주소는 `0x1000~0x100F, 0x104D~0x106C`입니다. 자세한 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 이때 부호형 레지스터 데이터 범위는 `-32768~32767`이며, 부동소수점형 레지스터는 빅엔디언 방식으로 표시됩니다. `AO0`와 `AO1`의 이름을 각각 `목표 위치 A, 목표 위치 B`로 바꾸고 입력 레지스터 값을 각각 `2000, 1500`으로 설정합니다. 주소 매핑표에 따르면 두 레지스터 주소는 각각 `0x1000, 0x1001`입니다. 따라서 연결된 마스터 스테이션 장치가 입력 레지스터 `0x1000, 0x1001 값을 읽으면 설정된 수치를 얻을 수 있습니다. 로봇 슬레이브 스테이션의 아날로그 출력은 주로 외부 마스터 스테이션 장치에 수치 신호를 전달하는 데 사용됩니다.
그림 9.30-32 Modbus 슬레이브 스테이션 아날로그 입력 변경
9.30.3.3. ModbusRTU 슬레이브 스테이션 프로그램 작성
통신 명령 추가 페이지를 엽니다.
그림 9.30-33 통신 명령 추가 페이지 열기
`Modbus`를 클릭합니다.
그림 9.30-34 Modbus 선택
`Modbus_RTU`를 클릭하고 `슬레이브 스테이션`을 선택해 ModbusRTU 슬레이브 스테이션 명령 추가 페이지를 엽니다.
그림 9.30-35 Modbus_RTU, 슬레이브 스테이션 선택
9.30.3.3.1. 단일 디지털 출력 DO(이산 입력) 쓰기
DO 이름에서 A 시작`을 선택하고 레지스터 수량을 `1, 레지스터 값을 0`으로 설정한 뒤 `단일 디지털 출력 쓰기`를 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.30-36 단일 디지털 출력 쓰기 명령 추가 및 적용
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 단일 디지털 출력을 쓰는 명령이 추가됩니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 이름이 `A 시작`인 디지털 출력의 주소 값에 `0`을 씁니다.
그림 9.30-37 단일 디지털 출력 LUA 프로그램 쓰기
9.30.3.3.2. 복수 디지털 출력 DO(이산 입력) 쓰기
ModbusRTU 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, DO 이름에서 `A 시작`을 선택하고 레지스터 수량을 `5, 레지스터 값을 1,0,1,0,1`로 설정합니다. 이때 레지스터 값 개수는 설정한 레지스터 수량과 일치해야 하며, 여러 레지스터 값은 영문 쉼표로 구분해야 합니다. `디지털 출력 쓰기`를 클릭한 뒤 마지막으로 페이지 하단에서 `적용 버튼을 클릭합니다.
그림 9.30-38 복수 디지털 출력 쓰기 설정 및 적용
이때 로봇 프로그램 testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 복수 디지털 출력을 쓰는 명령이 추가됩니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면, 로봇은 슬레이브 스테이션 `A 시작`과 그 뒤의 4개 이산 입력 레지스터 값에 각각 `1, 0, 1, 0, `1`을 기록합니다.
그림 9.30-39 복수 디지털 출력 LUA 프로그램 쓰기
9.30.3.3.3. 단일 디지털 출력 DO(이산 입력) 읽기
ModbusRTU 마스터 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, DO 이름에서 `A 시작`을 선택하고 레지스터 수량을 `1`로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 마지막으로 페이지 하단에서 `적용 버튼을 클릭합니다.
그림 9.30-40 단일 디지털 출력 읽기 설정 및 적용
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 단일 디지털 출력을 읽는 명령이 추가됩니다.
그림 9.30-41 단일 디지털 출력 프로그램 읽기
일반적으로 Modbus 레지스터를 읽은 뒤에는 읽은 값을 변수에 저장해야 하므로, 저장용 변수를 정의해야 합니다. 모드 전환 버튼을 클릭해 로봇 lua 프로그램을 편집 가능 상태로 전환한 뒤, ModbusSlaveReadDO_RTU 명령 앞에 반환값 변수 `AStartValue`를 추가해 작성합니다. 프로그램 실행 후 읽은 값은 `AStartValue`에 저장됩니다.
그림 9.30-42 단일 디지털 출력을 변수에 읽어 저장
코일 타입 레지스터 값은 0`과 `1 두 가지뿐입니다. 로봇 프로그램에서는 레지스터 값 차이에 따라 다른 동작을 수행할 수 있습니다.
9.30.3.3.4. 복수 디지털 출력 DO(이산 입력) 읽기
ModbusRTU 마스터 스테이션 명령 추가 페이지를 열고 디지털 출력 설정`을 찾은 뒤, DO 이름에서 `A 시작`을 선택하고 레지스터 수량을 `2`로 설정합니다. 레지스터 값은 입력할 필요가 없습니다. `디지털 출력 읽기`를 클릭한 뒤 마지막으로 페이지 하단에서 `적용 버튼을 클릭합니다.
그림 9.30-43 복수 디지털 출력 읽기 설정 및 적용
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 복수 디지털 출력을 읽는 명령이 추가됩니다.
그림 9.30-44 복수 디지털 출력 프로그램 읽기
모드 전환 버튼을 클릭해 로봇 lua 프로그램을 편집 가능 상태로 전환합니다. 읽기 수량이 2개이므로 ModbusSlaveReadDO_RTU 명령 앞에 두 개의 반환값 변수 value1,value2`를 추가해 작성해야 합니다. 프로그램 실행 후 읽은 두 개의 디지털 출력 레지스터 값은 각각 이 변수들에 저장됩니다. 마찬가지로 `value1, value2 값을 판단해 로봇에 서로 다른 동작을 수행시킬 수 있습니다.
그림 9.30-45 복수 디지털 출력을 변수에 읽어 저장
9.30.3.3.5. 디지털 입력 DI(코일) 읽기
ModbusRTU 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 입력 설정`을 찾은 뒤, DI 이름에서 `A 위치`를 선택하고 레지스터 수량을 `2`로 설정한 뒤 `디지털 입력 읽기`를 클릭합니다. 마지막으로 페이지 하단까지 스크롤해 `적용 버튼을 클릭합니다.
그림 9.30-46 디지털 입력 읽기 설정 및 적용
이때 로봇 프로그램 `testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 디지털 입력을 읽는 명령이 추가됩니다.
그림 9.30-47 디지털 입력 프로그램 명령 읽기
모드 전환 버튼을 클릭해 로봇 lua 프로그램을 편집 가능 상태로 전환합니다. ModbusSlaveReadDI_RTU 명령 앞에 반환값 변수 AState,BState`를 추가해 작성합니다. 프로그램 실행 후 읽은 두 개의 디지털 입력 값은 각각 변수 `AState, `BState`에 저장됩니다. 변수 값을 판단해 로봇의 동작을 다르게 제어할 수 있습니다.
그림 9.30-48 디지털 입력 프로그램
9.30.3.3.6. 아날로그 출력 AO(입력 레지스터) 및 아날로그 입력 AI(유지 레지스터) 읽기/쓰기
아날로그 출력(입력 레지스터)과 아날로그 입력(유지 레지스터)의 읽기/쓰기 동작은 디지털 출력(이산 입력), 디지털 입력(코일)과 기본적으로 동일합니다. 차이점은 후자의 데이터 범위가 0 또는 `1`에 한정되는 반면, 전자의 데이터 범위는 더 넓다는 점입니다. 따라서 구체적인 조작은 디지털 출력 및 디지털 입력 프로그램 작성 방법을 참고하면 되며, 여기서는 아날로그 입력 읽기와 아날로그 출력 읽기/쓰기 프로그램 예만 제시합니다.
그림 9.30-49 아날로그 입력 읽기
그림 9.30-50 아날로그 출력 읽기/쓰기
9.30.3.3.7. 디지털 입력 대기
ModbusRTU 슬레이브 스테이션 명령 추가 페이지를 열고 디지털 입력 대기 설정`을 찾은 뒤, DI 이름에서 설정한 `A 위치 레지스터를 선택하고 대기 상태를 True, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 뒤 마지막으로 적용 버튼을 클릭합니다.
그림 9.30-51 디지털 입력 대기 명령 추가
이때 로봇 프로그램 testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 디지털 입력을 대기하는 명령이 추가됩니다. 프로그램을 시작하면 로봇은 슬레이브 스테이션의 `A 위치 코일 레지스터 값이 true, 즉 1`이 될 때까지 계속 대기합니다. 설정한 타임아웃 시간이 5초이므로, 5초 대기 후에도 `A 위치 신호가 `0`이면 로봇 프로그램은 타임아웃 오류를 보고하고 자동으로 정지합니다.
그림 9.30-52 디지털 입력 대기 프로그램
9.30.3.3.8. 아날로그 입력 대기
ModbusRTU 슬레이브 스테이션 명령 추가 페이지를 열고 아날로그 입력 대기 설정`을 찾은 뒤, AI 이름에서 설정한 `전류 레지스터를 선택하고 대기 조건을 >, 레지스터 값을 255, 타임아웃 시간을 5000ms`로 설정합니다. `추가 버튼을 클릭한 뒤 마지막으로 적용 버튼을 클릭합니다.
그림 9.30-53 아날로그 입력 대기 명령 추가
이때 로봇 프로그램 testModbusRTUSlave.lua`에는 로봇 Modbus 슬레이브 스테이션이 아날로그 입력 값을 대기하는 명령이 추가됩니다. 프로그램을 시작하면 로봇은 슬레이브 스테이션의 `전류 레지스터 값이 255`보다 커질 때까지 계속 대기합니다. 설정한 타임아웃 시간이 5초이므로, 로봇이 5초 동안 대기한 뒤에도 `전류 신호가 `255`보다 커지지 않으면 로봇 프로그램은 타임아웃 오류를 보고하고 자동으로 정지합니다.
그림 9.30-54 아날로그 입력 레지스터 대기 프로그램
9.30.3.4. ModbusRTU 슬레이브 스테이션 로봇 상태 피드백 및 제어
협동로봇 ModbusRTU 슬레이브 스테이션 입력 레지스터 주소 `0x1010~0x104C`는 로봇의 실시간 상태를 피드백하는 데 사용됩니다. 자세한 주소 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 마스터 스테이션 장치에서 대응 레지스터 값을 읽기만 하면 로봇의 실시간 상태 데이터를 취득할 수 있습니다.
협동로봇 ModbusRTU 슬레이브 스테이션 코일 레지스터 주소 0x4040~0x405C`는 마스터 스테이션 장치가 로봇을 제어하는 데 사용됩니다. 자세한 주소 정의는 부록 1 `ModbusRTU 슬레이브 스테이션 주소 매핑표`를 참조하십시오. 예를 들어 코일 주소 `0x4054`의 기능은 `프로그램 시작`을 의미합니다. 로봇이 자동 모드에 있을 때 마스터 스테이션 장치가 주소 `0x4054 값을 0`에서 `1`로 변경하면, 로봇은 현재 설정된 프로그램 실행을 자동으로 시작합니다. 또 코일 주소 `0x4040`은 로봇 제어 박스 `DO0 출력을 제어하는 데 사용됩니다. 외부 마스터 스테이션이 코일 주소 0x4040`을 `0`에서 `1`로 변경하면 제어 박스 `DO0`가 자동으로 유효 출력됩니다. 반대로 `1`에서 `0`으로 바꾸면 `DO0 출력은 무효가 됩니다. ModbusRTU 슬레이브 스테이션 설정 페이지에서 `기능 디지털 입력(코일)`을 클릭하면 현재 모든 기능 디지털 입력 상태를 모니터링할 수 있습니다.
그림 9.30-55 로봇 슬레이브 스테이션 기능 디지털 입력
부록 1: Modbus RTU 슬레이브 스테이션 주소 매핑표
서드파티 컨트롤러 송신 주소 |
유형 |
명칭 |
데이터 타입 |
기능 코드 |
읽기/쓰기 |
0x3000 |
범용 디지털 출력(이산) |
DO0 |
BOOL |
0x02 |
읽기 전용 |
0x3001 |
범용 디지털 출력(이산) |
DO1 |
BOOL |
0x02 |
읽기 전용 |
0x3002 |
범용 디지털 출력(이산) |
DO2 |
BOOL |
0x02 |
읽기 전용 |
0x3003 |
범용 디지털 출력(이산) |
DO3 |
BOOL |
0x02 |
읽기 전용 |
… |
범용 디지털 출력(이산) |
… |
BOOL |
0x02 |
읽기 전용 |
0x303F |
범용 디지털 출력(이산) |
DO127 |
BOOL |
0x02 |
읽기 전용 |
0x4000 |
범용 디지털 입력(코일) |
DI0 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4001 |
범용 디지털 입력(코일) |
DI1 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4002 |
범용 디지털 입력(코일) |
DI2 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4003 |
범용 디지털 입력(코일) |
DI3 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
… |
범용 디지털 입력(코일) |
… |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x403F |
범용 디지털 입력(코일) |
DI64 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4040 |
로봇 제어 |
제어 박스 DO0 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4041 |
로봇 제어 |
제어 박스 DO1 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4042 |
로봇 제어 |
제어 박스 DO2 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4043 |
로봇 제어 |
제어 박스 DO3 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4044 |
로봇 제어 |
제어 박스 DO4 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4045 |
로봇 제어 |
제어 박스 DO5 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4046 |
로봇 제어 |
제어 박스 DO6 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4047 |
로봇 제어 |
제어 박스 DO7 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4048 |
로봇 제어 |
제어 박스 CO0 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4049 |
로봇 제어 |
제어 박스 CO1 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404A |
로봇 제어 |
제어 박스 CO2 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404B |
로봇 제어 |
제어 박스 CO3 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404C |
로봇 제어 |
제어 박스 CO4 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404D |
로봇 제어 |
제어 박스 CO5 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404E |
로봇 제어 |
제어 박스 CO6 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x404F |
로봇 제어 |
제어 박스 CO7 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4050 |
로봇 제어 |
툴 DO0 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4051 |
로봇 제어 |
툴 DO1 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4052 |
로봇 제어 |
일시정지 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4053 |
로봇 제어 |
재개 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4054 |
로봇 제어 |
시작 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4055 |
로봇 제어 |
정지 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4056 |
로봇 제어 |
작업 원점으로 이동 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4057 |
로봇 제어 |
수동/자동 전환 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4058 |
로봇 제어 |
메인 프로그램 시작 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x4059 |
로봇 제어 |
1단 축소 모드 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x405A |
로봇 제어 |
2단 축소 모드 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x405B |
로봇 제어 |
3단 축소 모드(정지) |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x405C |
로봇 제어 |
전체 오류 클리어 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x405D |
로봇 제어 |
예약 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x405E |
로봇 제어 |
예약 |
BOOL |
0x01、0x05、0x0F |
읽기/쓰기 |
0x1000 |
아날로그 입력 |
AO0 |
INT16 |
0x04 |
읽기 전용 |
0x1001 |
아날로그 입력 |
AO1 |
INT16 |
0x04 |
읽기 전용 |
0x1002 |
아날로그 입력 |
AO2 |
INT16 |
0x04 |
읽기 전용 |
… |
아날로그 입력 |
… |
INT16 |
0x04 |
읽기 전용 |
0x100F |
아날로그 입력 |
AO15 |
INT16 |
0x04 |
읽기 전용 |
0x1010 |
로봇 상태 |
인에이블 상태 0-미인에이블, 1-인에이블 |
UINT16 |
0x04 |
읽기 전용 |
0x1011 |
로봇 상태 |
로봇 모드, 1-수동 모드, 0-자동 모드 |
UINT16 |
0x04 |
읽기 전용 |
0x1012 |
로봇 상태 |
로봇 실행 상태 1-정지, 2-실행, 3-일시정지, 4-드래그 |
UINT16 |
0x04 |
읽기 전용 |
0x1013 |
로봇 상태 |
툴 번호 |
UINT16 |
0x04 |
읽기 전용 |
0x1014 |
로봇 상태 |
워크 번호 |
UINT16 |
0x04 |
읽기 전용 |
0x1015 |
로봇 상태 |
비상정지 상태 0-비상정지 아님, 1-비상정지 |
UINT16 |
0x04 |
읽기 전용 |
0x1016 |
로봇 상태 |
소프트 리밋 초과 오류 |
UINT16 |
0x04 |
읽기 전용 |
0x1017 |
로봇 상태 |
메인 오류 코드 |
UINT16 |
0x04 |
읽기 전용 |
0x1018 |
로봇 상태 |
서브 오류 코드 |
UINT16 |
0x04 |
읽기 전용 |
0x1019 |
로봇 상태 |
충돌 검출, 1-충돌, 0-비충돌 |
UINT16 |
0x04 |
읽기 전용 |
0x101A |
로봇 상태 |
운동 위치 신호 |
UINT16 |
0x04 |
읽기 전용 |
0x101B |
로봇 상태 |
안전 정지 신호 SI0 |
UINT16 |
0x04 |
읽기 전용 |
0x101C |
로봇 상태 |
안전 정지 신호 SI1 |
UINT16 |
0x04 |
읽기 전용 |
0x101D |
로봇 상태 |
제어 박스 아날로그 입력 AI0 |
UINT16 |
0x04 |
읽기 전용 |
0x101E |
로봇 상태 |
제어 박스 아날로그 입력 AI1 |
UINT16 |
0x04 |
읽기 전용 |
0x101F |
로봇 상태 |
툴 아날로그 입력 AI0 |
UINT16 |
0x04 |
읽기 전용 |
0x1020 |
로봇 상태 |
제어 박스 아날로그 출력 AO0 |
UINT16 |
0x04 |
읽기 전용 |
0x1021 |
로봇 상태 |
제어 박스 아날로그 출력 AO1 |
UINT16 |
0x04 |
읽기 전용 |
0x1022 |
로봇 상태 |
툴 아날로그 출력 AO0 |
UINT16 |
0x04 |
읽기 전용 |
0x1023 |
로봇 상태 |
제어 박스 디지털 입력 Bit0-Bit7은 DI0-DI7, Bit8-Bit15는 CI0-CI7에 대응 |
UINT16 |
0x04 |
읽기 전용 |
0x1024 |
로봇 상태 |
툴단 디지털 입력 Bit0-Bit15는 DI0-DI15에 대응 |
UINT16 |
0x04 |
읽기 전용 |
0x1025 |
로봇 상태 |
제어 박스 디지털 출력 Bit0-Bit7은 DO0-DO7, Bit8-Bit15는 CO0-CO7에 대응 |
UINT16 |
0x04 |
읽기 전용 |
0x1026 |
로봇 상태 |
툴단 디지털 출력 Bit0-Bit15는 DO0-DO15에 대응 |
UINT16 |
0x04 |
읽기 전용 |
0x1027 |
로봇 상태 |
TCP 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1028 |
로봇 상태 |
TCP 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1029 |
로봇 상태 |
관절 1 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102A |
로봇 상태 |
관절 1 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102B |
로봇 상태 |
관절 2 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102C |
로봇 상태 |
관절 2 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102D |
로봇 상태 |
관절 3 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102E |
로봇 상태 |
관절 3 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x102F |
로봇 상태 |
관절 4 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1030 |
로봇 상태 |
관절 4 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1031 |
로봇 상태 |
관절 5 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1032 |
로봇 상태 |
관절 5 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1033 |
로봇 상태 |
관절 6 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1034 |
로봇 상태 |
관절 6 위치 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1035 |
로봇 상태 |
관절 1 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1036 |
로봇 상태 |
관절 1 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1037 |
로봇 상태 |
관절 2 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1038 |
로봇 상태 |
관절 2 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1039 |
로봇 상태 |
관절 3 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103A |
로봇 상태 |
관절 3 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103B |
로봇 상태 |
관절 4 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103C |
로봇 상태 |
관절 4 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103D |
로봇 상태 |
관절 5 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103E |
로봇 상태 |
관절 5 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x103F |
로봇 상태 |
관절 6 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1040 |
로봇 상태 |
관절 6 속도 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1041 |
로봇 상태 |
TCP 위치 X |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1042 |
로봇 상태 |
TCP 위치 X |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1043 |
로봇 상태 |
TCP 위치 Y |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1044 |
로봇 상태 |
TCP 위치 Y |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1045 |
로봇 상태 |
TCP 위치 Z |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1046 |
로봇 상태 |
TCP 위치 Z |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1047 |
로봇 상태 |
TCP 위치 RX |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1048 |
로봇 상태 |
TCP 위치 RX |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1049 |
로봇 상태 |
TCP 위치 RY |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104A |
로봇 상태 |
TCP 위치 RY |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104B |
로봇 상태 |
TCP 위치 RZ |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104C |
로봇 상태 |
TCP 위치 RZ |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104D |
아날로그 입력 |
AO16 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104E |
아날로그 입력 |
AO16 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x104F |
아날로그 입력 |
AO17 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x1050 |
아날로그 입력 |
AO17 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
… |
아날로그 입력 |
… |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x106B |
아날로그 입력 |
AO31 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x106C |
아날로그 입력 |
AO31 |
FLOAT32 (빅엔디언 표시) |
0x04 |
읽기 전용 |
0x2000 |
아날로그 출력 |
AI0 |
INT16 |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2001 |
아날로그 출력 |
AI1 |
INT16 |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2002 |
아날로그 출력 |
AI2 |
INT16 |
0x03、0x06、0x10 |
읽기/쓰기 |
… |
아날로그 출력 |
… |
INT16 |
0x03、0x06、0x10 |
읽기/쓰기 |
0x200F |
아날로그 출력 |
AI15 |
INT16 |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2010 |
아날로그 출력 |
AI16 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2011 |
아날로그 출력 |
AI16 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2012 |
아날로그 출력 |
AI17 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
0x2013 |
아날로그 출력 |
AI17 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
… |
아날로그 출력 |
… |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
0x202E |
아날로그 출력 |
AI31 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
0x202F |
아날로그 출력 |
AI31 |
FLOAT32(빅엔디언 표시) |
0x03、0x06、0x10 |
읽기/쓰기 |
9.31. 6축 힘 센서 자세 순응 기능 보호 기반
9.31.1. 개요
현재 RY 로봇은 정력 FT_Control 상태에서 자세 순응 기능의 최대 조정 각도 제한이 없습니다. 따라서 6축 힘 센서가 외력 모멘트를 받으면 로봇 말단이 계속 편향될 수 있고, 이런 상황에서는 위험이 발생하기 쉽습니다.
FT_Control 자세 순응 기능에 최대 조정 각도 제한과 사용자 정의 임계값을 추가하면 자세 순응 동작을 더 부드럽게 만들 수 있습니다.
9.31.2. 작업 절차
Step1: 초기 설정 -> 기본 -> `툴 좌표`를 클릭해 툴 좌표계 설정 화면으로 들어간 뒤, `좌표계 이름`을 선택하고 말단 툴에 대응하는 좌표계 파라미터를 설정합니다.
그림 9.31-1 툴 좌표계 설정
Step2: 티칭 프로그램 -> 프로그램 프로그래밍`을 클릭해 정력 제어 lua 스크립트를 생성합니다. `힘 제어 세트 -> `Control`을 선택해 힘 제어 운동 명령을 추가합니다. 자세 순응 설정에서는 `시작`을 선택하고 최대 조정 각도를 자세 순응 각도 임계값으로 설정합니다.
그림 9.31-2 힘 제어 운동 명령
Step3: 웹 인터페이스에서 `FT`를 클릭해 6축 힘 센서 기준 좌표계를 설정합니다. 기준 좌표계에서 `사용자 정의 좌표계`를 선택하고 대응하는 좌표계 파라미터를 설정합니다. 자세 순응 각도 조정이 툴 좌표계를 기준으로 회전하는 경우 기준 좌표계 파라미터를 `0`으로 설정합니다. 자세 순응 각도 조정이 말단 플랜지 좌표계를 기준으로 회전하는 경우에는 기준 좌표계 파라미터를 말단 툴에 대응하는 좌표계 파라미터로 설정합니다.
그림 9.31-3 6축 힘 센서 기준 좌표계 설정
Step4: 스크립트를 실행해 자세 순응 효과를 확인합니다. 정력 상태에서의 자세 순응 조정 각도는 사용자가 지정한 최대 조정 각도 범위 안으로 제한됩니다.
9.32. Socket 통신 인터페이스 기능
9.32.1. Socket 설정
Socket 통신 인터페이스 기능을 사용할 때는 로봇 전원을 켠 뒤 먼저 웹 페이지에서 Socket 프로토콜 설정을 해야 하며, 이 설정은 전원을 꺼도 저장됩니다.
티칭 프로그램 - `프로그램 프로그래밍`을 클릭한 뒤, 오른쪽 상단 메뉴바의 `Socket 네트워크 디버그`를 클릭하면 Socket 설정 화면으로 들어갑니다. `Socket 추가`를 클릭하면 Socket 파라미터를 설정할 수 있으며, 최대 4개의 Socket을 추가할 수 있습니다.
그림 9.32-1 Socket 네트워크 디버그 인터페이스
그림 9.32-2 Socket 설정 파라미터 인터페이스
9.32.1.1. 통신 파라미터 설정
통신 프로토콜은 UDP, TCP 서버, `TCP 클라이언트`를 지원합니다.
데이터 타입은 ASCII`와 `HEX 두 가지를 지원합니다. 데이터 타입을 설정하면 해당 Socket 연결의 모든 송수신 데이터가 설정된 타입에 따라 처리됩니다.
9.32.1.2. 하트비트 검출 메커니즘
하트비트 검출 메커니즘은 `TCP 서버`와 `TCP 클라이언트`에만 적용됩니다.
하트비트 검출 메커니즘은 Keepalive 메커니즘을 사용해 연결의 활성 상태를 감지하고 유지하며, 장시간 유휴 상태인 연결이 예기치 않게 끊어지는 것을 방지합니다. 주요 파라미터는 다음과 같습니다.
검출 간격: 유휴 상태가 된 뒤 keepalive 검출 패킷 전송을 시작하기까지의 시간, 단위는 초
검출 시간: 검출 패킷 전송 간격, 단위는 초
검출 횟수: 검출 패킷을 최대 몇 번 전송할지 설정
9.32.1.3. 연결 끊김 재접속 메커니즘
연결 끊김 재접속 메커니즘은 `TCP 클라이언트`에만 적용됩니다.
연결 끊김 재접속 메커니즘을 활성화하면 TCP 클라이언트를 시작할 때 서버와의 연결이 끊어진 것을 감지할 경우 자동으로 재접속을 시도합니다. 최대 재접속 횟수에 도달해도 연결되지 않으면 연결을 종료합니다. 주요 파라미터는 다음과 같습니다.
재접속 간격: 재접속 시도 간격, 단위는 ms, 권장값은 초 단위 수준
최대 재접속 횟수: 최대 몇 번까지 재접속할지 설정
9.32.1.4. 사용자 정의 프로토콜 해석
사용자 정의 프로토콜 해석을 활성화하면 프로토콜 설정 내용에 따라 송수신 데이터를 캡슐화하거나 해석합니다.
사용자 정의 프로토콜은 설정 파라미터를 기준으로 자동 생성할 수 있습니다. ASCII 모드에서는 프레임 헤더, 프레임 카운트, 데이터 길이, 프레임 끝 조합 사용을 지원하며, 구분자를 사용해 데이터를 분리할 수 있습니다. HEX 모드에서는 프레임 헤더, 프레임 카운트, 데이터 길이, 체크섬 방식, 프레임 끝 조합 사용을 지원합니다.
그림 9.32-3 ASCII 모드 사용자 정의 프로토콜 설정
그림 9.32-4 HEX 모드 사용자 정의 프로토콜 설정
사용자 정의 프로토콜을 설정한 뒤 생성 버튼을 클릭하면 대응하는 lua 파일이 자동 생성됩니다. lua 파일은 가져오기와 내보내기를 지원하며, 파일 코드를 바탕으로 프로토콜 타입을 유연하게 사용자 정의할 수 있습니다.
9.32.2. Socket 연결
9.32.2.1. 인터페이스 연결 표시
Socket 정보를 설정한 뒤 해당 Socket 연결을 생성할 수 있습니다. 연결 상태는 다음 3가지입니다.
흰색: 연결 미수립
그림 9.32-5 미연결 상태
노란색: TCP 서버 연결 대기 중 또는 TCP 클라이언트 연결 요청 중
그림 9.32-6 연결 대기 상태
녹색: 연결 성공
그림 9.32-7 연결 성공 상태
9.32.2.2. 연결 명령 모듈
티칭 프로그램 - 프로그램 프로그래밍 - 통신 명령`을 클릭하고 `Socket 명령을 선택하면 Socket 연결 열기/닫기 명령을 생성해 lua 프로그래밍에 사용할 수 있습니다. `SocketID`는 설정된 Socket 연결 중에서만 선택할 수 있습니다.
그림 9.32-8 Socket 연결 명령 모듈
명령 상세:
9.32.3. Socket 통신
9.32.3.1. 통신 테스트
인터페이스는 통신 테스트 기능을 제공하며, 데이터 송수신 테스트를 수행할 수 있습니다. 아래 그림을 참조하십시오.
그림 9.32-9 통신 테스트
인터페이스 송신 데이터는 기본적으로 블로킹 모드를 사용하며, 운동 완료를 기다린 뒤 데이터를 전송합니다. 데이터 수신의 기본 타임아웃 시간은 5초이며, 타임아웃 후에는 오류를 보고하고 정지합니다. 위 파라미터는 명령 모듈 발행 시 조정할 수 있습니다.
9.32.3.2. 통신 명령 모듈
티칭 프로그램 - 프로그램 프로그래밍 - 통신 명령`을 클릭하고 `Socket 명령을 선택하면 Socket 통신 명령을 생성해 데이터 송수신을 수행하고 lua 프로그래밍에 사용할 수 있습니다. `SocketID`는 설정된 Socket 연결 중에서만 선택할 수 있습니다.
그림 9.32-10 Socket 데이터 전송
명령 파라미터는 각각 Socket ID, 전송할 데이터, 그리고 운동 완료를 기다릴지 여부입니다.
명령 상세:
전송 명령: SocketSend(id,data,block)
파라미터: id`는 연결된 socket ID, `data`는 전송할 데이터로 문자열 형식이며 내용은 설정한 데이터 타입과 일치해야 합니다. 예: `”hello” 또는 “FA54DE”. `block`은 운동 블로킹 여부이며 `0`은 운동 완료 후 전송, `1`은 즉시 전송입니다. 반환값 `0`은 성공입니다.
수신 데이터는 아래 그림과 같습니다.
그림 9.32-11 Socket 데이터 수신
명령 파라미터는 각각 Socket ID, 수신 타임아웃 시간(ms), 타임아웃 이후 동작 상태입니다.
명령 상세:
9.33. 로봇의 직선, 원호, 완전 원 운동의 물리 속도 설정
9.33.1. LUA 프로그램 작성
9.33.1.1. 직선 명령
직선 아이콘을 클릭해 Lin 명령 편집 화면으로 들어갑니다.
이 명령의 기능은 PTP 명령과 비슷하지만, 이 명령으로 도달하는 점까지의 경로는 직선입니다.
그림 9.33-1 Lin 명령 추가 화면
LIN 명령은 운동 속도 모드로 퍼센트 또는 `물리 속도`를 선택할 수 있습니다.
퍼센트: 디버그 속도의 퍼센트를 입력하면 로봇은 최대 속도의 해당 퍼센트에 따라 운동합니다. 실제 로봇 운동 속도는 V = 로봇 최대 속도 × 글로벌 속도 퍼센트 × 디버그 속도 퍼센트`로 환산됩니다. `디버그 속도 입력 박스 오른쪽의 작은 눈 아이콘에 마우스를 올리면, 현재 설정 속도에서 수동 모드와 자동 모드의 실제 물리 속도(mm/s)가 표시됩니다.
그림 9.33-2 퍼센트 입력에 따른 실제 물리 속도값 표시
물리 속도: 입력한 속도가 로봇의 실제 운행 속도가 됩니다. 단위는 mm/s`입니다. 입력 가속도는 일반적으로 속도의 2배로 설정합니다. (`LIN 명령의 최대 물리 속도는 글로벌 속도 퍼센트에 의해 제한됩니다. 로봇의 최대 운행 속도가 1000mm/s, 글로벌 속도가 50%`인 경우 `LIN 명령의 최대 물리 속도는 `1000 × 50% = 500mm/s`입니다.)
그림 9.33-3 실제 물리 속도 입력
9.33.1.2. 원호 명령
원호 아이콘을 클릭해 Arc 명령 편집 화면으로 들어갑니다.
Arc 명령은 원호 운동이며 3개의 점을 포함합니다. 첫 번째 점은 원호의 시작점, 두 번째 점은 원호의 중간 통과점, 세 번째 점은 종점입니다.
통과점과 종점 모두 오프셋 사용 여부를 설정할 수 있으며, 베이스 좌표계 기준 오프셋과 툴 좌표 기준 오프셋을 선택할 수 있습니다. x, y, z, rx, ry, rz`의 오프셋량 설정 창이 팝업으로 표시됩니다. 종점에서는 스무딩 전환 반경을 설정해 연속적인 운동 효과를 구현할 수 있습니다. 원호 운동을 수행하려면 먼저 `PTP 또는 Lin 명령을 추가해 시작점으로 이동해 두어야 합니다.
그림 9.33-4 Arc 명령 화면
ARC 명령은 운동 속도 모드로 퍼센트 또는 `물리 속도`를 선택할 수 있습니다.
퍼센트: 디버그 속도의 퍼센트를 입력하면 로봇은 최대 속도의 해당 퍼센트에 따라 운동합니다. 실제 로봇 운동 속도는 V = 로봇 최대 속도 × 글로벌 속도 퍼센트 × 디버그 속도 퍼센트`로 환산됩니다. `디버그 속도 입력 박스 오른쪽의 작은 눈 아이콘에 마우스를 올리면, 현재 설정 속도에서 수동 모드와 자동 모드의 실제 물리 속도(mm/s)가 표시됩니다.
그림 9.33-5 퍼센트 입력에 따른 실제 물리 속도값 표시
물리 속도: 입력한 속도가 로봇의 실제 운행 속도가 됩니다. 단위는 mm/s`입니다. 입력 가속도는 일반적으로 속도의 2배로 설정합니다. (`LIN 명령의 최대 물리 속도는 글로벌 속도 퍼센트에 의해 제한됩니다. 로봇의 최대 운행 속도가 1000mm/s, 글로벌 속도가 50%`인 경우 `LIN 명령의 최대 물리 속도는 `1000 × 50% = 500mm/s`입니다.)
그림 9.33-6 실제 물리 속도 입력
9.33.1.3. 완전 원 명령 추가
Step1: 새 사용자 프로그램 testCircle.lua`를 생성하고 `완전 원 버튼을 클릭해 완전 원 명령 추가 페이지를 엽니다.
그림 9.33-7 완전 원 명령 추가 버튼
Step2: 완전 원 명령 추가 페이지에서 시작점 운동 방식과 시작점을 `P1`로 선택합니다.
그림 9.33-8 시작점 운동 방식과 시작점 P1
Step3: 완전 원 명령 추가 페이지에서 `완전 원 중간점 1`로 `P2`를, `완전 원 중간점 2`로 `P3`를 선택합니다.
그림 9.33-9 원호 중간점과 종점 선택
Step4: 속도 모드를 선택하고 속도값을 입력합니다.
Circle 명령은 운동 속도 모드로 퍼센트 또는 `물리 속도`를 선택할 수 있습니다.
퍼센트: 디버그 속도의 퍼센트를 입력하면 로봇은 최대 속도의 해당 퍼센트에 따라 운동합니다. 실제 로봇 운동 속도는 V = 로봇 최대 속도 × 글로벌 속도 퍼센트 × 디버그 속도 퍼센트`로 환산됩니다. `디버그 속도 입력 박스 오른쪽의 작은 눈 아이콘에 마우스를 올리면, 현재 설정 속도에서 수동 모드와 자동 모드의 실제 물리 속도(mm/s)가 표시됩니다.
그림 9.33-10 퍼센트 입력에 따른 실제 물리 속도값 표시
물리 속도: 입력한 속도가 로봇의 실제 운행 속도가 됩니다. 단위는 mm/s`입니다. 입력 가속도는 일반적으로 속도의 2배로 설정합니다. (`LIN 명령의 최대 물리 속도는 글로벌 속도 퍼센트에 의해 제한됩니다. 로봇의 최대 운행 속도가 1000mm/s, 글로벌 속도가 50%`인 경우 `LIN 명령의 최대 물리 속도는 `1000 × 50% = 500mm/s`입니다.)
그림 9.33-11 실제 물리 속도 입력
Step5: 추가 버튼과 적용 버튼을 순서대로 클릭합니다. 그러면 `testCircle.lua`에 완전 원 운동 명령이 추가됩니다.
그림 9.33-12 완전 원 운동 명령 추가
로봇을 자동 모드로 전환하고 안전을 확보한 뒤 이 프로그램을 시작하면, 로봇은 완전 원 궤적을 따라 운동합니다.
9.33.2. 용접 핸드 핸들
초기 설정 -> 주변기기 -> 용접 핸드 핸들 메뉴 바에서 `적합 완료 장치`를 클릭하면 용접 핸드 핸들 기능 화면으로 들어갑니다.
키 기능에서 A-E 키와 IO 키를 순서대로 설정합니다. Smart Tool 설정이 완료되면 로봇 내부에서 각 버튼에 대응하는 기능이 유지되며, 특정 버튼이 눌린 것을 감지하면 자동으로 해당 기능 항목을 실행합니다.
A-E 키 기능:
운동 명령: PTP, LIN, ARC 운동 명령을 선택하는 경우 대응하는 점 속도를 입력해야 합니다. LIN, ARC 명령은 퍼센트 또는 `물리 속도`를 선택할 수 있습니다.
퍼센트: 점 속도의 퍼센트를 입력하면 로봇은 최대 속도의 해당 퍼센트에 따라 운동합니다. 실제 로봇 운동 속도는 V = 로봇 최대 속도 × 글로벌 속도 퍼센트 × 점 속도 퍼센트`로 환산됩니다. `점 속도 입력 박스 오른쪽의 작은 눈 아이콘에 마우스를 올리면, 현재 설정 속도에서 수동 모드와 자동 모드의 실제 물리 속도(mm/s)가 표시됩니다.
그림 9.33-13 퍼센트 입력에 따른 실제 물리 속도값 표시
물리 속도: 입력한 속도가 로봇의 실제 운행 속도가 됩니다. 단위는 mm/s`입니다. 입력 가속도는 일반적으로 속도의 2배로 설정합니다. (`LIN 명령의 최대 물리 속도는 글로벌 속도 퍼센트에 의해 제한됩니다. 로봇 최대 운행 속도가 1000mm/s, 글로벌 속도가 50%`인 경우 `LIN 명령의 최대 물리 속도는 `1000 × 50% = 500mm/s`입니다.)
그림 9.33-14 실제 물리 속도 입력
설정에 성공하면 티칭 프로그램에 관련 운동 명령이 하나 추가됩니다. ARC 운동 명령을 설정하는 경우 먼저 PTP/LIN 명령을 설정해야 합니다.
DO 출력: DO 출력`을 선택하면 드롭다운 목록이 표시되며, 출력 `DO0⁓DO7 옵션을 선택할 수 있습니다.
그림 9.33-15 Smart Tool 설정(A-E 키)
IO 키 기능:
IO 신호 설정: 드롭다운 목록에서 DO0⁓DO7, CO0⁓CO7, End-DO0, End-DO1, 확장 IO(Aux-DO0⁓Aux-DO127)를 선택할 수 있습니다.
조합 명령: IO 신호`를 선택한 뒤 특정 조건에서 `용접기 선택`과 `점 속도 설정 항목이 표시되며, 서로 다른 프로그램 명령을 생성합니다.
그림 9.33-16 Smart Tool 설정(IO 키)
중요
IO 신호 설정이 DO0~DO7 또는 CO0~CO7`(`아크 시작 미설정)인 경우 프로그램은 `SetDO`를 추가합니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정이 End-DO0, `End-DO1`인 경우 프로그램은 `SetToolDO`를 추가합니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정이 확장 IO(용접기 아크 시작 미설정)인 경우 프로그램은 `SetAuxDO`를 추가합니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정이 CO0~CO7`(`아크 시작 설정)이고 `용접기 선택`이 `없음`인 경우 프로그램은 `SetDO`를 추가합니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정 항목이 확장 IO(용접기 아크 시작 설정)이고 `용접기 선택`이 `없음`인 경우 프로그램은 `SetAuxDO`를 추가합니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정이 CO0~CO7`(`아크 시작 설정) 또는 확장 IO(용접기 아크 시작 설정)이고 용접기 선택`이 `용접`인 경우, 첫 번째 누름에는 `ARCStart, 두 번째에는 ARCEnd, 세 번째에는 ARCStart, 네 번째에는 `ARCEnd`를 추가하며 이후 같은 방식으로 반복됩니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
IO 신호 설정이 CO0~CO7`(`아크 시작 설정) 또는 확장 IO(용접기 아크 시작 설정)이고 용접기 선택`이 `LIN+용접`인 경우, 첫 번째 누름에는 `LIN`과 `ARCStart, 두 번째에는 LIN`과 `ARCEnd, 세 번째에는 LIN`과 `ARCStart, 네 번째에는 `LIN`과 `ARCEnd`를 추가하며 이후 같은 방식으로 반복됩니다. 이때 `용접 선택`과 `점 속도`가 표시됩니다.
IO 신호 설정이 CO0~CO7`(`아크 시작 설정) 또는 확장 IO(용접기 아크 시작 설정)이고 용접기 선택`이 `LIN+용접+웨이빙`인 경우, 첫 번째 누름에는 `LIN, ARCStart, WeaveStart, 두 번째에는 LIN, ARCEnd, WeaveEnd, 세 번째에는 LIN, ARCStart, WeaveStart, 네 번째에는 LIN, ARCEnd, `WeaveEnd`를 추가하며 이후 같은 방식으로 반복됩니다. 이때 `용접 선택`과 `점 속도`는 표시되지 않습니다.
9.34. 로봇 운동 중 임피던스 제어 기능
9.34.1. 개요
임피던스 제어 기능은 외력을 실시간으로 검출하여, 설정한 임계값에 도달하면 외력에 능동적으로 순응해 운동 궤적에서 벗어나고, 외력이 임계값 이하로 낮아지면 다시 원래 운동 궤적으로 복귀함으로써 더 나은 인간-로봇 상호작용을 구현합니다. 이 기능은 사전에 설정한 힘 임계값을 초과하는 외력을 검출하면 기계 팔을 힘 방향으로 편향시켜 능동적인 회피 효과를 달성합니다. 외력이 해제된 뒤에는 기계 팔이 원래 운동 궤적 근처로 돌아와, 인간-로봇 협업 과정의 안전성이 향상됩니다.
9.34.2. 임피던스 제어 기능
9.34.2.1. 데카르트 공간에서의 임피던스 제어 설정과 기능 시작/정지
Step1: Web 인터페이스에 로그인한 뒤 초기 설정 → 기본 → 관절 → `충돌 레벨`을 순서대로 클릭해 로봇 충돌 레벨 설정 모듈로 들어가고, 적절한 충돌 계수를 설정합니다. 그림 2-1을 참조하십시오.
그림 9.34-1 로봇 충돌 계수 설정 모듈
Step2: 힘 센서를 사용해 임피던스 제어 기능을 구현하는 경우 주변기기 → `엔드 툴`의 엔드 주변기기 설정에서 힘 센서를 설정해야 합니다. 힘 센서를 사용하지 않는 경우에는 이 단계가 필요하지 않습니다.
Step3: 티칭 프로그램 → 프로그램 프로그래밍 → 힘 제어 집합`을 순서대로 클릭하고 `Impedance 명령을 추가합니다. Impedance 명령은 로봇이 운행 궤적 위에서 임피던스 제어를 구현할 수 있게 합니다. 현재는 데카르트 공간에서의 임피던스 제어만 제공됩니다.
그림 9.34-2 힘 제어 명령 추가
Step4: 힘 제어 명령 모듈에서 공간 선택 드롭다운 목록으로 `데카르트 공간`을 선택하고, 텍스트 박스에 적절한 힘 임계값, 질량 계수, 감쇠 계수, 강성 계수, 최대 선속도, 최대 선가속도, 최대 각속도, 최대 각가속도를 설정합니다. 명령 타입에서 `시작`을 클릭하고 `추가`를 눌러 임피던스 제어 시작 명령을 추가합니다. 이어서 명령 타입에서 `정지`를 클릭하고 `추가`를 눌러 임피던스 제어 정지 명령을 추가합니다.
그림 9.34-3 임피던스 제어 명령 예시
Step5: 운행 중 기계 팔이 정지하고 Web 인터페이스 왼쪽 아래에 `500 오류: 현재 충돌 레벨이 너무 낮습니다`라고 표시되는 경우, 설정한 힘 임계값이 충돌 레벨 트리거 임계값을 초과했기 때문입니다. 이 경우 충돌 레벨을 올리거나 힘 임계값을 낮춰 이 오류를 해제할 수 있습니다.
그림 9.34-4 충돌 레벨 과소 경고
Step6: 운행 중 기계 팔이 정지하고 Web 인터페이스 오른쪽 아래에 `충돌 고장`이 표시되는 경우, 기계 팔이 받은 외력이 충돌 레벨 트리거 임계값을 초과해 충돌 고장이 발생한 것입니다.
그림 9.34-5 충돌 고장 경고
파라미터의 구체적인 역할과 권장값:
공간 선택: 임피던스 제어의 운행 공간을 설정합니다. 현재는 데카르트 공간 임피던스 제어만 제공됩니다.
힘 임계값: 임피던스 제어의 최소 트리거 힘입니다. 병진 방향 힘 임계값 범위는 30–150N, 회전 방향 힘 임계값 범위는 `7–30Nm`입니다.
질량 계수: 질량 계수가 크면 편차가 느려지고, 너무 작으면 로봇 편차가 지나치게 빨라집니다. 병진 방향 범위는 [0.01-1], 권장은 0.04`입니다. 회전 방향 범위는 `[0.001-1], 권장은 `0.01`입니다.
감쇠 계수: 감쇠 계수가 크면 편차가 느려지고, 너무 작으면 로봇 편차가 지나치게 빨라져 진동이 발생합니다. 병진 방향 범위는 [0.1-2], 권장은 0.1`입니다. 회전 방향 범위는 `[0.008-1.5], 권장은 `0.08`입니다.
강성 계수: 강성 계수가 크면 편차가 느려지며, 권장값은 `0`입니다.
최대 선속도: 외력에 의해 발생하는 병진 방향 속도를 제한합니다. 권장값은 `250mm/s`입니다.
최대 선가속도: 외력에 의해 발생하는 병진 방향 가속도를 제한합니다. 권장값은 `500mm/s2`입니다.
최대 각속도: 외력에 의해 발생하는 회전 방향 각속도를 제한합니다. 권장값은 `90°/s`입니다.
최대 각가속도: 외력에 의해 발생하는 회전 방향 각가속도를 제한합니다. 권장값은 `180°/s2`입니다.
9.35. 커스텀 위빙 용접 기능
9.35.1. 개요
커스텀 위빙 용접 기능은 사용자가 직접 설계한 용접 진동 패턴을 사용하여 위빙 용접을 수행하는 기능입니다.
커스텀 위빙 용접 기능 설명:
위빙 파라미터 설정 화면의 위빙 타입에서 커스텀 위빙0, 커스텀 위빙1, 커스텀 위빙2 중 하나를 선택합니다. 커스텀 용접 위빙 패턴은 최대 3개까지 설정할 수 있습니다.
커스텀 위빙 끝점 수는 최대 10개, 최소 2개까지 설정할 수 있습니다. 마지막 끝점의 X, Y, Z 데이터는 `0`으로 고정되어 변경할 수 없으며, 정지 시간은 설정할 수 있습니다.
커스텀 위빙 끝점의 X, Y, Z 값은 -10mm~10mm 범위여야 하며, 위빙 주파수는 `10`을 초과할 수 없습니다.
현재는 직선, 원호, 완전 원 궤적에서 커스텀 위빙 용접이 가능하지만, 위빙 그라데이션 기능은 아직 지원되지 않습니다.
위빙 대기 시간을 `포함`으로 설정한 경우, 위빙 총 정지 시간은 위빙 주기 시간의 절반을 초과할 수 없다는 점에 주의해야 합니다.
9.35.2. 커스텀 위빙 용접 기능 조작 절차
커스텀 위빙 용접 기능의 조작 절차는 다음과 같습니다:
Step 1: 먼저 직선 궤적의 시작점과 종료점 티칭 포인트를 기록합니다. 그런 다음 티칭 프로그램, `프로그램 프로그래밍`을 클릭하고 `점대점`을 선택해 로봇 엔드를 직선 시작점 `custWeaveP1`으로 이동시킵니다. 마지막으로 `직선`을 선택해 로봇을 직선 종료점 `custWeaveP2`로 이동시킵니다.
Step 2: 위빙 버튼을 선택하고 위빙 공정 편집 버튼을 클릭해 위빙 파라미터 설정 화면으로 들어갑니다. 위빙 타입`에서 `커스텀 위빙 N`(`N=0,1,2)을 선택합니다.
그림 9.35-1 위빙 파라미터 설정 화면
Step 3: 위빙 타입`을 선택한 뒤 위빙 파라미터 설정 화면을 아래로 스크롤합니다. 화면에서 커스텀 위빙 끝점 수를 선택하고, 각 점의 위빙 좌표계상 위치와 정지 시간을 설정한 뒤 마지막으로 `설정 버튼을 클릭합니다.
그림 9.35-2 커스텀 위빙 설정 화면
Step 4: 위빙 화면의 명령 타입`에서 `위빙 시작, 위빙 종료`를 차례로 선택하고 `추가 버튼을 클릭한 뒤 마지막으로 적용 버튼을 클릭합니다.
그림 9.35-3 위빙 명령 설정 화면
Step 5: 프로그램 편집 화면에서 위빙 시작 명령을 선택하고 화면 상단의 위로 이동 버튼을 클릭한 뒤 마지막으로 프로그램을 저장합니다. 로봇을 자동 모드로 전환하고 시작 버튼을 클릭하면 로봇이 직선 궤적의 커스텀 위빙을 시작할 수 있습니다.
그림 9.35-4 원래 LUA 명령 화면
그림 9.35-5 수정 후 LUA 명령 화면
Step 6: 원호 궤적과 완전 원 궤적의 커스텀 위빙 설정 절차도 위의 Step 1-Step 5와 동일합니다.
9.36. 티칭 포인트 설정
`티칭 포인트 설정`을 클릭하면 티칭 포인트 설정 기능 화면으로 들어갑니다.
사용자가 버튼 박스나 기타 IO 신호를 사용해 티칭 포인트 기록 기능을 사용하기 전에, 먼저 티칭 포인트 이름 접두사, 번호 상한, 티칭 방법을 설정해야 합니다. 이름 접두사는 사용자 정의 접두사와 현재 프로그램명을 접두사로 사용하는 두 가지 모드를 지원합니다. 예를 들어 사용자 정의 이름 접두사 P, 번호 상한 3, 티칭 방법 로봇 티칭`을 설정하면 로봇의 현재 엔드(툴) 점이 `P1, P2, P3 순으로 기록됩니다. 다시 기록하면 이전에 기록된 점이 덮어써집니다.
그림 9.36-1 티칭 포인트 설정
9.36.1. 엔드 포인트 기록 자동 덮어쓰기 갱신 Lua 프로그램
9.36.1.1. 엔드 포인트 기록 기능 설정
엔드 포인트 기록 기능을 켜고 `설정`을 클릭합니다. 스위치를 사용해 포인트를 갱신해야 하는 Lua 프로그램을 선택할 수 있습니다.
그림 9.36-2 엔드 포인트 기록 기능 활성화
설정이 완료되면 이 시점의 엔드 포인트 기록 이름은 test 접두사, 번호 상한은 `10`이며, 모든 Lua 프로그램에서 업데이트 활성화를 선택합니다. WebApp을 닫아도 이 기능은 계속 유효합니다.
9.36.1.2. 엔드 버튼 포인트 기록 자동 갱신 Lua 프로그램
로봇 엔드 포인트 기록 버튼을 클릭합니다.
그림 9.36-3 엔드 포인트 기록 버튼
이때 엔드 LED 점등 상태는 보라색 점멸(시작) -> 파란색 점등(포인트 기록 및 Lua 갱신 중) -> 녹색 점등(포인트 기록 완료) 순서로 변합니다. 선택된 Lua 프로그램의 해당 이름 포인트 정보도 동시에 갱신됩니다.
그림 9.36-3 엔드 포인트 기록 및 Lua 프로그램 갱신 LED 변화
포인트 기록 실패 시 엔드 LED 점등 상태는 보라색 점멸(시작) -> 빨간색 점멸(포인트 기록 실패) -> 녹색 점등(정상 복귀) 순서로 변합니다.
그림 9.36-4 엔드 포인트 기록 실패 LED 변화
9.36.1.3. 기능 사용 예
사용자 정의 접두사 test, 번호 상한 5, 티칭 방법에서 `로봇 티칭`을 선택하고, 엔드 포인트 기록 기능을 켠 뒤 `설정`을 클릭합니다.
포인트를 갱신해야 하는 Lua 프로그램 `program1`을 활성화합니다.
그림 9.36-5 티칭 포인트 설정
아래 그림은 program1 프로그램과 현재 운행 궤적입니다.
그림 9.36-6 program1 프로그램 및 현재 운행 궤적
페이지를 수동 모드로 전환하고 로봇을 새 포인트로 드래그한 뒤, 엔드 포인트 기록 버튼을 클릭하고 엔드 LED 점멸이 끝날 때까지 기다립니다. 보라색 점멸(시작) -> 파란색 점등(포인트 기록 및 Lua 갱신 중) -> 녹색 점등(포인트 기록 완료). 이때 기록된 점은 `test1`입니다.
Step4를 반복해 test2, test3, test4, test5`를 순서대로 기록하여 5개 포인트 기록을 완료합니다. 이때 `program1 프로그램의 포인트도 동기화되어 갱신됩니다.
program1 프로그램을 다시 실행합니다. 이때 운동 궤적이 갱신되며, 궤적은 아래 그림과 같이 바뀝니다.
그림 9.36-7 갱신 후 운행 궤적
9.37. 메인 프로그램 설정
`메인 프로그램 설정`을 클릭하면 메인 프로그램 설정 기능 화면으로 들어갑니다.
메인 프로그램 설정은 DI 설정 메인 프로그램 시작 기능과 연동해 사용할 수 있습니다. 설정할 메인 프로그램은 안전 확보를 위해 먼저 시험 운전을 해야 합니다. 로봇 설정에서 해당 DI를 메인 프로그램 시작 신호 기능으로 설정하면, 사용자는 그 DI 신호를 제어해 메인 프로그램을 실행할 수 있습니다.
그림 9.37-1 메인 프로그램 설정
























