안녕하세요, VNTG AI센터 Process Computer팀에 입사한 김태표입니다.
제가 속한 Level 2 Process Computer팀과, 관련 기술 세 가지에 대해 소개하려 합니다.
목차
참고링크
Level 2 Process Computer
Process Computer 팀에서는 Level 2 시스템 운영 및 개발을 담당하고 있으며 또한 현장 설비에서 발생하는 많은 센서 데이터 및 각종 측정 데이터를 수집하여 디지털 플랫폼인 Dataforge와 연계하는 업무를 처리하고 있습니다.
Level 1 과 Level 2 시스템의 사전적 의미는 다음과 같습니다.
Level 1 PLC(Programmable Logic Controller : PLC) 는 디지털 또는 아날로그 입출력 모듈을 통하여 로직, 시퀀싱, 타이밍, 카운팅 연산과 같은 특수한 기능을 수행하기 위하여 프로그램 가능한 메모리를 사용하고 여러 종류의 기계나 프로세서를 제어하는 디지털 동작의 전자 장치입니다.
Level 2 Process Computer는 단어 그대로 두 번째 있는 시스템으로 설비를 실시간으로 제어하거나 정보를 처리할 목적으로 설계된 컴퓨터입니다.
제어의 대상이 실시간으로 변화하기 때문에 실시간 처리가 요구되며 24시간 연속 가동을 전제로 하는 시스템입니다.
그리고 이러한 기계 설비의 제어나 감시, 실시간 수집 된 정보를 통해 제품을 추적하여 관리 하기 때문에 성능과 기능 및 신뢰성에 대한 요구가 엄격합니다.
간단하게 Level 1의 역할과, Level 2의 역할을 예시와 그림을 통해 이야기하도록 하겠습니다.
예를 들어 버튼 신호를 전달 받아 A에서 B로 제품을 옮겨주는 설비가 있습니다.
Level 1 PLC는 단순히 버튼 신호를 통해 동작하던 설비를 논리적인 순서로 작업할 수 있도록 제어하는 역할을 합니다.
Level 2 에서는 센서 데이터와 PLC 데이터 등을 수집합니다.
그리고 데이터 가공을 통해 제품 이동 정보, 각 구간 작업 시간, 생산 실적, 전력 사용량 등과 같은 실적 데이터를 생성하고 이렇게 생성된 실적들을 MES로 보내는 역할을 합니다.
만약 Level 2가 없다면 설비 자체는 구동 시킬 수는 있지만 Level 2 에서 수집한 데이터들을 통해 제품 실시간 추적, 상태 정보, 설비 자동 설정, 제품 트랜드 기능 등을 사용 할 수 없게 되고 원활한 생산 작업 진행이 불가능 합니다.
이러한 Level 2의 기본적인 기능은 생산과 작업 결과에 대한 전산화에 필수적이며 앞으로 시스템을 더욱 고도화 하여 사람이 작업에 개입하지 않는 스마트 팩토리 구축에 활용되며 원가 절감 및, 생산 효율성 향상에 기여할 수 있습니다.
Level 2 시스템의 대표적인 기능 Tracking
제품 추적 기능 Tracking은 level 2에서는 제품이 생산되는 순서 (작업 지시)를 상위 MES에서 전송 받아 설비의 센서 신호에 맞게 논리적으로 추적하게 됩니다.
이 Tracking 정보를 바탕으로 생산하는 제품 별 설비의 값을 설정하거나 제품의 생산 주기를 기록하여 어떤 제품이 언제, 어디서, 어떻게 생산 된 것 인지에 대한 생산 정보를 확인 할 수 있습니다.
그리고 각 공정 별 수집한 PLC 데이터를 활용하여 제품 생산에 대한 경향을 분석할 수 있습니다.
아래 예시 그림에서 Level 2는 각 공정의 센서와 데이터 수집 기기를 통해 설비와 제품의 상태 등의 정보를 수집하게 됩니다.
이렇게 수집한 데이터를 활용하여 제품 추적, 설비 자동 설정, 제품 정보, 경향 등에 활용하게 됩니다.
Level 2 와 관련 있는 기술 세 가지 에 대한 소개
1. OPC (OLE for Process Control : OPC)
OPC Foundation 에서 관리하는 표준화 된 통신 프로토콜입니다.
OLE (Object Linking & Embedding) : Windows의 각종 응용프로그램 사이에서 서로 데이터를 공유할 수 있는 기능을 의미합니다.
OPC는 기존 약어를 따르는 OPC DA (Classic OPC) 가 발전하여 OPC UA (Open Platform Communications unified Architecture : OPC UA) 로 변경되었습니다.
Level 2 에서는 현장 설비 각각의 PLC와 통신을 구성하여 현장에서 발생하는 많은 센서 데이터 및 각종 측정 데이터를 수집합니다.
하지만 PLC 제조사 마다 다른 통신 프로토콜을 제공하고 있기 때문에 여러 통신 프로토콜을 구성하고 관리하기 어려운 문제들이 발생합니다.
그래서 이러한 문제점을 해결하기 위해 Level 2 에서는 OPC 기술을 사용하는데 OPC는 표준화 된 통신 프로토콜을 제공함으로써 제조사 별로 나누어진 통신 프로토콜을 한 가지 통신으로 구성하여 사용자에게 효율적인 통신 서비스를 제공하게 됩니다.
아래 예시 그림에서 OPC 서버는 각각 다른 PLC 프로토콜과 통신하고 OPC 서버와 OPC 클라이언트에게 PLC 데이터를 상위 시스템에서 사용할 수 있도록 합니다.
OPC 참고 사항
OPC Classic 에서 제공하는 서비스
DA (Data Access : DA) : PLC의 현재 값을 확인하고 받아올 수 있습니다.
→ 과거의 데이터는 받지 못합니다. 이 부분이 HDA와 비교된다고 볼 수 있습니다.HDA (Historical Data Access : HDA) : 과거의 데이터를 가져올 수 있습니다.
→ OPC HDA 서버에서 현재 데이터를 Local Historian 에 저장하고 클라이언트 에서 Access 합니다.AE (Alarm & Events : AE) : 알람 & 이벤트입니다.
→ TAG를 등록하면 해당 알람이 True로 바뀌었을 때 이벤트로 클라이언트에게 알려주는 기능입니다.\
Classic OPC (OPC DA) 와 OPC UA 차이
OPC Classic 의 경우 아래 그림 1. 과 같이 서버가 분리되어 있고 그림 2. 와 같이 Windows의 기술인 COM과 DCOM으로 통신을 하기 때문에 Windows 환경에서만 사용이 가능합니다.
DCOM : Distributed Component object Model, DCOM 으로 네트워크 컴퓨터 사이에서 컴포넌트 간 통신을 위한 Microsoft기술입니다.
하지만 OPC UA는 기존 OPC Classic의 DA/HDA/AE에 Security를 보완해서 크로스 플랫폼으로 제공합니다. 즉, Windows 환경을 벗어날 수 있습니다.
크로스 플랫폼 : 멀티 플랫폼 이라고도 하며 운영체제, 프로그래밍 언어, 컴퓨터 소프트웨어 등이 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어입니다.
OPC Server
OPC 표준을 지원하는 산업용 자동화 및 IoT를 위한 연결 플랫폼으로 제조업에서 일반적 널리 사용되는 약 150개 이상의 드라이버를 제공하는 소프트웨어입니다.
kepware OPC Server, Takebishi OPC Server, LS OPC Server 등이 있습니다.
OPC Server는 산업 제어 시스템 고유의 통신 요구 사항에 맞추었으며 장비를 자동으로 연결하고 장비의 데이터를 읽고 쓸 수 있습니다.
또한 해당 데이터를 HMI, SCADA, MES, Historion 또는 ERP 시스템에 완벽하게 통합할 수 있고 높은 신뢰성과 사용자 편의성으로 신속하게 설치하여 완벽하게 작동할 수 있도록 합니다.
우리 Level 2에서는 Kepware OPC Server를 통해 PLC 데이터 및 센서 데이터를 활용하고 있습니다.
2. IPC Shared Memoey (공유 메모리)
IPC (Inter Process Communication) 는 프로세스 간 통신이라고 말하며 프로세스 (프로그램) 사이에서 서로 데이터를 주고 받는 방법이라고 생각하시면 됩니다.
IPC의 종류 : PIPE, Message Queue, Shared Memory, Memory Map, Socket
아래 그림과 같이 공유 메모리는 프로세스 간 공유가 되도록 설정한 메모리이며 모든 프로세스가 접근이 가능합니다.
그리고 이렇게 메모리 자체를 공유함으로써 처리 속도도 빠르다는 장점도 있어 유용하게 사용합니다.
하지만 공유 메모리는 메모리 영역에 대한 동시적인 접근을 제어하기 위한 방법이 필요하여 별도의 동기화 기술이 필요합니다.
Level 2 에서는 현장 설비 곳곳에서 실시간으로 변화하는 많은 센서 데이터와 각종 측정 데이터를 수집하여 공유메모리에 적재하여 사용함으로써 수집하면서 발생하는 데이터 읽기, 쓰기, 복사와 같은 오버헤드 발생을 줄이고 하나의 메모리를 공유함으로써 빠른 처리속도를 제공받기위해 공유메모리를 사용하고 있습니다.
3. Message Queue (메시지 큐)
MOM을 구현한 시스템을 메시지 큐 ( Message Queue : MQ) 라 합니다. 메시지 큐는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA의 개발에 도움을 줄 수 있습니다.
MOM : 메시지 지향 미들웨어 (Message Oriented Middleware : MOM)는 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미합니다.
SOA : 서비스 지향 아키텍처 Service-Oriendted Architecture : SOA 는 네트워크에서 공통의 통신 언어를 사용하는 서비스 인터페이스를 활용하여 소프트웨어 구성 요소를 다시 사용할 수 있게 만드는 소프트웨어 설계 유형입니다.
그리고 MQ는 비동기, 비동조, 탄력성, 과잉, 보증, 확장성이라는 장점을 가지고 있습니다.
- 비동기 (Asynchronous) : Queue에 넣기 때문에 나중에 처리 가능하고 다른 API에게 위임함으로써 Request에 대해 빠르게 응답 가능합니다.
- 비동조 (Decoupling) : MQ를 따로 둠으로써, 애플리케이션과 분리 가능합니다. (결합도를 낮춰 유연성 제공)
- 탄력성 (Resilience) : MQ는 데이터를 Queue에 담아 비동기로 처리하기 때문에, 일부가 실패 시 전체에 영향을 받지 않음.
- 과잉 (Redundancy) : 실패할 경우 재실행 가능합니다.
- 보증 (Guarantees) : 처리된 작업을 확인 가능합니다.
- 확장성 (Scalable) : 다수의 프로세스들이 큐에 메시지 전송이 가능합니다.
Level 2 에서는 아래 예시 그림과 같이 수집한 데이터들을 통해 이벤트 발생기를 구성하였다고 가정하였을때 Message Queue가 없는 경우 프로세스 간 의존성 (결합도)가 높고 기존 동기화 방식은 많은 데이터가 전송될 경우 병목이 생기거나 뒤에 들어오는 요청이 딜레이 되는 등 시스템에 영향을 끼치는 경우가 발생할 수 있습니다.
하지만 Message Queue 를 활용한다면 비동기 처리를 함으로써 프로세스 간 유연성을 높이고 Queue는 별도로 데이터를 보관하고 있기 때문에 프로세스 종료 등과 같은 서비스 장애에 대해 데이터 손실에 대한 부담 또한 줄일 수 있습니다.
이러한 Message Queue의 장점을 Level 2에서 활용하고 있습니다.
Message Queue 참고 사항
Rabbit MQ
MQ의 대표적인 오픈소스이고 AMQP를 따르는 메시지 브로커 소프트웨어 (MOM) 제품 중 하나 입니다.
AMQP : Advanced Message Queuing Protocol : AMQP 는 조직 또는 애플리케이션 간의 비즈니스 메시지 통신을 위한 완벽한 지능적 상호 운용성을 제공하는 오픈 소스 표준입니다.
※ AMQP를 구성하는 요소는 Exchange, Queue, Binding이 있습니다.
- Exchange : 생산자로부터 수신한 메시지를 적절한 큐나 다른 Exchange로 분배하는 라우터의 기능을 합니다. 그리고 Exchange는 데가지 타입으로 바인딩 가능합니다. (Direct, Topic, Headers, Fanout)
타입 | 설명 |
---|---|
Direct | Routing key 가 정확히 일치하는 Queue 에 메시지 전송 |
Topic | Routing Key 패턴이 일치하는 Queue에 전송 |
Headers | [Key : Value]로 이루어진 hearder 값을 기준으로 일치하는 Queue에 메시지 전송 |
Fanout | 해당 Exchange에 등록된 모든 Queue에 메시지 전송 |
- Queue : 메시지를 저장하고 소비자에게 저장한 메시지를 전달하는 역할을 합니다.
- Binding : Exchange와 Queue 와의 관계를 정의한 일종의 라우터 테이블 입니다. (특정 조건에 맞는 메시지를 특정 큐에 전송하도록 설정합니다.)
Rabbit MQ 는 메시지를 생산하는 생산자(Producer)가 메시지를 큐에 저장해 두면 Publish/subscribe 방식의 메시지 전달 브로커입니다.
그리고 Rabbit MQ는 대표적인 오픈 소스로써 상업적 지원이 가능하고 AMQP형식을 통해 상호 운용성을 제공 받아 언어, 운영체제 등 형식이 다르더라도 메시지 통신이 가능합니다. 또한 아래 그림과 같이 UI를 통한 시각적인 관리가 가능합니다.
이상으로 4차 산업혁명의 꽃인 스마트 팩토리 (Smart Factory)를 실현하는 Level 2 Process Computer 업무소개와 관련된 기술인 OPC, 공유메모리, 메시지큐에 대한 소개를 마치겠습니다.
감사합니다!