PLC·로봇·모션컨트롤 간의 경계를 넘다
PLC·로봇·모션컨트롤 간의 경계를 넘다
  • 윤진근 기자
  • 승인 2014.08.29 14:08
  • 댓글 0
이 기사를 공유합니다

PLCopen4 등장!
PLCopen 작업 그룹이 일련의 도구를 표준화했다. 이로써 PLC와 같은 프로그래밍 환경에서 모션컨트롤의 조정 작업을 직접 구현할 수 있게 되었다. PLCopen4를 활용하면 하나의 표준 언어를 통해 세 가지 제어방식을 동시에 실현할 수 있다.
글|제이미 솔트, Yaskawa America 모션 제품 수석엔지니어

 
산업용 로봇은 복잡하고 고유한 언어로 프로그래밍되어있다. 남들은 혀를 내두를 정도로 복잡한 언어를 로봇 프로그래머는 확실히 이해하고 다룬다. 그 범위가 넓고도 다양한 모션컨트롤러는 컴퓨터 라이브러리 혹은 고유한 특정 언어를 가지고 프로그램된다. PLC는 주로 래더 로직을 통해 프로그래밍 한다. 

오늘날 자동화 환경에서 PLC와 모션컨트롤러 그리고 로봇 사이에는 긴밀한 통합이 필요하다. 기계장치를 설계할 때에는 다양한 요소들이 통합된다. 서로 다른 언어를 통해 만들어진 요소들이 저마다 프로그래밍 측면에서 장점을 가지고 있기 때문이다.

오늘날 점차 많은 최종사용자들은 사용자에게 익숙한 PLC 언어를 통해 로봇과 모션컨트롤러 그리고 PLC를 프로그램할 수 있도록 요구하고 있다. PLC 언어는 기계장비 제작업체의 프로그래머가 이해하기 쉬우며 최종사용자의 서비스 담당자가 기능을 유지하기에도 편리하다. 

이를 위해 등장한 것이 PLCopen 작업 그룹이다. 서로 다른 세 플랫폼을 통합함으로써 복잡함을 줄이고 모양과 느낌 그리고 기능적인 측면에서 조화를 이루게 한다. PLCopen 작업 그룹은 일련의 도구를 표준화함으로써 PLC와 같은 프로그래밍 환경에서 모션컨트롤의 조정 작업을 직접 구현할 수 있도록 만들었다.

PLC
제너럴모터스(GM)의 요청에 의해 1968년 처음 도입된 PLC는 래더 로직을 통해 프로그래밍된다. PLC를 활용하면 디지털 및 아날로그 장비를 필요로 하는 공정 및 작업을 쉽게 제어할 수 있다. 하지만 순차적이고 연속적인, 즉 복잡한 공정을 요구하는 분야에서는 BASIC이나 C 혹은 C# 등의 프로그래밍 언어보다 활용이 어렵다. 수 년에 걸쳐 PLC는 BASIC과 C 등의 언어를 통해 프로그램할 수 있게 되었지만 사용자 중 대다수가 여전히 레더 로직에 의존하고 있다는 점이 이를 증명한다. 
많은 로우 엔드 PLC가 스텝 출력(Step Output) 및 방향 출력(Direct Output)을 통해 모션컨트롤을 지원한다. 또한 고가의 전용 모듈을 기본 시스템 내부에 포함함으로써 높은 수준의 모션컨트롤을 실현할 수도 있다. 대부분의 장치가 래더 로직을 통해 설계되었다 하더라도 여러 제조공정을 오가는 프로그래밍 환경 및 특화기능 블록을 통해 더 높은 수준의 기능을 실현하는 환경에서는 보다 상세한 지식을 필요로 한다.

모션컨트롤러
일반적인 시장에 통용되는 모션컨트롤러는 움직임 보간(선형 및 원형), 움직임의 조화, 기어장치, 캐밍, 이벤트를 유발하는 움직임(일반적으로 센서 및 위치 잠금장치Position Latch 등이 쓰인다) 등에 활용되고 있다.

기존의 컨트롤러는 각 축마다 전용 입력 및 출력장치를 사용했다. 컨트롤러는 움직임 기능·이동거리의 제한(Over Travel Limits)·인코더 입력(각 축당 1개 혹은 2개) 등의 모션 입력 및 서보 명령(±10V 아날로그가 일반적이다)·스테퍼 명령(단계 및 방향) 모션 출력을 제공했다. 컨트롤러는 또한 대부분 다용도 I/O를 탑재하고 있다.

