블록 플랫폼 제어 시스템 구현 방법

ADVANCED Motion Controls

개요


프로그래밍 기술은 워크 플로(workflow)를 순차 프로그래밍 언어를 통해 번역한 것으로 구성한다. 반면 대부분의 사람은 워크 플로를 직관적으로 이해한다. 자신의 실제 경험을 반영하지만, 워크 플로를 컴퓨터에서 프로그래밍될 수 있게 변환할 수 있는 사람은 거의 없기 때문이다.


이 문제에 대한 해결책은 비주얼 프로그래밍 즉, 사용자가 기능 블록 사이에 정보 흐름을 그려주면 프로그램이 정보를 번역, 소스(source), 싱크(sink)하는 프로그램 환경이다. 다이어그램이 프로그램이 되고, 시스템 내부가 프로그램을 적합한 대상 플랫폼에서 실행할 수 있는 형태로 변환하는 데 필요한 세부 사항을 번역한다.

 

여기서는 사양과 구현 로직(logic) 모두를 나타내는 다이어그램을 그려서 복잡하고 플랫폼 독립적인 제어 시스템을 구현하는 방법에 대해 설명한다.

 

시각적 프로그래밍 언어를 위해 쓰이는 함수 블록 다이어그램


복잡한 시스템에서 동작을 설명하기 위해, 블록 다이어그램을 비주얼 프로그래밍 언어로 형식화하는 것이 필요하다. FBD(Function Block Diagram)는 IEC 61131-3 PLC 프로그래머블 로직 컨트롤러(Programmable Logic Controller) 표준에 정의된 시각적 프로그래밍 언어이다. FBD 기반 해결책은 직선으로 서로 연결된 기능 블록(FB, Function Block)으로 구성된다. FBD는 다이어그램 작성 방법에 대한 엄격한 규칙이 적용된 실제 컴퓨터 프로그래밍 언어이다.


디자인은 최상위 레벨에서 블록 다이어그램으로 하위 레벨에서 중첩된 블록 다이어그램의 더욱 상세한 세트가 되고, 해결책을 생성하는 데 필요한 모든 세부 사항을 캡처하는 블록 다이어그램으로 끝난다.


결과로 나온 다이어그램 세트는 이름이 지정된 경로로 연결된 개별 FB가 있는, 전기 엔지니어링 분야에서 사용된 회로도와 유사하다.

 

함수 블록은 시스템에서 제공하는 기본 함수 블록('간단한')과, 기본 함수(‘사용자 정의 함수 블록’)처럼 작동하는 하위 레벨 기능 블록 다이어그램을 캡슐화(encapsulating)하는 사용자 정의 함수 블록 중 하나일 수 있다.


사용자 정의 함수 블록(UDFB)은 크고 복잡한 다이어그램을 독립적으로 코딩하고 빌드(building)와 실험이 가능한, 작은 다이어그램의 중첩된 집합으로 분해함으로써 다이어그램 복잡성을 관리할 수 있는 필수적인 구조 도구이다. UDFB 자체에는 UDFB가 포함될 수 있으며, 제한되는 사항은 블록 하나가 직간접적으로 스스로 관련되지 않을 수 있는 중첩과 반복 금지에 대한 사항이다.

 

 


함수 블록에 무엇이 들어 있는가?


FB는 애플리케이션의 기본 구성 블록이다. FB는 수학적, 논리적 또는 물리적 연산을 나타내며, 입력에 제공되는 데이터에 작용해 출력 데이터를 생성한다. 일부 함수 블록은 드라이브를 움직이거나 인터페이스에서 정보를 읽는 것과 같은 함수를 수행하는 물리적 환경과 상호 작용한다. 이 함수 블록은 제어 엔지니어가 각 블록을 프로그래밍하는 실제 메커니즘에 집중하는 대신 애플리케이션을 엔지니어링 하는 데 주력할 수 있도록 해준다.


