닫기

기획특집

배너

[제어기술, 자동화에 혁신을 불어넣다] 기술동향_개방형 로봇제어기를 위한 PLCopen 기술

  • 등록 2013.06.27 23:29:33
URL복사

개방형 로봇제어기를 위한 PLCopen 기술

PLCopen은 국제 표준 기반 제어 프로그램의 개발을 목표로 TC1, TC2, TC3, TC4, TC5, TC6 기술 및 프로모션 위원회로 구성되어 있다. 특히 개발과정에서의 표준 Motion Control Library, Safety, XML specification, Reusability Level and Conformity Level 등을 제공하기 위해 산업용 제어 프로그램으로 유일한 전 세계 표준인 IEC 61131-3을 지원하고 있다.

2000년도 이후 공장자동화 분야에서는 “개방형 표준제어기”에 대한 관심이 높다. 이것은 설치비용을 줄이고 복잡다단한 작업들에 대한 설치 및 운용 효율성을 향상시키기 위해, 단일기기를 최적화하는 것보다 공장 전체의 효과적인 운용이 유리하기 때문으로 판단된다.
이에 오래전부터 반도체, 조선, 공작기계, 제철 등의 공장자동화와 관련해 생산 시스템과 제어 시스템의 구조가 계층적이며 모듈화된 다양한 응용들이 적용되어 사용되었다. 그러나 이러한 장치들을 제어하기 위해 전용 하드웨어와 각기 다른 언어 체계를 가지고 개발되었고, 이 때문에 시스템 간 호환성이 낮아 유지보수의 어려움이 존재했으며 전체적인 비용 상승이 유발되었다[1].
이러한 문제를 해결하고자 IEC에서는 모션제어 프로파일 표준과 PLCopen 표준을 제시했다. 이 중 IEC 61131-3은 PLC 프로그래밍 언어에 대한 문법과 Semantic을 규정하고 있는데, 이 문법을 따라 작성된 PLC 기반 모션제어기는 범용 하드웨어 상에서 구현될 수 있다 [2]. 또한, 고속 다축 동기 제어와 같이 보다 효율적이고 신뢰성이 높은 결과를 요구하는 응용들이 증가함에 따라 실시간 운용체제와 함께 EtherCAT, SERCOS와 같은 실시간 이더넷 네트워크 등이 개발되었다.
이 글에서는 국내 공장자동화용 개방형 로봇제어기의 개발과 활용에 도움을 주고자 PLCopen 기술의 구조와 특징 및 국내외 적용 현황을 살펴본다.



PLCopen 기술

PLCopen은 사용자 애플리케이션 소프트웨어 개발의 효율을 높이고 유지보수 비용을 줄이기 위해 1992년도에 창립됐으며 네덜란드에 집행부가, 미국, 일본, 그리고 중국에 지부가 있다.
PLCopen은 벤더와 생산자에 독립적인 세계적 단체로 국제 표준 기반 제어 프로그램의 개발을 목표로 TC1 (Standards), TC2(Motion Control), TC3(Certification), TC4(Communi-cation), TC5(Safety), TC6(XML) 기술 및 프로모션 위원회를 두고 있다.
특히 개발과정에서의 표준 Motion Control Library, Safety, XML specification, Reusability Level and Conformity Level 등을 제공하기 위해 산업용 제어 프로그램으로 유일한 전 세계 표준인 IEC 61131-3을 지원하고 있다.
이 규정은 산업용 제어기의 설계 및 조작운용 방법에 관한 프로그래밍 인터페이스를 표준화해 줌으로써 소프트웨어 개발 전 주기에 걸쳐 참여하고 있는 다양한 기술 배경을 가진 개발자들이 공통의 구조를 가지며 조화롭게 작업할 수 있도록 한다.
이를 위하여 이 표준은 프로그램의 내부 조직을 구조화하는 데 사용되는 시퀀셜 펑션 차트(Sequential Function Chart, SFC) 언어와 4개의 내부 조작 프로그래밍 언어인 인스트럭션 리스트(Instruction List, IL), 래더 다이어그램(Ladder Diagram, LD), 펑션 블록 다이어그램(Function Block Diagram, FBD), 그리고 스트럭쳐 텍스트(Structured Text, ST)를 지원한다.
프로그램을 논리적인 요소로 나눠 개발하고 관리할 수 있도록 조직화함으로써, 소프트웨어의 재활용성을 높이고 에러를 줄이며 프로그래밍과 사용자의 효율성을 높였다.

1. 국외 동향
생산자동화 관련하여 프로세스 데이터, 알람, 이벤트 기록, 히스토리 데이터 등의 획득 및 관리를 표준화하는 단체인 OPC foundation에서 IEC61131-3에 맞는 표준(PLCopen OPC UA Information Model 1.00)을 제시하고 하노버 전시회에서 공동 전시했다.

· Beckhoff : TwinCAT 제품은 윈도우즈에 설치되는 실시간 OS로, EtherCAT 마스터 및 CANOPEN과 SERCOS 등의 모션 제어 프로파일 표준을 지원한다. 그리고 PLCopen의 LAD/FBD/ST 등도 지원한다.
· CoDeSys : IEC 61131-3에서 정의한 다양한 언어들을 활용하도록 만들어 주는 통합개발 환경을 지원한다.
· Siemens : SIMOTION PLCopen block이라는 소프트웨어가 LAD/FBD 언어와 단축/다축 PLCopen 제어 블록을 제공한다. 그리고 이 제어 블록을 활용하여 간단한 단축 위치 제어기능부터 복잡하고 연속적인 다축 동기 기능까지 가능한 제어기를 출시했다. 또한 시스템 개발 전 주기를 효율적으로 관리하기 위한 도구로 PLCopen XML을 기반으로 하는 Mechatronics Concept Designer를 제공한다.




