본문 바로 가기

Doosan Robotics

Log In
Log In Form

튜토리얼

문서
Modbus-TCP를 이용한 프로그래밍 방법
필수
30 분
이 과정에서는 두산로봇에서 제공하는 Modbus-TCP 통신을 사용하는 방법을 소개합니다.

1. 시작하기

공장 자동화에서 로봇을 포함한 이기종 장비들을 연결하기 위한 통신 방법을 필드버스(Fieldbus)라고 합니다. 같은 회사 제품들로만 구성하거나 USB 처럼 절대적인 표준안이 있다면 모르겠지만, 오랜 시간에 걸쳐 구축된 다양한 장비와 사용 환경에 대해 일관된 통신 방법을 사용하기란 쉽지가 않지요.

이렇게 개발된 필드버스는 국제 규격으로는 IEC61158에 정리가 되어 있는데요. 처음에는 하나의 통신 표준을 목표로 하였으나(original hope), 결국은 여러 기술들이 경쟁을 하고 있는 상황입니다. 대표적인 필드버스로는 CAN, EtherCAT, Modbus, Profibus 등이 있어요.

이 과정에서는 두산로봇에서 제공하는 Modbus 통신을 사용하는 방법을 알아보겠습니다.

2. Modbus란



1979년 모디콘(Modicon, 현재 Schneider Eletric)에서 제안한 PLC(Programmable Logic Controller)용 시리얼 통신 프로토콜(RS-232, RS-485)입니다. 간단하고 안정적이며, 오픈 프로토콜로 무료로 사용할 수 있어 지금은 시리얼 통신뿐만 아니라 TCP/IP 및 UDP에서도 구현할 수 있도록 확장이 되었어요.

마스터/슬레이브 구조로 여러 장비의 상태 정보를 모니터링 할 수 있으며, RTU(Remote Terminal Unit), ASCII, TCP 통신을 지원합니다.

3. 두산 로봇의 Modbus-TCP 통신

두산 로봇에서 제공하는 Modbus-TCP는 마스터 기능을 지원하며, 이를 통해 로봇과 다른 장비의 통신이나 I/O를 확장하여 사용할 수 있습니다.

지원되는 신호 형식과 기능 코드는 아래와 같습니다.

<신호 유형>

 
<기능 코드>

4. 두산 로봇의 Modbus-TCP 설정 방법

4.1 네트워크 구성

  • 로봇 제어기의 IP 구성: TP의 설정 – 네트워크 - 제어기 메뉴에서 IP 주소를 확인하고 수정할 수 있습니다.


 
  • 슬레이브 장치의 IP 구성: 로봇과 연결해서 사용하고자 하는 슬레이브 장치의 IP를 로봇 제어기의 IP와 동일한 영역대로 설정을 합니다.
  • HW 연결: 로봇 제어기의 LAN 포트에 이더넷 케이블(Ethernet cable)을 연결하여 로봇(마스터)과 대상 장치(슬레이브)를 연결합니다.



4.2 슬레이브 장치 설정
  • 설정 – 네트워크 – 모드버스 슬레이브 메뉴로 이동합니다.



  • 새로운 모드버스 슬레이브 장치를 등록하기 위해 모드버스 슬레이브 추가 버튼을 누릅니다. 모드버스 슬레이브는 필요 시 2개 이상 입력이 가능합니다.

 

  • 대상 장치에 설정된 IP 주소와 포트 번호(기본값: 502)를 입력합니다. 그리고 신호 추가 버튼을 눌러 사용하고자 하는 신호의 유형과 주소, 이름, 출력 등을 입력합니다. 해당 정보는 로봇 프로그래밍 중 모드버스 신호의 값을 확인하거나 변경할 때 사용됩니다. 필요한 신호를 모두 추가하였다면, 확인 버튼을 눌러 입력한 정보를 저장합니다.

 

  • 태스크 라이터에서 직접 모드버스 신호를 추가하는 방법: Custome Code 명령에서 add_modbus_signal() 함수를 사용하여 원하는 조건의 신호를 추가할 수 있습니다. 그리고 추가된 모드버스 신호의 삭제는 del_modbus_signal() 함수를 사용하면 됩니다. 관련 함수에 대한 보다 자세한 내용은 프로그래밍 가이드 매뉴얼을 참고하시기 바랍니다.  