시스템 생성 공정은, 특정 시스템 해결책을 제공하기 위해 여러 가지 방법으로 물리적 장치를 함께 연결하는 것에 익숙한 산업 시스템 설계자의 생각에 가깝다. 애플리케이션은 이미 이해되고 입증된, 다시 사용할 수 있는 구성 요소로 만들어진다. 함수 블록은 의도된 용도로 사용하기 위해 특정 블록으로 지정된 정적 속성을 포함할 수 있다.

 

이러한 등록 정보의 예는 통신 매개변수이다. 함수 블록 자체는 통신 대상을 지정하는 특성과 프로토콜 특성 등을 사용해서 연결 열기와 닫기, 메시지 캡슐화와 흐름을 처리한다.

 

라이브러를 위해 쓰이는 사용자 유도 함수 블록


UDFB(사용자 유도 함수 블록, User Derived Function Blocks)는 유용한 구조화 도구일 뿐만 아니라 구성 안에서 코드 재사용을 권장하는 애플리케이션 특정 라이브러리를 생성하는 방법이기도 하다.


UDFB에 실제 프로그램 코드를 임베드(embed) 하는 것이 가능하기 때문에 이러한 라이브러리는 표준 기능 블록을 사용해 쉽고 안전하게 설명할 수 없는 독점적 알고리즘과 같은 지적 재산을 관리하는 데 사용할 수 있다.

 

FBD가 어떻게 구조화돼야 하는가?


간단한 애플리케이션의 경우, 디자이너가 직관적으로 FB를 연결해서 간단한 회로를 프로토타입으로 만들기 위해 기판을 사용하는 사람처럼 원하는 기능을 얻을 수 있다.

 

까다로운 애플리케이션은 더 복잡해지는 경향이 있으므로 실제로 구현하기 전에 문제를 해결하기 위한 더욱 체계적인 접근이 필요하다.

 

이러한 접근 방식은 ‘Top Down With Prototyping’이라는 전통적인 프로그래밍 기술과 유사하다. 문제의 개요가 최상위 수준의 기능 구성 요소(이 경우 기능 블록)로 설명돼 있으며, 각 구성 요소는 개별적으로 생성돼 실험되는 작은 구성 요소로 분해된다.


여기서 UDFB는 필수적이다. 분해 단계에서 최상위 구성 요소 중 많은 부분이 실제 구성 요소가 아닌 서브 시스템의 예상되는 동작을 시뮬레이션하는 기능성 모형이 될 가능성이 높기 때문이다. 이를 통해 설계자는 전체 시스템 로직과 애플리케이션 제어와 모니터링에 사용되는 사용자 인터페이스를 실험할 수 있다.

 

해결책이 명확해짐에 따라  설계자는 더 많은 확신을 얻고 점차적으로 모형을 '라이브' 블록으로 대체하며 프로토타입으로부터 해결책이 나온다. 이러한 해결책을 생성하는 두 가지 중요한 구조화 도구는 플로차트와 상태 머신이다.

 

플로차트 (Flowchart)


플로차트는 원하는 활동 순서를 보여주는 시각적 수단이다. 조건에 따라 순서를 표시한다. 그러나 제어 애플리케이션에서 활동은 과거 조건(예 : 타이머 만료)에 따라 달라질 수 있다.

 

플로차트에는 상태에 대한 개념이 없다. 플래그나 변수를 도입할 수 있지만 실제로는 코드화된 양에 해당한다. 상태를 플로차트에 넣으려고 하면 예상치 못한 경향이 있는 비동기식 기계로 끝날 가능성이 높다.

 

 


상태 머신 (State Machine)


제어 애플리케이션을 더 정확하고 투명하게 묘사하는 방법이 상태 다이어그램으로 표현되는 상태 머신이다.