· Schneider Electic : 모션 제어기 Modicon LMC058은 PLCopen 기능 블록을 활용하여 모션 제어 및 기계 축의 독립적인 제어나 동기화된 제어 기능을 제공한다. PLCopen 준수 라이브러리는 관리 기능 블록(파라미터 읽기/ 쓰기, 상태 등)과 싱글 축 및 멀티 축 기능 블록으로 구성된다. 

· Teco : Foxtrot 1014/1015 PLC는 IEC 61131-3 규약에 따라 온-라인 프로그램이 가능하다.




· Mathworks : Simulink models, Stateflow charts과 Embedded MATLAB functions 모델로부터 자동으로 IEC 61131 구조화된 PLC 텍스트 코드를 생성해주는 Simulink PLC Coder를 제공한다.




· DEIF : Mathworks의 Simulink PLC와 유사하고 PLC-in-the-loop 테스팅, PLC 시스템 실시간 모니터링 및 온-라인 파라미터 조정이 가능한 PLC Link 제품을 출시했다.



2. 국내 동향
국내에서는 오픈 소스를 활용하거나 상용제품을 활용하여 제어기를 개발하는 예가 제시되고 있다. 상용제품으로는 Beckhoff사의 TwinCAT이나 Codesys사의 CoDeSys 제품이 활용되고 있으며 관련 교육도 진행되고 있다.
동의대 김원호 교수는 CoDeSys를 이용한 PLCopen 표준 기반 임베디드 모션 제어기를 BECK@IPC 모듈과 4축 보간 모션칩인 CAMC-QI를 이용하여 개발했으며, 기본 PCI-N404 모션보드를 사용한 PC 기반 모션제어기와 3축 CNC 기계에서 비교 실험한 결과를 제시했다.
성균관대학교의 신동렬 교수는 PLCopen을 활용하여 소형 다축 로봇을 위한 제어 프로그램 개발환경을 자체 개발하고 있다. 그래픽 인터페이스 도구를 활용하여 사용자가 제작된 코드를 C-코드로 변환하기 위하여 다이어그램 에디터, 오브젝트 다이어그램 및 컨넥션 다이어그램을 정의하고 관리하도록 했다.
베레미즈는 PLCopen, CANOPEN 등을 활용하여 공장자동화기기를 위한 제어기를 쉽게 만들도록 고안된 오픈소스 통합 개발환경으로 다음 기능들을 제공하고 있다. 또한, 베레미즈 프레임워크 구조를 활용해 실시간 고속 모션 네트워크인 EtherCAT과 IGH사의 오픈소스 EtherCAT 마스터인 EtherCAT Master를 활용할 수 있다.

· PLCopen Editor : IEC-61313-3 표준 PLC 언어를 활용한 프로그램 제작용 GUI 도구
· MatIEC : PLC 프로그램을 Ansi-C 프로그램으로 전환하는 역컴파일러 도구
· CANFestival : CANOPEN 지원 라이브러리와 CAN 네트워크 설정관린 프로그램을 지원
· SVGUI : 사용자 친화적인 사용자 인터페이스 개발환경




관련 기술

IEC 61131-3은 프로그래밍 ​​문법과 프로그래밍 컨트롤러(PC, Controller)의 프로그래밍 언어 통합에 대한 것으로, 다음의 언어 체계를 두고 있다[출처: http://seromsys.com].



· 텍스트 베이스 언어 IL (인스트럭션리스트)와 ST (스트럭쳐 텍스트)
· 그래픽 베이스 언어 LD (래더 다이어그램)와 FBD (펑션 블록 다이어그램)
· 순차 함수 차트 베이스 언어 (SFC)
· 펑션블럭, 펑션, 구조체, 리소스

다음은 이들 언어에 대한 간략한 설명과 CoDeSys를 활용한 예를 제시한다.

1. 펑션과 펑션 블록
펑션과 펑션 블록은 입력 측을 통하여 전달된 여러 인수들을 내부연산처리를 통한 후 펑션은 하나의 결과를, 펑션 블록은 여러 개의 출력을 제공하는데, 시스템이 제공하는 기본 펑션 및 기본 펑션 블록과 사용자가 정의하는 사용자 펑션이 있다.

· 기본 펑션 : ADD, MIN, LOG, NOT, AND, SQRT, MAX, EXP, LN, OR, SIN, COS, TAN, 등등
· 기본 펑션 블록 : R_TRIG, F_TRIG, CTU, CTD, CTUD, TP, TON, TOF, RTC, RS, SEMA, 등등
· 사용자 펑션 : 기본 펑션과 제공되는 기능 라이브러리를 활용해 아래 그림과 같이 사용자가 직접 펑션을 등록하고 그 펑션을 호출하여 사용한다.

2. 프로그래밍언어
IEC61131-3에서 제공하는 언어들은 하나의 프로젝트 내에서 혼용하여 사용될 수 있는데, 많이 사용되는 언어들은 다음과 같다.

· Function Block Diagram 언어 : 블럭형태로 표현되는 그래픽한 언어로 CoDeSys에서는 펑션, 펑션블럭을 심벌화한 프로그래밍 환경을 제공하고 있다.
· Ladder Diagram 언어 : 사다리 형태 그래픽한 프로그래밍 언어로 가장 많이 사용되는 PLC언어 형태이다.
· Sequential Diagram 언어 : 플로워챠트 방식으로 각 스텝 및 상태 조건을 만족하여야 아래 스텝 진행되는 것이 특징이다.
· Structured Text 언어 : 고급언어로 PASCAL과 유사하며, 고급연산제어와 구조체 프로그래밍이 가능하다.



지상훈 한국생산기술연구원 경기지역본부 실용로봇연구그룹









배너










주요파트너/추천기업