5. Modbus-TCP 신호의 사용 방법

모드버스 신호의 사용 방법은 태스크 빌더와 태스크 라이터에서 모두 동일하며, 입출력 신호를 사용하는 것과 유사합니다.

  • Set 명령을 사용해서 등록된 모드버스 신호의 디지털 출력의 값을 변경할 수 있습니다.



  • If 구문 등에서 변수로 사용할 수 있습니다. 이때는 get_modbus_input() 함수를 사용합니다.

  • Custom Code 명령을 사용해서 DRL(Doosan Robot Language) 스크립트를 구성할 수 있습니다.



6. Modbus-TCP 통신 사용 방법 실습

본 예제에서는 컴퓨터를 슬레이브 장치로 하여 Modbus 슬레이브 시뮬레이터를 이용해서 주어진 변수의 값을 변경하여 로봇 프로그램에 영향을 줄 수 있는(중지) 프로그램입니다.

6.1 슬레이브 장치 설정
앞서 설명과 같이, 로봇의 네트워크 설정과 같은 영역에서 IP 주소를 지정하고, Modbus 슬레이브 시뮬레이터를 실행합니다.
  • Modbus 슬레이브 시뮬레이터는 오픈소스 또는 쉐어웨어를 사용하면 됩니다.

6.2 로봇 프로그램
로봇의 프로그램은 아래와 같이 구성합니다.

 

  • 로봇 프로그램에서 Test 신호의 값을 지속적으로 확인하기 위해 MainSub 블록의 속성 중 반복 속성을 100 정도로 지정합니다.
  • Wait 명령은 컴퓨터에 실행된 슬레이브 시뮬레이터에서 지정된 신호의 값을 변경하는 동안 로봇이 대기하는 시간입니다.
  • If 구분은 get_modbus_input() 함수를 이용하여 지정된 신호(Test)의 값을 읽어와서 3과 같은지 판단을 합니다. 그리고 Test 신호의 값이 3이면, Exit 명령을 실행하여 로봇 프로그램을 중지합니다. Test 신호의 값이 3이 아니면, 해당 과정을 반복하기 위해 Test 신호의 값을 0으로 초기화 합니다.

6.3 Modbus-TCP 통신 테스트
로봇 프로그램을 실행하고 컴퓨터에 설치된 Modbus 슬레이브 시뮬레이터에서 0번 레지스터 값(로봇에 추가된 슬레이브 신호와 동일한 조건)을 Wait 명령에서 대기 중 3으로 변경하면 If 구문의 조건에 따라 Exit 함수를 실행하는 것을 확인할 수 있습니다. 해당 신호의 값을 3이 아닌 조건으로 선택하면 0으로 초기화하고 로봇 프로그램은 계속 반복이 되고요.

7. 정리

이번 과정에서는 두산 로봇에서 Modbus-TCP 통신을 하기 위해 필요한 설정과 프로그래밍 방법을 알아봤습니다. 
소개해드린 Modbus-TCP 통신을 사용하면 두산 로봇과 그리퍼, 공작기계 등 다양한 장치들을 연결해서 로봇 자동화를 구성할 수 있습니다. 통신 함수를 사용하여 슬레이브 장치와 통신을 하기 위해서는 여기서 다루어진 두산 로봇의 Modbus-TCP 함수뿐만 아니라 대상 장치와 통신을 위해 요구되는 통신 규약도 함께 확인이 되어야 합니다. 이러한 정보는 대상 장치의 매뉴얼 등에서 확인이 가능하니 참고하시기 바랍니다.

8. 참고 자료


※ 본 자료의 모든 내용과 도안에 대한 저작권 및 지적재산권은 두산로보틱스에 있습니다. 따라서 두산로보틱스의 서면 허가 없이 사용, 복사, 유포하는 어떠한 행위도 금지됩니다. 또한 특허권을 오용하거나 변용하는데 따르는 책임은 전적으로 사용자에게 있습니다.

추천 교육
여러분에게 도움이 될 수 있는 추천 교육 과정들을 확인하세요.
문서
힘 제어를 이용한 프로그래밍 방법
문서
무선 공유기 사용방법
문서
DART-Studio 사용 방법 – 태스크 관리