상태는 기계의 현재 상태를 완전하게 정의하고 과거에 대한 정보도 나타낸다. 상태 기계는 애플리케이션을 허용 가능한 입력을 가진 일련의 상태로 나눈다. 상태 특정 논리는 UDFB 상태로 프로그래밍되지만 시스템의 중앙 논리는 상태 시스템 UDFB에 의해 처리된다. 주어진 상태에 있게 되면, 사용자는 유효한 입력에 대해서만 관심을 가질 필요가 있다. 애플리케이션이 항상 모든 가능한 입력을 고려해야 하는 경우 실제 애플리케이션의 복잡성은 처리하기가 매우 어려울 수 있다. 다행히도 애플리케이션은 특정 시간에 특정 이벤트를 자연스럽게 처리한다.


문제를 하나 이상의 상태 머신으로 분해하는 것은 해결책을 설계할 때 중요한 부분이다. 공정은 일반적으로 가능한 모든 상태를 테이블로 열거하고 상태 사이 전환, 해당 상태의 출력, 후속 상태로 전환을 유발하는 입력을 식별해 시작한다.


다시 말하면 사용자가 처음에 너무 많은 세부 사항으로 들어가는 유혹을 참고 기능을 쉽게 식별할 수 있다. 더 일반적인 동작으로 한정하면, 사용자가 문제가 해결될 때까지 해결책의 전반적인 복잡성이 처리될 수 있다. 상태 머신에는 머신이 수행할 작업과 프로그램이 구성되는 방식 사이에 일대일 대응이 있다. 개념에서 프로그래밍에 이르기까지 해석은 거의 없다.

 

함수 블록 기반 해결책 구현


문제가 상호 연결된 함수 블록 집합으로 표현되면, 이 해결책을 대상 플랫폼에서 구현할 수 있는 형식으로 변환하는 것이 기본 시스템이 하는 일이다.


미래 지향적이고 독창적인 프로그래밍 시스템인 Click & Movep


Click & Move(C&M) 시스템은 이 해결책을 표준 프로그래밍 언어 인 C++로 변환한다. 이 코드는 적절한 타겟 플랫폼 컴파일러(compiler)를 통해 컴파일(compile)되고 다양한 플랫폼 중 하나에서 실행될 실행 파일을 생성하기 위해 표준 또는 C&M 특정 라이브러리의 조합과 결합될 수 있다. 이렇게 프로그램과 플랫폼을 분리하면 사용자는 애플리케이션의 문제를 해결하는 데 집중하고 특정 애플리케이션에 대해 가장 비용 효율적인 런 타임(run time) 플랫폼을 선택할 수 있다.


FB는 물리적 하드웨어가 아닌 순수한 기능을 나타내므로 다시 사용할 수 있고 플랫폼에 독립적일 수 있다. 특정 FB는 공정에서 참조 구조를 사용해서 물리적 하드웨어에 연결된다. 함수 블록을 C++로 변환하는 부작용은 사용자 소스 코드를 캡슐화하는 함수 블록 구축도 가능하다는 것이다. C&M 시스템을 사용하면 이 유형의 블록에 대한 템플릿을 만들 수 있다.

 

다른 프로그래밍 시스템과 달리 C&M은 C++ 기반이고 순전히 시각적이며 변수를 설명할 필요가 없고 텍스트 언어로 작성하는 메인 프로그램도 없다. 단지 FBD를 그린다.


함수 블록 라이브러리


C&M 시스템에는 논리, 수학, 동작, 통신과 저장 기능을 구현하는 미리 만들어진 함수 블록 라이브러리 세트가 함께 제공된다.

논리 라이브러리


이것은 FB용 IEC61131-3 PLC 표준을 바탕으로 한다.

모션 및 로보틱스 라이브러리


www.PLCOpen.org에 기반을 둔 ‘동작 제어를 위한 기능 블록’ 표준이 있으며, 모션 제어를 위한 사실상의 국제 표준으로 부상하고 있다.

모션 컨트롤을 위한 PLCopen 표준


표준화는 다시 사용할 수 있는 구성 요소 라이브러리를 정의해서 수행된다. PLCopen FB는 점 대 점(point to point)과 조정 모션, 기어링, 캠과 이벤트 트리거 모션(triggered motion)에 대해 정의된다.