반면 새로이 등장한 컨트롤러는 EtherCat 등의 네트워크 혹은 야스카와의 메카트로링크 등의 기술과 밀접하게 이어져있다. 드라이브와 제어 신호를 송수신하고, 드라이브와 직접 연결되어있는 디지털 I/O에 이 신호를 전송하기 위함이다.

장치와 연결되어있는 축의 움직임을 처리하고자 할 때, 기존 모션컨트롤러는 성능 면에서 로봇 컨트롤러와 상대가 되지 못한다. 로봇의 최종 작동 기기(End Effector)를 특정 지점으로 움직이고자 할 때, 기존 모션컨트롤러를 활용할 경우 각 축에 대해 정확한 위치를 파악하고 이를 교정해야 한다. 동시에 로봇 및 기타 기계장치들은 역 운동학(Inverse Kiematics)적으로 연결되어있어야 한다. 이 역 운동학을 사용하기 위해서는 공간 내에 존재하는 각각의 위치에서 특정 지점을 변환하는 수식이 필요하다. 각 연결 부분(혹은 축)은 연결 구조를 유지한 채 움직임이 끝나는 지점까지 기계적으로 이동해야 한다. 이러한 시스템은 그 범위가 넓고 다양하며, 대부분 특정한 프로그래밍 환경에 대한 상세한 지식을 필요로 한다. 즉, 구현이 복잡하고 어려운 것.

로봇 컨트롤러
로봇 컨트롤러는 일부 복잡한 기계장치 및 메커니즘에 최적화된 제어를 위해 설계된 장치다. 대부분의 컨트롤러는 특정한 장치에 대응하기 위해 제작되며, 제조업체가 만든 전문 언어를 통해 프로그래밍된다. 따라서 플랫폼에 따라 큰 차이가 있다.

로봇 컨트롤러는 설계 시 사용한 언어 및 사용목적과 그 기능이 일치하는 장비를 제어할 때 효율성이 극대화된다. 하지만 통신과 통합 혹은 프로그래밍 기능이라는 측면에서 보았을 때 최선의 선택은 아니다.

과거에는 특정 용도에 특화된 로봇 컨트롤러만이 운동학 및 역 운동학을 지원했다고 해도 과언이 아니다. 하지만 현재는 각종 모션컨트롤러에도 쓰일 만큼 일반적인 기능이 되었다. 모션컨트롤러가 로봇형 명령을 부분적으로 제공하는 것. 이러한 경향은 특히 포장자동화를 대상으로 한 컨트롤러에서 잘 드러난다.

최근 들어서는 로봇 컨트롤러와 모션컨트롤러 사이의 경계가 희미해지고 있다. 하지만 서로 다른 시스템을 조정 및 조율하는 것은 여전히 프로그래머의 몫이다. 현존하는 다양한 시스템은 특정한 목적에 따라 제각기 다른 언어로 설계되어있기 때문이다.
 
컨트롤러를 결합하라
PLCopen 작업 그룹은 장비 제어 프로그래밍 분야에서 나타나는 다양한 양상을 표준화하고 이를 논리적으로 정의하고 있다. PLC와 로봇 그리고 모션컨트롤 등을 하나의 이해하기 쉬운 언어로 연결하는 것은 참신하고 좋은 시도다. 최근 여러 제조업체들이 시도하고 있는 대처이기도 하다. 많은 기능 블록 지원은 기본이다. 상대 이동 혹은 절대 이동은 여러 모션컨트롤 시스템에서 쉽게 이해할 수 있는 기능 블록이다.

다중제어 시스템의 룩 앤 필(화면에 나타난 정보를 보고 난 후에 어떤 명령을 내릴 것인가를 선택할 수 있는 사용자 환경을 말하며, 명령을 먼저 생각하고 나서 키를 입력하는 방식과 차별성을 두기 위한 표현이다. 출처 두산백과)을 표준화 및 규격화하는 것은 작업에 필요한 움직임이 늘어나 어려움을 겪는 경우 큰 장점으로 작용한다. 예를 들어 다음 이동을 시작하기 전에 개별적인 이동을 멈출 경우, 일련의 상대 이동 혹은 절대 이동을 손쉽게 결정 및 달성케 할 수 있다.

