1. 시작하기
PROFINET은 지멘스(Siemens), GE 등 산업용 장비 제조업체가 주도하고 있는 산업용 이더넷(Ehternet) 프로토콜의 하나로, 제조 장비 사이에 데이터를 정확히 주고 받기 위해 사용됩니다.
두산 로봇에서는 별도의 HW장치 없이 소프트웨어만으로 PROFINET IO Device 기능(로봇 정보 모니터링, General Purpose Register)을 제공합니다
- 지원 대상: SW 버전 M2.3.1 또는 이후
이 과정에서는 두산로봇에서 제공하는 PROFINET IO Device기능을 이용한 프로그래밍 방법을 알아보겠습니다.
2. 준비 사항
이 과정에서는 대표적인 PROFINET 지원 장치인 독일 지멘스 사의 PLC와 두산 로봇을 연결하는 방법을 다룹니다.
필요 사항
- 지멘스 PLC(예: S7-1200등) & TIA Portal이 설치된 컴퓨터
- 두산로보틱스 협동로봇 M1013
- 설정 파일: GSDML.zip, pnio_io_table.pdf, DoosanRobot_PNIO.udt (Robotl LAB에서 다운로드 가능)
두산 로봇을 부팅하면, 제어기 부팅 과정에서 PROFINET IO Device 기능이 자동으로 실행됩니다. 따라서, 로봇이나 티치 펜던트에서 추가로 설정할 부분이 없습니다.
- 로봇의 네트워크 설정은 일반 TCP/IP 통신을 위해 사용될 수 있으며, PROFINET 통신과는 무관합니다.
PROFINET 통신을 위해 준비된 PLC와 로봇, 컴퓨터의 연결은 아래와 같습니다.
3. 두산 로봇과 PLC 연결하기
3.1 새 프로젝트를 만들고 Project View 메뉴로 이동하세요.
3.2 TIA Portal의 오른쪽 Device 트리에서 Online Access – (사용하는 이더넷 인터페이스) – Update accessible devices를 선택하고 새로운 장치를 검색하세요.
3.3 검색된 Accessible device(두산 로봇)의 Online & diagnostics를 선택하고 아래의 사항을 설정하세요.
- Assign IP address: 사용하고자 하는 IP 정보 입력(PLC와 같은 밴드의 값을 사용, 추천값: 192.168.137.xxx)
- Assign PROFINET device name: “doosan-robot”으로 입력
3.4 준비된 PLC에 대해서도 유사한 방법으로 설정을 하세요.
3.5 TIA Portal에서 준비된 두산 로봇의 GSDML 파일을 설치하세요.
3.6 Add new device에서 준비된 PLC 모델을 추가하고, ‘doosan-robot’을 추가하세요.
3.7 Device & networks 창에서 ‘doosan-robot’ 항목의 ‘Not assigned’를 클릭하고 PLC를 할당하세요.
3.8 ‘doosan-robot’과 PLC에 각각 준비된 IP 정보를 설정하세요.
3.9 ‘doosan-robot’에 필요한 I/O module을 추가하세요.
- 여기서 I/O module은 두산 로봇에서 제공되는 데이터이며, 상세한 내용은 pnio_io_table.pdf에서 확인이 가능합니다.
3.10 Network View이 IO Communication에서 업데이트 시간을 수정하세요.
3.11 설정된 프로젝트를 컴파일하고, PLC에 다운로드 하세요.
3.12 마지막으로 Go Online 버튼을 눌러 PLC와 로봇의 연결 상태를 확인하세요.
4. PLC에서 로봇 정보 읽어오기
4.1 PLC에서 External source files 항목에서 준비된 DoosanRobot_PNIO.udt 파일을 불러오세요.
4.2 추가된 DoosanRobot_PNIO.udt 파일을 선택하고, Generate blocks from source 기능을 실행하여 data type을 추가하세요.
4.3 로봇에서 제공되는 데이터 중 4 byte 데이터에 대해서는 Program blocks에서 Swap 기능을 사용해야 올바른 값을 확인할 수 있습니다. 4 byte 데이터 타입에 대해서는 pnio_io_table.pdf에서 확인이 가능합니다.
5. 로봇에서 GPR 사용하기
태스크 프로그래밍 환경(태스크 빌더, 태스크 라이터)에서 아래의 DRL 명령을 사용하여 설정된 레지스터의 값을 읽어오거나 수정할 수 있습니다.
- set_output_register_bit(address, val)
- set_output_register_bit(address, val)
- set_output_register_int(address, val)
- set_output_register_float(address, val)
- get_output_register_bit(address)
- get_output_register_int(address)
- get_output_register_float(address)
- get_input_register_bit(address)
- get_input_register_int(address)
- get_input_register_float(address)
해당 명령어들은 IF 조건문이나, Custom Code 명령 등에서 사용이 가능합니다.
6. 정리
이번 과정에서는 두산 로봇에서 제공하는 PROFINET을 사용하기 위해 필요한 설정과 프로그래밍 방법을 알아봤습니다. 보다 자세한 내용은 SIEMENS TIA Portal 및 매뉴얼을 참고하시기 바랍니다.
7. 참고 자료
※ 본 자료의 모든 내용과 도안에 대한 저작권 및 지적재산권은 두산로보틱스에 있습니다. 따라서 두산로보틱스의 서면 허가 없이 사용, 복사, 유포하는 어떠한 행위도 금지됩니다. 또한 특허권을 오용하거나 변용하는데 따르는 책임은 전적으로 사용자에게 있습니다.