경로 지향 동작은 일반적으로 제조업체 고유의 동작 제어 또는 로봇 지향 프로그래밍 언어로 프로그래밍된다(예를 들어 업계 표준 ‘G- 코드’의 제조업체 고유의 맛은 CNC 세계에서 사용된다). 좌표 모션을 위한 PLCopen 표준은 전용 모션 컨트롤러와 로봇 컨트롤러(혹은 G코드)의 기능을 플랫폼에 독립적이고 다시 사용할 수 있는 FB 라이브러리로 변환한다.

 

IDE (Integrated Development Environment, 통합 개발 환경)


해결책을 개발하고 구축하며 실험하는 공정은 여러 단계로 이루어지며, 그 중 일부는 최종 사용자에게 중요하다. 통합 개발 환경은 빌드 단계를 자동으로 수행한다. 그뿐만 아니라 애플리케이션을 편집, 구성, 보관, 디버깅 하는 애플리케이션을 추가한다.


올바른 IDE는 프로그래밍과 프로그램 구성 작업을 간소화한다. 유연한 FBD 편집기를 사용하면 FB를 깨끗한 프로그램 흐름(상태 시스템 포함)으로 쉽게 정렬할 수 있다. FBD 네스팅 기능과 와이어를 번들로 묶는 버스, 명명된 라벨과 같은 스키매틱(schematic) 편집기 유형의 기능도 매우 유용하다. C&M 시스템의 강력한 기능은 시각적인 디버깅이다. 단일 및 상태 단계, 활성 네트와 FB 강조 표시, 라이브 판독 레이블과 중단점을 사용해서 디버깅을 수행할 수 있다.

 

분배된 애플리케이션과 네트워크 유연성


해결책 설계에는 둘 이상의 플랫폼이 포함될 수 있다. 예를 들어 HMI(Human-Machine Interface)와 모션 조정 소프트웨어는 PC의 Windows? OS에서 실행될 수 있다.

반면에 고속 캡처와 신호 처리는, 네트워크 연결을 이용하는 두 가지 통신으로 실시간 Linux를 실행하는 전용 컨트롤러에서 실행된다. 함수 블록 프로그래밍 방식은 전체 애플리케이션 해결책이 단일 플랫폼에 있어야 할필요는 없다.


해결책의 다른 부분은 C&M 시스템과 함께 제공되는 적절한 통신 FB를 사용해서 네트워크 또는 유사한 인터페이스를 통해 데이터를 교환할 수 있다. C&M FB 포트폴리오는 RS232, USB, CAN, 이더넷(TCP/IP, UDP/IP), EtherCAT?, Powerlink와 같은 일반적인 필드 버스를 지원한다.

 

 


개방 표준 적용의 이점


자동화 기술은 최첨단 기술, 개방형 아키텍처와 통신, 모션 제어, 운영 체제와 프로그래밍 언어에 대한 국제 산업 표준을 준수함으로써 IT와 산업 자동화 분야에서 최고의 장점을 제공한다.

 

개방형 표준을 준수하면 이 기종의 여러 공급 업체 제어 환경에서 완벽하게 통합된다. 개방형 플랫폼에 의존함으로써 진화하는 고성능 기술에 신속하게 액세스하면서 소프트웨어 투자를 보호할 수 있다.

 

내장형 C&M-HMI 내장


HMI를 완벽하게 통합함으로써 타사 시각화 도구로 작업할 때 사용할 수 없는 실시간 애니메이션, 데이터 배열 액세스, 강력한 데이터 수집/시각화와 같은 기능을 사용할 수 있다.

 

 


결론


적절한 IDE로 관리되는 FBD 집합을 사용하면, 블록 다이어그램을 그려서 선택한 대상 플랫폼에 대한 실행 가능 코드로 컴파일링해 복잡한 논리와 동작 그리고 로보틱스 애플리케이션을 만들 수 있다.

 


 

자료 제공 : ADVANCED Motion Controls(www.a-m-c.com)

주요기사

먼저 비밀번호를 입력하여 주세요.

창닫기확인