본문 바로가기

이슈&리포트

소프트웨어 정의로 설계된 PAC

소프트웨어 정의로 설계된 PAC(Programmable Automation Controller) :
컨트롤러를 추가하기보다, 알고리즘을 효과적으로 사용하십시오

Brett Burger
NI 임베디드 시스템 시니어 제품 매니저

1310기1-이미지1.jpg
현재의 컨트롤 엔지니어들은 계속해서 복잡해져 가는 문제들을 해결해야 하는 임무가 주어지면서 시스템을 간소화해야 하는 압박에 시달리고 있습니다. 하지만 안타깝게도 이런 문제들을 해결하기 위한 솔루션을 명확히 정의하기 어렵기 때문에, 해결법에 접근하기 위해 전반적인 산업 시장 트렌드가 대신 논의되고 있습니다.
한 예로, 모터의 초기 동작에 대한 오류나 효율성 손실에 대한 원인을 확인하기 위해 지속적으로 모니터링 되고 있습니다. 또한, 절삭기에 대한 제어 입력은 디지털 온-오프 제어 방식에서 벗어나, 힘을 정밀하게 제어하여 대상의 모서리와 밀도를 감지하는 피드백을 활용한 비전 가이드 모션 구조로 진화하였습니다. 이런 예를 통해서 시장의 요구와 복잡해져 가는 제어 문제를 해결하기 위해 상용 기술의 통합이 필요하다는 것을 알 수 있습니다.
다행히도, 컨트롤 설계자들을 위한 상용기술은 계속해서 발전하는 중입니다. PAC을 위한 최신 프로세싱 기술이 현재 소프트웨어 정의로 설계된 내쇼날인스트루먼트 cRIO-9068 컨트롤러와 함께 사용 가능합니다.
이 컨트롤러의 마이크로프로세서는 Xilinx의 최신 실리콘 기술인 Zynq에 구축되었습니다. 이 SoC는 부동소수점 연산 코어와 FPGA, DSP 슬라이스를 단일 칩에 결합하여 컨트롤 설계자들이 더욱 간소화된 아키텍처를 생성하여, 고급 머신을 위한 알고리즘을 컨트롤러에 분할할 수 있도록 합니다.
로직 게이트보다 래더 로직에 더 익숙한 컨트롤 설계자들에게는 다소 생소할 수 있지만 모든 PAC, PLC, 임베디드 컨트롤러에는 프로세싱 요소들이 포함되어 있습니다. 일부 요소에는 신호 처리와 타이밍을 위해 사용되는 FPGA 또는 ASIC이 포함되어 있기도 합니다.
이러한 프로세싱 요소들은 망치와 같은 기초 공구와 유사합니다. 철물점의 공구 코너에 가면, 다양한 종류의 망치들이 전시되어 있습니다. 종류는 많지만 역할에 따라 용도가 나뉘어 있으므로 작업에 맞는 올바른 공구를 사용하는 것이 중요합니다. PC 기반 자동화는 일반 망치와 유사합니다. 즉, 대부분의 어플리케이션에 사용하기 충분할 정도로 다용도이지만, 나무망치로서 역할을 수행하기에 너무 강하고, 쇠 망치로 쓰기에는 너무 가벼우며, 해머로 사용하기에는 너무 작습니다. 비록 고속 타이밍, 트리거링 또는 낮은 지연성이 요구되는 어플리케이션에는 부족할 수 도 있지만, 광범위한 어플리케이션에서 사용하기 위해서는 표준 부동 소수점 연산 프로세서가 이상적입니다. 부동소수점 연산 프로세서는 신호 및 제어 신호를 위해서도 사용할 수 있습니다. 하지만 반복적인 알고리즘에 사용되는 FPGA나 DSP와 비교하면 비용이 더 많이 듭니다. FPGA는 프로세싱 집약적인 알고리즘에는 이상적이지만, 런타임 유연성에 제약이 있습니다. 따라서 PAC/PLC와 임베디드 컨트롤러의 프로세싱 요소들을 결합한 솔루션은 다양한 서브시스템을 간소화하는 데 있어 아주 좋습니다.
기본적인 수준에서 보면, 서브시스템은 하드웨어와 소프트웨어를 조합하여 온도 제어 시스템과 같은 특정 기능 역할을 합니다. 이 경우, 하드웨어 입력은 온도 센서이고, 출력은 팬이나 히터를 제어하며, 시스템을 위한 소프트웨어 로직은 간단한 리밋 기능부터 고급 PID 알고리즘까지 될 수 있습니다. 여러 컴포넌트가 있는 복합 머신에서 이 온도 컨트롤러는 맞춤형 보드에 개별적으로 구현된 디자인으로서 케이블로 연결된 버스를 통해 메인 컨트롤러와 통신합니다. 서브 컨트롤러마다 개별적으로 최적화된 하드웨어 디자인 필요 없이 설계자들은 새로운 임베디드 컨트롤러를 이용하여 유연한 단일 코어를 더욱 쉽게 활용할 수 있습니다. 이로써 소프트웨어로 설계한 더욱 적은 컨트롤러로 머신을 간소화하여 보다 적은 설계 비용으로 더욱 빠르게 시장 출시가 가능해집니다.