더 복잡한 움직임을 상상해보자. 속도가 0이 아닌 사례에서 움직임에 따라 축을 전환해야 하며, 축의 전체 경로에 걸쳐 개별적인 각각의 움직임을 하나의 유체 운동(Fluid Motion)으로 조합해야 하는 사례를 가정할 수 있다. PLCopen 모션컨트롤은 조합에 대한 표준을 정의한다. 이를 통해 프로그래머는 보다 일반적인 조합을 실현함과 동시에 장치의 모드를 전환하고 제조업체가 직접 구현할 수 있는 유체 운동을 만들 수 있다.

기계적으로 연결된 축을 제어하는 수학적 모형 및 여러 축이 동시에 움직일 때 발생하는 기본적인 문제점 중 하나는, 축의 동기화를 통한 접근이 중요한지 여부가 항상 명확하지만은 않다는 점이다. 오류가 발생했을 때 모션컨트롤러가 항상 다른 축에 영향을 받는다고 단정하기 어려움을 의미한다. 

PLCopen은 모션 그룹에 대해 정의함으로써 이 문제를 해결한다. 따라서 그룹화가 되어있는 축 중 일부에 오류가 발생한 경우 이에 대한 적절한 응답을 생성한다. 그룹화 개념은 프로그래머에게 자유를 선사한다. 각종 부수적인 처리 없이도 특정 작업에 집중할 수 있게 되기 때문이다. 또한 그룹 상태 기계를 구현함으로써 컨트롤러가 그룹 기능을 처리할 수 있게 된다. 그룹 상태 기계에 대한 대략적인 개념은 그림 1과 같다.

PLCopen 모션 표준은 각각 모션을 조율 및 조화하는 데에 사용하는 기능 블록을 포함하고 있다. PLCopen은 3차원 공간 내에서 일어나는 복잡한 움직임을 제어하기 위한 일련의 표준화된 기능 블록을 정의하며, 운동학적인 변환을 위한 블록을 포함하고 있다. 변환 기능은 공급업체가 공급하는 것이 일반적이다. 따라서 해당 모션컨트롤러를 지원하지 않는 제조업체의 제품은 추가할 수 없다. 

하지만 야스카와는 조금 다른 접근법을 택했다. SCARA 및 델타 등의 기본적인 메커니즘을 지원하는 것. 여기에 프로그래머의 독자적인 운동학적 변환을 사용할 수도 있다. 야스카와는 운동학적 루틴을 호출하는 전문적인 기능을 제공한다. 위치를 관절 공간(Joint Space) 으로 전환하거나 그 반대 작업에 쓰인다.

PLCopen 표준은 PLC와 CNC 그리고 로봇 컨트롤러와 모션컨트롤이라는 각 개별적인 세계 사이에 다리를 놓는 역할을 하고 있다. PLC 등 하나의 장치를 통해 시스템을 완전히 제어할 수 있도록 프로그래밍할 수 있다. 표준을 통해 로봇 컨트롤러와 모션컨트롤러가 독립적인 시스템으로 작동하기보다 제어 시스템의 구성요소로 작동하게 되었다. 

또한 현대 기계 제어를 위한 두 가지 기본 요구사항인 모션컨트롤과 로직컨트롤을 통합했다. 한 패키지 안에서 모션컨트롤 및 로직컨트롤을 모두 실현하는 것. 뿐만 아니라 대기시간 없이 논리 엔진 및 모션 엔진 사이의 데이터를 사실상 무제한으로 교환할 수 있다(대기시간은 기존 시스템에서 성능을 제한하는 요소였다).

현재의 기술을 활용해 로봇과 추가적인 서보 축을 완벽하게 동기화할 수 있다. 기계 컨트롤러를 통해 이를 실현할 수 있다. 이러한 업적은 기존에는 로봇 컨트롤러 영역에서만 달성할 수 있던 것이기에 더욱 값지다.
 
결론
PLCopen 표준이 지향하는 궁극적인 목표는 프로그램 코드를 하드웨어 혹은 특정 제조업체로부터 독립시키는 것이다. 서로 다른 하드웨어 제공업체라 하더라도 그 기저를 이루는 코드를 동일화하고 같은 방식으로 작동하게 만든다면, 프로그래머는 각 제조업체 고유의 언어를 배워야 할 필요가 없어진다. 복잡하고 완벽한 장비 제어 시스템은 한결 진보된 정확도 및 처리량을 통해 개발기간 및 시장출시기간(타임 투 마켓)을 실현한다.

PLCopen은 개발 과정에서 설계의 복잡성과 전문 교육에 대한 필요성을 줄임으로써 전체 시스템이 다수의 기존 PLC 프로그래머들에게 한결 친숙하게 다가갈 수 있도록 만들었다.

 


주요기사
이슈포토