Skip to main content

2.3.1. 통신 방법 및 데이터 구조

2.3.1. 통신 방법 및 데이터 구조

 

온라인 트래킹 기능에서 PC server, 로봇 제어기는 client UDP/IP 통신이 수행되고 통신 주기는 5msec입니다. 그림 2.3 PC에서 UDP/IP 통신으로 로봇 제어기와 송수신하는 데이터 구조를 C 언어로 표현한 것 입니다. 보낼 때와 받을 때 데이터 크기는 모두 64Bytes입니다. (char1byte, int 4bytes, double8bytes)

 

 

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로 재송신

- 위치 증분지령 송신 횟수값
-
사용자가 직접 매 송신마다 0부터 시작

하여 1씩 증가시켜 이전 데이터의 제어

기 수신을 확인할 수 있음

 

 

그림 2.3dData은 전송 방향에 따라 다른 데이터 내용을 갖습니다. 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 명령문의

  설정을 따름)

 

dData[0] : X방향 증분지령, m 단위

dData[1] : Y방향 증분지령, m 단위

dData[2] : Z방향 증분지령, m 단위

dData[3] : Rx방향 증분지령, rad 단위

dData[4] : Ry방향 증분지령, rad 단위

dData[5] : Rz방향 증분지령, rad 단위

- 위치 증분지령을 반영한 로봇 좌표계의

현재 툴 위치값

 

 

dData[0] : X방향 현재위치, m 단위

dData[1] : Y방향 현재위치, m 단위

dData[2] : Z방향 현재위치, m 단위

dData[3] : Rx방향 현재위치, rad 단위

dData[4] : Ry방향 현재위치, rad 단위

dData[5] : Rz방향 현재위치, rad 단위