IT를 품은 기계공학도

PLC 및 PC제어(2)- MFC(C++)와 API를 이용하여 DOBOT 데이터 가져오기 본문

지능형스마트팩토리/PLC 및 PC 제어

PLC 및 PC제어(2)- MFC(C++)와 API를 이용하여 DOBOT 데이터 가져오기

아름돌이 2020. 11. 7. 12:51

2020/11/07 - [지능형스마트팩토리/PLC 및 PC 제어] - PLC 및 PC제어(1)- MFC(C++)와 API를 이용하여 DOBOT을 연결해보자

 

PLC 및 PC제어(1)- MFC(C++)와 API를 이용하여 DOBOT을 연결해보자

두봇은 교육용 3D 프린팅용 등으로 주어진 API를 가지고 사용자가 원하는 대로 제어할 수 있는 아주 간단한 로봇팔입니다. 이번 포스팅에서는 이 DOBOT을 연결하고 움직이는 방법에 대해서 알아보

ilovemecha.tistory.com

저번 포스팅에 이어서 이번 포스팅에서는 DOBOT의 위치를 가져와보는 예제를 해보겠다.

 

SetTimer와 Killtimer

DOBOT이 연결되면 0.2초마다 두봇의 현재 위치를 받아오는 코드를 짜기 위해서는 SetTimer를 사용하여야 한다. SetTimer는 3가지 파라미터를 받는다 아래를 잘 보면. 첫 번째로는 이벤트의 ID, 이건 본인이 아무 숫자로 지정해주면 된다. 두 번째 파라미터는 몇 초마다 반복할지 정하는 인수이며, 마지막은 콜백 함수를 불러오는 인수로 NULL을 설정해줄 시 Ontimer 함수를 불러오게 된다.

MFC에 Static추가 및 메시지 추가

X,Y,Z값을 받아올 텍스트를 추가시켜주고 Ontimer 함수를 불러올 메시지를 추가하여야 한다. 우선 클래스 마법사(ctrl + Shift + x)에서 다음과 같은 메시지를 추가한다. 그럼 아래와 같이 cpp파일에 Ontimer함수가 추가된 것을 볼 수가 있다.

그리고 왼쪽 도구상자에서 Static Text를 3개 추가해준 뒤 다음과 같이 캡션을 바꾸어 준다.

그리고 클래스 마법사에서 각각 Static_Text의 제어 변수를 추가해준다. 그러면 이 텍스트의 값을 바꿀 수가 있다. 우리는 DOBOT의 X, Y, Z값을 각각의 Static_Text에 넣어줄 것이다.

코드 및 결과

이제 다음과 같은 코드를 추가해준다. 기존의 Connect버튼에 Settimer부분과 Killtimer부분을 추가해주고 새로 생긴 Ontimer함수에도 내용을 추가해준다. 코드 실행결과 Dobot의 결과를 받아올 수가 있다.

여기 쓰인 API는 다음과 같다.

Pose클래스는 로봇의 x,y,z,r을 저장할 수 있는 변수를 가지고 있다.

그리고 GetPose() 메서드는 위의 클래스의 주소를 넘겨주면 두봇의 Real-Time Position을 가져올 수 있다.

 

Comments