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 PDF

Info

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
Application number
KR1020180012132A
Other languages
Korean (ko)
Other versions
KR102116174B1 (en
Inventor
권용호
이재형
이희영
Original Assignee
주식회사 포스코아이씨티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 포스코아이씨티 filed Critical 주식회사 포스코아이씨티
Publication of KR20190080684A publication Critical patent/KR20190080684A/en
Application granted granted Critical
Publication of KR102116174B1 publication Critical patent/KR102116174B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15118Shared memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23067Control, 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

According to an embodiment of the present invention, the present invention relates to a PLC and HMI integrated system based on a multi-core processor. The system formed by integrating a PLC and an HMI application into single hardware by using the multi-core processor comprises: a first core processor in which a programmable logic controller (PLC) application is executed in real time; a second core processor in which a human machine interface (HMI) server application is executed in real time; a first scheduler which schedules a first task of the PLC application to be processed by the first core processor; and a second scheduler which schedules a second task of the HMI application to be processed by the second core processor. In addition, the first scheduler has scheduling priority over the second scheduler.

Description

멀티코어 프로세서 기반의 PLC 및 HMI 통합 시스템{System for Integrating PLC and HMI Based on Multi Core Processor}[0001] The present invention relates to a PLC and an HMI integrated system based on a multicore processor,

본 발명은 산업설비 관리시스템에 관한 것으로서, 보다 구체적으로 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 general PLC 100 is implemented by installing a program for PLC in PLC-dedicated hardware, and the HMI 110 is also implemented by installing a program for HMI in a separate dedicated hardware. The HMI 110 is connected via a network 120 (e.g., Ethernet, Modbus / TCP, etc. 120).

하지만, 도 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 100 and the HMI 110 is separately installed in the dedicated hardware, the specifications of various manufacturers of the PLC and the HMI to be applied are checked There is a problem in that it is not possible to actively cope with changes in the industry direction and also it is difficult to secure various product lineups having price competitiveness.

또한, 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 integrated system 200 according to the present invention may be implemented as an industrial computer (IPC). The programmable logic controller (PLC) based on the industrial computer (IPC) according to the present invention can perform a deterministic function and a blue screen handling function.

결정론적(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 integrated system 200 includes a user space layer 202, an operating system (OS) space layer 204, and a device space layer 206. The user space layer 202 includes a user interface

사용자 공간 레이어(202)에는 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 설치된다. 일 실시예에 있어서, HMI 어플리케이션(220)은 PLC 어플리케이션(210)과 연동하는 HMI 서버 어플리케이션(222) 및 HMI 서버 어플리케이션(222)에 인터페이싱되는 HMI 클라이언트 어플리케이션(224)을 포함할 수 있다.In the user space layer 202, a PLC application 210 and an HMI application 220 are installed. The HMI application 220 may include an HMI client application 224 interfaced with the HMI server application 222 and the HMI server application 222 interlocking with the PLC application 210. In one embodiment,

PLC어플리케이션(210)은 제어대상이 되는 장치들의 제어를 위해 네트워크 인터페이스, 디지털 입출력 인터페이스, 아날로그 입출력 인터페이스 등을 통해 구현된 로직에 맞게 제어동작을 수행 한다. PLC 어플리케이션(210)은 각 장치들로 수집한 각 장치의 상태데이터 또는 센싱데이터(이하, '수집데이터'라 함)를 메모리(250)에 저장한다.The PLC application 210 performs a control operation according to logic implemented through a network interface, a digital input / output interface, and an analog input / output interface for controlling devices to be controlled. The PLC application 210 stores state data or sensing data (hereinafter referred to as "collected data") of each device collected by each device in the memory 250.

HMI 서버 어플리케이션(222)은 PLC어플리케이션(210)이 수집한 수집데이터들을 메모리(250)로부터 획득하여 HMI 클라이언트 어플리케이션(224)으로 제공한다.The HMI server application 222 acquires the collected data collected by the PLC application 210 from the memory 250 and provides it to the HMI client application 224. [

HMI 클라이언트 어플리케이션(224)은 HMI 서버 어플리케이션(222)과 수집데이터를 공유한다. 일 실시예에 있어서, HMI 클라이언트 어플리케이션(224)은 수집데이터를 시계열순으로 기록하는 히스토리컬 DB 어플리케이션(224a), 수집데이터의 값이 미리 정해진 임계값을 초과하는지 여부를 모니터링하고 수집데이터의 값이 미리 정해진 임계값을 초과하면 알람을 발생시키는 알람 DB 어플리케이션(224b), 및 수집데이터를 미리 정해진 GUI(Graphic User Interface)를 통해 사용자에게 제공하는 런타임 클라이언트 어플리케이션(224c) 중 적어도 하나를 포함할 수 있다.The HMI client application 224 shares the collected data with the HMI server application 222. In one embodiment, the HMI client application 224 includes a historical DB application 224a for recording the collection data in a time series order, a monitoring module 224a for monitoring whether the value of the collection data exceeds a predetermined threshold, An alarm DB application 224b that generates an alarm if a predetermined threshold is exceeded, and a runtime client application 224c that provides the collected data to the user via a predetermined GUI (Graphic User Interface) .

특히, 런타임 클라이언트 어플리케이션(224c)은 필요한 경우 PLC 어플리케이션(210) 또는 PLC 어플리케이션(210)에 의해 제어되는 장치들을 제어하기 위한 제어데이터를 생성하여 HMI 서버 클라이언트(222)로 전달할 수 있다. 이러한 경우 HMI 서버 클라이언트(222)는 제어데이터를 메모리(250)에 기록함으로써 PLC 어플리케이션(210)이 해당 제어데이터를 공유할 수 있도록 한다.In particular, the runtime client application 224c may generate control data for controlling devices controlled by the PLC application 210 or the PLC application 210, if necessary, and may transmit the control data to the HMI server client 222. In this case, the HMI server client 222 records the control data in the memory 250 so that the PLC application 210 can share the control data.

OS 공간 레이어(204)에는 통합시스템(200)의 커널(Kernel, 230)이 배치된다. 일 실시예에 있어서, OS는 오픈소스(Open Source)인 리눅스(Linux) 기반으로 구현될 수 있고, 커널(230)은 리눅스 커널로 구현될 수 있다.A kernel (kernel) 230 of the integrated system 200 is disposed in the OS spatial layer 204. In one embodiment, the OS may be implemented on an open source Linux basis, and the kernel 230 may be implemented in a Linux kernel.

커널(230)은 사용자 공간에 설치된 PLC 어플리케이션(210) 및 HMI 어플리케이션(220)이 정상적으로 운영될 수 있도록 지원한다. 커널(230)은 OS의 핵심코어로 모든 작업에 우선하여 동작하는 프로그램이다. PLC어플리케이션(210)과 HMI 어플리케이션(220)이 동작하기 위해서 운영체제에서 프로그램이 구동되는데 파일을 읽어 오거나, 파일을 쓰거나, 또는 화면에 메시지를 출력하는 등 많은 부분이 커널(230)을 통해 수행된다. The kernel 230 supports the PLC application 210 installed in the user space and the HMI application 220 to be normally operated. The kernel 230 is a core core of the OS and is a program that operates in priority to all tasks. The PLC application 210 and the HMI application 220 are operated by the operating system so that many parts such as reading a file, writing a file, or displaying a message on the screen are performed through the kernel 230.

커널(230)의 동작은 인터럽트나 시스템 콜(208)에 의해 수행된다. 이때, 시스템 콜(208)은 커널(230) 영역의 기능을 사용자가 사용 가능하게, 즉 각 어플리케이션(21, 220)의 프로세스가 디바이스에 직접 접근해서 필요한 기능을 사용할 수 있게 인터페이스를 만들어 주는 역할을 수행한다.The operation of the kernel 230 is performed by an interrupt or a system call 208. At this time, the system call 208 serves to make the function of the area of the kernel 230 available to the user, that is, to allow the processes of the respective applications 21 and 220 to access the device directly, .

커널(230)은 각 어플리케이션(210, 220)들의 프로세스 관리, 메모리관리, 파일시스템관리, 장치관리, 네트워크관리 등을 수행하기 위해 도 2에 도시된 바와 같이, 파일 관리부(232), 디바이스 관리부(234), 메모리 관리부(236), 스케쥴러(238), 및 네트워크 장치 관리부(239)를 포함한다.2, the kernel 230 may include a file management unit 232, a device management unit 230, and a file management unit 230 for performing process management, memory management, file system management, device management, 234, a memory management unit 236, a scheduler 238, and a network device management unit 239. [

파일 관리부(232)는 복수개의 파일 시스템을 관리한다. 리눅스는 일반 파일을 비롯한 모든 디바이스들을 파일형태로 관리하는데, 파일 관리부(232)가 이러한 파일을 관리하는 역할을 수행한다The file management unit 232 manages a plurality of file systems. Linux manages all devices including a general file in a file format, and the file management unit 232 plays a role of managing such files

디바이스 관리부(234)는 디바이스 공간 레이어(206)에 있는 각종 디바이스들 및 디바이스들의 상호관계를 제어하는 역할을 수행한다.The device management unit 234 controls the mutual relationship among various devices and devices in the device space layer 206. [

메모리 관리부(236)는 메모리(250)를 관리한다. 일 실시예에 있어서, 메모리(250)는 공유메모리 형태로 이용될 수 있고, 이러한 경우 메모리 관리부(236)는 메모리(250)에 접근하기 위한 액세스키를 어플리케이션(210, 220)으로 제공하거나 어플리케이션(210, 220)으로부터 회수하는 역할을 수행한다.The memory management unit 236 manages the memory 250. In one embodiment, memory 250 may be utilized in the form of a shared memory, in which case memory manager 236 may provide an access key for accessing memory 250 to applications 210 and 220, 210, and 220, respectively.

한편, PLC어플리케이션(210)이 메모리(250)에 액세스 중에 있을 때, HMI 서버 어플리케이션(222)이 메모리(250)에 동시에 액세스하게 되면 데이터가 훼손될 수 있기 때문에 본 발명에 따른 메모리 관리부(250)는 한번에 하나의 어플리케이션만이 메모리(250)에 액세스할 수 있도록 하기 위해 커널(230)에서 메모리(250)에 접근할 수 있는 액세스키를 사용한다.If the HMI server application 222 simultaneously accesses the memory 250 while the PLC application 210 is accessing the memory 250, the data may be corrupted. Therefore, the memory management unit 250 according to the present invention, Uses an access key that can access the memory 250 in the kernel 230 to allow only one application at a time to access the memory 250. [

특히, 본 발명에 따른 메모리 관리부(236)는 PLC 어플리케이션(210)에게 액세스키에 대한 우선권을 부여함으로써 PLC 어플리케이션(210)이 HMI 어플리케이션(220), 특히 HMI 서버 어플리케이션(222)에 우선하여 메모리(250)에 접근할 수 있도록 한다.Particularly, the memory management unit 236 according to the present invention gives the PLC application 210 priority over the access keys so that the PLC application 210 can access the memory (or the memory) in advance of the HMI application 220, 250).

이와 같이, 본 발명에서는 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 하나의 액세스키를 사용하되 PLC 어플리케이션(210)에 액세스키의 우선권을 부여함으로써 PLC 어플리케이션(210)이 메모리(250)에 우선 접근을 허여할 수 있기 때문에 PLC 어플리케이션(210)의 실시간 제어를 보장할 수 있게 된다.As described above, in the present invention, the PLC application 210 and the HMI application 220 use one access key, and the PLC application 210 gives priority to the access key to the PLC application 210, It is possible to ensure real-time control of the PLC application 210 because the access can be granted.

이러한 실시예에 따르는 경우, 도 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 application 220 connects to the memory 250 and receives a connection request from the PLC application 210 to the memory 250 when performing an operation "1 " The memory management unit 250 immediately retrieves the access key from the HMI application 220 and allocates the access key to the PLC application 210. The HMI application 220 thus obtains the first time the work is stopped at the time t1, and the PLC application 210 accesses the memory 250 using the access key to perform a task of "1 ".

이때, HMI 서버 어플리케이션(224)의 프로세스 동작 주기 보다 PLC 어플리케이션(210)의 프로세스 동작 주기가 짧기 때문에, HMI 서버 어플리케이션(224)으로부터 액세스키가 회수되기 이전까지 PLC 어플리케이션(222)은 계속해서 동작하도록 설정된다.At this time, since the process operation cycle of the PLC application 210 is shorter than the process operation cycle of the HMI server application 224, the PLC application 222 continues to operate until the access key is retrieved from the HMI server application 224 Respectively.

HMI 서버 어플리케이션(224)은 메모리 관리부(250)에 의해 액세스키가 회수되면 액세스키가 회수된 제1 시점(t1)을 확인하고, PLC 어플리케이션(210)의 프로세스가 처리완료되어 액세스키가 다시 HMI 서버 어플리케이션(224)으로 제공되면 제1 시점(t1) 이후에 읽기 또는 쓰기 중단된 데이터에 대해 다시 읽기 또는 쓰기 동작을 재개하게 된다.The HMI server application 224 confirms the first time point t1 at which the access key is retrieved when the access key is retrieved by the memory management unit 250 and the process of the PLC application 210 is completed, When the data is provided to the server application 224, the data is read or written again after the first time point t1.

한편, 상술한 도 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 application 220 at the second time point t2, the control data including the emergency stop command is transmitted within a short period of time The HMI application 220 fails to record control data until the access key is retrieved from the PLC application 210 because the HMI application 220 does not have the priority of the access key. Even if the HMI application 220 has the access key, since the control data is processed in the queue of the HMI application 220 according to the first-in first-out (FIFO) method, Quot; 2 "which is the processing task of the control data including the emergency stop command must be processed at the third time point t3 after the completion of the processing of 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 application 220 places the corresponding control data in the first queue of the queue so that the corresponding control data can be processed first in the queue do. The memory management unit 250 gives priority to the access key to the HMI server application 224 when generating the control data including the emergency stop command so that even if the PLC application 210 is connected to the memory 250, The HMI application 220 accesses the memory 250 with the provided access key to record the control data and then returns the access key to the memory management unit 250 do.

이에 따라, 비상정지명령이 포함된 제어데이터가 지연없이 HMI 어플리케이션(220)으로부터 PLC 어플리케이션(210)으로 전송되어 즉시 처리될 수 있다.Accordingly, the control data including the emergency stop command can be transmitted from the HMI application 220 to the PLC application 210 without delay and processed immediately.

다시 도 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 scheduler 238 allocates a task according to the execution of each of the applications 210 and 220 to a plurality of core processors 240. In one embodiment, the scheduler 238 includes a first scheduler 283a for processing a first task, which is a task of the PLC application 210, and a second scheduler 283a, which is a task of the HMI server application 222, And a second scheduler 283b for processing two tasks. In addition, the scheduler 238 may further include a third scheduler 238c for processing a third task, which is a task of the HMI client application.

도 4에서는 제1 내지 제3 스케쥴러(238a~238c)가 물리적으로 구분되어 있는 것으로 도시하였지만, 이는 하나의 예일 뿐 물리적으로 하나의 스케쥴러가 도 4에 도시된 바와 같이 3개의 스케쥴러의 기능을 수행하는 것도 가능할 것이다.In FIG. 4, the first through third schedulers 238a through 238c are physically divided. However, this is only one example, and one physical scheduler performs the functions of three schedulers as shown in FIG. 4 It would be possible.

또한, 도 4에서는 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)가 구분되는 것으로 도시하였지만, 제2 스케쥴러(238b) 및 제3 스케쥴러(238c)는 하나의 스케쥴러로 구현될 수도 있을 것이다.Although the second scheduler 238b and the third scheduler 238c are shown as being separated in FIG. 4, the second scheduler 238b and the third scheduler 238c may be implemented as a single scheduler.

특히, 본 발명에 따르면 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 PLC application 210, has scheduling priority over the other schedulers 238b and 238c. Accordingly, since the first task is processed first by the first scheduler 238 rather than other tasks, the PLC application 210 can be executed first in comparison with the other applications 220.

즉, 도 5에 도시된 바와 같이, 스케쥴러(238) 고유의 스케쥴링 동작 수행 이후에 제1 스케쥴러(238a)에 의해 제1 타스크(410)가 가장 최우선의 권한을 가지고 처리되고, 그 다음 제2 스케쥴러(238b)에 의해 제2 타스크(420)가 처리되고, 그 이후에 제3 스케쥴러(238c)에 의해 제3 타스크(430)를 비롯한 기타 타스크들이 처리됨으로써, PLC어플리케이션(210)이 최우선적으로 제어 동작을 수행할 수 있게 된다.5, the first task 410 is processed with the highest priority by the first scheduler 238a after the execution of the scheduling operation specific to the scheduler 238, and then the second scheduler 238a, The second task 420 is processed by the third task 238b and then the third task 430 and other tasks are processed by the third scheduler 238c so that the PLC application 210 is controlled first So that the operation can be performed.

한편, 스케쥴러(238)는 신규 타스크가 발생되면 해당 타스크의 식별자를 기초로 각 타스크를 코어 프로세서(240) 중 어느 하나에 할당할 수 있다.On the other hand, when a new task is generated, the scheduler 238 can assign each task to any one of the core processors 240 based on the identifier of the task.

예컨대, 도 4에 도시된 바와 같이 제1 스케쥴러(238a)는, 해당 타스크가 PLC 어플리케이션(210)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 PLC 어플리케이션(210)의 제1 타스크(410)인 것으로 판단하여 제1 코어 프로세서(242)에 할당한다.4, if the task has an identifier assigned to the PLC application 210, the first scheduler 238a determines that the task is the first task 410 of the PLC application 210 And allocates it to the first core processor 242.

또한, 제2 스케쥴러(238b)는 해당 타스크가 HMI 서버 어플리케이션(222)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 서버 어플리케이션(222)의 제2 타스크(420)인 것으로 판단하여 제2 코어 프로세서(244)에 할당한다.If the task has an identifier assigned to the HMI server application 222, the second scheduler 238b determines that the task is the second task 420 of the HMI server application 222, (244).

또한, 제3 스케쥴러(238c)는 해당 타스크가 HMI 클라이언트 어플리케이션(224)에 부여되어 있는 식별자를 가지고 있으면 해당 타스크는 HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)인 것으로 판단하여 제1 및 제2 코어 프로세서를 제외한 유휴 코어 프로세서(246)에 할당한다.If the task has an identifier assigned to the HMI client application 224, the third scheduler 238c determines that the task is the third task 430 of the HMI client application 224, To the idle core processor 246 except for the two-core processor.

이에 따라, PLC 어플리케이션(210)의 제1 타스크(410)는 모두 제1 코어 프로세서(242)에서만 처리되고, HMI 서버 어플리케이션(222)의 제2 타스크(420)는 모두 제2 코어 프로세서(244)에서만 처리되며, HMI 클라이언트 어플리케이션(224)의 제3 타스크(430)는 모두 유휴 코어 프로세서(246)에서 처리될 수 있어, PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)과 완전하게 격리시킬 수 있게 된다.The first task 410 of the PLC application 210 is all processed only by the first core processor 242 and the second task 420 of the HMI server application 222 is all processed by the second core processor 244, And the third task 430 of the HMI client application 224 may all be processed in the idle core processor 246 to transfer the PLC application 210 to the HMI server application 222 and the HMI client application 224. [ As shown in FIG.

본 발명에서 PLC 어플리케이션(210)을 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)으로부터 격리시키는 이유는 PLC어플리케이션(210)의 경우 제어로직 또는 운영로직이 동작하는 동안 제어와 관련없는 인터럽트나 이벤트의 발생으로 제어동작에 영향을 미치게 되면 PLC 어플리케이션(210)이 안정적인 제어를 수행할 수 없기 때문이다. 따라서, 본 발명은 PLC 어플리케이션(210)의 타스크만을 전용으로 처리할 수 있는 코어 프로세서(242)를 지정함으로써 PLC 어플리케이션(210)이 안정적인 제어를 수행 할 수 있도록 한다.The reason for isolating the PLC application 210 from the HMI server application 222 and the HMI client application 224 in the present invention is that in the case of the PLC application 210 the control logic or the operation logic is in operation, The PLC application 210 can not perform stable control if it affects the control operation. Therefore, the present invention allows the PLC application 210 to perform stable control by designating the core processor 242 that can only process tasks of the PLC application 210 exclusively.

일 실시예에 있어서, 본 발명에 따른 스케쥴러(238)는 PLC 어플리케이션(210)이 제어동작 이외에 어떠한 인터럽트나 이벤트에 해서 영향을 받지 않고 정해진 타스크 수행시간 내에서 정확하게 동작할 수 있도록 하기 위해, Linux OS 커널의 어피니티(Affinity)설정을 통해 PLC 어플리케이션(210)의 타스크는 제1 코어 프로세서(242)에서만 처리되도록 함과 동시에 리얼타임 패치를 통하여 실시간으로 처리될 수 있도록 한다.In one embodiment, the scheduler 238 in accordance with the present invention may be implemented as a Linux OS (registered trademark) in order to allow PLC application 210 to operate correctly within a predetermined task execution time without being affected by any interrupt or event, Through the affinity setting of the kernel, the task of the PLC application 210 can be processed only in the first core processor 242 and can be processed in real time through a real time patch.

다시 도 2를 참조하면, 네트워크 장치 관리부(239)는 네트워크 장치의 설정 및 동작을 관리하고, 디바이스 인터페이스(210)는 디바이스 공간 레이어(206)에 배치된 디바이스들(240~260)과 커널간의 인터페이스를 담당한다. 2, the network device management unit 239 manages the setting and operation of the network device, and the device interface 210 interfaces with the devices 240 to 260 disposed in the device space layer 206 and the interfaces .

디바이스 공간 레이어(206)는 코어 프로세서(240), 메모리(250), 및 네트워크 장치(260) 등과 같은 디바이스들로 구성된다. 도 2에서는 설명의 편의를 위해 일부 디바이스들만을 예시적으로 도시한 것일 뿐, 디바이스 공간 레이어(206)에는 도 2에 도시된 디바이스들 이외에 하드디스크 등과 같은 다른 디바이스들이 배치될 수 있다.Device space layer 206 is comprised of devices such as core processor 240, memory 250, and network device 260, and so on. In FIG. 2, only some of the devices are illustrated only for convenience of explanation, and other devices such as a hard disk and the like other than the devices shown in FIG. 2 may be disposed in the device space layer 206.

코어 프로세서(240)는 어플리케이션을 실행시킨다. 본 발명에 따른 통합 시스템(200)은 하나의 하드웨어(H/W)에 PLC 어플리케이션(210)과 HMI 어플리케이션(220)이 모두 설치되어 동작할 수 있도록, 코어 프로세서(240)는 복수개의 코어 프로세서(242, 244, 246)들로 구성된다.The core processor 240 executes the application. The integrated system 200 according to the present invention includes a plurality of core processors 240 so that the PLC application 210 and the HMI application 220 can both be installed and operated in one hardware (H / W) 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)의 타스크를 처리할 수 있다.The first core processor 242 processes the first task of the PLC application 210 through the scheduling of the first scheduler 238a and the second core processor 244 processes the second task of the second scheduler 238b And the remaining core processors 246 except for the first and second core processors 242 and 244 process the scheduling of the third scheduler 238b And other tasks, including the third task of the HMI client application 224. At this time, one of the valid core processors 246 processes the task of the historical DB application 224a, the other of the valid core processors 246 processes the task of the alarm DB application 224b, Another of the core processors 246 may handle the task of the runtime client application 224c.

메모리(250)에는 PLC 어플리케이션(210)에 의해 수집데이터가 기록되거나 HMI 서버 어플리케이션(222)에 의해 제어데이터가 기록된다. 일 실시예에 있어서, 도 6에 도시된 바와 같이 메모리(250)는 공유 메모리로 구현됨으로써 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 메모리(250)를 통해 수집 데이터 및 제어데이터를 공유할 수 있다. 이하에서는 설명의 편의를 위해 메모리(250)를 공유 메모리(250)라는 표현과 혼용하여 사용하기로 한다.In the memory 250, collected data is recorded by the PLC application 210 or control data is recorded by the HMI server application 222. 6, the memory 250 is implemented as a shared memory so that the PLC application 210 and the HMI server application 222 share the collected data and control data through the memory 250 . Hereinafter, for convenience of explanation, the memory 250 is used in combination with the expression shared memory 250.

종래와 같이 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 PLC application 210 and the HMI server application 222 are installed in one hardware, the present invention can be interfaced through a method of sharing the internal memory 250 without requiring a network interface.

공유 메모리(250)의 사용을 위해, PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)은 도 6에 도시된 바와 같이 미리 공유 메모리(250)의 사용을 위한 메타 데이터(500)를 공유할 수 있다. 메타 데이터(500)에는 각 수집데이터 별로 해당 수집데이터가 저장될 공유 메모리(250)의 어드레스 또는 제어데이터 별로 해당 제어데이터가 저장될 공유 메모리(250)의 어드레스가 기록된다.The PLC application 210 and the HMI server application 222 may share the metadata 500 for use of the shared memory 250 as shown in Figure 6 for use of the shared memory 250 . In the metadata 500, an address of the shared memory 250 in which the corresponding collected data is to be stored for each collected data, or an address of the shared memory 250 in which the corresponding control data is stored for each control data.

이에 따라, PLC 어플리케이션(210)은 수집데이터 발생시, 메타데이터(500)를 참조하여 해당 수집데이터가 기록될 어드레스를 확인하고, 확인된 어드레스에 해당 수집데이터를 기록한다. 또한, HMI 서버 어플리케이션(222)은 특정 수집데이터의 독출 시기가 도래하면 메타데이터(500)를 참조하여 해당 수집데이터가 기록된 어드레스를 확인하고, 확인된 어드레스에서 해당 수집데이터를 독출한다. Accordingly, when the collected data is generated, the PLC application 210 refers to the metadata 500 to check the address at which the collected data is to be written, and records the collected data at the identified address. In addition, the HMI server application 222 refers to the metadata 500 when the reading time of specific collected data arrives, checks the address where the collected data is recorded, and reads the collected data from the identified address.

이와 같이, 본 발명에 따르면 PLC 어플리케이션(210)과 HMI 서버 어플리케이션(222)이 하나의 메모리(250)를 공유해서 사용하게 되므로, 데이터 복사와 같은 불필요한 오버헤드가 발생하지 않아 데이터의 빠른 이용이 가능하다.As described above, according to the present invention, since the PLC application 210 and the HMI server application 222 share one memory 250, unnecessary overhead such as data copying does not occur and data can be used quickly Do.

다시 도 2를 참조하면, 네트워크 디바이스장치(260)는 통합시스템(200)과 PLC 어플리케이션(210)에 의해 제어되는 장치들간의 인터페이스 역할을 수행한다.Referring again to FIG. 2, the network device 260 serves as an interface between the integrated system 200 and devices controlled by the PLC application 210.

한편, 상술한 바와 같이 HMI 서버 어플리케이션(222)은 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유한다. 이하, HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 도 7을 참조하여 보다 구체적으로 설명한다.On the other hand, as described above, the HMI server application 222 shares the collected data with the HMI client application 224. Hereinafter, the configuration of the HMI server application 222 for collecting data sharing with the HMI client application 224 will be described in more detail with reference to FIG.

도 7은 HMI 클라이언트 어플리케이션(224)과의 수집데이터 공유를 위한 HMI 서버 어플리케이션(222)의 구성을 보여주는 블록도이다. 도 7에 도시된 바와 같이, HMI 서버 어플리케이션(222)은 수집데이터 획득부(610), 링크형성부(620), 모니터링부(630), 및 주기설정부(640)를 포함한다.7 is a block diagram showing the configuration of the HMI server application 222 for sharing collected data with the HMI client application 224. [ 7, the HMI server application 222 includes a collection data obtaining unit 610, a link forming unit 620, a monitoring unit 630, and a periodical setting unit 640.

수집데이터 획득부(610)는 주기설정부(640)에 의해 설정되는 모니터링 주기가 도래하면 공유메모리(250)에 접속하여 공유 메모리(250)로부터 수집데이터를 독출한다. 수집데이터 획득부(310)는 획득된 수집데이터를 모니터링부(630)로 전달하거나 링크형성부(620)로 전달한다.The collection data acquisition unit 610 accesses the shared memory 250 and reads collected data from the shared memory 250 when a monitoring period set by the periodical configuration unit 640 arrives. The collected data acquisition unit 310 transfers the acquired collected data to the monitoring unit 630 or to the link forming unit 620.

링크형성부(620)는 수집데이터의 공유를 위해 HMI 클라이언트 어플리케이션(224)과의 링크를 형성한다. 링크 형성부(620)는 형성된 링크를 통해 HMI 클라이언트 어플리케이션(224)으로부터 수집데이터 요청메시지를 수신하고, 수신된 수집데이터 요청메시지에 따른 수집데이터 응답메시지를 생성하여 해당 HMI 클라이언트 어플리케이션(224)으로 전송한다.The link forming unit 620 forms a link with the HMI client application 224 for sharing collected data. The link forming unit 620 receives the collected data request message from the HMI client application 224 via the formed link, generates a collected data response message according to the received collected data request message, and transmits the collected data response message to the corresponding HMI client application 224 do.

일 실시예에 있어서, 링크 형성부(620)는 매핑테이블(650)을 생성하고, 생성된 매핑테이블(650)을 참조하여 HMI 클라이언트 어플리케이션(224)과 수집데이터를 공유할 수 있다.In one embodiment, the link forming unit 620 may generate a mapping table 650 and may share collected data with the HMI client application 224 with reference to the generated mapping table 650.

매핑테이블(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 HMI client application 224 to the collected data, the HMI server client 222 for the collected data, And a link identifier of a link formed between the HMI server application 222 and the HMI client application 224 are mapped. In this case, the first identifier may be a counting number of the corresponding collected data calculated by the HMI client application 224, and the second identifier may be a counting number of the collected data calculated by the HMI server application 222.

상술한 매핑테이블(650)을 생성하기 위해, 링크형성부(620)는 HMI 클라이언트 어플리케이션(224)으로부터 브로드캐스팅(Broadcasting) 방식으로 전달되는 수집데이터 검색요청을 수신한다. 수집데이터 검색요청에는 HMI 클라이언트 어플리케이션(224)이 모니터링하고자 하는 수집데이터의 명칭 및 해당 수집데이터에 대해 HMI 클라이언트 어플리케이션(224)이 부여한 제1 식별자가 포함된다.The link forming unit 620 receives the collection data retrieval request transmitted from the HMI client application 224 in a broadcasting manner to generate the mapping table 650 described above. The collected data search request includes the name of the collected data to be monitored by the HMI client application 224 and the first identifier assigned by the HMI client application 224 to the collected data.

수집데이터 검색요청에 포함된 명칭의 수집데이터를 HMI 서버 어플리케이션(224)이 보유하고 있는 경우, 링크형성부(620)는 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)과 링크를 형성하고, 해당 링크에 식별자를 부여하고 수집데이터 검색요청에 포함된 수집데이터에 제2 식별자를 부여한다. 이후, 링크형성부(620)는 수집데이터 검색요청에 포함된 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 매핑테이블을 생성한다.If the HMI server application 224 has collected data of the name included in the collected data search request, the link forming unit 620 forms a link with the HMI client application 224 that transmitted the collected data search request, Assigns an identifier to the link, and assigns a second identifier to the collected data included in the collected data search request. Then, the link forming unit 620 generates a mapping table composed of the name, the first identifier, the link identifier, and the second identifier of the collected data included in the collected data search request.

한편, 링크 형성부(620)는 매핑테이블의 생성이 완료되면 수집데이터 검색요청을 전송한 HMI 클라이언트 어플리케이션(224)도 매핑테이블을 생성할 수 있도록 수집 데이터의 명칭, 제1 식별자, 링크 식별자, 및 제2 식별자로 구성된 수집데이터 검색응답을 생성하여 HMI 클라이언트 어플리케이션(224)으로 전달한다.Meanwhile, when the mapping table is generated, the HMI client application 224 that has transmitted the collected data search request also generates the name of the collected data, the first identifier, the link identifier, Generates a collected data search response composed of the second identifier and forwards it to the HMI client application 224.

상술한 바와 같은 과정을 통해 HMI 서버 어플리케이션(222) 및 HMI 클라이언트 어플리케이션(224)은 서로간의 통신을 위한 매핑테이블을 생성하여 보유하게 된다.Through the above-described process, the HMI server application 222 and the HMI client application 224 generate and hold a mapping table for communication with each other.

한편, 링크 형성부(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 HMI client application 224, the link forming unit 620 checks the collection data to be monitored with reference to the mapping table 650. [ At this time, the collected data monitoring request is composed of the first identifier, the link identifier, and the second identifier, and the name of the collected data is not included. Therefore, the link forming unit 620 determines, as the collected data to be monitored, the collected data mapped to the first identifier, the link identifier, and the second identifier included in the collected data monitoring request in the mapping table 650 . The link forming unit 620 notifies the collected data acquisition unit 610 of the collected collected data, so that the collected data obtaining unit 610 can acquire the collected data from the shared memory 250 .

또한, 링크형성부(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 link forming unit 620 refers to the mapping table 650, Acquires a first identifier, a link identifier, a second identifier, and generates a collected data monitoring response consisting of the obtained first identifier, the link identifier, the second identifier, and the value of the acquired collected data and forwards it to the HMI client application 224 do.

이와 같이, 본 발명에 따르면 HMI 클라이언트 어플리케이션(224)과 링크형성부(620)는 모니터링 대상이 되는 수집데이터의 공유시, 수집데이터의 명칭과 같은 스트링(String) 정문을 메시지로 송수신하는 것이 아니라, 제1 식별자, 제2 식별자, 및 링크식별자로 구성된 메시지를 이용하여 데이터를 공유할 수 있기 때문에 데이터 공유를 위해 요구되는 오버헤드를 최소화할 수 있고 이로 인해 패킷길이를 최소화할 수 있어 통신 처리량을 감소시킬 수 있게 된다.As described above, according to the present invention, the HMI client application 224 and the link forming unit 620 do not send and receive a String main sentence such as the name of the collected data as a message when sharing the collected collected data, Since data can be shared using a message composed of the first identifier, the second identifier, and the link identifier, the overhead required for data sharing can be minimized, thereby minimizing the packet length and reducing the communication throughput .

모니터링부(630)는 모니터링 대상이 되는 수집데이터의 값이 수집데이터 획득부(610)로부터 수신되면, 수신된 수집데이터의 값과 해당 수집데이터에 대해 이전에 획득된 값을 비교하여 해당 수집데이터의 값이 변경되는지 여부를 모니터링한다. 모니터링결과, 해당 수집 데이터의 값이 변경된 경우, 모니터링부(630)는 해당 수집 데이터의 값을 링크 형성부(620)로 전달함으로써 링크 형성부(620)가 해당 수집데이터의 값을 HMI 클라이언트 어플리케이션(224)으로 전송할 수 있도록 한다.When the value of the collected data to be monitored is received from the collected data obtaining unit 610, the monitoring unit 630 compares the value of the received collected data with the previously obtained value of the corresponding collected data, Monitor whether the value changes. If the value of the collected data is changed as a result of the monitoring, the monitoring unit 630 transmits the value of the collected data to the link forming unit 620, so that the link forming unit 620 transmits the value of the collected data to the HMI client application 224).

이와 같이, 본 발명에 따르면 모니터링부(630)를 통해 수집데이터 값이 변경화되었을 때에만 이벤트 구동(Event-driven) 방식으로 해당 수집 데이터의 값을 전송하고 변화되지 않은 정보는 송출하지 않기 때문에 통신 오버헤드를 최소화할 수 있기 때문에 전체적인 통신 처리량을 감소시킬 수 있다.As described above, according to the present invention, only when the collected data value is changed through the monitoring unit 630, the value of the collected data is transmitted in an event-driven manner and the unchanged information is not transmitted. Since overhead can be minimized, overall communication throughput can be reduced.

주기설정부(640)는 수집데이터 획득부(610)가 모니터링 대상이 되는 수집데이터를 공유메모리(250)로부터 획득할 주기를 설정한다. 이에 따라, 수집 데이터 획득부(610)는 주기설정부(640)에 의해 설정된 주기가 도래할 때마다 공유메모리(250)에서 해당 수집데이터의 값을 독출하여 모니터링부(630)로 제공하게 된다.The periodical setup unit 640 sets a period for which the collected data acquisition unit 610 acquires the collected data to be monitored from the shared memory 250. Accordingly, the collected data obtaining unit 610 reads the value of the collected data from the shared memory 250 whenever the period set by the periodical setting unit 640 arrives, and provides the read value to the monitoring unit 630.

한편, 본 발명에 따른 통합시스템(200)은 도 9에 도시된 바와 같이 이중화 구조로 설계될 수 있다. 도 9는 본 발명의 일 실시예에 따라 이중화 구조로 설계된 통합시스템의 일 예를 보여주는 도면이다.Meanwhile, the integrated system 200 according to the present invention can be designed as a redundant structure as shown in FIG. 9 is a diagram illustrating an example of an integrated system designed as a redundant structure according to an embodiment of the present invention.

도 9에 도시된 바와 같이, 본 발명에 따른 통합시스템(200)은 시스템 기능에 문제가 있더라도 안정적인 동작을 위하여 마스터 장치(810) 및 슬레이브 장치(820)로 이중화되어 구성된다. 마스터 장치(810) 및 슬레이브 장치(820)는 동일한 동작을 수행하되 마스터 장치(810)의 동작이 중심이 된다. 이중화는 통합시스템(200)의 확장 시에도 유효하게 적용될 수 있다.As shown in FIG. 9, the integrated system 200 according to the present invention is configured to be redundant to the master device 810 and the slave device 820 for stable operation even if there is a problem with the system function. The master device 810 and the slave device 820 perform the same operation, but the operation of the master device 810 is central. The redundancy can be effectively applied even when the integrated system 200 is expanded.

특히, 본 발명에 따르면 통합시스템(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 devices 810 and 820 may include a failure detection unit 212 to implement redundancy of the integrated system 200. The failure detection unit 212 implemented in each of the devices 810 and 810 may detect a failure occurring in hardware (H / W) such as the core processor 240 or the shared memory 250 included in each of the devices 810 and 820, Or a failure occurring in the kernel 230 of the OS.

일 실시예에 있어서, 장애감지부(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 PLC application 210 is defective through application program error diagnosis, field bus status diagnosis, and input / output module status diagnosis. The fault detection unit 212 may also check the functions of the HMI server application 222, the historical DB application 224a, the alarm DB application 224b, and the runtime client application 224c. The failure detection unit 212 may diagnose defects of the kernel 230 through the system call 208 of the kernel 230 or may diagnose defects of the kernel 230 through a hardware check of the OS. In addition, the failure detection unit 212 can diagnose the core processor 2420, diagnose the shared memory 250, check the internal temperature of the system, check the status of the power supply unit, and other devices through the system call 208 of the kernel 230 And the timeout (Timeout) information of the devices to determine the defects of the devices.

마스터 장치(810)의 장애감지부(212)가 마스터 장치(810)에 장애가 발생된 것을 감지하게 되면, 마스터 장치(810)의 장애발생사실을 슬레이브 장치(820)의 장애감지부(212)를 통해 슬레이브 장치(820)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 슬레이브 장치(820)의 PLC 어플리케이션(210)은 마스터로 동작을 전환함으로써 마스터 장치(810)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다. When the failure detection unit 212 of the master device 810 detects that a failure has occurred in the master device 810, the failure detection unit 212 of the slave device 820 detects a failure of the master device 810 To the PLC application 210 of the slave device 820. Accordingly, the PLC application 210 of the slave device 820 performs the same input / output process that the PLC application 210 of the master device 810 has processed by switching the operation to the master.

한편, 마스터 모드로 동작하고 있던 슬레이브 장치(820)의 장애감지부(212)가 슬레이브 장치(820)에 장애가 발생된 것을 감지하게 되면, 슬레이브 장치(820)의 장애발생사실을 마스터 장치(820)의 장애감지부(212)를 통해 마스터 장치(810)의 PLC 어플리케이션(210)으로 전달한다. 이에 따라, 대기모드 또는 슬레이브 모드로 동작하고 있는 마스터 장치(810)의 PLC 어플리케이션(210)은 다시 마스터로 동작을 전환함으로써 슬레이브 장치(820)의 PLC 어플리케이션(210)이 처리하던 입/출력 프로세스를 동일하게 수행한다.When the failure detection unit 212 of the slave device 820 operating in the master mode detects that the slave device 820 has failed, the failure of the slave device 820 is detected by the master device 820, To the PLC application 210 of the master device 810 through the failure detection unit 212 of the master device 810. Accordingly, the PLC application 210 of the master device 810 operating in the standby mode or the slave mode switches the operation to the master again so that the input / output process that the PLC application 210 of the slave device 820 has processed .

본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.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)

PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor);
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 스케쥴러는 상기 스케쥴링 우선권을 부여받아 상기 제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항에 있어서,
상기 제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.
제1항에 있어서,
상기 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.
제4항에 있어서,
상기 메모리 관리부는,
상기 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.
제4항에 있어서,
상기 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.
제4항에 있어서,
상기 메모리 관리부는,
상기 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.
제4항에 있어서,
상기 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.
제1항에 있어서,
상기 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.
제9항에 있어서,
상기 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.
제1항에 있어서,
수집데이터의 명칭, 상기 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.
제11항에 있어서,
상기 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.
제11항에 있어서,
상기 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.
제9항에 있어서,
상기 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.
KR1020180012132A 2017-12-28 2018-01-31 System for Integrating PLC and HMI Based on Multi Core Processor KR102116174B1 (en)

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 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
GB2609088A (en) Visualization of a software defined process control system for industrial process plants
EP3489777B1 (en) Control device, control method, and program
Obermaisser et al. Architectures for mixed-criticality systems based on networked multi-core chips
GB2610901A (en) Discovery service in a software defined control system
GB2609089A (en) Visualization of a software defined process control system for industrial process plants
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
GB2609735A (en) I/O server services configured to facilitate control in a process control environment by containerized controller services
GB2619099A (en) Visualization of a software defined process control system for industrial process plants
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
KR20190080684A (en) System for Integrating PLC and HMI Based on Multi Core Processor
EP3411797B1 (en) Relay mechanism to facilitate processor communication with inaccessible input/output (i/o) device
JP2007221364A (en) Expansion method of controller, control system, and control device
EP3662330B1 (en) Fault tolerant services for integrated building automation systems
KR102211200B1 (en) Dual PLC Control System Based on Multi Core Processor
EP3719646B1 (en) Method for communicating in a network-distributed process control system and network-distributed process control system
GB2610030A (en) Software defined process control system and methods for industrial process plants
US11733689B2 (en) Control system, programmable logic controller, and information processing method
KR20190029977A (en) A control system for device and process for operationg the control system
EP3518472B1 (en) Network system, control method, and control device

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