1310기고2-이1.jpg
머신의 서브시스템은 호스트 부동소수점 연산 프로세서나 가용 FPGA/DSP 리소스에서 실행할 수 있는 소프트웨어 블록으로서 간략화됩니다. 이제는 서브 컨트롤러가 아닌 서브루틴을 생각하면 됩니다. 하드웨어 기반의 많은 서브 컨트롤러들이 이미 모듈형 I/O와 새로운 임베디드 컨트롤러의 고급 기능들을 이용하여 맞춤형 FPGA/DSP 를 사용하여 구현됨으로써 추가적인 하드웨어 구성을 줄이는 데 효과적입니다.
이 기술은 여러 서브시스템과 페어링된 고성능 머신을 포함하는 어플리케이션에 이상적입니다. 한 예로, 레이저 톱은 실리콘 웨이퍼의 제작 공정에 사용됩니다.
이 상용 기술은 첨단 기계식 커터를 이용했을 때보다 낭비도 덜하고 속도도 빠르게 엔지니어의 프로세스 실리콘 웨이퍼를 제조하는데 도움을 줍니다. 이런 결과를 얻기 위해 머신에는 온도 제어, 레이저 제어, 인라인 처리가 가능한 고속 아날로그 입력, 사용자 인터페이스를 제공하는 모니터링용 PC를 위한 개별 컨트롤러가 포함된 여러 서브시스템이 있습니다. 중앙 컨트롤과의 통신 프레임워크는 모든 서브 컨트롤러에 필요하기 때문에, 현재의 머신 설계자들은 각 서브 시스템을 위한 개별 디자인을 개발합니다.
최신 프로세싱 기술이 적용된 임베디드 컨트롤러를 이용하면 아래 이미지와 같이 이러한 여러 서브 시스템들을 단일 컨트롤러로 대체할 수 있습니다. 각 컨트롤러를 위한 소프트웨어/펌웨어 명령 세트는 메인 컨트롤러의 서브루틴으로서 존재하며 시스템 설계자들은 적절한 서브루틴을 복사/붙여넣기하고 다른 I/O 모듈을 추가하여 시스템을 확장할 수 있습니다.
고성능 머신은 청결한 웨이퍼 제조 환경에만 국한되어 사용되지 않는다는 것도 중요합니다. 집약적인 신호 처리와 측정 품질 I/O는 특히나 중장비의 유지보수에서 더 많이 보급되어 있습니다.
상용 임베디드 컨트롤러로 이러한 시스템을 설계하는 것이 더욱 직관적이지만, 전통적인 맞춤형 ASIC또는 FPGA/DSP를 사용하여 설계를 하는 경우도 있습니다.
맞춤형 ASIC 을 사용하는 경우에, 모터의 유지보수를 위해서 RMS 연산과 FFT를 사용하게 되고, 이러한 알고리즘들은 채널 수와 함께 CPU 리소스를 증가시키며, 이를 고려하여 다른 태스크를 위한 CPU 리소스를 사전에 예약해놓기 때문에 CPU의 효율적인 사용을 제한하거나 비용을 증가시킵니다. 이 프로세스를 FPGA/DSP 프로세싱 유닛과 조합하면 FPGA가 여러 프로세스를 더욱 효율적으로 처리하는 것처럼 CPU에 대한 워크로드 일부가 없어지고 데이터 전송률은 향상됩니다. FPGA의 크기는 정해져 있지만 이 공간에 병렬 프로세스를 추가하는 데 기능 제한은 없습니다. 앞의 비유처럼 무언가를 부수는데 망치를 이용할 수 있지만, 효율성이 높아진다면 해머를 이용하는 것이 적합합니다.
일부 디자인의 중심이 소프트웨어로 이동하면서 가용 프로세싱 기술을 이용하기 위해 사용할 수 있는 소프트웨어 툴이 중요해졌습니다. PAC/PLC에 가장 일반적인 프로그래밍 표준은 IEC 61131입니다. 61131은 순차 디지털 프로세스와 제어에 중점을 둔 추상 언어이고, 고급 프로그래밍을 처리하거나 FPGA/DSP를 타겟팅하도록 제작되지 않았습니다.
많은 고급 컨트롤 설계자들이 임베디드 설계에 C 같은 표준 프로그래밍 언어를 찾고 있습니다. C는 대부분의 태스크나 프로세싱 타겟을 처리할 수는 있지만, 로우-레벨 언어이기 때문에 서브루틴 디자인을 구현하는 데 많은 지식과 시간이 필요합니다.
61131과 C 언어의 중간쯤에 해당하는 프로그래밍 환경도 존재합니다. 한 예로, NI LabVIEW 시스템 디자인 소프트웨어는 두 소프트웨어 환경간의 균형을 제공합니다. 이 소프트웨어는 메모리 핸들링, 스레딩, 코어 관리를 포함한 프로그래밍 프로세스를 간소화하는 동시에 FPGA의 코어에서의 프로세싱과 I/O 요소들에 대한 로우-레벨 접근도 제공합니다.
프로그래밍을 위한 문법적인 부분 이외에도, 표준 변경과 더욱 낮은 비용으로 더 빠르게 혁신해야 하는 요구 등, 계속해서 복잡해지는 문제들을 해결하기 위해 시스템 설계자들이 상용 기술을 활용할 수 있어야 합니다. 결과적으로, 이 요소들을 프로그래밍할 수 있는 방법이 없다면, 프로세싱 요소들은 설계자들에게 이점이 되지 않습니다.
현재의 고급 컨트롤 시스템에서는 사용할 수 있는 프로세싱 요소와 펌웨어 대부분이 고정되어 있거나 접근이 불가능합니다. 임베디드 컨트롤러가 더 많이 개방될수록 컨트롤 설계자들은 이러한 복합 머신들을 더욱 적은 서브 시스템들로 병합하기가 더 쉬워집니다. 한 예로, 웨이브폼을 측정하고 후처리 값 또는 PID ‘컨트롤 칩’만 출력하는 모듈을 갖춘 PAC/PLC에는 이미 하드웨어적으로 구성된 기능이 포함되어 있습니다. 이 설계 방식은 구현해야 할 하드웨어의 비용은 절감시키지만, 펌웨어를 디버깅하거나 수정할 수 있는 유연함을 설계자에게 제공하지는 않습니다. 또한, 컴포넌트들의 수명이 다하게 되면, 알고리즘을 정확하게 복제하는 것이 어려워 여러 잠재적인 문제를 낳을 수 있습니다.
새로운 cRIO-9068 컨트롤러(이미지 2)는 부동 소수점 연산 프로세서, DSP 슬라이스를 제공하는 FPGA, Linux 리얼타임 버전의 운영체제를 제공합니다. 설계자들은 쉘 액세스를 통해 방대한 Linux 커뮤니티에 접근함으로써 절감된 시간과 리소스로 머신을 구성하고 실행할 수 있습니다. 상용 Linux 어플리케이션 외에도 새로운 부동 소수점 연산 프로세서는 LabVIEW 소프트웨어와 Eclipse 개발환경 모두를 지원하므로 컨트롤 설계자들은 기존의 C/C++ 코드를 재사용할 수 있습니다. 따라서, 사용자는 기존의 소프트웨어를 최소한의 작업만으로 최신 하드웨어에 배포할 수 있습니다.
제강 공장, 섬유 산업, 반도체 등의 업계에서는 더욱 스마트한 머신에 대한 수요가 일어나면서 향상된 머신 컨트롤 디자인 기술에 대한 요구가 강해질 것입니다.
최신 하이브리드 프로세싱 기술을 이용하는 PAC과 임베디드 컨트롤러의 아키텍처가 여러 특정 PAC/PLC 또는 맞춤형 설계와 통합되어 컨트롤러 개수가 적은, 소프트웨어 설계 방식의 컨트롤러로 전환되면서, 머신 설계를 발전시키고 간소화되는데 도움을 줄 수 있습니다.
차세대 임베디드 컨트롤러는 기존의 프로세스 환경에서 사용되던 툴들을 대체하지는 않을 것입니다. 단, 이 컨트롤러는 차세대 스마트 머신에 이상적이며, 보다 간소화된 아키텍처로 시장 출시를 앞당기고자 하는 설계자들에게 최적화되어 있습니다.

※ 출처 : EngNews (산업포탈 여기에) - 소프트웨어 정의로 설계된 PAC