KR20190080684A - System for Integrating PLC and HMI Based on Multi Core Processor - Google Patents
System for Integrating PLC and HMI Based on Multi Core Processor Download PDFInfo
- Publication number
- KR20190080684A KR20190080684A KR1020180012132A KR20180012132A KR20190080684A KR 20190080684 A KR20190080684 A KR 20190080684A KR 1020180012132 A KR1020180012132 A KR 1020180012132A KR 20180012132 A KR20180012132 A KR 20180012132A KR 20190080684 A KR20190080684 A KR 20190080684A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- hmi
- plc
- collected data
- server application
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Programmable Controllers (AREA)
Abstract
Description
본 발명은 산업설비 관리시스템에 관한 것으로서, 보다 구체적으로 PLC 및 HMI에 관한 것이다.The present invention relates to an industrial facility management system, and more particularly to a PLC and an HMI.
산업현장에 배치된 다양한 설비들의 운영이나 제어를 위해서는 PLC(Programmable Logic Controller) 및 HMI(Human Machine Interface)가 요구된다.PLC (Programmable Logic Controller) and HMI (Human Machine Interface) are required for operation and control of various facilities installed in the industrial field.
PLC는 산업 플랜트의 자동제어 및 감시를 위해 사용되는 제어 장치이다. PLC는 입력 데이터를 프로그램에 의해 순차적으로 논리 처리하고 그 출력 결과를 이용하여 PLC에 연결된 외부장치를 제어한다. 이때, PLC는 입력 데이터를 실시간으로 처리할 수 있기 때문에 정해진 시간의 입력 조건에 대해 출력은 정해진 시간 안에 반응한다. 이러한 PLC는 공정 규모에 따라 복수개의 PLC로 구성될 수 있다. PLC는 제어 및 운영이 요구되는 산업현장에 맞게 다양한 외부장치와 인터페이스 됨으로써 원하는 제어 및 운영이 실현되도록 프로그램으로 구현되고, 이러한 프로그램이 PLC 전용 하드웨어(H/W)에 다운로드 되어 그 기능을 수행하게 된다.PLC is a control device used for automatic control and monitoring of industrial plants. The PLC sequentially processes the input data by the program and controls the external device connected to the PLC by using the output result. At this time, since the PLC can process the input data in real time, the output responds within a fixed time to the input condition of the set time. These PLCs can be composed of a plurality of PLCs depending on the process scale. PLC is implemented as a program so that the desired control and operation can be realized by interfacing with various external devices according to the industrial field requiring control and operation, and such program is downloaded to the PLC dedicated hardware (H / W) and performs its function .
HMI는 상술한 PLC를 비롯한 다양한 컨트롤러(DCS, 계측기 등)의 제어를 사용자가 인지하기 쉬운 화면으로 제공하고 그에 필요한 데이터를 그래프를 비롯한 다양한 형태로 제공한다. HMI는 상술한 기능이 실현되도록 프로그램으로 구현된다. 특히, 최근에 이러한 HMI프로그램은 비쥬얼 베이직(Visual Basic)이나 여타 프로그램과 같이 사용자가 직접 코딩하는 것을 대폭 줄임과 동시에 화면을 구성하는데 필요한 기능들을 드래그 앤 드롭 방식으로 또는 설정만으로 구성될 수 있도록 주로 구현되고 있다.The HMI provides the control of various controllers (DCS, instruments, etc.) including the above-mentioned PLC as an easy-to-recognize screen, and provides the necessary data in various forms including a graph. The HMI is implemented as a program so that the above-described functions are realized. In particular, recently, such HMI programs have been mainly implemented so that the functions necessary for constructing the screen can be configured in a drag-and-drop manner or only by setting, such as Visual Basic or other programs, .
도 1에 일반적인 PLC 및 HMI 의 연결관계가 도시되어 있다. 도 1에 도시된 바와 같이 일반적인 PLC(100)는 PLC 전용 하드웨어에 PLC용 프로그램이 설치됨으로써 구현되고, HMI(110) 또한 별도의 전용 하드웨어에 HMI용 프로그램이 설치됨으로써 구현되며, PLC(100) 및 HMI(110)는 네트워크(120, 예컨대 Ethernet, Modbus/TCP 등, 120)를 통해 연결된다. FIG. 1 shows a connection relationship between a general PLC and an HMI. As shown in FIG. 1, a
하지만, 도 1에 도시된 일반적인 PLC 및 HMI의 경우 PLC(100) 및 HMI(110)는 그 기능을 위한 프로그램이 전용 하드웨어에 별도로 설치되었기 때문에, 적용하고자 하는 PLC와 HMI의 다양한 제조사들의 사양을 확인하고 적용 가능한 하드웨어를 선택 해야만 하는 불편함이 있었고, 이로 인해 산업방향의 변화에 능동적으로 대응할 수 없을 뿐만 아니라 가격 경쟁력을 가진 다양한 제품 라인업의 확보 또한 어렵다는 한계가 있다.However, in the case of the general PLC and the HMI shown in FIG. 1, since the program for the function of the
또한, PLC 및 HMI가 통신 인터페이스를 통해 통신하여야만 하므로 통신에러가 발생하는 경우 PLC와 HMI간의 원활한 데이터 공유가 어려워져 산업현장의 제어가 효율적으로 수행될 수 없다는 문제점도 있다.In addition, when a communication error occurs because the PLC and the HMI have to communicate through the communication interface, it is difficult to smoothly share data between the PLC and the HMI, so that control of the industrial site can not be efficiently performed.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 멀티코어 프로세서를 이용하여 단일 하드웨어에 PLC 어플리케이션과 HMI어플리케이션을 통합하여 구성한 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 그 기술적 과제로 한다.SUMMARY OF THE INVENTION The present invention provides a PLC and an HMI integrated system based on a multicore processor in which a PLC application and an HMI application are integrated on a single hardware using a multicore processor.
또한, 본 발명은 PLC 어플리케이션을 HMI 어플리케이션보다 우선하여 실행할 수 있는 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.It is another object of the present invention to provide a PLC and an HMI integrated system capable of executing a PLC application prior to an HMI application.
또한, 본 발명은 PLC 어플리케이션 및 HMI 어플리케이션이 공유 메모리를 이용하여 통신할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.Another object of the present invention is to provide a PLC and HMI integrated system based on a multicore processor in which a PLC application and an HMI application can communicate using a shared memory.
또한, 본 발명은 PLC 어플리케이션이 실행되는 코어 프로세서를 HMI 어플리케이션이 실행되는 코어 프로세서로부터 격리시킬 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 다른 기술적 과제로 한다.Another object of the present invention is to provide a multi-core processor-based PLC and an HMI integrated system capable of isolating a core processor on which a PLC application is executed from a core processor on which an HMI application is executed.
또한, 본 발명은 PLC 어플리케이션에게 공유메모리에 대한 액세스 우선권을 부여할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 또 다른 기술적 과제로 한다.Another object of the present invention is to provide a PLC and an HMI integrated system based on a multicore processor capable of giving a PLC application access priority to a shared memory.
또한, 본 발명은 이중화 구조로 설계할 수 있는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템을 제공하는 것을 또 다른 기술적 과제로 한다.Another object of the present invention is to provide a PLC and HMI integrated system based on a multicore processor that can be designed with a redundant structure.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템은, PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor); HMI(Human Machine Interface) 서버 어플리케이션이 실행되는 제2 코어 프로세서; 상기 PLC 어플리케이션의 제1 타스크를 상기 제1 코어 프로세서가 처리하도록 스케쥴링하는 제1 스케쥴러; 및 상기 HMI 어플리케이션의 제2 타스크를 상기 제2 코어 프로세서가 처리하도록 스케쥴링하는 제2 스케쥴러를 포함하고, 상기 제1 스케쥴러는 상기 제2 스케쥴러보다 스케쥴링 우선권을 갖는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a PLC and an HMI integrated system based on a multicore processor, including: a first core processor for executing a PLC (Programmable Logic Controller) application; A second core processor in which an HMI (Human Machine Interface) server application is executed; A first scheduler for scheduling a first task of the PLC application to be processed by the first core processor; And a second scheduler for scheduling a second task of the HMI application to be processed by the second core processor, wherein the first scheduler has a scheduling priority over the second scheduler.
본 발명에 따르면 단일 하드웨어에 PLC 어플리케이션과 HMI어플리케이션을 동시에 구현할 수 있기 때문에 PLC어플리케이션 및 HMI어플리케이션이 동작하기 위한 하드웨어의 사양조사가 요구되지 않아, 시스템 구축시 하드웨어의 상이함으로 인한 추가비용이 발생을 미연에 방지할 수 있다는 효과가 있다.According to the present invention, since the PLC application and the HMI application can be simultaneously implemented on a single hardware, it is not required to investigate the specification of the hardware for the PLC application and the HMI application to operate. Therefore, It can be prevented.
또한, 본 발명에 따르면 PLC 어플리케이션의 타스크를 HMI 어플리케이션의 타스크보다 우선 스케쥴링하여 PLC 어플리케이션이 HMI 어플리케이션보다 우선 실행될 수 있도록 함으로써 PLC 어플리케이션의 실시간 처리를 보장할 수 있다는 효과가 있다.In addition, according to the present invention, there is an effect that real-time processing of the PLC application can be ensured by allowing the PLC application to be executed prior to the HMI application by scheduling the task of the PLC application prior to the task of the HMI application.
또한 본 발명에 따르면 PLC 어플리케이션 및 HMI어플릴케이션이 공유 메모리를 통해 데이터를 공유하고 별도의 통신 인터페이스가 요구되지 않기 때문에, 통신 인터페이스의 오류에 의한 통신에러가 발생하지 않아 PLC 어플리케이션과 HMI어플릴케이션이 원활하게 데이터를 공유할 수 있고, 이로 인해 산업현장의 제어를 효율적으로 수행할 수 있다는 효과가 있다.According to the present invention, since the PLC application and the HMI application share data through the shared memory and a separate communication interface is not required, a communication error due to an error of the communication interface does not occur, and the PLC application and the HMI application It is possible to share the data smoothly, and the control of the industrial site can be performed efficiently.
또한 본 발명에 따르면 PLC 어플리케이션과 HMI 어플리케이션 간에 통신 인터페이스가 요구되지 않기 때문에 상이한 통신 인터페이스를 일치시키기 위한 별도의 게이트웨이의 추가나 통신 프로토콜 개발 작업이 요구되지 않아 시스템 구축비용을 감소시킬 수 있다는 효과가 있다.Further, according to the present invention, since a communication interface is not required between the PLC application and the HMI application, the addition of a separate gateway or communication protocol development work for matching different communication interfaces is not required, thereby reducing system construction cost.
또한, 본 발명에 따르면 PLC 어플리케이션이 실행되는 코어 프로세서를 HMI 어플리케이션이 탑재된 코어 프로세서로부터 완전하게 격리시키고, PLC 어플리케이션에 스케쥴링 우선순위 및 공유 메모리 액세스 우선순위를 부여하기 때문에 PLC 어플리케이션의 실시간성을 보장할 수 있다는 효과가 있다.In addition, according to the present invention, the core processor on which the PLC application is executed is completely isolated from the core processor on which the HMI application is mounted, and the scheduling priority and the shared memory access priority are given to the PLC application, There is an effect that can be done.
또한, 본 발명에 따르면 시스템이 이중화 구조로 설계되기 때문에 시스템의 안정성을 향상시킬 수 있다는 효과가 있다.In addition, according to the present invention, since the system is designed in a redundant structure, the stability of the system can be improved.
도 1은 일반적인 PLC 및 HMI 의 연결관계를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템의 레이어 구성을 보여주는 도면이다.
도 3은 PLC 어플리케이션이 액세스키의 우선권을 가질 때 PLC 어플리케이션 및 HMI 어플리케이션의 공유메모리에 대한 액세스 예를 보여주는 도면이다.
도 4는 스케쥴러각 신규타스크를 각 코어 프로세서에 할당하는 예를 보여주는 도면이다.
도 5는 는 리얼타임 패치 이후에 스케줄러에 의해 처리되고 있는 스케쥴링 상태를 나타내는 도면이다.
도 6은 제1 코어 프로세서에 의해 처리되는 제1 타스크와 제2 코어 프로세서에 의해 처리되는 제2 타스크가 공유메모리를 공유하는 예를 보여주는 도면이다.
도 7은 HMI 서버 어플리케이션의 구성을 개략적으로 보여주는 블록도이다.
도 8은 매핑테이블의 일 예를 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.1 is a diagram showing a connection relationship between a general PLC and an HMI.
2 is a diagram illustrating a layer structure of a PLC and an HMI integrated system based on a multicore processor according to an embodiment of the present invention.
3 is a diagram showing an example of access to the shared memory of the PLC application and the HMI application when the PLC application has the priority of the access key.
4 is a diagram showing an example of allocating each new task to each core processor of the scheduler.
5 is a diagram showing a scheduling state being processed by a scheduler after a real time patch.
6 is a diagram showing an example in which a first task processed by a first core processor and a second task processed by a second core processor share an shared memory.
7 is a block diagram schematically showing the configuration of the HMI server application.
8 is a diagram showing an example of a mapping table.
9 is a diagram illustrating an example of an integrated system designed as a redundant structure according to an embodiment of the present invention.
이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.The meaning of the terms described herein should be understood as follows.
단수의 표현은 문맥상 명백하게 다르게 정의하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.The word " first, "" second," and the like, used to distinguish one element from another, are to be understood to include plural representations unless the context clearly dictates otherwise. The scope of the right should not be limited by these terms.
"포함하다" 또는 "가지다" 등의 용어는 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the terms "comprises" or "having" does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.It should be understood that the term "at least one" includes all possible combinations from one or more related items. For example, the meaning of "at least one of the first item, the second item and the third item" means not only the first item, the second item or the third item, but also the second item and the second item among the first item, Means any combination of items that can be presented from more than one.
도 2은 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템의 레이어 구성을 보여주는 도면이다. 일 실시예에 있어서 본 발명에 따른 PLC 및 HMI 통합 시스템(200, 이하, '통합시스템'이라 함)은 산업용 컴퓨터(Industrial Computer: IPC)로 구현될 수 있다. 본 발명에 따른 산업용 컴퓨터(IPC) 기반의 PLC(Programmable Logic Controller)는 결정론적(Deterministic) 기능과 블루 스크린 핸들링(Blue Screen Handling) 기능을 수행할 수 있다.2 is a diagram illustrating a layer configuration of a PLC and an HMI integrated system based on a multicore processor according to an embodiment of the present invention. In one embodiment, the PLC and HMI
결정론적(Deterministic) 기능은 산업용 컴퓨터에서 수행되는 시퀀스 로직(Sequence Logic)이 어플리케이션(User Application)의 수 및 네트워크 트래픽(Network Traffic) 량 등에 관계없이 PLC에서와 같이 일정한 Performance를 보장하는 기능으로써, 알려진 허용치(Tolerance) 내에서 주어진 주기(Cycle time)를 보장하는 시스템의 능력과 입력 요구에서부터 출력이 발생하기까지의 시간을 사용자가 예측할 수 있고 그 시간에서 실질적으로 처리가 이루어질 경우 처리 능력을 갖고 있는지를 나타내는 기능을 의미한다. 일반적인 PLC의 경우 스캔주기는 5-10ms 범위이고, 허용치는 1-4ms이다.The deterministic function is a function that guarantees a constant performance as in the PLC regardless of the number of application applications and the amount of network traffic, which is performed by an industrial computer. The ability of the system to guarantee a given cycle time within tolerance and whether the user can predict the time from the input request to the output to occur and have the processing capability when the process is actually done at that time . For a typical PLC, the scan period is in the range of 5-10 ms, and the tolerance is 1-4 ms.
블루스크린 핸들링 기능은 시스템이 다운(Down)되어도 시퀀스 로직을 계속 수행케 해주는 기능을 의미한다.The blue screen handling function means that the system continues to execute sequence logic even when the system is down.
도 2에 도시된 바와 같이, 본 발명에 따른 통합시스템(200)은 사용자 공간 레이어(202), OS(Operating System) 공간 레이어(204), 및 디바이스 공간 레이어(206)로 구성된다.2, the
사용자 공간 레이어(202)에는 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 설치된다. 일 실시예에 있어서, HMI 어플리케이션(220)은 PLC 어플리케이션(210)과 연동하는 HMI 서버 어플리케이션(222) 및 HMI 서버 어플리케이션(222)에 인터페이싱되는 HMI 클라이언트 어플리케이션(224)을 포함할 수 있다.In the user space layer 202, a
PLC어플리케이션(210)은 제어대상이 되는 장치들의 제어를 위해 네트워크 인터페이스, 디지털 입출력 인터페이스, 아날로그 입출력 인터페이스 등을 통해 구현된 로직에 맞게 제어동작을 수행 한다. PLC 어플리케이션(210)은 각 장치들로 수집한 각 장치의 상태데이터 또는 센싱데이터(이하, '수집데이터'라 함)를 메모리(250)에 저장한다.The
HMI 서버 어플리케이션(222)은 PLC어플리케이션(210)이 수집한 수집데이터들을 메모리(250)로부터 획득하여 HMI 클라이언트 어플리케이션(224)으로 제공한다.The
HMI 클라이언트 어플리케이션(224)은 HMI 서버 어플리케이션(222)과 수집데이터를 공유한다. 일 실시예에 있어서, HMI 클라이언트 어플리케이션(224)은 수집데이터를 시계열순으로 기록하는 히스토리컬 DB 어플리케이션(224a), 수집데이터의 값이 미리 정해진 임계값을 초과하는지 여부를 모니터링하고 수집데이터의 값이 미리 정해진 임계값을 초과하면 알람을 발생시키는 알람 DB 어플리케이션(224b), 및 수집데이터를 미리 정해진 GUI(Graphic User Interface)를 통해 사용자에게 제공하는 런타임 클라이언트 어플리케이션(224c) 중 적어도 하나를 포함할 수 있다.The HMI
특히, 런타임 클라이언트 어플리케이션(224c)은 필요한 경우 PLC 어플리케이션(210) 또는 PLC 어플리케이션(210)에 의해 제어되는 장치들을 제어하기 위한 제어데이터를 생성하여 HMI 서버 클라이언트(222)로 전달할 수 있다. 이러한 경우 HMI 서버 클라이언트(222)는 제어데이터를 메모리(250)에 기록함으로써 PLC 어플리케이션(210)이 해당 제어데이터를 공유할 수 있도록 한다.In particular, the
OS 공간 레이어(204)에는 통합시스템(200)의 커널(Kernel, 230)이 배치된다. 일 실시예에 있어서, OS는 오픈소스(Open Source)인 리눅스(Linux) 기반으로 구현될 수 있고, 커널(230)은 리눅스 커널로 구현될 수 있다.A kernel (kernel) 230 of the
커널(230)은 사용자 공간에 설치된 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 정상적으로 운영될 수 있도록 지원한다. 커널(230)은 OS의 핵심코어로 모든 작업에 우선하여 동작하는 프로그램이다. PLC어플리케이션(210)과 HMI 어플리케이션(220)이 동작하기 위해서 운영체제에서 프로그램이 구동되는데 파일을 읽어 오거나, 파일을 쓰거나, 또는 화면에 메시지를 출력하는 등 많은 부분이 커널(230)을 통해 수행된다. The
커널(230)의 동작은 인터럽트나 시스템 콜(208)에 의해 수행된다. 이때, 시스템 콜(208)은 커널(230) 영역의 기능을 사용자가 사용 가능하게, 즉 각 어플리케이션(21, 220)의 프로세스가 디바이스에 직접 접근해서 필요한 기능을 사용할 수 있게 인터페이스를 만들어 주는 역할을 수행한다.The operation of the
커널(230)은 각 어플리케이션(210, 220)들의 프로세스 관리, 메모리관리, 파일시스템관리, 장치관리, 네트워크관리 등을 수행하기 위해 도 2에 도시된 바와 같이, 파일 관리부(232), 디바이스 관리부(234), 메모리 관리부(236), 스케쥴러(238), 및 네트워크 장치 관리부(239)를 포함한다.2, the
파일 관리부(232)는 복수개의 파일 시스템을 관리한다. 리눅스는 일반 파일을 비롯한 모든 디바이스들을 파일형태로 관리하는데, 파일 관리부(232)가 이러한 파일을 관리하는 역할을 수행한다The
디바이스 관리부(234)는 디바이스 공간 레이어(206)에 있는 각종 디바이스들 및 디바이스들의 상호관계를 제어하는 역할을 수행한다.The
메모리 관리부(236)는 메모리(250)를 관리한다. 일 실시예에 있어서, 메모리(250)는 공유메모리 형태로 이용될 수 있고, 이러한 경우 메모리 관리부(236)는 메모리(250)에 접근하기 위한 액세스키를 어플리케이션(210, 220)으로 제공하거나 어플리케이션(210, 220)으로부터 회수하는 역할을 수행한다.The
한편, PLC어플리케이션(210)이 메모리(250)에 액세스 중에 있을 때, HMI 서버 어플리케이션(222)이 메모리(250)에 동시에 액세스하게 되면 데이터가 훼손될 수 있기 때문에 본 발명에 따른 메모리 관리부(250)는 한번에 하나의 어플리케이션만이 메모리(250)에 액세스할 수 있도록 하기 위해 커널(230)에서 메모리(250)에 접근할 수 있는 액세스키를 사용한다.If the
특히, 본 발명에 따른 메모리 관리부(236)는 PLC 어플리케이션(210)에게 액세스키에 대한 우선권을 부여함으로써 PLC 어플리케이션(210)이 HMI 어플리케이션(220), 특히 HMI 서버 어플리케이션(222)에 우선하여 메모리(250)에 접근할 수 있도록 한다.Particularly, the
이와 같이, 본 발명에서는 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 하나의 액세스키를 사용하되 PLC 어플리케이션(210)에 액세스키의 우선권을 부여함으로써 PLC 어플리케이션(210)이 메모리(250)에 우선 접근을 허여할 수 있기 때문에 PLC 어플리케이션(210)의 실시간 제어를 보장할 수 있게 된다.As described above, in the present invention, the
이러한 실시예에 따르는 경우, 도 3에 도시된 바와 같이 HMI 어플리케이션(220)이 메모리(250)에 접속하여 "1이라는 작업을 수행 중일 때 PLC 어플리케이션(210)으로부터 메모리(250)에 대한 접속요청이 발생되면, 메모리 관리부(250)는 HMI 어플리케이션(220)으로부터 액세스키를 즉시 회수하여 PLC 어플리케이션(210)에 액세스키를 배당한다. 이에 따라, HMI 어플리케이션(220)은 액세스키가 회수된 제1 시점(t1)에서 작업을 중지하게 되고, PLC 어플리케이션(210)이 액세스키를 이용하여 메모리(250)에 접속함으로써 "1"이라는 작업을 수행하게 된다.In accordance with this embodiment, when the
이때, HMI 서버 어플리케이션(224)의 프로세스 동작 주기 보다 PLC 어플리케이션(210)의 프로세스 동작 주기가 짧기 때문에, HMI 서버 어플리케이션(224)으로부터 액세스키가 회수되기 이전까지 PLC 어플리케이션(222)은 계속해서 동작하도록 설정된다.At this time, since the process operation cycle of the
HMI 서버 어플리케이션(224)은 메모리 관리부(250)에 의해 액세스키가 회수되면 액세스키가 회수된 제1 시점(t1)을 확인하고, PLC 어플리케이션(210)의 프로세스가 처리완료되어 액세스키가 다시 HMI 서버 어플리케이션(224)으로 제공되면 제1 시점(t1) 이후에 읽기 또는 쓰기 중단된 데이터에 대해 다시 읽기 또는 쓰기 동작을 재개하게 된다.The
한편, 상술한 도 3에 도시된 바와 같이 제2 시점(t2)에서 HMI 어플리케이션(220)에 의해 비상정지명령이 포함된 제어데이터가 발생하게 되면, 비상정지명령이 포함된 제어데이터는 빠른 시간 내에 PLC 어플리케이션(210)과 공유되어야 하지만, HMI 어플리케이션(220)은 액세스키의 우선권을 가지고 있지 않기 때문에 PLC 어플리케이션(210)으로부터 액세스키가 회수될 때까지 제어데이터를 기록하지 못하게 된다. 또한, HMI 어플리케이션(220)이 액세스키를 가진다고 하더라도 HMI 어플리케이션(220)의 큐(Queue)에서는 선입선출(FIFO)방식에 따라 제어데이터가 처리되기 때문에 도 3에 도시된 바와 같이 이전 작업인 "1"의 처리가 모두 완료된 이후의 제3 시점(t3)이 되어야 비상정지명령이 포함된 제어데이터의 처리작업인 "2"가 처리될 수 밖에 없다.3, when the control data including the emergency stop command is generated by the
이를 해결하기 위해 본 발명에 따르면 HMI 어플리케이션(220)은 비상정지명령이 포함된 제어데이터가 발생되면 해당 제어데이터를 큐의 첫 번째 대기열에 배치함으로써 해당 제어데이터가 큐에서 첫 번째로 처리될 수 있도록 한다. 또한, 메모리 관리부(250)는 비상정지명령이 포함된 제어데이터 발생시 HMI 서버 어플리케이션(224)에게 액세스키의 우선권을 부여함으로써, PLC 어플리케이션(210)이 메모리(250)에 접속중이더라도 PLC 어플리케이션(210)으로부터 액세스키를 즉시 회수하여 HMI 어플리케이션(220)으로 제공하고, HMI 어플리케이션(220)은 제공받은 액세스키로 메모리(250)에 접속하여 제어데이터를 기록한 후 액세스키를 다시 메모리 관리부(250)로 반납한다.In order to solve this problem, according to the present invention, when control data including an emergency stop command is generated, the
이에 따라, 비상정지명령이 포함된 제어데이터가 지연없이 HMI 어플리케이션(220)으로부터 PLC 어플리케이션(210)으로 전송되어 즉시 처리될 수 있다.Accordingly, the control data including the emergency stop command can be transmitted from the
다시 도 2를 참조하면, 스케쥴러(238)는 각 어플리케이션(210, 220)의 실행에 따른 타스크(Task)를 복수개의 코어 프로세서(240)들에 할당한다. 일 실시예에 있어서, 스케쥴러(238)는 도 4에 도시된 바와 같이 PLC 어플리케이션(210)의 타스크인 제1 타스크를 처리하기 위한 제1 스케쥴러(283a) 및 HMI 서버 어플리케이션(222)의 타스크인 제2 타스크를 처리하기 위한 제2 스케쥴러(283b)를 포함할 수 있다. 또한, 스케쥴러(238)는 HMI 클라이언트 어플리케이션의 타스크인 제3 타스크를 처리하기 위한 제3 스케쥴러(238c)를 더 포함할 수 있다.Referring again to FIG. 2, the
도 4에서는 제1 내지 제3 스케쥴러(238a~238c)가 물리적으로 구분되어 있는 것으로 도시하였지만, 이는 하나의 예일 뿐 물리적으로 하나의 스케쥴러가 도 4에 도시된 바와 같이 3개의 스케쥴러의 기능을 수행하는 것도 가능할 것이다.In FIG. 4, the first through
또한, 도 4에서는 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)가 구분되는 것으로 도시하였지만, 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)는 하나의 스케쥴러로 구현될 수도 있을 것이다.Although the
특히, 본 발명에 따르면 PLC 어플리케이션(210)의 타스크인 제1 타스크를 처리하는 제1 스케쥴러(283a)는 타 스케쥴러(238b, 238c)에 비해 스케쥴링 우선권을 가진다. 이에 따라, 다른 타스크들보다 제1 타스크가 제1 스케쥴러(238)에 의해 먼저 처리되기 때문에 PLC 어플리케이션(210)이 타 어플리케이션(220)에 비해 우선 실행될 수 있게 된다.In particular, according to the present invention, the first scheduler 283a that processes the first task, which is a task of the
즉, 도 5에 도시된 바와 같이, 스케쥴러(238) 고유의 스케쥴링 동작 수행 이후에 제1 스케쥴러(238a)에 의해 제1 타스크(410)가 가장 최우선의 권한을 가지고 처리되고, 그 다음 제2 스케쥴러(238b)에 의해 제2 타스크(420)가 처리되고, 그 이후에 제3 스케쥴러(238c)에 의해 제3 타스크(430)를 비롯한 기타 타스크들이 처리됨으로써, PLC어플리케이션(210)이 최우선적으로 제어 동작을 수행할 수 있게 된다.5, the
한편, 스케쥴러(238)는 신규 타스크가 발생되면 해당 타스크의 식별자를 기초로 각 타스크를 코어 프로세서(240) 중 어느 하나에 할당할 수 있다.On the other hand, when a new task is generated, the
예컨대, 도 4에 도시된 바와 같이 제1 스케쥴러(238a)는, 해당 타스크가 PLC 어플리케이션(210)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 PLC 어플리케이션(210)의 제1 타스크(410)인 것으로 판단하여 제1 코어 프로세서(242)에 할당한다.4, if the task has an identifier assigned to the
또한, 제2 스케쥴러(238b)는 해당 타스크가 HMI 서버 어플리케이션(222)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 서버 어플리케이션(222)의 제2 타스크(420)인 것으로 판단하여 제2 코어 프로세서(244)에 할당한다.If the task has an identifier assigned to the
또한, 제3 스케쥴러(238c)는 해당 타스크가 HMI 클라이언트 어플리케이션(224)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)인 것으로 판단하여 제1 및 제2 코어 프로세서를 제외한 유휴 코어 프로세서(246)에 할당한다.If the task has an identifier assigned to the
이에 따라, PLC 어플리케이션(210)의 제1 타스크(410)는 모두 제1 코어 프로세서(242)에서만 처리되고, HMI 서버 어플리케이션(222)의 제2 타스크(420)는 모두 제2 코어 프로세서(244)에서만 처리되며, HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)는 모두 유휴 코어 프로세서(246)에서 처리될 수 있어, PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)과 완전하게 격리시킬 수 있게 된다.The
본 발명에서 PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)으로부터 격리시키는 이유는 PLC어플리케이션(210)의 경우 제어로직 또는 운영로직이 동작하는 동안 제어와 관련없는 인터럽트나 이벤트의 발생으로 제어동작에 영향을 미치게 되면 PLC 어플리케이션(210)이 안정적인 제어를 수행할 수 없기 때문이다. 따라서, 본 발명은 PLC 어플리케이션(210)의 타스크만을 전용으로 처리할 수 있는 코어 프로세서(242)를 지정함으로써 PLC 어플리케이션(210)이 안정적인 제어를 수행 할 수 있도록 한다.The reason for isolating the
일 실시예에 있어서, 본 발명에 따른 스케쥴러(238)는 PLC 어플리케이션(210)이 제어동작 이외에 어떠한 인터럽트나 이벤트에 해서 영향을 받지 않고 정해진 타스크 수행시간 내에서 정확하게 동작할 수 있도록 하기 위해, Linux OS 커널의 어피니티(Affinity)설정을 통해 PLC 어플리케이션(210)의 타스크는 제1 코어 프로세서(242)에서만 처리되도록 함과 동시에 리얼타임 패치를 통하여 실시간으로 처리될 수 있도록 한다.In one embodiment, the
다시 도 2를 참조하면, 네트워크 장치 관리부(239)는 네트워크 장치의 설정 및 동작을 관리하고, 디바이스 인터페이스(210)는 디바이스 공간 레이어(206)에 배치된 디바이스들(240~260)과 커널간의 인터페이스를 담당한다. 2, the network
디바이스 공간 레이어(206)는 코어 프로세서(240), 메모리(250), 및 네트워크 장치(260) 등과 같은 디바이스들로 구성된다. 도 2에서는 설명의 편의를 위해 일부 디바이스들만을 예시적으로 도시한 것일 뿐, 디바이스 공간 레이어(206)에는 도 2에 도시된 디바이스들 이외에 하드디스크 등과 같은 다른 디바이스들이 배치될 수 있다.Device space layer 206 is comprised of devices such as
코어 프로세서(240)는 어플리케이션을 실행시킨다. 본 발명에 따른 통합 시스템(200)은 하나의 하드웨어(H/W)에 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 모두 설치되어 동작할 수 있도록, 코어 프로세서(240)는 복수개의 코어 프로세서(242, 244, 246)들로 구성된다.The
이러한 실시예에 따르는 경우 제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)의 타스크를 처리할 수 있다.The
메모리(250)에는 PLC 어플리케이션(210)에 의해 수집데이터가 기록되거나 HMI 서버 어플리케이션(222)에 의해 제어데이터가 기록된다. 일 실시예에 있어서, 도 6에 도시된 바와 같이 메모리(250)는 공유 메모리로 구현됨으로써 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 메모리(250)를 통해 수집 데이터 및 제어데이터를 공유할 수 있다. 이하에서는 설명의 편의를 위해 메모리(250)를 공유 메모리(250)라는 표현과 혼용하여 사용하기로 한다.In the
종래와 같이 PLC 어플리케이션과 HMI 서버 어플리케이션이 별도의 하드웨어에 구현되는 경우 PLC어플리케이션과 HMI서버 어플리케이션은 네트워크 인터페이스를 통하여 통신을 수행하여야만 하므로 네트워크 인터페이스의 오류로 인해 딜레이가 발생하거나 데이터의 공유가 불가능할 수 있다.If the PLC application and the HMI server application are implemented in separate hardware as in the conventional case, the PLC application and the HMI server application must perform communication through the network interface, so that it may be delayed due to the error of the network interface or data sharing may not be possible .
하지만, 본 발명의 경우 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 하나의 하드웨어 내에 설치되기 때문에 네트워크 인터페이스가 요구되지 않고 내부 메모리(250)를 공유하는 방식을 통해서 인터페이스 될 수 있다.However, since the
공유 메모리(250)의 사용을 위해, PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)은 도 6에 도시된 바와 같이 미리 공유 메모리(250)의 사용을 위한 메타 데이터(500)를 공유할 수 있다. 메타 데이터(500)에는 각 수집데이터 별로 해당 수집데이터가 저장될 공유 메모리(250)의 어드레스 또는 제어데이터 별로 해당 제어데이터가 저장될 공유 메모리(250)의 어드레스가 기록된다.The
이에 따라, PLC 어플리케이션(210)은 수집데이터 발생시, 메타데이터(500)를 참조하여 해당 수집데이터가 기록될 어드레스를 확인하고, 확인된 어드레스에 해당 수집데이터를 기록한다. 또한, HMI 서버 어플리케이션(222)은 특정 수집데이터의 독출 시기가 도래하면 메타데이터(500)를 참조하여 해당 수집데이터가 기록된 어드레스를 확인하고, 확인된 어드레스에서 해당 수집데이터를 독출한다. Accordingly, when the collected data is generated, the
이와 같이, 본 발명에 따르면 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 하나의 메모리(250)를 공유해서 사용하게 되므로, 데이터 복사와 같은 불필요한 오버헤드가 발생하지 않아 데이터의 빠른 이용이 가능하다.As described above, according to the present invention, since the
다시 도 2를 참조하면, 네트워크 디바이스장치(260)는 통합시스템(200)과 PLC 어플리케이션(210)에 의해 제어되는 장치들간의 인터페이스 역할을 수행한다.Referring again to FIG. 2, the
한편, 상술한 바와 같이 HMI 서버 어플리케이션(222)은 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유한다. 이하, HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 도 7을 참조하여 보다 구체적으로 설명한다.On the other hand, as described above, the
도 7은 HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 보여주는 블록도이다. 도 7에 도시된 바와 같이, HMI 서버 어플리케이션(222)은 수집데이터 획득부(610), 링크형성부(620), 모니터링부(630), 및 주기설정부(640)를 포함한다.7 is a block diagram showing the configuration of the
수집데이터 획득부(610)는 주기설정부(640)에 의해 설정되는 모니터링 주기가 도래하면 공유메모리(250)에 접속하여 공유 메모리(250)로부터 수집데이터를 독출한다. 수집데이터 획득부(310)는 획득된 수집데이터를 모니터링부(630)로 전달하거나 링크형성부(620)로 전달한다.The collection
링크형성부(620)는 수집데이터의 공유를 위해 HMI 클라이언트 어플리케이션(224)과의 링크를 형성한다. 링크 형성부(620)는 형성된 링크를 통해 HMI 클라이언트 어플리케이션(224)으로부터 수집데이터 요청메시지를 수신하고, 수신된 수집데이터 요청메시지에 따른 수집데이터 응답메시지를 생성하여 해당 HMI 클라이언트 어플리케이션(224)으로 전송한다.The
일 실시예에 있어서, 링크 형성부(620)는 매핑테이블(650)을 생성하고, 생성된 매핑테이블(650)을 참조하여 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유할 수 있다.In one embodiment, the
매핑테이블(650)의 일 예가 도 8에 도시되어 있다. 도 8에 도시된 바와 같이 매핑테이블(650)에는 각 수집데이터 별로 수집 데이터의 명칭, 해당 수집데이터에 대해 HMI 클라이언트 어플리케이션(224)이 부여한 제1 식별자, 해당 수집데이터에 대해 HMI 서버 클라이언트(222)가 부여한 제2 식별자, 및 HMI 서버 어플리케이션(222)과 HMI 클라이언트 어플리케이션(224)간에 형성된 링크의 링크식별자가 매핑되어 있다. 이때, 제1 식별자는 HMI 클라이언트 어플리케이션(224)에서 계산된 해당 수집데이터의 카운팅 넘버일 수 있고, 제2 식별자는 HMI 서버 어플리케이션(222)에서 계산된 해당 수집데이터의 카운팅 넘버일 수 있다.An example of the mapping table 650 is shown in FIG. As shown in FIG. 8, in the mapping table 650, the name of the collected data, the first identifier given by the
상술한 매핑테이블(650)을 생성하기 위해, 링크형성부(620)는 HMI 클라이언트 어플리케이션(224)으로부터 브로드캐스팅(Broadcasting) 방식으로 전달되는 수집데이터 검색요청을 수신한다. 수집데이터 검색요청에는 HMI 클라이언트 어플리케이션(224)이 모니터링하고자 하는 수집데이터의 명칭 및 해당 수집데이터에 대해 HMI 클라이언트 어플리케이션(224)이 부여한 제1 식별자가 포함된다.The
수집데이터 검색요청에 포함된 명칭의 수집데이터를 HMI 서버 어플리케이션(224)이 보유하고 있는 경우, 링크형성부(620)는 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)과 링크를 형성하고, 해당 링크에 식별자를 부여하고 수집데이터 검색요청에 포함된 수집데이터에 제2 식별자를 부여한다. 이후, 링크형성부(620)는 수집데이터 검색요청에 포함된 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 매핑테이블을 생성한다.If the
한편, 링크 형성부(620)는 매핑테이블의 생성이 완료되면 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)도 매핑테이블을 생성할 수 있도록 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 수집데이터 검색응답을 생성하여 HMI 클라이언트 어플리케이션(224)으로 전달한다.Meanwhile, when the mapping table is generated, the
상술한 바와 같은 과정을 통해 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)은 서로간의 통신을 위한 매핑테이블을 생성하여 보유하게 된다.Through the above-described process, the
한편, 링크 형성부(620)는 HMI클라이언트 어플리케이션(224)으로부터 수집데이터 모니터링요청이 수신되면, 매핑테이블(650)을 참조하여 모니터링대상이 되는 수집데이터를 확인한다. 이때, 수집데이터 모니터링요청은 제1 식별자, 링크 식별자, 및 제2 식별자로 구성되고, 수집데이터의 명칭은 포함되지 않는다. 따라서, 링크 형성부(620)는 매핑테이블(650)에서 수집데이터 모니터링요청에 포함된 제1 식별자, 링크 식별자, 및 제2 식별자에 매핑되어 있는 수집 데이터를 모니터링대상이 되는 수집 데이터로 결정하게 된다. 링크 형성부(620)는 모니터링 대상이 되는 수집데이터가 확인되면 이를 수집데이터 획득부(610)로 통지함으로써 수집데이터 획득부(610)가 해당 수집데이터를 공유메모리(250)로부터 획득할 수 있도록 한다.On the other hand, when the collection data monitoring request is received from the
또한, 링크형성부(620)는 수집데이터 모니터링요청의 수신 또는 모니터링 주기의 도래에 따라 모니터링대상이 되는 수집데이터의 값이 획득되면, 매핑테이블(650)을 참조하여 해당 수집데이터에 매핑되어 있는 제1 식별자, 링크식별자, 제2 식별자를 획득하고, 획득된 제1 식별자, 링크식별자, 제2 식별자, 및 획득된 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 HMI 클라이언트 어플리케이션(224)으로 전달한다.When the value of the collected data to be monitored is acquired according to the reception of the collected data monitoring request or the arrival of the monitoring period, the
이와 같이, 본 발명에 따르면 HMI 클라이언트 어플리케이션(224)과 링크형성부(620)는 모니터링 대상이 되는 수집데이터의 공유시, 수집데이터의 명칭과 같은 스트링(String) 정문을 메시지로 송수신하는 것이 아니라, 제1 식별자, 제2 식별자, 및 링크식별자로 구성된 메시지를 이용하여 데이터를 공유할 수 있기 때문에 데이터 공유를 위해 요구되는 오버헤드를 최소화할 수 있고 이로 인해 패킷길이를 최소화할 수 있어 통신 처리량을 감소시킬 수 있게 된다.As described above, according to the present invention, the
모니터링부(630)는 모니터링 대상이 되는 수집데이터의 값이 수집데이터 획득부(610)로부터 수신되면, 수신된 수집데이터의 값과 해당 수집데이터에 대해 이전에 획득된 값을 비교하여 해당 수집데이터의 값이 변경되는지 여부를 모니터링한다. 모니터링결과, 해당 수집 데이터의 값이 변경된 경우, 모니터링부(630)는 해당 수집 데이터의 값을 링크 형성부(620)로 전달함으로써 링크 형성부(620)가 해당 수집데이터의 값을 HMI 클라이언트 어플리케이션(224)으로 전송할 수 있도록 한다.When the value of the collected data to be monitored is received from the collected
이와 같이, 본 발명에 따르면 모니터링부(630)를 통해 수집데이터 값이 변경화되었을 때에만 이벤트 구동(Event-driven) 방식으로 해당 수집 데이터의 값을 전송하고 변화되지 않은 정보는 송출하지 않기 때문에 통신 오버헤드를 최소화할 수 있기 때문에 전체적인 통신 처리량을 감소시킬 수 있다.As described above, according to the present invention, only when the collected data value is changed through the
주기설정부(640)는 수집데이터 획득부(610)가 모니터링 대상이 되는 수집데이터를 공유메모리(250)로부터 획득할 주기를 설정한다. 이에 따라, 수집 데이터 획득부(610)는 주기설정부(640)에 의해 설정된 주기가 도래할 때마다 공유메모리(250)에서 해당 수집데이터의 값을 독출하여 모니터링부(630)로 제공하게 된다.The
한편, 본 발명에 따른 통합시스템(200)은 도 9에 도시된 바와 같이 이중화 구조로 설계될 수 있다. 도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.Meanwhile, the
도 9에 도시된 바와 같이, 본 발명에 따른 통합시스템(200)은 시스템 기능에 문제가 있더라도 안정적인 동작을 위하여 마스터 장치(810) 및 슬레이브 장치(820)로 이중화되어 구성된다. 마스터 장치(810) 및 슬레이브 장치(820)는 동일한 동작을 수행하되 마스터 장치(810)의 동작이 중심이 된다. 이중화는 통합시스템(200)의 확장 시에도 유효하게 적용될 수 있다.As shown in FIG. 9, the
특히, 본 발명에 따르면 통합시스템(200)의 이중화를 구현하기 위해 각 장치(810, 820)는 장애감지부(212)를 포함할 수 있다. 각 장치(810, 810)에 구현된 장애감지부(212)는 각 장치(810, 820)에 포함된 코어프로세서(240) 또는 공유메모리(250) 등과 같은 하드웨어(H/W)에서 발생하는 장애나 OS의 커널(230)단에서 발생하는 장애를 감지한다.In particular, according to the present invention, each of the
일 실시예에 있어서, 장애감지부(212)는 응용프로그램 오류 진단, 필드버스 상태 진단, 입출력모듈 상태 진단을 통하여 PLC 어플리케이션(210)의 결함여부를 판단할 수 있다. 또한, 장애감지부(212)는 HMI 서버 어플리케이션(222), 히스토리컬 DB 어플리케이션(224a), 알람DB 어플리케이션(224b), 및 런타임 클라이언트 어플리케이션(224c)의 기능들을 점검할 수도 있다. 또한, 장애감지부(212)는 커널(230)의 시스템 콜(208)을 통해 커널(230)의 결함을 진단하거나 OS의 Hearbeat 점검을 통하여 커널(230)의 결함을 진단할 수 있다. 또한, 장애감지부(212)는 커널(230)의 시스템 콜(208)을 통해 코어 프로세서(2420) 진단, 공유메모리(250) 진단, 시스템 내부 온도 확인, 전원 공급장치의 상태 확인, 및 기타 장치의 상태 및 타임아웃(Timeout) 정보를 진단하여 디바이스들의 결함을 판단할 수도 있다.In one embodiment, the fault detection unit 212 can determine whether the
마스터 장치(810)의 장애감지부(212)가 마스터 장치(810)에 장애가 발생된 것을 감지하게 되면, 마스터 장치(810)의 장애발생사실을 슬레이브 장치(820)의 장애감지부(212)를 통해 슬레이브 장치(820)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 슬레이브 장치(820)의 PLC 어플리케이션(210)은 마스터로 동작을 전환함으로써 마스터 장치(810)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다. When the failure detection unit 212 of the
한편, 마스터 모드로 동작하고 있던 슬레이브 장치(820)의 장애감지부(212)가 슬레이브 장치(820)에 장애가 발생된 것을 감지하게 되면, 슬레이브 장치(820)의 장애발생사실을 마스터 장치(820)의 장애감지부(212)를 통해 마스터 장치(810)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 대기모드 또는 슬레이브 모드로 동작하고 있는 마스터 장치(810)의 PLC 어플리케이션(210)은 다시 마스터로 동작을 전환함으로써 슬레이브 장치(820)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다.When the failure detection unit 212 of the
본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
200: 통합시스템
210: PLC 어플리케이션
222: HMI 서버 어플리케이션
224: HMI 클라이언트 어플리케이션
230: 커널
240: 코어 프로세서
250: 메모리200: Integrated system 210: PLC application
222: HMI server application 224: HMI client application
230: kernel 240: core processor
250: Memory
Claims (14)
HMI(Human Machine Interface) 서버 어플리케이션이 실행되는 제2 코어 프로세서;
상기 PLC 어플리케이션의 제1 타스크를 상기 제1 코어 프로세서가 처리하도록 스케쥴링하는 제1 스케쥴러; 및
상기 HMI 서버 어플리케이션의 제2 타스크를 상기 제2 코어 프로세서가 처리하도록 스케쥴링하는 제2 스케쥴러를 포함하고,
상기 제1 스케쥴러는 상기 제2 스케쥴러보다 스케쥴링 우선권을 갖는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템.A first core processor in which a PLC (Programmable Logic Controller) application is executed;
A second core processor in which an HMI (Human Machine Interface) server application is executed;
A first scheduler for scheduling a first task of the PLC application to be processed by the first core processor; And
And a second scheduler for scheduling a second task of the HMI server application to be processed by the second core processor,
Wherein the first scheduler has a scheduling priority over the second scheduler.
상기 제1 스케쥴러는 상기 스케쥴링 우선권을 부여받아 상기 제1 타스크를 실시간으로 스케쥴링하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템.The method according to claim 1,
Wherein the first scheduler receives the scheduling priority and schedules the first task in real time.
상기 제1 스케쥴러는 신규 타스크가 상기 PLC 어플리케이션에 부여된 식별자를 가지면 상기 신규 타스크가 상기 제1 코어 프로세서에 할당되도록 스케쥴링하고, 상기 제2 스케쥴러는 상기 신규 타스크가 상기 HMI 서버 어플리케이션에 부여된 식별자를 가지면 상기 신규 타스크가 상기 제2 코어 프로세서에 할당되도록 상기 PLC 어플리케이션과 상기 HMI 어플리케이션의 실행을 격리시키는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템.The method according to claim 1,
Wherein the first scheduler schedules the new task to be assigned to the first core processor if the new task has an identifier assigned to the PLC application and the second scheduler notifies the new task that the new task has an identifier assigned to the HMI server application And isolating execution of the PLC application and the HMI application so that the new task is assigned to the second core processor if the new task is assigned to the second core processor.
상기 PLC 어플리케이션 및 상기 HMI 서버 어플리케이션 간의 데이터 공유를 위한 공유 메모리; 및
상기 공유 메모리의 액세스를 위한 액세스키를 관리하고, 상기 PLC 어플리케이션에 상기 액세스키의 우선권을 부여하는 메모리 관리부를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템.The method according to claim 1,
A shared memory for sharing data between the PLC application and the HMI server application; And
And a memory management unit for managing an access key for accessing the shared memory and giving the PLC application a priority of the access key.
상기 메모리 관리부는,
상기 HMI 서버 어플리케이션이 상기 액세스키를 이용하여 상기 공유 메모리에 액세스 중일 때 상기 PLC 어플리케이션으부터 상기 공유 메모리에 대한 액세스 요청이 수신되면, 상기 HMI 서버 어플리케이션으로부터 상기 액세스키를 회수하여 상기 PLC 어플리케이션에 제공하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.5. The method of claim 4,
The memory management unit,
When the access request to the shared memory is received from the PLC application when the HMI server application is accessing the shared memory using the access key, the access key is retrieved from the HMI server application and provided to the PLC application PLC and HMI integrated system using multi-core CPU.
상기 HMI 서버 어플리케이션은 상기 액세스키가 상기 메모리 관리부에 의해 회수되면, 상기 액세스키가 회수된 제1 시점에서 데이터의 읽기 또는 쓰기를 중지하고, 상기 메모리 관리부로부터 상기 액세스키가 다시 수령되면 상기 제1 시점 이후에 읽기 또는 스기 중단된 데이터에 대해 읽기 또는 쓰기를 재개하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.5. The method of claim 4,
The HMI server application stops reading or writing data at a first time point when the access key is retrieved by the memory management unit, and when the access key is received again from the memory management unit, And restarts reading or writing of data that has been read or stopped after the point in time.
상기 메모리 관리부는,
상기 PLC 어플리케이션이 상기 액세스키를 이용하여 상기 공유 메모리에 접속 중일 때 상기 HMI 서버 어플리케이션으로부터 비상정지명령이 포함된 제어데이터의 기록요청이 수신되면, 상기 HMI 서버 어플리케이션이 상기 비상정지명령이 포함된 제어데이터를 상기 공유메모리에 기록할 수 있도록 상기 상기 PLC 어플리케이션으로부터 상기 액세스키를 회수하여 상기 HMI 서버 어플리케이션으로 제공하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.5. The method of claim 4,
The memory management unit,
When the HMI server application receives a write request of control data including an emergency stop command from the HMI server application when the PLC application is accessing the shared memory using the access key, Wherein the HMI server application retrieves the access key from the PLC application so as to write the data in the shared memory, and provides the access key to the HMI server application.
상기 HMI 서버 어플리케이션은,
비상정지명령이 포함된 제어데이터가 발생되면 상기 비상정지명령이 포함된 제어데이터를 선입선출 방식으로 처리되는 큐(Queue)의 첫 번째 대기열에 저장하고,
상기 메모리 관리부로부터 상기 액세스키가 제공되면 상기 큐의 첫 번째 대기열에 저장된 상기 비상정지명령이 포함된 제어데이터를 상기 공유 메모리에 기록하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.5. The method of claim 4,
The HMI server application,
When the control data including the emergency stop command is generated, the control data including the emergency stop command is stored in the first queue of the queue processed by the first-in first-out method,
And the control data including the emergency stop command stored in the first queue of the queue is written to the shared memory when the access key is provided from the memory management unit.
상기 HMI 서버 어플리케이션과의 사이에 형성된 링크를 통해 공유 메모리에 기록된 수집데이터를 공유하는 HMI 클라이언트 어플리케이션을 처리하는 하나 이상의 제3 코어 프로세서를 더 포함하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.The method according to claim 1,
Further comprising at least one third core processor for processing the HMI client application sharing the collection data recorded in the shared memory via a link formed with the HMI server application. HMI integration system.
상기 HMI 클라이언트 어플리케이션은
상기 수집데이터를 시계열순으로 기록하는 히스토리컬(Historical) DB 어플리케이션;
상기 수집데이터의 값이 미리 정해진 임계값을 초과할 때 알람을 발생시키는 알람 DB 어플리케이션; 및
상기 수집데이터를 미리 정해진 GUI를 이용하여 사용자에게 제공하는 런타임 클라이언트 어플리케이션 중 적어도 하나를 포함하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.10. The method of claim 9,
The HMI client application
A historical DB application for recording the collected data in a time series order;
An alarm DB application that generates an alarm when the value of the collected data exceeds a predetermined threshold; And
And a runtime client application that provides the collected data to a user using a predetermined GUI. The integrated PLC and HMI system using the multi-core CPU.
수집데이터의 명칭, 상기 HMI 서버 클라이언트와 상기 수집데이터를 공유하는 HMI 클라이언트 어플리케이션이 상기 수집데이터에 부여한 제1 식별자, 상기 HMI 서버 어플리케이션이 상기 수집데이터에 부여한 제2 식별자, 및 상기 HMI 서버 어플리케이션과 상기 HMI 클라이언트 어플리케이션간에 형성된 링크의 링크식별자가 매핑되어 있는 매핑테이블을 더 포함하고,
상기 HMI 서버 어플리케이션 및 상기 HMI 클라이언트 어플리케이션은 상기 매핑테이블을 참조하여 상기 수집데이터를 공유하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.The method according to claim 1,
A first identifier given to the collected data by the HMI client application sharing the collected data with the HMI server client, a second identifier given to the collected data by the HMI server application, and a second identifier given to the HMI server application Further comprising a mapping table in which link identifiers of links formed between HMI client applications are mapped,
Wherein the HMI server application and the HMI client application share the collected data with reference to the mapping table.
상기 HMI 서버 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 모니터링 주기가 도래하면 상기 매핑테이블을 참조하여 상기 타겟 수집데이터의 명칭에 매핑된 제1 식별자, 링크 식별자, 제2 식별자, 및 상기 타겟 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 상기 HMI 클라이언트 어플리케이션으로 전송하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.12. The method of claim 11,
The HMI server application refers to the mapping table when a monitoring cycle of target collection data to be monitored arrives, and generates a first identifier, a link identifier, a second identifier, and a second identifier, which are mapped to the name of the target collection data, And transmits the generated collected data monitoring response to the HMI client application. The PLC and HMI integrated system utilizing the multicore CPU.
상기 HMI 서버 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 모니터링 주기가 도래하면 상기 타겟 수집데이터의 값이 이전에 획득된 값과 상이한 경우 상기 매핑테이블을 참조하여 상기 타겟 수집데이터의 명칭에 매핑된 제1 식별자, 링크 식별자, 제2 식별자, 및 상기 타겟 수집데이터의 값으로 구성된 수집데이터 모니터링응답을 생성하여 상기 HMI 클라이언트 어플리케이션으로 전송하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.12. The method of claim 11,
Wherein the HMI server application refers to the mapping table when the value of the target collection data differs from the value obtained previously when a monitoring cycle of target collection data to be monitored arrives, And the collected data monitoring response including the identifier, the link identifier, the second identifier, and the value of the target collected data is generated and transmitted to the HMI client application.
상기 HMI 서버 어플리케이션 및 상기 HMI 클라이언트 어플리케이션은 모니터링 대상이 되는 타겟 수집데이터의 명칭, 상기 타겟 수집데이터에 대해 상기 HMI 클라이언트 어플리케이션이 부여한 제1 식별자, 상기 HMI 클라이언트 어플리케이션와 상기 HMI 서버 어플리케이션 간에 형성된 링크의 링크식별자, 및 상기 타겟 수집데이터에 대해 상기 HMI 서버 어플리케이션이 부여한 제2 식별자를 공유함에 의해 상기 수집데이터의 공유를 위한 매핑테이블을 생성하는 것을 특징으로 하는 것을 특징으로 하는 멀티코어 CPU를 활용한 PLC 및 HMI 통합 시스템.10. The method of claim 9,
Wherein the HMI server application and the HMI client application include a name of target collection data to be monitored, a first identifier given by the HMI client application to the target collection data, a link identifier of a link formed between the HMI client application and the HMI server application And a mapping table for sharing the collected data by sharing a second identifier given by the HMI server application with respect to the target collected data. Integrated system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170181755 | 2017-12-28 | ||
KR20170181755 | 2017-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190080684A true KR20190080684A (en) | 2019-07-08 |
KR102116174B1 KR102116174B1 (en) | 2020-05-27 |
Family
ID=67256137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180012132A KR102116174B1 (en) | 2017-12-28 | 2018-01-31 | System for Integrating PLC and HMI Based on Multi Core Processor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102116174B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941246A (en) * | 2019-10-22 | 2020-03-31 | 杭州电子科技大学 | HMI message shunting scheduling method, storage medium and device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02222058A (en) * | 1989-02-23 | 1990-09-04 | Mitsubishi Electric Corp | Multiprocessor system |
JPH11312007A (en) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | Programmable controller |
JP2000099355A (en) * | 1998-09-22 | 2000-04-07 | Nec Corp | Network computer |
JP5920468B2 (en) * | 2012-08-03 | 2016-05-18 | 東芝三菱電機産業システム株式会社 | Plant control monitoring system |
-
2018
- 2018-01-31 KR KR1020180012132A patent/KR102116174B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02222058A (en) * | 1989-02-23 | 1990-09-04 | Mitsubishi Electric Corp | Multiprocessor system |
JPH11312007A (en) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | Programmable controller |
JP2000099355A (en) * | 1998-09-22 | 2000-04-07 | Nec Corp | Network computer |
JP5920468B2 (en) * | 2012-08-03 | 2016-05-18 | 東芝三菱電機産業システム株式会社 | Plant control monitoring system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941246A (en) * | 2019-10-22 | 2020-03-31 | 杭州电子科技大学 | HMI message shunting scheduling method, storage medium and device |
Also Published As
Publication number | Publication date |
---|---|
KR102116174B1 (en) | 2020-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10591886B2 (en) | Control system, control program, and control method for device switching responsive to abnormality detection | |
JP2020518921A (en) | Open architecture industrial control system | |
JP2017187993A (en) | Control device, control method, and program | |
GB2610030A (en) | Software defined process control system and methods for industrial process plants | |
GB2609088A (en) | Visualization of a software defined process control system for industrial process plants | |
GB2609735A (en) | I/O server services configured to facilitate control in a process control environment by containerized controller services | |
Obermaisser et al. | Architectures for mixed-criticality systems based on networked multi-core chips | |
GB2610900A (en) | Discovery service in a software defined control system | |
GB2609546A (en) | I/O server services for selecting and utilizing active controller outputs from containerized controller services in a process control environment | |
GB2610901A (en) | Discovery service in a software defined control system | |
GB2610031A (en) | Software defined control system including I/O server services that communicate with containerized services | |
GB2619099A (en) | Visualization of a software defined process control system for industrial process plants | |
EP3489777B1 (en) | Control device, control method, and program | |
KR20190080684A (en) | System for Integrating PLC and HMI Based on Multi Core Processor | |
GB2610029A (en) | Software defined process control system and methods for industrial process plants | |
GB2611845A (en) | Systems and methods for dynamically maintained redundancy and load balancing in software defined control systems for industrial process plants | |
GB2609547A (en) | Utilizing quality-of-service metrics to facilitate transitions between I/O channels for I/O server services | |
JP2007221364A (en) | Expansion method of controller, control system, and control device | |
US11733689B2 (en) | Control system, programmable logic controller, and information processing method | |
EP3411797B1 (en) | Relay mechanism to facilitate processor communication with inaccessible input/output (i/o) device | |
KR102211200B1 (en) | Dual PLC Control System Based on Multi Core Processor | |
KR20190029977A (en) | A control system for device and process for operationg the control system | |
EP3662330B1 (en) | Fault tolerant services for integrated building automation systems | |
JP6969371B2 (en) | Control system and control unit | |
EP3719646B1 (en) | Method for communicating in a network-distributed process control system and network-distributed process control system |
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 |