KR102116174B1 - 멀티코어 프로세서 기반의 plc 및 hmi 통합 시스템 - Google Patents
멀티코어 프로세서 기반의 plc 및 hmi 통합 시스템 Download PDFInfo
- Publication number
- KR102116174B1 KR102116174B1 KR1020180012132A KR20180012132A KR102116174B1 KR 102116174 B1 KR102116174 B1 KR 102116174B1 KR 1020180012132 A KR1020180012132 A KR 1020180012132A KR 20180012132 A KR20180012132 A KR 20180012132A KR 102116174 B1 KR102116174 B1 KR 102116174B1
- Authority
- KR
- South Korea
- Prior art keywords
- hmi
- application
- plc
- data
- core processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15118—Shared memory
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23067—Control, human or man machine interface, interactive, HMI, MMI
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Programmable Controllers (AREA)
Abstract
멀티코어 프로세서를 이용하여 단일 하드웨어에 PLC 어플리케이션과 HMI어플리케이션을 통합하여 구성한 본 발명의 일 측면에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템은, PLC(Programmable Logic Controller) 어플리케이션이 실시간으로 실행되는 제1 코어 프로세서(Processor); HMI(Human Machine Interface) 서버 어플리케이션이 실시간으로 실행되는 제2 코어 프로세서; 상기 PLC 어플리케이션의 제1 타스크를 상기 제1 코어 프로세서가 처리하도록 스케쥴링하는 제1 스케쥴러; 및 상기 HMI 어플리케이션의 제2 타스크를 상기 제2 코어 프로세서가 처리하도록 스케쥴링하는 제2 스케쥴러를 포함하고, 상기 제1 스케쥴러는 상기 제2 스케쥴러보다 스케쥴링 우선권을 갖는 것을 특징으로 하는 특징으로 한다.
Description
본 발명은 산업설비 관리시스템에 관한 것으로서, 보다 구체적으로 PLC 및 HMI에 관한 것이다.
산업현장에 배치된 다양한 설비들의 운영이나 제어를 위해서는 PLC(Programmable Logic Controller) 및 HMI(Human Machine Interface)가 요구된다.
PLC는 산업 플랜트의 자동제어 및 감시를 위해 사용되는 제어 장치이다. PLC는 입력 데이터를 프로그램에 의해 순차적으로 논리 처리하고 그 출력 결과를 이용하여 PLC에 연결된 외부장치를 제어한다. 이때, PLC는 입력 데이터를 실시간으로 처리할 수 있기 때문에 정해진 시간의 입력 조건에 대해 출력은 정해진 시간 안에 반응한다. 이러한 PLC는 공정 규모에 따라 복수개의 PLC로 구성될 수 있다. PLC는 제어 및 운영이 요구되는 산업현장에 맞게 다양한 외부장치와 인터페이스 됨으로써 원하는 제어 및 운영이 실현되도록 프로그램으로 구현되고, 이러한 프로그램이 PLC 전용 하드웨어(H/W)에 다운로드 되어 그 기능을 수행하게 된다.
HMI는 상술한 PLC를 비롯한 다양한 컨트롤러(DCS, 계측기 등)의 제어를 사용자가 인지하기 쉬운 화면으로 제공하고 그에 필요한 데이터를 그래프를 비롯한 다양한 형태로 제공한다. HMI는 상술한 기능이 실현되도록 프로그램으로 구현된다. 특히, 최근에 이러한 HMI프로그램은 비쥬얼 베이직(Visual Basic)이나 여타 프로그램과 같이 사용자가 직접 코딩하는 것을 대폭 줄임과 동시에 화면을 구성하는데 필요한 기능들을 드래그 앤 드롭 방식으로 또는 설정만으로 구성될 수 있도록 주로 구현되고 있다.
도 1에 일반적인 PLC 및 HMI 의 연결관계가 도시되어 있다. 도 1에 도시된 바와 같이 일반적인 PLC(100)는 PLC 전용 하드웨어에 PLC용 프로그램이 설치됨으로써 구현되고, HMI(110) 또한 별도의 전용 하드웨어에 HMI용 프로그램이 설치됨으로써 구현되며, PLC(100) 및 HMI(110)는 네트워크(120, 예컨대 Ethernet, Modbus/TCP 등, 120)를 통해 연결된다.
하지만, 도 1에 도시된 일반적인 PLC 및 HMI의 경우 PLC(100) 및 HMI(110)는 그 기능을 위한 프로그램이 전용 하드웨어에 별도로 설치되었기 때문에, 적용하고자 하는 PLC와 HMI의 다양한 제조사들의 사양을 확인하고 적용 가능한 하드웨어를 선택 해야만 하는 불편함이 있었고, 이로 인해 산업방향의 변화에 능동적으로 대응할 수 없을 뿐만 아니라 가격 경쟁력을 가진 다양한 제품 라인업의 확보 또한 어렵다는 한계가 있다.
또한, PLC 및 HMI가 통신 인터페이스를 통해 통신하여야만 하므로 통신에러가 발생하는 경우 PLC와 HMI간의 원활한 데이터 공유가 어려워져 산업현장의 제어가 효율적으로 수행될 수 없다는 문제점도 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 멀티코어 프로세서를 이용하여 단일 하드웨어에 PLC 어플리케이션과 HMI어플리케이션을 통합하여 구성한 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 그 기술적 과제로 한다.
또한, 본 발명은 PLC 어플리케이션을 HMI 어플리케이션보다 우선하여 실행할 수 있는 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.
또한, 본 발명은 PLC 어플리케이션 및 HMI 어플리케이션이 공유 메모리를 이용하여 통신할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.
또한, 본 발명은 PLC 어플리케이션이 실행되는 코어 프로세서를 HMI 어플리케이션이 실행되는 코어 프로세서로부터 격리시킬 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.
또한, 본 발명은 PLC 어플리케이션에게 공유메모리에 대한 액세스 우선권을 부여할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 또 다른 기술적 과제로 한다.
또한, 본 발명은 이중화 구조로 설계할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 또 다른 기술적 과제로 한다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템은, PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor); HMI(Human Machine Interface) 서버 어플리케이션이 실행되는 제2 코어 프로세서; 상기 PLC 어플리케이션의 제1 타스크를 상기 제1 코어 프로세서가 처리하도록 스케쥴링하는 제1 스케쥴러; 및 상기 HMI 어플리케이션의 제2 타스크를 상기 제2 코어 프로세서가 처리하도록 스케쥴링하는 제2 스케쥴러를 포함하고, 상기 제1 스케쥴러는 상기 제2 스케쥴러보다 스케쥴링 우선권을 갖는 것을 특징으로 한다.
본 발명에 따르면 단일 하드웨어에 PLC 어플리케이션과 HMI어플리케이션을 동시에 구현할 수 있기 때문에 PLC어플리케이션 및 HMI어플리케이션이 동작하기 위한 하드웨어의 사양조사가 요구되지 않아, 시스템 구축시 하드웨어의 상이함으로 인한 추가비용이 발생을 미연에 방지할 수 있다는 효과가 있다.
또한, 본 발명에 따르면 PLC 어플리케이션의 타스크를 HMI 어플리케이션의 타스크보다 우선 스케쥴링하여 PLC 어플리케이션이 HMI 어플리케이션보다 우선 실행될 수 있도록 함으로써 PLC 어플리케이션의 실시간 처리를 보장할 수 있다는 효과가 있다.
또한 본 발명에 따르면 PLC 어플리케이션 및 HMI어플릴케이션이 공유 메모리를 통해 데이터를 공유하고 별도의 통신 인터페이스가 요구되지 않기 때문에, 통신 인터페이스의 오류에 의한 통신에러가 발생하지 않아 PLC 어플리케이션과 HMI어플릴케이션이 원활하게 데이터를 공유할 수 있고, 이로 인해 산업현장의 제어를 효율적으로 수행할 수 있다는 효과가 있다.
또한 본 발명에 따르면 PLC 어플리케이션과 HMI 어플리케이션 간에 통신 인터페이스가 요구되지 않기 때문에 상이한 통신 인터페이스를 일치시키기 위한 별도의 게이트웨이의 추가나 통신 프로토콜 개발 작업이 요구되지 않아 시스템 구축비용을 감소시킬 수 있다는 효과가 있다.
또한, 본 발명에 따르면 PLC 어플리케이션이 실행되는 코어 프로세서를 HMI 어플리케이션이 탑재된 코어 프로세서로부터 완전하게 격리시키고, PLC 어플리케이션에 스케쥴링 우선순위 및 공유 메모리 액세스 우선순위를 부여하기 때문에 PLC 어플리케이션의 실시간성을 보장할 수 있다는 효과가 있다.
또한, 본 발명에 따르면 시스템이 이중화 구조로 설계되기 때문에 시스템의 안정성을 향상시킬 수 있다는 효과가 있다.
도 1은 일반적인 PLC 및 HMI 의 연결관계를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템의 레이어 구성을 보여주는 도면이다.
도 3은 PLC 어플리케이션이 액세스키의 우선권을 가질 때 PLC 어플리케이션 및 HMI 어플리케이션의 공유메모리에 대한 액세스 예를 보여주는 도면이다.
도 4는 스케쥴러각 신규타스크를 각 코어 프로세서에 할당하는 예를 보여주는 도면이다.
도 5는 는 리얼타임 패치 이후에 스케줄러에 의해 처리되고 있는 스케쥴링 상태를 나타내는 도면이다.
도 6은 제1 코어 프로세서에 의해 처리되는 제1 타스크와 제2 코어 프로세서에 의해 처리되는 제2 타스크가 공유메모리를 공유하는 예를 보여주는 도면이다.
도 7은 HMI 서버 어플리케이션의 구성을 개략적으로 보여주는 블록도이다.
도 8은 매핑테이블의 일 예를 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템의 레이어 구성을 보여주는 도면이다.
도 3은 PLC 어플리케이션이 액세스키의 우선권을 가질 때 PLC 어플리케이션 및 HMI 어플리케이션의 공유메모리에 대한 액세스 예를 보여주는 도면이다.
도 4는 스케쥴러각 신규타스크를 각 코어 프로세서에 할당하는 예를 보여주는 도면이다.
도 5는 는 리얼타임 패치 이후에 스케줄러에 의해 처리되고 있는 스케쥴링 상태를 나타내는 도면이다.
도 6은 제1 코어 프로세서에 의해 처리되는 제1 타스크와 제2 코어 프로세서에 의해 처리되는 제2 타스크가 공유메모리를 공유하는 예를 보여주는 도면이다.
도 7은 HMI 서버 어플리케이션의 구성을 개략적으로 보여주는 블록도이다.
도 8은 매핑테이블의 일 예를 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.
이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.
본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 정의하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.
"포함하다" 또는 "가지다" 등의 용어는 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
도 2은 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템의 레이어 구성을 보여주는 도면이다. 일 실시예에 있어서 본 발명에 따른 PLC 및 HMI 통합 시스템(200, 이하, '통합시스템'이라 함)은 산업용 컴퓨터(Industrial Computer: IPC)로 구현될 수 있다. 본 발명에 따른 산업용 컴퓨터(IPC) 기반의 PLC(Programmable Logic Controller)는 결정론적(Deterministic) 기능과 블루 스크린 핸들링(Blue Screen Handling) 기능을 수행할 수 있다.
결정론적(Deterministic) 기능은 산업용 컴퓨터에서 수행되는 시퀀스 로직(Sequence Logic)이 어플리케이션(User Application)의 수 및 네트워크 트래픽(Network Traffic) 량 등에 관계없이 PLC에서와 같이 일정한 Performance를 보장하는 기능으로써, 알려진 허용치(Tolerance) 내에서 주어진 주기(Cycle time)를 보장하는 시스템의 능력과 입력 요구에서부터 출력이 발생하기까지의 시간을 사용자가 예측할 수 있고 그 시간에서 실질적으로 처리가 이루어질 경우 처리 능력을 갖고 있는지를 나타내는 기능을 의미한다. 일반적인 PLC의 경우 스캔주기는 5-10ms 범위이고, 허용치는 1-4ms이다.
블루스크린 핸들링 기능은 시스템이 다운(Down)되어도 시퀀스 로직을 계속 수행케 해주는 기능을 의미한다.
도 2에 도시된 바와 같이, 본 발명에 따른 통합시스템(200)은 사용자 공간 레이어(202), OS(Operating System) 공간 레이어(204), 및 디바이스 공간 레이어(206)로 구성된다.
사용자 공간 레이어(202)에는 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 설치된다. 일 실시예에 있어서, HMI 어플리케이션(220)은 PLC 어플리케이션(210)과 연동하는 HMI 서버 어플리케이션(222) 및 HMI 서버 어플리케이션(222)에 인터페이싱되는 HMI 클라이언트 어플리케이션(224)을 포함할 수 있다.
PLC어플리케이션(210)은 제어대상이 되는 장치들의 제어를 위해 네트워크 인터페이스, 디지털 입출력 인터페이스, 아날로그 입출력 인터페이스 등을 통해 구현된 로직에 맞게 제어동작을 수행 한다. PLC 어플리케이션(210)은 각 장치들로 수집한 각 장치의 상태데이터 또는 센싱데이터(이하, '수집데이터'라 함)를 메모리(250)에 저장한다.
HMI 서버 어플리케이션(222)은 PLC어플리케이션(210)이 수집한 수집데이터들을 메모리(250)로부터 획득하여 HMI 클라이언트 어플리케이션(224)으로 제공한다.
HMI 클라이언트 어플리케이션(224)은 HMI 서버 어플리케이션(222)과 수집데이터를 공유한다. 일 실시예에 있어서, HMI 클라이언트 어플리케이션(224)은 수집데이터를 시계열순으로 기록하는 히스토리컬 DB 어플리케이션(224a), 수집데이터의 값이 미리 정해진 임계값을 초과하는지 여부를 모니터링하고 수집데이터의 값이 미리 정해진 임계값을 초과하면 알람을 발생시키는 알람 DB 어플리케이션(224b), 및 수집데이터를 미리 정해진 GUI(Graphic User Interface)를 통해 사용자에게 제공하는 런타임 클라이언트 어플리케이션(224c) 중 적어도 하나를 포함할 수 있다.
특히, 런타임 클라이언트 어플리케이션(224c)은 필요한 경우 PLC 어플리케이션(210) 또는 PLC 어플리케이션(210)에 의해 제어되는 장치들을 제어하기 위한 제어데이터를 생성하여 HMI 서버 클라이언트(222)로 전달할 수 있다. 이러한 경우 HMI 서버 클라이언트(222)는 제어데이터를 메모리(250)에 기록함으로써 PLC 어플리케이션(210)이 해당 제어데이터를 공유할 수 있도록 한다.
OS 공간 레이어(204)에는 통합시스템(200)의 커널(Kernel, 230)이 배치된다. 일 실시예에 있어서, OS는 오픈소스(Open Source)인 리눅스(Linux) 기반으로 구현될 수 있고, 커널(230)은 리눅스 커널로 구현될 수 있다.
커널(230)은 사용자 공간에 설치된 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 정상적으로 운영될 수 있도록 지원한다. 커널(230)은 OS의 핵심코어로 모든 작업에 우선하여 동작하는 프로그램이다. PLC어플리케이션(210)과 HMI 어플리케이션(220)이 동작하기 위해서 운영체제에서 프로그램이 구동되는데 파일을 읽어 오거나, 파일을 쓰거나, 또는 화면에 메시지를 출력하는 등 많은 부분이 커널(230)을 통해 수행된다.
커널(230)의 동작은 인터럽트나 시스템 콜(208)에 의해 수행된다. 이때, 시스템 콜(208)은 커널(230) 영역의 기능을 사용자가 사용 가능하게, 즉 각 어플리케이션(21, 220)의 프로세스가 디바이스에 직접 접근해서 필요한 기능을 사용할 수 있게 인터페이스를 만들어 주는 역할을 수행한다.
커널(230)은 각 어플리케이션(210, 220)들의 프로세스 관리, 메모리관리, 파일시스템관리, 장치관리, 네트워크관리 등을 수행하기 위해 도 2에 도시된 바와 같이, 파일 관리부(232), 디바이스 관리부(234), 메모리 관리부(236), 스케쥴러(238), 및 네트워크 장치 관리부(239)를 포함한다.
파일 관리부(232)는 복수개의 파일 시스템을 관리한다. 리눅스는 일반 파일을 비롯한 모든 디바이스들을 파일형태로 관리하는데, 파일 관리부(232)가 이러한 파일을 관리하는 역할을 수행한다
디바이스 관리부(234)는 디바이스 공간 레이어(206)에 있는 각종 디바이스들 및 디바이스들의 상호관계를 제어하는 역할을 수행한다.
메모리 관리부(236)는 메모리(250)를 관리한다. 일 실시예에 있어서, 메모리(250)는 공유메모리 형태로 이용될 수 있고, 이러한 경우 메모리 관리부(236)는 메모리(250)에 접근하기 위한 액세스키를 어플리케이션(210, 220)으로 제공하거나 어플리케이션(210, 220)으로부터 회수하는 역할을 수행한다.
한편, PLC어플리케이션(210)이 메모리(250)에 액세스 중에 있을 때, HMI 서버 어플리케이션(222)이 메모리(250)에 동시에 액세스하게 되면 데이터가 훼손될 수 있기 때문에 본 발명에 따른 메모리 관리부(250)는 한번에 하나의 어플리케이션만이 메모리(250)에 액세스할 수 있도록 하기 위해 커널(230)에서 메모리(250)에 접근할 수 있는 액세스키를 사용한다.
특히, 본 발명에 따른 메모리 관리부(236)는 PLC 어플리케이션(210)에게 액세스키에 대한 우선권을 부여함으로써 PLC 어플리케이션(210)이 HMI 어플리케이션(220), 특히 HMI 서버 어플리케이션(222)에 우선하여 메모리(250)에 접근할 수 있도록 한다.
이와 같이, 본 발명에서는 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 하나의 액세스키를 사용하되 PLC 어플리케이션(210)에 액세스키의 우선권을 부여함으로써 PLC 어플리케이션(210)이 메모리(250)에 우선 접근을 허여할 수 있기 때문에 PLC 어플리케이션(210)의 실시간 제어를 보장할 수 있게 된다.
이러한 실시예에 따르는 경우, 도 3에 도시된 바와 같이 HMI 어플리케이션(220)이 메모리(250)에 접속하여 "1이라는 작업을 수행 중일 때 PLC 어플리케이션(210)으로부터 메모리(250)에 대한 접속요청이 발생되면, 메모리 관리부(250)는 HMI 어플리케이션(220)으로부터 액세스키를 즉시 회수하여 PLC 어플리케이션(210)에 액세스키를 배당한다. 이에 따라, HMI 어플리케이션(220)은 액세스키가 회수된 제1 시점(t1)에서 작업을 중지하게 되고, PLC 어플리케이션(210)이 액세스키를 이용하여 메모리(250)에 접속함으로써 "1"이라는 작업을 수행하게 된다.
이때, HMI 서버 어플리케이션(224)의 프로세스 동작 주기 보다 PLC 어플리케이션(210)의 프로세스 동작 주기가 짧기 때문에, HMI 서버 어플리케이션(224)으로부터 액세스키가 회수되기 이전까지 PLC 어플리케이션(222)은 계속해서 동작하도록 설정된다.
HMI 서버 어플리케이션(224)은 메모리 관리부(250)에 의해 액세스키가 회수되면 액세스키가 회수된 제1 시점(t1)을 확인하고, PLC 어플리케이션(210)의 프로세스가 처리완료되어 액세스키가 다시 HMI 서버 어플리케이션(224)으로 제공되면 제1 시점(t1) 이후에 읽기 또는 쓰기 중단된 데이터에 대해 다시 읽기 또는 쓰기 동작을 재개하게 된다.
한편, 상술한 도 3에 도시된 바와 같이 제2 시점(t2)에서 HMI 어플리케이션(220)에 의해 비상정지명령이 포함된 제어데이터가 발생하게 되면, 비상정지명령이 포함된 제어데이터는 빠른 시간 내에 PLC 어플리케이션(210)과 공유되어야 하지만, HMI 어플리케이션(220)은 액세스키의 우선권을 가지고 있지 않기 때문에 PLC 어플리케이션(210)으로부터 액세스키가 회수될 때까지 제어데이터를 기록하지 못하게 된다. 또한, HMI 어플리케이션(220)이 액세스키를 가진다고 하더라도 HMI 어플리케이션(220)의 큐(Queue)에서는 선입선출(FIFO)방식에 따라 제어데이터가 처리되기 때문에 도 3에 도시된 바와 같이 이전 작업인 "1"의 처리가 모두 완료된 이후의 제3 시점(t3)이 되어야 비상정지명령이 포함된 제어데이터의 처리작업인 "2"가 처리될 수 밖에 없다.
이를 해결하기 위해 본 발명에 따르면 HMI 어플리케이션(220)은 비상정지명령이 포함된 제어데이터가 발생되면 해당 제어데이터를 큐의 첫 번째 대기열에 배치함으로써 해당 제어데이터가 큐에서 첫 번째로 처리될 수 있도록 한다. 또한, 메모리 관리부(250)는 비상정지명령이 포함된 제어데이터 발생시 HMI 서버 어플리케이션(224)에게 액세스키의 우선권을 부여함으로써, PLC 어플리케이션(210)이 메모리(250)에 접속중이더라도 PLC 어플리케이션(210)으로부터 액세스키를 즉시 회수하여 HMI 어플리케이션(220)으로 제공하고, HMI 어플리케이션(220)은 제공받은 액세스키로 메모리(250)에 접속하여 제어데이터를 기록한 후 액세스키를 다시 메모리 관리부(250)로 반납한다.
이에 따라, 비상정지명령이 포함된 제어데이터가 지연없이 HMI 어플리케이션(220)으로부터 PLC 어플리케이션(210)으로 전송되어 즉시 처리될 수 있다.
다시 도 2를 참조하면, 스케쥴러(238)는 각 어플리케이션(210, 220)의 실행에 따른 타스크(Task)를 복수개의 코어 프로세서(240)들에 할당한다. 일 실시예에 있어서, 스케쥴러(238)는 도 4에 도시된 바와 같이 PLC 어플리케이션(210)의 타스크인 제1 타스크를 처리하기 위한 제1 스케쥴러(283a) 및 HMI 서버 어플리케이션(222)의 타스크인 제2 타스크를 처리하기 위한 제2 스케쥴러(283b)를 포함할 수 있다. 또한, 스케쥴러(238)는 HMI 클라이언트 어플리케이션의 타스크인 제3 타스크를 처리하기 위한 제3 스케쥴러(238c)를 더 포함할 수 있다.
도 4에서는 제1 내지 제3 스케쥴러(238a~238c)가 물리적으로 구분되어 있는 것으로 도시하였지만, 이는 하나의 예일 뿐 물리적으로 하나의 스케쥴러가 도 4에 도시된 바와 같이 3개의 스케쥴러의 기능을 수행하는 것도 가능할 것이다.
또한, 도 4에서는 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)가 구분되는 것으로 도시하였지만, 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)는 하나의 스케쥴러로 구현될 수도 있을 것이다.
특히, 본 발명에 따르면 PLC 어플리케이션(210)의 타스크인 제1 타스크를 처리하는 제1 스케쥴러(283a)는 타 스케쥴러(238b, 238c)에 비해 스케쥴링 우선권을 가진다. 이에 따라, 다른 타스크들보다 제1 타스크가 제1 스케쥴러(238)에 의해 먼저 처리되기 때문에 PLC 어플리케이션(210)이 타 어플리케이션(220)에 비해 우선 실행될 수 있게 된다.
즉, 도 5에 도시된 바와 같이, 스케쥴러(238) 고유의 스케쥴링 동작 수행 이후에 제1 스케쥴러(238a)에 의해 제1 타스크(410)가 가장 최우선의 권한을 가지고 처리되고, 그 다음 제2 스케쥴러(238b)에 의해 제2 타스크(420)가 처리되고, 그 이후에 제3 스케쥴러(238c)에 의해 제3 타스크(430)를 비롯한 기타 타스크들이 처리됨으로써, PLC어플리케이션(210)이 최우선적으로 제어 동작을 수행할 수 있게 된다.
한편, 스케쥴러(238)는 신규 타스크가 발생되면 해당 타스크의 식별자를 기초로 각 타스크를 코어 프로세서(240) 중 어느 하나에 할당할 수 있다.
예컨대, 도 4에 도시된 바와 같이 제1 스케쥴러(238a)는, 해당 타스크가 PLC 어플리케이션(210)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 PLC 어플리케이션(210)의 제1 타스크(410)인 것으로 판단하여 제1 코어 프로세서(242)에 할당한다.
또한, 제2 스케쥴러(238b)는 해당 타스크가 HMI 서버 어플리케이션(222)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 서버 어플리케이션(222)의 제2 타스크(420)인 것으로 판단하여 제2 코어 프로세서(244)에 할당한다.
또한, 제3 스케쥴러(238c)는 해당 타스크가 HMI 클라이언트 어플리케이션(224)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)인 것으로 판단하여 제1 및 제2 코어 프로세서를 제외한 유휴 코어 프로세서(246)에 할당한다.
이에 따라, PLC 어플리케이션(210)의 제1 타스크(410)는 모두 제1 코어 프로세서(242)에서만 처리되고, HMI 서버 어플리케이션(222)의 제2 타스크(420)는 모두 제2 코어 프로세서(244)에서만 처리되며, HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)는 모두 유휴 코어 프로세서(246)에서 처리될 수 있어, PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)과 완전하게 격리시킬 수 있게 된다.
본 발명에서 PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)으로부터 격리시키는 이유는 PLC어플리케이션(210)의 경우 제어로직 또는 운영로직이 동작하는 동안 제어와 관련없는 인터럽트나 이벤트의 발생으로 제어동작에 영향을 미치게 되면 PLC 어플리케이션(210)이 안정적인 제어를 수행할 수 없기 때문이다. 따라서, 본 발명은 PLC 어플리케이션(210)의 타스크만을 전용으로 처리할 수 있는 코어 프로세서(242)를 지정함으로써 PLC 어플리케이션(210)이 안정적인 제어를 수행 할 수 있도록 한다.
일 실시예에 있어서, 본 발명에 따른 스케쥴러(238)는 PLC 어플리케이션(210)이 제어동작 이외에 어떠한 인터럽트나 이벤트에 해서 영향을 받지 않고 정해진 타스크 수행시간 내에서 정확하게 동작할 수 있도록 하기 위해, Linux OS 커널의 어피니티(Affinity)설정을 통해 PLC 어플리케이션(210)의 타스크는 제1 코어 프로세서(242)에서만 처리되도록 함과 동시에 리얼타임 패치를 통하여 실시간으로 처리될 수 있도록 한다.
다시 도 2를 참조하면, 네트워크 장치 관리부(239)는 네트워크 장치의 설정 및 동작을 관리하고, 디바이스 인터페이스(210)는 디바이스 공간 레이어(206)에 배치된 디바이스들(240~260)과 커널간의 인터페이스를 담당한다.
디바이스 공간 레이어(206)는 코어 프로세서(240), 메모리(250), 및 네트워크 장치(260) 등과 같은 디바이스들로 구성된다. 도 2에서는 설명의 편의를 위해 일부 디바이스들만을 예시적으로 도시한 것일 뿐, 디바이스 공간 레이어(206)에는 도 2에 도시된 디바이스들 이외에 하드디스크 등과 같은 다른 디바이스들이 배치될 수 있다.
코어 프로세서(240)는 어플리케이션을 실행시킨다. 본 발명에 따른 통합 시스템(200)은 하나의 하드웨어(H/W)에 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 모두 설치되어 동작할 수 있도록, 코어 프로세서(240)는 복수개의 코어 프로세서(242, 244, 246)들로 구성된다.
이러한 실시예에 따르는 경우 제1 코어 프로세서(242)는 제1 스케쥴러(238a)의 스케쥴링을 통해 PLC어플리케이션(210)의 제1 타스크를 처리하고, 제2 코어 프로세서(244)는 제2 스케쥴러(238b)의 스케쥴링을 통해 HMI 서버 어플리케이션(222)의 제2 타스크를 처리하며, 제1 및 제2 코어 프로세서(242, 244)를 제외한 나머지 유효 코어 프로세서(246)들은 제3 스케쥴러(238b)의 스케쥴링을 통해 HMI 클라이언트 어플리케이션(224)의 제3 타스크를 포함한 기타 타스크들을 처리한다. 이때, 유효 코어 프로세서들(246) 중 어느 하나는 히스토리컬 DB 어플리케이션(224a)의 타스크를 처리하고, 유효 코어 프로세서들(246) 중 다른 하나는 알람 DB 어플리케이션(224b)의 타스크를 처리하며, 유효 코어 프로세서들(246) 중 또 다른 하나는 런타임 클라이언트 어플리케이션(224c)의 타스크를 처리할 수 있다.
메모리(250)에는 PLC 어플리케이션(210)에 의해 수집데이터가 기록되거나 HMI 서버 어플리케이션(222)에 의해 제어데이터가 기록된다. 일 실시예에 있어서, 도 6에 도시된 바와 같이 메모리(250)는 공유 메모리로 구현됨으로써 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 메모리(250)를 통해 수집 데이터 및 제어데이터를 공유할 수 있다. 이하에서는 설명의 편의를 위해 메모리(250)를 공유 메모리(250)라는 표현과 혼용하여 사용하기로 한다.
종래와 같이 PLC 어플리케이션과 HMI 서버 어플리케이션이 별도의 하드웨어에 구현되는 경우 PLC어플리케이션과 HMI서버 어플리케이션은 네트워크 인터페이스를 통하여 통신을 수행하여야만 하므로 네트워크 인터페이스의 오류로 인해 딜레이가 발생하거나 데이터의 공유가 불가능할 수 있다.
하지만, 본 발명의 경우 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 하나의 하드웨어 내에 설치되기 때문에 네트워크 인터페이스가 요구되지 않고 내부 메모리(250)를 공유하는 방식을 통해서 인터페이스 될 수 있다.
공유 메모리(250)의 사용을 위해, PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)은 도 6에 도시된 바와 같이 미리 공유 메모리(250)의 사용을 위한 메타 데이터(500)를 공유할 수 있다. 메타 데이터(500)에는 각 수집데이터 별로 해당 수집데이터가 저장될 공유 메모리(250)의 어드레스 또는 제어데이터 별로 해당 제어데이터가 저장될 공유 메모리(250)의 어드레스가 기록된다.
이에 따라, PLC 어플리케이션(210)은 수집데이터 발생시, 메타데이터(500)를 참조하여 해당 수집데이터가 기록될 어드레스를 확인하고, 확인된 어드레스에 해당 수집데이터를 기록한다. 또한, HMI 서버 어플리케이션(222)은 특정 수집데이터의 독출 시기가 도래하면 메타데이터(500)를 참조하여 해당 수집데이터가 기록된 어드레스를 확인하고, 확인된 어드레스에서 해당 수집데이터를 독출한다.
이와 같이, 본 발명에 따르면 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 하나의 메모리(250)를 공유해서 사용하게 되므로, 데이터 복사와 같은 불필요한 오버헤드가 발생하지 않아 데이터의 빠른 이용이 가능하다.
다시 도 2를 참조하면, 네트워크 디바이스장치(260)는 통합시스템(200)과 PLC 어플리케이션(210)에 의해 제어되는 장치들간의 인터페이스 역할을 수행한다.
한편, 상술한 바와 같이 HMI 서버 어플리케이션(222)은 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유한다. 이하, HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 도 7을 참조하여 보다 구체적으로 설명한다.
도 7은 HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 보여주는 블록도이다. 도 7에 도시된 바와 같이, HMI 서버 어플리케이션(222)은 수집데이터 획득부(610), 링크형성부(620), 모니터링부(630), 및 주기설정부(640)를 포함한다.
수집데이터 획득부(610)는 주기설정부(640)에 의해 설정되는 모니터링 주기가 도래하면 공유메모리(250)에 접속하여 공유 메모리(250)로부터 수집데이터를 독출한다. 수집데이터 획득부(310)는 획득된 수집데이터를 모니터링부(630)로 전달하거나 링크형성부(620)로 전달한다.
링크형성부(620)는 수집데이터의 공유를 위해 HMI 클라이언트 어플리케이션(224)과의 링크를 형성한다. 링크 형성부(620)는 형성된 링크를 통해 HMI 클라이언트 어플리케이션(224)으로부터 수집데이터 요청메시지를 수신하고, 수신된 수집데이터 요청메시지에 따른 수집데이터 응답메시지를 생성하여 해당 HMI 클라이언트 어플리케이션(224)으로 전송한다.
일 실시예에 있어서, 링크 형성부(620)는 매핑테이블(650)을 생성하고, 생성된 매핑테이블(650)을 참조하여 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유할 수 있다.
매핑테이블(650)의 일 예가 도 8에 도시되어 있다. 도 8에 도시된 바와 같이 매핑테이블(650)에는 각 수집데이터 별로 수집 데이터의 명칭, 해당 수집데이터에 대해 HMI 클라이언트 어플리케이션(224)이 부여한 제1 식별자, 해당 수집데이터에 대해 HMI 서버 클라이언트(222)가 부여한 제2 식별자, 및 HMI 서버 어플리케이션(222)과 HMI 클라이언트 어플리케이션(224)간에 형성된 링크의 링크식별자가 매핑되어 있다. 이때, 제1 식별자는 HMI 클라이언트 어플리케이션(224)에서 계산된 해당 수집데이터의 카운팅 넘버일 수 있고, 제2 식별자는 HMI 서버 어플리케이션(222)에서 계산된 해당 수집데이터의 카운팅 넘버일 수 있다.
상술한 매핑테이블(650)을 생성하기 위해, 링크형성부(620)는 HMI 클라이언트 어플리케이션(224)으로부터 브로드캐스팅(Broadcasting) 방식으로 전달되는 수집데이터 검색요청을 수신한다. 수집데이터 검색요청에는 HMI 클라이언트 어플리케이션(224)이 모니터링하고자 하는 수집데이터의 명칭 및 해당 수집데이터에 대해 HMI 클라이언트 어플리케이션(224)이 부여한 제1 식별자가 포함된다.
수집데이터 검색요청에 포함된 명칭의 수집데이터를 HMI 서버 어플리케이션(224)이 보유하고 있는 경우, 링크형성부(620)는 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)과 링크를 형성하고, 해당 링크에 식별자를 부여하고 수집데이터 검색요청에 포함된 수집데이터에 제2 식별자를 부여한다. 이후, 링크형성부(620)는 수집데이터 검색요청에 포함된 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 매핑테이블을 생성한다.
한편, 링크 형성부(620)는 매핑테이블의 생성이 완료되면 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)도 매핑테이블을 생성할 수 있도록 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 수집데이터 검색응답을 생성하여 HMI 클라이언트 어플리케이션(224)으로 전달한다.
상술한 바와 같은 과정을 통해 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)은 서로간의 통신을 위한 매핑테이블을 생성하여 보유하게 된다.
한편, 링크 형성부(620)는 HMI클라이언트 어플리케이션(224)으로부터 수집데이터 모니터링요청이 수신되면, 매핑테이블(650)을 참조하여 모니터링대상이 되는 수집데이터를 확인한다. 이때, 수집데이터 모니터링요청은 제1 식별자, 링크 식별자, 및 제2 식별자로 구성되고, 수집데이터의 명칭은 포함되지 않는다. 따라서, 링크 형성부(620)는 매핑테이블(650)에서 수집데이터 모니터링요청에 포함된 제1 식별자, 링크 식별자, 및 제2 식별자에 매핑되어 있는 수집 데이터를 모니터링대상이 되는 수집 데이터로 결정하게 된다. 링크 형성부(620)는 모니터링 대상이 되는 수집데이터가 확인되면 이를 수집데이터 획득부(610)로 통지함으로써 수집데이터 획득부(610)가 해당 수집데이터를 공유메모리(250)로부터 획득할 수 있도록 한다.
또한, 링크형성부(620)는 수집데이터 모니터링요청의 수신 또는 모니터링 주기의 도래에 따라 모니터링대상이 되는 수집데이터의 값이 획득되면, 매핑테이블(650)을 참조하여 해당 수집데이터에 매핑되어 있는 제1 식별자, 링크식별자, 제2 식별자를 획득하고, 획득된 제1 식별자, 링크식별자, 제2 식별자, 및 획득된 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 HMI 클라이언트 어플리케이션(224)으로 전달한다.
이와 같이, 본 발명에 따르면 HMI 클라이언트 어플리케이션(224)과 링크형성부(620)는 모니터링 대상이 되는 수집데이터의 공유시, 수집데이터의 명칭과 같은 스트링(String) 정문을 메시지로 송수신하는 것이 아니라, 제1 식별자, 제2 식별자, 및 링크식별자로 구성된 메시지를 이용하여 데이터를 공유할 수 있기 때문에 데이터 공유를 위해 요구되는 오버헤드를 최소화할 수 있고 이로 인해 패킷길이를 최소화할 수 있어 통신 처리량을 감소시킬 수 있게 된다.
모니터링부(630)는 모니터링 대상이 되는 수집데이터의 값이 수집데이터 획득부(610)로부터 수신되면, 수신된 수집데이터의 값과 해당 수집데이터에 대해 이전에 획득된 값을 비교하여 해당 수집데이터의 값이 변경되는지 여부를 모니터링한다. 모니터링결과, 해당 수집 데이터의 값이 변경된 경우, 모니터링부(630)는 해당 수집 데이터의 값을 링크 형성부(620)로 전달함으로써 링크 형성부(620)가 해당 수집데이터의 값을 HMI 클라이언트 어플리케이션(224)으로 전송할 수 있도록 한다.
이와 같이, 본 발명에 따르면 모니터링부(630)를 통해 수집데이터 값이 변경화되었을 때에만 이벤트 구동(Event-driven) 방식으로 해당 수집 데이터의 값을 전송하고 변화되지 않은 정보는 송출하지 않기 때문에 통신 오버헤드를 최소화할 수 있기 때문에 전체적인 통신 처리량을 감소시킬 수 있다.
주기설정부(640)는 수집데이터 획득부(610)가 모니터링 대상이 되는 수집데이터를 공유메모리(250)로부터 획득할 주기를 설정한다. 이에 따라, 수집 데이터 획득부(610)는 주기설정부(640)에 의해 설정된 주기가 도래할 때마다 공유메모리(250)에서 해당 수집데이터의 값을 독출하여 모니터링부(630)로 제공하게 된다.
한편, 본 발명에 따른 통합시스템(200)은 도 9에 도시된 바와 같이 이중화 구조로 설계될 수 있다. 도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.
도 9에 도시된 바와 같이, 본 발명에 따른 통합시스템(200)은 시스템 기능에 문제가 있더라도 안정적인 동작을 위하여 마스터 장치(810) 및 슬레이브 장치(820)로 이중화되어 구성된다. 마스터 장치(810) 및 슬레이브 장치(820)는 동일한 동작을 수행하되 마스터 장치(810)의 동작이 중심이 된다. 이중화는 통합시스템(200)의 확장 시에도 유효하게 적용될 수 있다.
특히, 본 발명에 따르면 통합시스템(200)의 이중화를 구현하기 위해 각 장치(810, 820)는 장애감지부(212)를 포함할 수 있다. 각 장치(810, 810)에 구현된 장애감지부(212)는 각 장치(810, 820)에 포함된 코어프로세서(240) 또는 공유메모리(250) 등과 같은 하드웨어(H/W)에서 발생하는 장애나 OS의 커널(230)단에서 발생하는 장애를 감지한다.
일 실시예에 있어서, 장애감지부(212)는 응용프로그램 오류 진단, 필드버스 상태 진단, 입출력모듈 상태 진단을 통하여 PLC 어플리케이션(210)의 결함여부를 판단할 수 있다. 또한, 장애감지부(212)는 HMI 서버 어플리케이션(222), 히스토리컬 DB 어플리케이션(224a), 알람DB 어플리케이션(224b), 및 런타임 클라이언트 어플리케이션(224c)의 기능들을 점검할 수도 있다. 또한, 장애감지부(212)는 커널(230)의 시스템 콜(208)을 통해 커널(230)의 결함을 진단하거나 OS의 Hearbeat 점검을 통하여 커널(230)의 결함을 진단할 수 있다. 또한, 장애감지부(212)는 커널(230)의 시스템 콜(208)을 통해 코어 프로세서(2420) 진단, 공유메모리(250) 진단, 시스템 내부 온도 확인, 전원 공급장치의 상태 확인, 및 기타 장치의 상태 및 타임아웃(Timeout) 정보를 진단하여 디바이스들의 결함을 판단할 수도 있다.
마스터 장치(810)의 장애감지부(212)가 마스터 장치(810)에 장애가 발생된 것을 감지하게 되면, 마스터 장치(810)의 장애발생사실을 슬레이브 장치(820)의 장애감지부(212)를 통해 슬레이브 장치(820)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 슬레이브 장치(820)의 PLC 어플리케이션(210)은 마스터로 동작을 전환함으로써 마스터 장치(810)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다.
한편, 마스터 모드로 동작하고 있던 슬레이브 장치(820)의 장애감지부(212)가 슬레이브 장치(820)에 장애가 발생된 것을 감지하게 되면, 슬레이브 장치(820)의 장애발생사실을 마스터 장치(820)의 장애감지부(212)를 통해 마스터 장치(810)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 대기모드 또는 슬레이브 모드로 동작하고 있는 마스터 장치(810)의 PLC 어플리케이션(210)은 다시 마스터로 동작을 전환함으로써 슬레이브 장치(820)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다.
본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
200: 통합시스템 210: PLC 어플리케이션
222: HMI 서버 어플리케이션 224: HMI 클라이언트 어플리케이션
230: 커널 240: 코어 프로세서
250: 메모리
222: HMI 서버 어플리케이션 224: HMI 클라이언트 어플리케이션
230: 커널 240: 코어 프로세서
250: 메모리
Claims (14)
- PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor);
HMI(Human Machine Interface) 서버 어플리케이션이 실행되는 제2 코어 프로세서;
상기 PLC 어플리케이션의 제1 타스크를 상기 제1 코어 프로세서가 처리하도록 스케쥴링하는 제1 스케쥴러;
상기 HMI 서버 어플리케이션의 제2 타스크를 상기 제2 코어 프로세서가 처리하도록 스케쥴링하는 제2 스케쥴러;
상기 PLC 어플리케이션 및 상기 HMI 서버 어플리케이션 간의 데이터 공유를 위한 공유 메모리; 및
상기 PLC 어플리케이션에 상기 공유 메모리의 액세스를 위한 액세스키의 우선권을 부여하고, 상기 PLC 어플리케이션이 상기 액세스키를 보유 중 일 때 상기 HMI 서버 어플리케이션으로부터 비상정지명령이 포함된 제어데이터의 기록요청이 수신되면, 상기 PLC 어플리케이션으로부터 상기 액세스키를 회수하여 상기 HMI 서버 어플리케이션으로 제공하는 메모리 관리부를 포함하고,
상기 제1 스케쥴러는 상기 제2 스케쥴러보다 스케쥴링 우선권을 갖고,
상기 HMI 서버 어플리케이션은 상기 제어데이터의 발생시 상기 제어데이터를 선입선출 방식의 큐의 첫 번째 대기열로 위치를 변경하여 저장하고, 상기 회수된 액세스키를 이용하여 상기 제어데이터를 상기 공유 메모리에 기록하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제1항에 있어서,
상기 제1 스케쥴러는 상기 스케쥴링 우선권을 부여받아 상기 제1 타스크를 실시간으로 스케쥴링하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제1항에 있어서,
상기 제1 스케쥴러는 신규 타스크가 상기 PLC 어플리케이션에 부여된 식별자를 가지면 상기 신규 타스크가 상기 제1 코어 프로세서에 할당되도록 스케쥴링하고, 상기 제2 스케쥴러는 상기 신규 타스크가 상기 HMI 서버 어플리케이션에 부여된 식별자를 가지면 상기 신규 타스크가 상기 제2 코어 프로세서에 할당되도록 스케쥴링하여 상기 PLC 어플리케이션과 상기 HMI 서버 어플리케이션의 실행을 격리시키는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 삭제
- 제1항에 있어서,
상기 메모리 관리부는,
상기 HMI 서버 어플리케이션이 상기 액세스키를 이용하여 상기 공유 메모리에 액세스 중일 때 상기 PLC 어플리케이션으로부터 상기 공유 메모리에 대한 액세스 요청이 수신되면, 상기 HMI 서버 어플리케이션으로부터 상기 액세스키를 회수하여 상기 PLC 어플리케이션에 제공하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제1항에 있어서,
상기 HMI 서버 어플리케이션은 상기 액세스키가 상기 메모리 관리부에 의해 회수되면, 상기 액세스키가 회수된 제1 시점에서 데이터의 읽기 또는 쓰기를 중지하고, 상기 메모리 관리부로부터 상기 액세스키가 다시 수령되면 상기 제1 시점 이후에 읽기 또는 쓰기 중단된 데이터에 대해 읽기 또는 쓰기를 재개하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 삭제
- 삭제
- 제1항에 있어서,
상기 HMI 서버 어플리케이션과의 사이에 형성된 링크를 통해 공유 메모리에 기록된 수집데이터를 공유하는 HMI 클라이언트 어플리케이션을 처리하는 하나 이상의 제3 코어 프로세서를 더 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제9항에 있어서,
상기 HMI 클라이언트 어플리케이션은
상기 수집데이터를 시계열순으로 기록하는 히스토리컬(Historical) DB 어플리케이션;
상기 수집데이터의 값이 미리 정해진 임계값을 초과할 때 알람을 발생시키는 알람 DB 어플리케이션; 및
상기 수집데이터를 미리 정해진 GUI를 이용하여 사용자에게 제공하는 런타임 클라이언트 어플리케이션 중 적어도 하나를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제1항에 있어서,
수집데이터의 명칭, 상기 HMI 서버 어플리케이션과 상기 수집데이터를 공유하는 HMI 클라이언트 어플리케이션이 상기 수집데이터에 부여한 제1 식별자, 상기 HMI 서버 어플리케이션이 상기 수집데이터에 부여한 제2 식별자, 및 상기 HMI 서버 어플리케이션과 상기 HMI 클라이언트 어플리케이션간에 형성된 링크의 링크식별자가 매핑되어 있는 매핑테이블을 더 포함하고,
상기 HMI 서버 어플리케이션 및 상기 HMI 클라이언트 어플리케이션은 상기 매핑테이블을 참조하여 상기 수집데이터를 공유하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제11항에 있어서,
상기 HMI 서버 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 모니터링 주기가 도래하면 상기 매핑테이블을 참조하여 상기 타겟 수집데이터의 명칭에 매핑된 제1 식별자, 링크 식별자, 제2 식별자, 및 상기 타겟 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 상기 HMI 클라이언트 어플리케이션으로 전송하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제11항에 있어서,
상기 HMI 서버 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 모니터링 주기가 도래하면 상기 타겟 수집데이터의 값이 이전에 획득된 값과 상이한 경우 상기 매핑테이블을 참조하여 상기 타겟 수집데이터의 명칭에 매핑된 제1 식별자, 링크 식별자, 제2 식별자, 및 상기 타겟 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 상기 HMI 클라이언트 어플리케이션으로 전송하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템. - 제9항에 있어서,
상기 HMI 서버 어플리케이션 및 상기 HMI 클라이언트 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 명칭, 상기 타겟 수집데이터에 대해 상기 HMI 클라이언트 어플리케이션이 부여한 제1 식별자, 상기 HMI 클라이언트 어플리케이션와 상기 HMI 서버 어플리케이션 간에 형성된 링크의 링크식별자, 및 상기 타겟 수집데이터에 대해 상기 HMI 서버 어플리케이션이 부여한 제2 식별자를 공유함에 의해 상기 수집데이터의 공유를 위한 매핑테이블을 생성하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170181755 | 2017-12-28 | ||
KR1020170181755 | 2017-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190080684A KR20190080684A (ko) | 2019-07-08 |
KR102116174B1 true KR102116174B1 (ko) | 2020-05-27 |
Family
ID=67256137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180012132A KR102116174B1 (ko) | 2017-12-28 | 2018-01-31 | 멀티코어 프로세서 기반의 plc 및 hmi 통합 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102116174B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941246B (zh) * | 2019-10-22 | 2021-03-16 | 杭州电子科技大学 | 一种hmi消息分流调度方法、存储介质及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099355A (ja) * | 1998-09-22 | 2000-04-07 | Nec Corp | ネットワークコンピュータ |
JP5920468B2 (ja) * | 2012-08-03 | 2016-05-18 | 東芝三菱電機産業システム株式会社 | プラント制御監視システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02222058A (ja) * | 1989-02-23 | 1990-09-04 | Mitsubishi Electric Corp | マルチプロセッサシステム |
JPH11312007A (ja) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | プログラマブルコントローラ |
-
2018
- 2018-01-31 KR KR1020180012132A patent/KR102116174B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099355A (ja) * | 1998-09-22 | 2000-04-07 | Nec Corp | ネットワークコンピュータ |
JP5920468B2 (ja) * | 2012-08-03 | 2016-05-18 | 東芝三菱電機産業システム株式会社 | プラント制御監視システム |
Also Published As
Publication number | Publication date |
---|---|
KR20190080684A (ko) | 2019-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141106B2 (en) | Method for operating a field device | |
CN107272549B (zh) | 控制装置、控制方法以及记录介质 | |
CN108693823B (zh) | 控制装置 | |
JP2018097663A (ja) | 制御システム、制御プログラムおよび制御方法 | |
EP3074826B1 (en) | Offloading human-machine-interaction tasks | |
EP3582036B9 (en) | Control device | |
Feiler et al. | Embedded system architecture analysis using SAE AADL | |
Obermaisser et al. | Architectures for mixed-criticality systems based on networked multi-core chips | |
EP3489777B1 (en) | Control device, control method, and program | |
EP3940477B1 (en) | Control system, setting device and setting program | |
KR102116174B1 (ko) | 멀티코어 프로세서 기반의 plc 및 hmi 통합 시스템 | |
US20220308574A1 (en) | Control system, programmable logic controller, and information processing method | |
US10627784B2 (en) | Control system and control device | |
CN108733536A (zh) | 监控管理系统及方法 | |
KR102211200B1 (ko) | 멀티코어 프로세서 기반의 이중화된 plc 제어시스템 | |
WO2020075351A1 (ja) | コントロール装置 | |
CA3075017C (en) | Fault tolerant services for integrated building automation systems | |
WO2015063959A1 (ja) | 機器間制御方法、機器間制御プログラムおよび機器間制御システム | |
Gergeleit et al. | DIRECT: Towards a distributed object-oriented real-time control system | |
Eloranta et al. | A pattern language for distributed machine control systems | |
Catalán et al. | COSME: A distributed control platform for communicating machine tools in Agile Manufacturing Systems | |
JP2023051319A (ja) | 制御システムおよび処理装置 | |
US8627225B2 (en) | Apparatus and methods for ensuring closure of displays | |
Mersch et al. | Requirements on distribution management for service-oriented automation systems | |
JP2023049531A (ja) | 制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |