2.3.1. 통신 방법 및 데이터 구조
2.3.1. 통신 방법 및 데이터 구조
온라인 트래킹 기능에서 PC는 server, 로봇 제어기는 client로 UDP/IP 통신이 수행되고 통신 주기는 5msec입니다. 그림 2.3은 PC에서 UDP/IP 통신으로 로봇 제어기와 송수신하는 데이터 구조를 C 언어로 표현한 것 입니다. 보낼 때와 받을 때 데이터 크기는 모두 64Bytes입니다. (char형1byte, int형 4bytes, double형8bytes)
struct{ char Command; char char_dummy[3]; int State; int Count; int int_dummy; double dData[6]; } |
그림 2.1 UDP/IP 통신의 송수신 데이터 구조
그림 2.3의 Command는 PC와 로봇 제어기 간 연결시작, 연결종료, 위치 증분지령와 로봇 위치 전송을 나타내는 변수입니다. PC와 로봇 제어기의 올바른 통신연결과 데이터 송수신을 위해서는 표2.1과 같이 Command값을 적절히 설정, 전송해야 합니다. 온라인 트래킹 기능의 통신 동작순서는 2.3.2절을 참조 하십시오.
표 2.1 송수신 시Command 변수 내용
변수명 | 데이터 전송 방향 | ||
로봇 제어기 → PC | PC → 로봇 제어기 | ||
Command | 'S' | - OnLTrack ON 실행 시 전송 - 온라인 트래킹 기능 시작을 알림 | - 제어기로부터 'S' 명령이 수신된 후 'S'를 다시 전송하여 연결 확인을 알림 ('S'를 제어기로 전송하지 않으면 제어기 는 이후 전송되는 데이터를 무시함) |
'P' | - 위치 증분지령이 수신되었을 때 전송 (State 변수 참조) - 로봇의 현재 위치를 같이 송신함 (dData 변수 참조) | - 위치 증분지령을 송신할 때 사용함 (dData 변수 참조) | |
'F' | - OnLTrack OFF 실행 시 전송 - 온라인 트래킹 기능 종료를 알림 | - 제어기의 OnLTrack OFF 실행되기 전 PC에서 온라인 트래킹 기능 종료를 할 때 전송 - 온라인 트래킹 기능 종료를 알림 |
그림 2.3의 State 변수는 로봇 제어기에서 PC로 데이터를 송신할 때만 의미를 갖습니다. State=1이면 연결시작을, State=3이면 연결종료를 나타냅니다. 따라서 Command='S'일 때 State=1이고, Command='F'일 때 State=3입니다. Command='P'일 때는 State는 -1이나 2입니다. 2이면 위치 증분지령이 로봇 모션계획에 반영된 것을 나타내며 -1이면 반영되지 못함을 뜻합니다. (로봇의 특이점 위치(singular point)에서는 로봇의 동작이 제한적이어서 위치 증분지령을 반영하지 못할 수 있습니다.) State 변수 내용을 정리하면 표 2.2와 같습니다.
표 2.2 송수신 시State 변수 내용
변수명 | 데이터 전송 방향 | ||
로봇 제어기 → PC | PC → 로봇 제어기 | ||
State | 1 | - OnLTrack ON 실행 시 전송 - 온라인 트래킹 기능 시작을 알림 | - 사용하지 않음 (reserved) |
2 | - 위치 증분지령이 수신, 반영되었을 때 | ||
-1 | - 위치 증분지령이 수신되었으나 | ||
3 | - OnLTrack OFF 실행 시 전송 - 온라인 트래킹 기능 종료를 알림 |
그림 2.3의 Count는 PC에서 로봇 제어기로 위치 증분지령을 송신 시 몇번째 위치 증분지령 전송인지를 나타내는 숫자로 사용자가 설정하는 변수입니다. 제어기에서 PC로 로봇 현재 위치를 송신할 때는 직전에 PC로부터 받은 Count값을 그대로 보냅니다. 따라서 사용자는 Count 변수를 이용하여 매 데이터 전송마다 Count를 1씩 증가시키면서 제어기로부터 데이터 수신 시 Count를 송신한 값과 비교하면 직전의 데이터 전송이 수행되었는지 쉽게 확인할 수 있습니다. Count 변수 내용을 정리하면 표 2.3과 같습니다.
표 2.3 송수신 시Count 변수 내용
변수명 | 데이터 전송 방향 | |
로봇 제어기 → PC | PC → 로봇 제어기 | |
Count | - PC로부터 수신된 값을 현재 로봇 위치와 함께 PC로 재송신 | - 위치 증분지령 송신 횟수값 하여 1씩 증가시켜 이전 데이터의 제어 기 수신을 확인할 수 있음 |
그림 2.3의 dData은 전송 방향에 따라 다른 데이터 내용을 갖습니다. PC에서 로봇 제어기로 송신 시에는5msec 동안 로봇이 움직일 위치 증분지령이고 로봇 제어기에서 PC로 송신 시에는 로봇의 현재 직교좌표 위치값입니다. 위치 증분지령은 부드러운 로봇의 동작을 위해 가감속을 고려하여 5msec 마다 실시간으로 송신을 할 것을 추천합니다. 제어기의 OnLTrack ON문 수행 시 필터설정에 따라 위치 증분지령이 필터링되어 부드럽게 반영되나 시간지연이 발생할 수 있습니다. 또한 위치 증분지령은 LIMIT POS와 LIMIT VEL문으로 제한되므로 2.2.2절의 명령문 설명을 참조하시기 바랍니다. 로봇 제어기로부터 PC로 수신되는 로봇의 현재 직교좌표 위치는 수신된 위치 증분지령을 반영한 로봇 좌표계 기준의 툴 위치값를 의미합니다. 로봇의 현재 직교좌표 위치값은 TP상에서 모니터링할 수 있는 로봇의 직교좌표 위치값과 동일합니다. dData 변수 내용을 정리하면 표 2.4와 같습니다.
표 2.4 송수신 시dData 변수 내용
변수명 | 데이터 전송 방향 | |||
PC → 로봇 제어기 | 로봇 제어기 → PC | |||
dData[0]~[5] | - 5msec 동안 로봇이 움직일 위치 증분지령 (증분지령 좌표계는 OnLTrack ON 명령문의 설정을 따름)
| - 위치 증분지령을 반영한 로봇 좌표계의 현재 툴 위치값
|