[go: up one dir, main page]

KR102211200B1 - Dual PLC Control System Based on Multi Core Processor - Google Patents

Dual PLC Control System Based on Multi Core Processor Download PDF

Info

Publication number
KR102211200B1
KR102211200B1 KR1020180174207A KR20180174207A KR102211200B1 KR 102211200 B1 KR102211200 B1 KR 102211200B1 KR 1020180174207 A KR1020180174207 A KR 1020180174207A KR 20180174207 A KR20180174207 A KR 20180174207A KR 102211200 B1 KR102211200 B1 KR 102211200B1
Authority
KR
South Korea
Prior art keywords
master
application
plc
communication module
data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020180174207A
Other languages
Korean (ko)
Other versions
KR20200083017A (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 주식회사 포스코아이씨티
Priority to KR1020180174207A priority Critical patent/KR102211200B1/en
Publication of KR20200083017A publication Critical patent/KR20200083017A/en
Application granted granted Critical
Publication of KR102211200B1 publication Critical patent/KR102211200B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • 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
    • G05B19/052Linking several PLC's
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P70/00Climate change mitigation technologies in the production process for final industrial or consumer products
    • Y02P70/10Greenhouse gas [GHG] capture, material saving, heat recovery or other energy efficient measures, e.g. motor control, characterised by manufacturing processes, e.g. for rolling metal or metal working

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Programmable Controllers (AREA)

Abstract

멀티코어 프로세서를 이용하여 단일 하드웨어에 PLC 어플리케이션을 이중화하여 구성한 본 발명의 일 측면에 따른 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템은 외부장치로부터 수집데이터를 수신하는 제1 마스터 필드버스 통신모듈; 통신 버스를 통해 상기 제1 마스터 필드버스 통신모듈에 연결되어 상기 제1 마스터 필드버스 통신모듈로부터 상기 수집데이터를 수신하고, 상기 수신된 수집데이터를 미리 정해진 제어로직에 따라 연산하여 연산데이터를 생성하는 마스터 PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor); 상기 마스터 PLC 어플리케이션이 이중화되어 구성되어 스탠바이 상태로 동작하고, 상기 마스터 PLC 어플리케이션의 동작상태를 감시하는 슬레이브 PLC 어플리케이션이 실행되는 제2 코어 프로세서; 및 상기 마스터 PLC 어플리케이션에 의해 상기 수집데이터 및 상기 연산데이터가 저장되는 제1 공유 메모리를 포함하고, 상기 슬레이브 PLC 어플리케이션은 상기 마스터 PLC 어플리케이션에 오류 발생시 마스터로 절체하여 상기 제1 공유 메모리 및 상기 제1 마스터 필드버스 통신모듈에 연결되는 것을 특징으로 한다.According to an aspect of the present invention, a multi-core processor-based redundant PLC control system configured by dualizing PLC applications on a single hardware using a multi-core processor includes: a first master fieldbus communication module for receiving collected data from an external device; It is connected to the first master fieldbus communication module through a communication bus to receive the collected data from the first master fieldbus communication module, and to generate calculation data by calculating the received collected data according to a predetermined control logic. A first core processor on which a master PLC (Programmable Logic Controller) application is executed; A second core processor in which the master PLC application is configured to be duplicated, operates in a standby state, and executes a slave PLC application that monitors the operation state of the master PLC application; And a first shared memory in which the collected data and the operation data are stored by the master PLC application, and the slave PLC application is transferred to the master when an error occurs in the master PLC application, and the first shared memory and the first It is characterized in that it is connected to the master fieldbus communication module.

Figure R1020180174207
Figure R1020180174207

Description

멀티코어 프로세서 기반의 이중화된 PLC 제어시스템{Dual PLC Control System Based on Multi Core Processor}Dual PLC Control System Based on Multi Core Processor

본 발명은 산업설비 관리시스템에 관한 것으로서, 보다 구체적으로 PLC 제어 시스템에 관한 것이다.The present invention relates to an industrial facility management system, and more particularly, to a PLC control system.

산업현장에 배치된 다양한 설비들의 운영이나 제어를 수행하는 PLC 제어 시스템은 PLC(Programmable Logic Controller) 및 HMI(Human Machine Interface)를 포함한다.PLC control systems that perform the operation or control of various facilities arranged in industrial sites include PLC (Programmable Logic Controller) and HMI (Human Machine Interface).

PLC는 산업 플랜트의 자동제어 및 감시를 위해 사용되는 제어 장치이다.  PLC는 입력 데이터를 프로그램에 의해 순차적으로 논리 처리하고 그 출력 결과를 이용하여 PLC에 연결된 외부장치를 제어한다. PLC는 제어 및 운영이 요구되는 산업현장에 맞게 다양한 외부장치와 인터페이스 됨으로써 원하는 제어 및 운영이 실현되도록 프로그램으로 구현되고, 이러한 프로그램이 PLC 전용 하드웨어(H/W)에 다운로드 되어 그 기능을 수행하게 된다.PLC is a control device used for automatic control and monitoring of industrial plants. The PLC logically processes input data by a program and uses the output result to control external devices connected to the PLC. PLC is implemented as a program so that desired control and operation can be realized by interfacing with various external devices suitable for industrial sites requiring control and operation, and these programs are downloaded to PLC dedicated hardware (H/W) to perform its functions. .

일반적으로 PLC는 필드버스 통신장치를 통해 다양한 외부장치와 인터페이스 됨으로써 외부장치로부터 데이터를 수신하거나 외부장치로 데이터를 출력할 수 있다. 이러한 필드버스 통신장치는 대용량의 데이터를 전달 및 처리할 수 있는 고속통신망으로써 빠르고 신뢰성 높은 데이터 전송이 가능하기 때문에 산업현장에서 많이 이용된다.In general, a PLC can receive data from an external device or output data to an external device by interfacing with various external devices through a fieldbus communication device. This fieldbus communication device is a high-speed communication network capable of transmitting and processing a large amount of data, and is widely used in industrial sites because it enables fast and reliable data transmission.

HMI는 상술한 PLC를 비롯한 다양한 컨트롤러(DCS, 계측기 등)의 제어를 사용자가 인지하기 쉬운 화면으로 제공하고 그에 필요한 데이터를 그래프를 비롯한 다양한 형태로 제공한다. HMI provides control of various controllers (DCS, measuring instruments, etc.) including the above-described PLC in a screen that is easy for users to recognize, and provides necessary data in various forms including graphs.

도 1에 일반적인 PLC 제어 시스템의 구성이 도시되어 있다. 도 1에 도시된 바와 같이 PLC 제어 시스템은 PLC(100) 및 HMI(110)를 포함한다. PLC(100)는 PLC 전용 하드웨어에 PLC용 프로그램이 설치됨으로써 구현되고, HMI(110) 또한 별도의 전용 하드웨어에 HMI용 프로그램이 설치됨으로써 구현되며, PLC(100) 및 HMI(110)는 Ethernet이나 Modbus/TCP와 같은 통신 인터페이스(120)를 통해 연결된다. 1 shows the configuration of a general PLC control system. As shown in FIG. 1, the PLC control system includes a PLC 100 and an HMI 110. The PLC 100 is implemented by installing a program for PLC on the dedicated hardware for PLC, and the HMI 110 is also implemented by installing a program for HMI on a separate dedicated hardware, and the PLC 100 and HMI 110 are either Ethernet or Modbus. It is connected through a communication interface 120 such as /TCP.

하지만, 도 1에 도시된 일반적인PLC 제어 시스템의 PLC(100) 및 HMI(110)는 그 기능을 위한 프로그램이 전용 하드웨어에 별도로 설치되었기 때문에, 적용하고자 하는 PLC와 HMI의 다양한 제조사들의 사양을 확인하고 적용 가능한 하드웨어를 선택 해야만 하는 불편함이 있었고, 이로 인해 산업방향의 변화에 능동적으로 대응할 수 없을 뿐만 아니라 가격 경쟁력을 가진 다양한 제품 라인업의 확보 또한 어렵다는 한계가 있다.However, since the PLC 100 and HMI 110 of the general PLC control system shown in FIG. 1 are separately installed on dedicated hardware, the specifications of various manufacturers of the PLC and HMI to be applied are checked. There was an inconvenience of having to select applicable hardware, and due to this, there is a limitation that not only cannot actively respond to changes in the industrial direction, but also it is difficult to secure various product lineups with price competitiveness.

또한, PLC 및 HMI가 Ethernet이나 Modbus/TCP와 같은 인터페이스를 통해 통신하여야만 하므로 통신에러가 발생하는 경우 PLC와 HMI간의 원활한 데이터 공유가 어려워져 산업현장의 제어가 효율적으로 수행될 수 없다는 문제점도 있다.In addition, since PLC and HMI must communicate through interfaces such as Ethernet or Modbus/TCP, when a communication error occurs, it is difficult to share data smoothly between the PLC and HMI, so that control of the industrial site cannot be efficiently performed.

또한, 도 1에 도시된 바와 같은 PLC 제어시스템을 이중화하여 구성하는 경우 별개의 하드웨어에 PLC의 기능을 위한 PLC 프로그램이 각각 설치되고, HMI의 기능을 위한 HMI프로그램 또한 별개의 하드웨어에 각각 설치될 수 밖에 없기 때문에, 별개의 하드웨어에 설치된PLC 프로그램들 간에는 데이터 동기화가 요구되고 별개의 하드웨어에 설치된 HMI 프로그램들 간에도 데이터 동기화가 요구될 뿐만 아니라 데이터의 동기화에 소요되는 시간에 의해 제어권이 완전하게 이양되는데 소요되는 제어권 이양시간(Switching Overtime)이 발생하므로 고속 제어가 요구되는 산업에는 이용할 수 없다는 문제점이 있다.In addition, when the PLC control system as shown in Fig. 1 is configured by duplexing, a PLC program for the PLC function is installed on separate hardware, and the HMI program for the HMI function can also be installed on separate hardware. Because there is only one, data synchronization is required between PLC programs installed on separate hardware, and data synchronization is required between HMI programs installed on separate hardware as well as control rights are completely transferred by the time required for data synchronization. There is a problem that it cannot be used in industries that require high-speed control because switching overtime occurs.

본 발명은 상술한 문제점을 해결하기 위한 것으로서, 멀티코어 프로세서를 이용하여 단일 하드웨어에 PLC 어플리케이션을 이중화하여 구성한 멀티코어 프로세서 기반의 이중화된 PLC 제어 시스템을 제공하는 것을 그 기술적 과제로 한다.The present invention has been made to solve the above-described problem, and it is an object of the present invention to provide a multi-core processor-based redundant PLC control system configured by redundant PLC applications on a single hardware using a multi-core processor.

또한, 본 발명은 멀티코어 프로세서를 이용하여 단일 하드웨어 내에 PLC 어플리케이션과 HMI 어플리케이션을 모두 이중화하여 구성한 멀티코어 프로세서 기반의 이중화된 PLC 제어 시스템을 제공하는 것을 다른 기술적 과제로 한다.In addition, another technical problem is to provide a multi-core processor-based redundant PLC control system in which both a PLC application and an HMI application are duplicated in a single hardware using a multi-core processor.

또한, 본 발명은 PLC 어플리케이션을 외부장치와 연결시키는 필드버스 통신장치를 이중화하여 구성한 멀티코어 프로세서 기반의 이중화된 PLC 제어 시스템을 제공하는 것을 또 다른 기술적 과제로 한다.In addition, the present invention is another technical problem to provide a redundant PLC control system based on a multi-core processor configured by dualizing a fieldbus communication device that connects a PLC application with an external device.

상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템은 외부장치로부터 수집데이터를 수신하는 제1 마스터 필드버스 통신모듈; 통신 버스를 통해 상기 제1 마스터 필드버스 통신모듈에 연결되어 상기 제1 마스터 필드버스 통신모듈로부터 상기 수집데이터를 수신하고, 상기 수신된 수집데이터를 미리 정해진 제어로직에 따라 연산하여 연산데이터를 생성하는 마스터 PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor); 상기 마스터 PLC 어플리케이션이 이중화되어 구성되어 스탠바이 상태로 동작하고, 상기 마스터 PLC 어플리케이션의 동작상태를 감시하는 슬레이브 PLC 어플리케이션이 실행되는 제2 코어 프로세서; 및 상기 마스터 PLC 어플리케이션에 의해 상기 수집데이터 및 상기 연산데이터가 저장되는 제1 공유 메모리를 포함하고, 상기 슬레이브 PLC 어플리케이션은 상기 마스터 PLC 어플리케이션에 오류 발생시 마스터로 절체하여 상기 제1 공유 메모리 및 상기 제1 마스터 필드버스 통신모듈에 연결되는 것을 특징으로 한다.A dualized PLC control system based on a multi-core processor according to an aspect of the present invention for achieving the above object comprises: a first master fieldbus communication module for receiving collected data from an external device; It is connected to the first master fieldbus communication module through a communication bus to receive the collected data from the first master fieldbus communication module, and to generate calculation data by calculating the received collected data according to a predetermined control logic. A first core processor on which a master PLC (Programmable Logic Controller) application is executed; A second core processor in which the master PLC application is configured to be duplicated, operates in a standby state, and executes a slave PLC application that monitors the operation state of the master PLC application; And a first shared memory in which the collected data and the operation data are stored by the master PLC application, and the slave PLC application is transferred to the master when an error occurs in the master PLC application, and the first shared memory and the first It is characterized in that it is connected to the master fieldbus communication module.

본 발명에 따르면 단일 하드웨어에 PLC 어플리케이션 및 HMI 어플리케이션이 이중화되기 때문에, 이중화 시스템 구축 시 하드웨어를 추가함에 따른 비용을 절약할 수 있다는 효과가 있다.According to the present invention, since the PLC application and the HMI application are redundant on a single hardware, it is possible to save the cost of adding hardware when building a redundant system.

또한, 본 발명에 따르면 이중화된 PLC 어플리케이션이 공유메모리를 통해 데이터를 공유하고 HMI 어플리케이션이 공유메모리를 통해 데이터를 공유하기 때문에, 데이터의 동기화가 실시간으로 수행될 뿐만 아니라, 데이터의 동기화함에 따른 데이터의 유실을 미연에 방지할 수 있어 데이터의 신뢰도가 향상된다는 효과가 있다.In addition, according to the present invention, since the dualized PLC application shares data through the shared memory and the HMI application shares data through the shared memory, not only data synchronization is performed in real time, but also data synchronization Loss of data can be prevented in advance, thereby improving the reliability of data.

또한 본 발명에 따르면, PLC 어플리케이션 및 HMI 어플리케이션이 공유메모리를 통해 데이터를 공유하고 별도의 통신 인터페이스가 요구되지 않기 때문에, 통신 인터페이스의 오류에 의한 통신에러가 발생하지 않아 PLC 어플리케이션과 HMI 어플리케이션이 원활하게 데이터를 공유할 수 있고, 이로 인해 산업현장의 제어를 효율적으로 수행할 수 있다는 효과가 있다. In addition, 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 in the communication interface does not occur, so that the PLC application and the HMI application are smoothly Data can be shared, and this has the effect of efficiently performing control of industrial sites.

도 1에 일반적인 PLC 제어 시스템의 구성이 도시되어 있다
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템의 구성을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 마스터로 설정된 제1 PLC 어플리케이션이 장애가 발생한 경우, 제2 PLC 어플리케이션이 마스터로 설정되는 것을 보여주기 위한 도면이다
도 4는 본 발명의 일 실시예에 따른 제1 필드버스 통신모듈이 이중화되는 것을 나타내는 도면이다.
도 5은 본 발명의 일 실시예에 따른 제1 필드버스 통신모듈이 장애가 발생된 경우 제2 필드버스 통신모듈이 마스터로 설정되는 것을 도시하는 도면이다.
도 6은 스케쥴러가 신규타스크를 각 코어 프로세서에 할당하는 예를 보여주는 도면이다.
도 7은 본 발명의 일실시예에 따른PLC 제어시스템에 제1 HMI 어플리케이션이 추가되는 것을 보여주는 도면이다.
도 8는 제1 PLC 어플리케이션이 액세스키의 우선권을 가질 때 제1 PLC 어플리케이션 및 제1 HMI 어플리케이션의 제2 공유메모리에 대한 액세스 예를 보여주는 도면이다.
도 9은 본 발명의 일 실시예에 따른 제1 HMI 어플리케이션이 이중화되는 것을 도시한 도면이다.
도 10은 PLC 제어시스템이 전 이중화(Full Duplex)되는 것을 보여주는 도면이다.
Fig. 1 shows the configuration of a general PLC control system.
2 is a diagram showing a configuration of a dualized PLC control system based on a multi-core processor according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating that a second PLC application is set as a master when a failure occurs in a first PLC application set as a master according to an embodiment of the present invention.
4 is a diagram illustrating that a first fieldbus communication module is duplicated according to an embodiment of the present invention.
5 is a diagram illustrating that a second fieldbus communication module is set as a master when a failure occurs in a first fieldbus communication module according to an embodiment of the present invention.
6 is a diagram illustrating an example in which a scheduler allocates a new task to each core processor.
7 is a diagram illustrating that a first HMI application is added to a PLC control system according to an embodiment of the present invention.
8 is a diagram illustrating an example of accessing a second shared memory of a first PLC application and a first HMI application when the first PLC application has the priority of the access key.
9 is a diagram illustrating that a first HMI application is duplicated according to an embodiment of the present invention.
10 is a diagram showing that the PLC control system is fully duplexed.

이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.The meaning of the terms described in this specification should be understood as follows.

단수의 표현은 문맥상 명백하게 다르게 정의하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.Singular expressions should be understood as including plural expressions unless clearly defined differently in context, and terms such as “first” and “second” are used to distinguish one element from other elements, The scope of rights should not be limited by these terms.

"포함하다" 또는 "가지다" 등의 용어는 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that terms such as "comprise" or "have" do not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.The term “at least one” is to be understood as including 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 2 among the first item, the second item, and the third item, as well as the first item, the second item, and the third item. It means a combination of all items that can be presented from more than one.

도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템(이하 'PLC 제어시스템'이라 함)의 구성을 보여주는 도면이다.FIG. 2 is a diagram showing a configuration of a dualized PLC control system based on a multi-core processor (hereinafter referred to as “PLC control system”) according to an embodiment of the present invention.

PLC 제어시스템(200)은 제어대상이 되는 장치들의 제어 및 관리를 하는 시스템이다. PLC 제어시스템(200)은 입출력카드(10)로부터 각종 장치들에 의해 발생되는 상태데이터 또는 센싱데이터(이하, '수집데이터'라함)를 수집하고, 각종 장치들을 제어하기 위해 입출력카드(10)를 통해 제어명령을 할 수 있다. 일 실시예에 있어서, PLC 제어시스템(200)은 멀티코어 기반의 산업용 PC로 구현될 수 있다.The PLC control system 200 is a system that controls and manages devices to be controlled. The PLC control system 200 collects status data or sensing data (hereinafter referred to as'collection data') generated by various devices from the input/output card 10, and controls the input/output card 10 to control various devices. Control commands can be given through. In one embodiment, the PLC control system 200 may be implemented as a multi-core-based industrial PC.

이를 위해 PLC 제어시스템(200)은 제1 코어프로세서(202), 제2 코어프로세서(204), 제1 PLC 어플리케이션(210a), 제2 PLC 어플리케이션(210b), 제1 공유메모리(220), 제1 필드버스 통신모듈(230a), 슬레이브 필드버스 통신모듈(240)을 포함한다.To this end, the PLC control system 200 includes a first core processor 202, a second core processor 204, a first PLC application 210a, a second PLC application 210b, a first shared memory 220, and 1 fieldbus communication module (230a), and includes a slave fieldbus communication module (240).

제1 코어프로세서(202) 및 제2 코어프로세서(204)는 어플리케이션을 실행시킨다. 본 발명에 따른 PLC 제어 시스템(200)은 하나의 하드웨어(H/W)에 제1 PLC 어플리케이션(210a)과 제2 PLC 어플리케이션(210b)이 모두 설치되어 동작할 수 있도록, 코어 프로세서는 복수개의 코어 프로세서(202, 204)들로 구성된다.The first core processor 202 and the second core processor 204 execute an application. The PLC control system 200 according to the present invention includes a plurality of cores so that the first PLC application 210a and the second PLC application 210b are both installed and operated on one hardware (H/W). It is composed of processors 202 and 204.

제1 PLC 어플리케이션(210a)은 제1 코어프로세서(202)에 설치되어 마스터로 설정되고 제2 PLC 어플리케이션(210b)은 제2 코어프로세서(204)에 설치되어 슬레이브로 설정된다. 일 실시예에 있어서, 제1 및 제2 PLC 어플리케이션(210a, 210b) 중 먼저 기동된 PLC 어플리케이션이 마스터로 설정되고, 이후 기동된 PLC 어플리케이션이 슬레이브로 설정될 수 있다.The first PLC application 210a is installed on the first core processor 202 and set as a master, and the second PLC application 210b is installed on the second core processor 204 and set as a slave. In an embodiment, among the first and second PLC applications 210a and 210b, a PLC application that is started first may be set as a master, and a PLC application that is started later may be set as a slave.

마스터로 설정된 제1 PLC 어플리케이션(210a)은 제1 필드버스통신모듈(230a)로부터 수집데이터를 획득하고 이를 미리정해진 제어로직에 따라 생성된 출력데이터를 출력하여 외부장치를 제어한다. 구체적으로 마스터로 설정된 제1 PLC 어플리케이션(210a)은 제1 필드버스 통신모듈(230a)에 접속하여 수집데이터를 리드(read)하고, 수집데이터를 제1 공유메모리(220)의 제1 영역에 저장한다. 제1 PLC 어플리케이션(210a)은 수집데이터를 기반으로 미리 정해진 제어로직을 통해 연산데이터를 생성하여 제1 공유메모리(210)의 제2 영역에 저장한다. PLC 어플리케이션(210)는 제2 영역에 저장된 연산데이터 중 입출력카드(10)로 출력할 출력데이터를 제1 필드버스 통신모듈(230a)접속하여 기록한다. The first PLC application 210a set as a master acquires collected data from the first fieldbus communication module 230a and outputs output data generated according to a predetermined control logic to control an external device. Specifically, the first PLC application 210a set as the master connects to the first fieldbus communication module 230a to read the collected data and stores the collected data in the first area of the first shared memory 220 do. The first PLC application 210a generates operation data through a predetermined control logic based on the collected data and stores it in the second area of the first shared memory 210. The PLC application 210 connects and records the output data to be output to the input/output card 10 among the operation data stored in the second area to the first fieldbus communication module 230a.

이때, 제1 PLC 어플리케이션(210a)은 PCI(Peripheral Component Interconnect) 통신버스를 통해 제1 필드버스 통신모듈(230)에 접속할 수 있다.In this case, the first PLC application 210a may connect to the first fieldbus communication module 230 through a Peripheral Component Interconnect (PCI) communication bus.

슬레이브로 설정된 제2 PLC 어플리케이션(210b)은 마스터로 설정된 제1 PLC 어플리케이션(210a)의 오류발생 여부를 감시한다. 일 실시예에 있어서 제2 PLC 어플리케이션은 타스크간 통신(Intertask Communication)을 통해 제1 PLC 어플리케이션의 오류발생 여부를 감시할 수 있다.The second PLC application 210b set as a slave monitors whether an error occurs in the first PLC application 210a set as a master. In an embodiment, the second PLC application may monitor whether an error occurs in the first PLC application through intertask communication.

이하, 도 3을 참조하여 마스터로 설정된 제1 PLC 어플리케이션(210a)이 장애가 발생하는 경우에 대해 보다 구체적으로 설명한다.Hereinafter, a case in which a failure occurs in the first PLC application 210a set as the master will be described in more detail with reference to FIG. 3.

도 3은 본 발명의 일 실시예에 따른 마스터로 설정된 제1 PLC 어플리케이션이 장애가 발생한 경우, 제2 PLC 어플리케이션이 마스터로 설정되는 것을 보여주기 위한 도면이다 FIG. 3 is a diagram illustrating that a second PLC application is set as a master when a failure occurs in a first PLC application set as a master according to an embodiment of the present invention.

도 3에 도시된 바와 같이 제2 PLC 어플리케이션(210b)은 제1 PLC 어플리케이션(210a)의 오류발생여부를 감시하여, 마스터로 설정된 제1 PLC 어플리케이션(210a)이 장애가 발생되면, 제2 PLC 어플리케이션(210b)은 제1 PLC 어플리케이션(210a)로부터 제어권을 이양 받는다. 이에 따라 제2 PLC 어플리케이션(210b)이 마스터로 설정되고 제1 PLC 어플리케이션(210a)이 슬레이브로 설정된다. As shown in FIG. 3, the second PLC application 210b monitors whether an error occurs in the first PLC application 210a, and when a failure occurs in the first PLC application 210a set as the master, the second PLC application ( 210b) transfers control right from the first PLC application 210a. Accordingly, the second PLC application 210b is set as a master and the first PLC application 210a is set as a slave.

제1 PLC 어플리케이션(210a)은 슬레이브로 설정되어 대기상태로 동작하고, 제2 PLC 어플리케이션(210b)의 오류발생여부를 감시한다.The first PLC application 210a is set as a slave, operates in a standby state, and monitors whether an error occurs in the second PLC application 210b.

제2 PLC 어플리케이션(210b)은 마스터로 설정되어 동작한다. 구체적으로 제2 PLC 어플리케이션(210b)은 제1 필드버스 통신모듈(230a)에 접속하여 수집데이터를 리드하고, 수집데이터를 제1 공유메모리(220)의 제1 영역에 저장한다. 제2 PLC 어플리케이션(210b)은 수집데이터를 기반으로 미리 정해진 제어로직을 통해 연산데이터를 생성하여 제1 공유메모리(220)의 제2 영역에 저장한다. 제2 PLC 어플리케이션(210b)는 제2 영역에 저장된 연산데이터 중 입출력카드로 출력할 출력데이터를 제1 필드버스 통신모듈(230a)에 접속하여 기록한다.The second PLC application 210b is set and operated as a master. Specifically, the second PLC application 210b accesses the first fieldbus communication module 230a to read the collected data, and stores the collected data in the first area of the first shared memory 220. The second PLC application 210b generates operation data through a predetermined control logic based on the collected data and stores it in the second area of the first shared memory 220. The second PLC application 210b connects to the first fieldbus communication module 230a and records the output data to be output to the input/output card among the operation data stored in the second area.

다시 도2를 참조하면, 제1 공유메모리(220)는 제1 PLC 어플리케이션 및 제2 PLC 어플리케이션 중 마스터로 설정된 PLC 어플리케이션에 의해 수집데이터 및 연산데이터가 저장된다. 즉, 마스터로 설정된 제1 PLC 어플리케이션에 의해 수집데이터 및 연산데이터가 저장되고, 슬레이브로 설정된 제2 PLC 어플리케이션이 마스터로 재설정되면 제2 PLC 어플리케이션에 의해 수집데이터 및 출력데이터가 저장될 수 있다. 이때 수집데이터는 제1 공유메모리(220)의 제1 영역에 저장되고, 연산데이터는 제1 공유메모리(220)의 제2 영역에 저장된다. Referring back to FIG. 2, the first shared memory 220 stores collected data and operation data by a PLC application set as a master among the first PLC application and the second PLC application. That is, collection data and operation data are stored by the first PLC application set as the master, and when the second PLC application set as the slave is reset to the master, the collected data and output data may be stored by the second PLC application. At this time, the collected data is stored in the first area of the first shared memory 220, and the operation data is stored in the second area of the first shared memory 220.

이에 따라 본 발명은 제1 공유메모리(220)를 통해 수집데이터 및 연산데이터를 공유할 수 있어 제1 PLC 어플리케이션(210a)이 장애가 발생하여 제2 PLC 어플리케이션(210b)이 마스터로 설정되기 위해, 데이터를 동기화하기 위한 시간이 소요되지 않아 제어권 이양시간(Swiching Overtime)이 감소된다는 효과가 있다.Accordingly, the present invention can share the collected data and operation data through the first shared memory 220, so that the first PLC application 210a has a failure and the second PLC application 210b is set as the master, There is an effect that it takes no time to synchronize the data, so that the switching overtime is reduced.

제1 필드버스 통신모듈(230a)는 복수개의 장치와 연결되어 있는 입출력카드(10)로부터 수집데이터를 획득하여 제1 PLC 어플리케이션 (210a)으로 전송하고, 제1 PLC 어플리케이션(210)으로부터 출력데이터를 획득하여 입출력카드(10)로 전송한다. 구체적으로 제1 필드버스 통신모듈(230a)는 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로부터 수집데이터를 리드(read)하여 저장한다. 저장한 수집데이터는 제1 필드버스 통신모듈(230a)에 접속한 제1 PLC 어플리케이션(210a)에 의해 리드된다. 또한 제1 필드버스 통신모듈(230a)은 PLC 어플리케이션(210)에 의해 출력데이터가 기록된다. 기록된 출력데이터는 슬레이브 필드버스 통신모듈(240)로 전송하여 입출력카드(10)로 전송한다.The first fieldbus communication module 230a acquires collected data from the input/output card 10 connected to a plurality of devices, transmits it to the first PLC application 210a, and transmits the output data from the first PLC application 210 It is acquired and transmitted to the input/output card 10. Specifically, the first fieldbus communication module 230a reads and stores collected data from the slave fieldbus communication module 240 mounted on the input/output card 10. The stored collected data is read by the first PLC application 210a connected to the first fieldbus communication module 230a. In addition, the first fieldbus communication module 230a records output data by the PLC application 210. The recorded output data is transmitted to the slave fieldbus communication module 240 and transmitted to the input/output card 10.

이를 위해 제1 필드버스 통신모듈(230a)은 제1 필드버스 통신 어플리케이션(233a) 및 제1 내부메모리(236a)를 포함한다.To this end, the first fieldbus communication module 230a includes a first fieldbus communication application 233a and a first internal memory 236a.

제1 내부 메모리(236a)는 제1 필드버스 통신 어플리케이션(210a)에 의해 수집데이터가 제1영역에 기록되고, 제1 PLC 어플리케이션에 의해 출력데이터가 제2 영역에 기록된다. In the first internal memory 236a, collected data is recorded in the first area by the first fieldbus communication application 210a, and output data is recorded in the second area by the first PLC application.

제1 내부메모리(236a) 는 제1 PLC 어플리케이션이 접속하기 위해 제1 포트(237a) 및 제2 포트(238a)를 포함한다. The first internal memory 236a includes a first port 237a and a second port 238a for connection to the first PLC application.

제1 포트(237a)는 제1 PLC 어플리케이션(210a)이 제1 내부메모리(236a)의 제1 영역에 기록된 수집데이터를 리드(read)하기 위해 접속할 수 있게 하는 연결장치이다. 제2 포트(238a)는 제1 PLC 어플리케이션(210a)이 제1 내부메모리(236a)의 제2 영역에 출력데이터를 기록할 수 있도록 접속할 수 있게 하는 연결장치이다. 이때 제1 및 제2 포트(237a, 238a)는 제1 PLC 어플리케이션(210a)과 PCI(Peripheral Component Interconnect) 통신버스를 통해 연결될 수 있다.The first port 237a is a connection device that allows the first PLC application 210a to connect to read collected data recorded in the first area of the first internal memory 236a. The second port 238a is a connection device that allows the first PLC application 210a to be connected to write output data to the second area of the first internal memory 236a. At this time, the first and second ports 237a and 238a may be connected to the first PLC application 210a through a Peripheral Component Interconnect (PCI) communication bus.

상술한 실시예에서는 제1 필드버스 통신모듈(230a)이 하나인 것으로 설명하였다. 하지만 변형된 실시예에서는 제1 필드버스 통신모듈(230a)이 이중화될 수 있다.In the above-described embodiment, it has been described that the first fieldbus communication module 230a is one. However, in a modified embodiment, the first fieldbus communication module 230a may be redundant.

이하, 도4를 참조하여 제1 필드버스 통신모듈(230a)이 이중화되는 것을 설명하고, 상술한 내용과 동일한 내용에 대해서는 생략한다.Hereinafter, it will be described that the first fieldbus communication module 230a is redundant with reference to FIG. 4, and the same contents as those described above will be omitted.

도 4는 본 발명의 일 실시예에 따른 제1 필드버스 통신모듈이 이중화되는 것을 나타내는 도면이다.4 is a diagram illustrating that a first fieldbus communication module is duplicated according to an embodiment of the present invention.

이를 위해 PLC 제어시스템(200)은 도4에 도시된 바와 같이 제1 필드버스 통신모듈(230a)이 이중화된 제2 필드버스 통신모듈(230b)을 더 포함할 수 있다.To this end, the PLC control system 200 may further include a second fieldbus communication module 230b in which the first fieldbus communication module 230a is duplicated, as shown in FIG. 4.

마스터로 설정된 제1 필드버스 통신모듈(230a)은 제1 필드버스 통신 어플리케이션(233a) 및 제1 내부메모리(236a)를 포함하고, 슬레이브로 설정된 제2 필드버스 통신모듈(230b)는 제2 필드버스 통신 어플리케이션(233b) 및 제2 내부메모리(236b)를 포함한다.The first fieldbus communication module 230a set as a master includes a first fieldbus communication application 233a and a first internal memory 236a, and the second fieldbus communication module 230b set as a slave has a second field. It includes a bus communication application 233b and a second internal memory 236b.

제1 필드버스 통신모듈(230a)이 마스터로 설정되어 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로부터 수집데이터를 리드(read)하여 저장한다. 저장한 수집데이터는 제1 필드버스 통신모듈(230a)에 접속한 제1 PLC 어플리케이션(210a)에 의해 리드된다. 제1 필드버스 통신모듈(230a)은 PLC 어플리케이션(210)에 의해 출력데이터가 기록된다, 기록된 출력데이터는 슬레이브 필드버스 통신모듈(240)로 전송하여 입출력카드(10)로 전송한다.The first fieldbus communication module 230a is set as a master and reads and stores collected data from the slave fieldbus communication module 240 mounted on the input/output card 10. The stored collected data is read by the first PLC application 210a connected to the first fieldbus communication module 230a. The first fieldbus communication module 230a records output data by the PLC application 210, and the recorded output data is transmitted to the slave fieldbus communication module 240 and transmitted to the input/output card 10.

제2 필드버스 통신모듈(230b)이 슬레이브로 설정되어 대기상태로 동작할 수 있다. The second fieldbus communication module 230b is set as a slave and can operate in a standby state.

마스터로 설정된 제1 필드버스 통신 어플리케이션(233a)은 복수개의 장치와 연결되어 있는 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로부터 수집데이터를 획득하여 제1 내부 메모리(236a)의 제1 영역에 기록한다. 또한 제1 필드버스 통신 어플리케이션(233a)은 제1 PLC 어플리케이션(210a)에 의해 제1 내부 메모리(236a)의 제2 영역에 기록된 출력데이터를 리드(read)하여 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로 전송한다. The first fieldbus communication application 233a set as a master acquires collected data from the slave fieldbus communication module 240 mounted on the input/output card 10 connected to a plurality of devices, and the first internal memory 236a Record in the first area. In addition, the first fieldbus communication application 233a reads the output data recorded in the second area of the first internal memory 236a by the first PLC application 210a, and is mounted on the input/output card 10. It transmits to the slave fieldbus communication module 240.

슬레이브로 설정된 제2 필드버스 통신 어플리케이션(233b)은 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로부터 수집데이터를 획득하여 제2 내부메모리(236b)의 제1 영역에 기록한다. 이에 따라 제2 내부메모리(236b)는 제2 필드버스 통신 어플리케이션(233b)에 의해 제1 영역에 수집데이터가 저장된다.The second fieldbus communication application 233b set as a slave acquires collected data from the slave fieldbus communication module 240 mounted on the input/output card 10 and writes it to the first area of the second internal memory 236b. Accordingly, the second internal memory 236b stores collected data in the first area by the second fieldbus communication application 233b.

본 발명에 따른 슬레이브로 설정된 제 2 필드버스 통신 어플리케이션(233b)이 수집데이터를 제2 내부메모리(236b)에 기록하는 이유는, 제1 필드버스 통신모듈(110a)이 장애가 발생되어 제2 필드버스 통신모듈(110b)이 마스터로 설정되는 경우 데이터의 동기화가 필요하기 때문에다.The reason that the second fieldbus communication application 233b set as a slave according to the present invention records the collected data in the second internal memory 236b is that the first fieldbus communication module 110a has a failure and the second fieldbus This is because data synchronization is required when the communication module 110b is set as a master.

이하, 도 5를 참조하여 제1 필드버스 통신모듈(230a)이 장애가 발생한 경우에 대해 구체적으로 설명한다.Hereinafter, a case in which a failure occurs in the first fieldbus communication module 230a will be described in detail with reference to FIG. 5.

도 5은 본 발명의 일 실시예에 따른 제1 필드버스 통신모듈(230a)이 장애가 발생된 경우 제2 필드버스 통신모듈(230a)이 마스터로 설정되는 것을 도시하는 도면이다. FIG. 5 is a diagram illustrating that the second fieldbus communication module 230a is set as a master when a failure occurs in the first fieldbus communication module 230a according to an embodiment of the present invention.

도 5에 도시된 바와 같이 제1 필드버스 통신모듈(230a)이 장애가 발생되면, 마스터로 설정된 제1 PLC 어플리케이션(210a)은 제1 내부메모리(236a)의 제2 영역에 기록된 출력데이터를 제2 내부메모리(237b)의 제2 영역에 기록하고. 마스터로 설정된 제1 PLC 어플리케이션(210a)이 제1 필드버스 통신모듈(230a)을 슬레이브로 설정하고, 슬레이브로 설정된 제2 필드버스 통신모듈(230b)을 마스터로 설정한다. As shown in FIG. 5, when a failure occurs in the first fieldbus communication module 230a, the first PLC application 210a set as the master retrieves the output data recorded in the second area of the first internal memory 236a. 2 Writes to the second area of the internal memory 237b. The first PLC application 210a set as a master sets the first fieldbus communication module 230a as a slave, and sets the second fieldbus communication module 230b set as a slave as a master.

이에 따라 슬레이브로 설정된 제1 필드버스 통신모듈(230a)은 슬레이브 통신모듈(240)으로부터 수집데이터를 획득하여 제1 내부메모리(236a)의 제1 영역에 기록하고 대기상태로 동작한다.Accordingly, the first fieldbus communication module 230a set as a slave acquires collected data from the slave communication module 240, writes it to the first area of the first internal memory 236a, and operates in a standby state.

마스터로 설정된 제2 필드버스 통신모듈(230b)은 입출력카드(10)에 탑재된 슬레이브 필드버스 통신모듈(240)로부터 수집데이터를 리드(read)하여 저장한다. 저장한 수집데이터는 제2 필드버스 통신모듈(230b)에 접속한 제1 PLC 어플리케이션(210a)에 의해 리드된다. 또한 마스터로 설정된 제2 필드버스 통신모듈(230b)은 제1 PLC 어플리케이션(210a)에 의해 출력데이터가 기록된다, 기록된 출력데이터는 슬레이브 필드버스 통신모듈(240)로 전송하여 입출력카드(10)로 전송한다.The second fieldbus communication module 230b set as a master reads and stores collected data from the slave fieldbus communication module 240 mounted on the input/output card 10. The stored collected data is read by the first PLC application 210a connected to the second fieldbus communication module 230b. In addition, the second fieldbus communication module 230b set as the master records output data by the first PLC application 210a, and the recorded output data is transmitted to the slave fieldbus communication module 240 and the input/output card 10 Transfer to.

다시 도 2를 참조하여 스케쥴러(280)에 대해 구체적으로 설명한다.Referring again to FIG. 2, the scheduler 280 will be described in detail.

PLC 제어시스템(200)은 스케쥴러(280), 및 유휴코어프로세서(290)를 더 포함할 수 있다.The PLC control system 200 may further include a scheduler 280 and an idle core processor 290.

스케쥴러(280)는 제1 및 제2 PLC 어플리케이션(210a, 210b)의 실행에 따른 타스크(Task)를 제1 및 제2 코어프로세서(202,204), 유휴 코어프로세서(290)에 할당한다. 일 실시예에 있어서, 스케쥴러(280)는 도 6에 도시된 바와 같이 제1 PLC 어플리케이션(210a)의 타스크인 제1 타스크를 처리하기 위한 제1 스케쥴러(283a) 및 제2 PLC어플리케이션(210b)의 타스크인 제2 타스크를 처리하기 위한 제2 스케쥴러(283b)를 포함할 수 있다. 또한, 스케쥴러(280)는 유휴코어프로세서에 설치될 수 있는 어플리케이션의 제3 타스크를 처리하기 위한 제3 스케쥴러(283c)를 더 포함할 수 있다.The scheduler 280 allocates a task according to execution of the first and second PLC applications 210a and 210b to the first and second core processors 202 and 204 and the idle core processor 290. In one embodiment, the scheduler 280 includes a first scheduler 283a and a second PLC application 210b for processing a first task, which is a task of the first PLC application 210a, as shown in FIG. A second scheduler 283b for processing a second task that is a task may be included. In addition, the scheduler 280 may further include a third scheduler 283c for processing a third task of an application that may be installed in the idle core processor.

일 실시예에 있어서, 본 발명에 따른 스케쥴러(280)는 마스터로 설정된 제1 PLC 어플리케이션(210a)의 제1타스크(410)를 유휴코어프로세서(290)에서 처리할 수 있다. 이러한 실시예를 따르는 경우, 스케쥴러(280)가 마스터로 설정된 제1 PLC어플리케이션(210a)로 수신되는 통신인터럽트와 같은 우선순위가 높은 인터럽트를 유휴코어프로세서(290)를 통해 처리함으로써, 마스터로 설정된 제1 PLC 어플리케이션이 실시간으로 실행될 수 있고 이에 따라 제1 PLC 어플리케이션(210a)의 예측성(Determinitic)을 향상시킬 수 있다. In one embodiment, the scheduler 280 according to the present invention may process the first task 410 of the first PLC application 210a set as a master in the idle core processor 290. In the case of this embodiment, the scheduler 280 processes an interrupt with a high priority such as a communication interrupt received by the first PLC application 210a set as the master through the idle core processor 290, 1 The PLC application may be executed in real time, and accordingly, the predictability of the first PLC application 210a may be improved.

다시 도 2를 참조하면, 유휴 코어 프로세서(290)는 스케쥴러(280)에 의해 제1 PLC 어플리케이션(210a)에 발생되는 제1 타스크를 처리하고, 처리한 결과를 제1 PLC 어플리케이션(210a)으로 전송할 수 있다. 일 실시예에 있어서, 유휴 코어 프로세서(290)는 복수개일 수 있다. Referring back to FIG. 2, the idle core processor 290 processes the first task generated in the first PLC application 210a by the scheduler 280, and transmits the processed result to the first PLC application 210a. I can. In one embodiment, there may be a plurality of idle core processors 290.

PLC 제어시스템(200)은 제1 HMI 어플리케이션을 더 포함할 수 있다.The PLC control system 200 may further include a first HMI application.

이하, 도 7를 참조하여 제1 HMI 어플리케이션에 대해 구체적으로 설명한다.Hereinafter, a first HMI application will be described in detail with reference to FIG. 7.

도 7은 본 발명의 일실시예에 따른PLC 제어시스템에 제1 HMI 어플리케이션이 추가되는 것을 보여주는 도면이다.7 is a diagram illustrating that a first HMI application is added to a PLC control system according to an embodiment of the present invention.

도 7에 도시된 바와같이 PLC 제어시스템(200)은 제3 코어프로세서(610), 제1 HMI 어플리케이션(620a), 제2 공유메모리(630) 및 메모리 관리부(640)를 더 포함할 수 있다. 도 7에서는 상술한 구성이 추가됨에 따라 기존 구성에서 추가되는 기능을 갖는 구성만을 추가로 설명한다. As shown in FIG. 7, the PLC control system 200 may further include a third core processor 610, a first HMI application 620a, a second shared memory 630, and a memory management unit 640. In FIG. 7, only a configuration having a function added from an existing configuration will be additionally described as the above configuration is added.

마스터로 설정된 제1 PLC 어플리케이션(210a)은 메모리 관리부(640)로부터 액세스키를 부여받고, 제2 공유메모리에 접속하여 수집데이터, 연산데이터, 출력데이터를 기록할 수 있다. 또한, 제1 PLC 어플리케이션(210a)는 제2 공유메모리(640)에 접속하여 제1 HMI 어플리케이션(620a)에 의해 제2 공유메모리(630)에 기록된 제어데이터를 획득할 수 있다.The first PLC application 210a set as the master may receive an access key from the memory management unit 640 and access the second shared memory to record collection data, operation data, and output data. In addition, the first PLC application 210a may access the second shared memory 640 to obtain control data recorded in the second shared memory 630 by the first HMI application 620a.

제3 코어프로세서(610)는 제1 HMI 어플리케이션(620a)을 실행시킨다. 본 발명에 따른 PLC 제어 시스템(200)은 하나의 하드웨어(H/W)에 제1 및 제2 PLC 어플리케이션(210a, 210b)과 제1 HMI 어플리케이션(620a)이 모두 설치되어 동작할 수 있도록, 코어 프로세서는 복수개의 코어 프로세서(202, 204, 610)들로 구성된다.The third core processor 610 executes the first HMI application 620a. In the PLC control system 200 according to the present invention, the first and second PLC applications 210a and 210b and the first HMI application 620a are both installed and operated on one hardware (H/W), The processor is composed of a plurality of core processors (202, 204, 610).

제1 HMI 어플리케이션(620a)은 제3 코어프로세서(610)에 설치되어 메모리 관리부(640)로부터 제2 공유메모리(630)의 액세스키를 부여받고, 제1 PLC 어플리케이션에 의해 제2 공유메모리(630)에 기록된 데이터를 리드(read)하거나, 제2 공유메모리(630)에 데이터를 기록할 수 있다. 여기서 제1 HMI 어플리케이션(620a)은 사용자에 의해 생성된 제어데이터를 제2 공유메모리(630)에 기록할 수 있다. 제어데이터는 비상정지명령 등을 의미할 수 있고, 제1 PLC 어플리케이션(210a)의 특정 Tag 값을 의미할 수 있다. The first HMI application 620a is installed on the third core processor 610 to receive the access key of the second shared memory 630 from the memory management unit 640, and the second shared memory 630 is provided by the first PLC application. ), or data recorded in the second shared memory 630 may be written. Here, the first HMI application 620a may record control data generated by the user in the second shared memory 630. The control data may mean an emergency stop command or the like, and may mean a specific Tag value of the first PLC application 210a.

제1 HMI 어플리케이션(620a)은 액세스키가 메모리 관리부(640)에 의해 회수되면, 액세스키가 회수된 제1 시점에서 데이터의 읽기 또는 쓰기를 중지하고, 메모리 관리부(640)로부터 액세스키가 다시 수령되면 상기 제1 시점 이후에 읽기 또는 쓰기 중단된 데이터에 대해 읽기 또는 쓰기를 재개할 수 있다.When the access key is recovered by the memory management unit 640, the first HMI application 620a stops reading or writing data at the first time point when the access key is recovered, and receives the access key again from the memory management unit 640 If so, reading or writing can be resumed with respect to data whose read or write is stopped after the first point in time.

제2 공유메모리(630)는 마스터로 설정된 제1 PLC 어플리케이션에 의해 수집데이터, 연산데이터, 출력 데이터가 기록될 수 있다. 또한, 제2 공유메모리(630)는 제1 HMI 어플리케이션(620a)에 의해 사용자에 의해 생성된 제어데이터가 기록될 수 있다.The second shared memory 630 may record collection data, operation data, and output data by a first PLC application set as a master. In addition, the second shared memory 630 may record control data generated by the user by the first HMI application 620a.

메모리 관리부(640)는 제2 공유메모리(630)에 접근하기 위한 액세스키를 제1 PLC 어플리케이션(210a) 및 제1 HMI 어플리케이션(620a)로 제공하거나 제1 PLC 어플리케이션(210a) 및 제1 HMI 어플리케이션(620a)으로부터 회수하는 역할을 수행한다.The memory management unit 640 provides an access key for accessing the second shared memory 630 to the first PLC application 210a and the first HMI application 620a, or the first PLC application 210a and the first HMI application It plays a role of recovering from (620a).

한편, 제1 PLC어플리케이션(210a)이 제2 공유메모리(630)에 액세스 중에 있을 때, 제1 HMI 어플리케이션(620a)이 제2 공유메모리(630)에 동시에 액세스하게 되면 데이터가 훼손될 수 있기 때문에 본 발명에 따른 메모리 관리부(250)는 한번에 하나의 어플리케이션만이 제2 공유메모리(630)에 액세스할 수 있도록 하기 위해 제2 공유메모리(630)에 접근할 수 있는 액세스키를 사용한다.On the other hand, when the first PLC application 210a is accessing the second shared memory 630, if the first HMI application 620a accesses the second shared memory 630 at the same time, data may be damaged. The memory management unit 250 according to the present invention uses an access key for accessing the second shared memory 630 in order to allow only one application to access the second shared memory 630 at a time.

특히, 본 발명에 따른 메모리 관리부(640)는 제1 PLC 어플리케이션(210a)에게 액세스키에 대한 우선권을 부여함으로써 제1 PLC 어플리케이션(210a)이 제1 HMI 어플리케이션(620a)에 우선하여 제2 공유메모리(630)에 접근할 수 있도록 한다.In particular, the memory management unit 640 according to the present invention gives priority to the access key to the first PLC application 210a, so that the first PLC application 210a has priority over the first HMI application 620a, and the second shared memory Make 630 accessible.

이와 같이, 본 발명에서는 제1 PLC 어플리케이션(210a)과 제1 HMI 어플리케이션(620a)이 하나의 액세스키를 사용하되 제1 PLC 어플리케이션(210a)에 액세스키의 우선권을 부여함으로써 제1 PLC 어플리케이션(210a)이 제2 공유메모리(630)에 우선 접근을 허여할 수 있기 때문에 제1 PLC 어플리케이션(210a)의 실시간 제어를 보장할 수 있게 된다.As described above, in the present invention, the first PLC application 210a and the first HMI application 620a use one access key, but the first PLC application 210a is given priority of the access key to the first PLC application 210a. ), it is possible to guarantee the real-time control of the first PLC application 210a because the second shared memory 630 may be given priority access.

이러한 실시예에 따르는 경우, 도 8에 도시된 바와 같이 제1 HMI 어플리케이션(210a)이 제2 공유메모리(630)에 접속하여 "1이라는 작업을 수행 중일 때 제1 PLC 어플리케이션(210a)으로부터 제2 공유메모리(630)에 대한 접속요청이 발생되면, 메모리 관리부(640)는 제1 HMI 어플리케이션(620a)으로부터 액세스키를 즉시 회수하여 제1 PLC 어플리케이션(210a)에 액세스키를 배당한다. 이에 따라, 제1 HMI 어플리케이션(620a)은 액세스키가 회수된 제1 시점(t1)에서 작업을 중지하게 되고, 제1 PLC 어플리케이션(210a)이 액세스키를 이용하여 제2 공유메모리(630)에 접속함으로써 "1"이라는 작업을 수행하게 된다.According to this embodiment, as shown in FIG. 8, when the first HMI application 210a accesses the second shared memory 630 and performs the task "1, the second When a connection request to the shared memory 630 occurs, the memory management unit 640 immediately retrieves the access key from the first HMI application 620a and allocates the access key to the first PLC application 210a. The first HMI application 620a stops the work at the first point in time t1 when the access key is retrieved, and the first PLC application 210a accesses the second shared memory 630 using the access key " You're going to do a "1" task.

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

한편, 상술한 도 8에 도시된 바와 같이 제2 시점(t2)에서 제1 HMI 어플리케이션(220a)에 의해 비상정지명령이 포함된 제어데이터가 발생하게 되면, 비상정지명령이 포함된 제어데이터는 빠른 시간 내에 제1 PLC 어플리케이션(210a)과 공유되어야 하지만, 제1 HMI 어플리케이션(620a)은 액세스키의 우선권을 가지고 있지 않기 때문에 제1 PLC 어플리케이션(210a)으로부터 액세스키가 회수될 때까지 제어데이터를 기록하지 못하게 된다. 또한, 제1 HMI 어플리케이션(620)이 액세스키를 가진다고 하더라도 제1 HMI 어플리케이션(620)의 큐(Queue)에서는 선입선출(FIFO)방식에 따라 제어데이터가 처리되기 때문에 도 8에 도시된 바와 같이 이전 작업인 "1"의 처리가 모두 완료된 이후의 제3 시점(t3)이 되어야 비상정지명령이 포함된 제어데이터의 처리작업인 "2"가 처리될 수 밖에 없다.On the other hand, as shown in FIG. 8, when control data including an emergency stop command is generated by the first HMI application 220a at a second time point t2, the control data including the emergency stop command is fast. It should be shared with the first PLC application 210a within time, but since the first HMI application 620a does not have the priority of the access key, control data is recorded until the access key is retrieved from the first PLC application 210a. You won't be able to. In addition, even if the first HMI application 620 has an access key, the queue of the first HMI application 620 handles control data according to a first-in-first-out (FIFO) method, as shown in FIG. The control data processing task "2" including the emergency stop command cannot but be processed only when the third point in time t3 after all processing of the task "1" is completed.

이를 해결하기 위해 본 발명에 따르면 제1 HMI 어플리케이션(620a)은 비상정지명령이 포함된 제어데이터가 발생되면 해당 제어데이터를 큐의 첫 번째 대기열에 배치함으로써 해당 제어데이터가 큐에서 첫 번째로 처리될 수 있도록 한다. 또한, 메모리 관리부(640)는 비상정지명령이 포함된 제어데이터 발생시 제1 HMI 어플리케이션(620a)에게 액세스키의 우선권을 부여함으로써, 제1 PLC 어플리케이션(210a)이 제2 공유메모리(630)에 접속중이더라도 제1 PLC 어플리케이션(210a)으로부터 액세스키를 즉시 회수하여 제1 HMI 어플리케이션(620a)으로 제공하고, 제1 HMI 어플리케이션(620a)은 제공받은 액세스키로 제2 공유메모리(630)에 접속하여 제어데이터를 기록한 후 액세스키를 다시 메모리 관리부(640)로 반납한다.To solve this problem, according to the present invention, when control data including an emergency stop command is generated, the first HMI application 620a places the control data in the first queue of the queue so that the corresponding control data is processed first in the queue. Make it possible. In addition, the memory management unit 640 gives priority of the access key to the first HMI application 620a when control data including an emergency stop command is generated, so that the first PLC application 210a accesses the second shared memory 630 Even in the middle, the access key is immediately retrieved from the first PLC application 210a and provided to the first HMI application 620a, and the first HMI application 620a is controlled by accessing the second shared memory 630 with the provided access key. After data is recorded, the access key is returned to the memory management unit 640 again.

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

상술한 실시예에서 제1 PLC 어플리케이션(210a)이 마스터로 설정된 것으로 설명하였으나, 제1 PLC 어플리케이션(210a)이 장애가 발생하면, 제2 PLC 어플리케이션(210b)이 제어권을 이양받아 마스터로 설정되어 상술한 제1 PLC 어플리케이션(210a)의 동작을 수행할 수 있다.In the above-described embodiment, it has been described that the first PLC application 210a is set as the master, but when the first PLC application 210a fails, the second PLC application 210b transfers control right and is set as the master. The operation of the first PLC application 210a may be performed.

한편, 상술한 실시예에서는 제1 HMI 어플리케이션(620a)이 하나인 것으로 설명하였으나, 제1 HMI 어플리케이션(620a)이 이중화 될 수 있다.Meanwhile, in the above-described embodiment, the first HMI application 620a is described as being one, but the first HMI application 620a may be duplicated.

이하 도 9을 참조하여 제1 HMI 어플리케이션(620a)이 이중화되는 것을 설명한다. Hereinafter, it will be described that the first HMI application 620a is duplicated with reference to FIG. 9.

도 9은 본 발명의 일 실시예에 따른 제1 HMI 어플리케이션(620a)이 이중화되는 것을 도시한 도면이다. 9 is a diagram illustrating that a first HMI application 620a according to an embodiment of the present invention is duplicated.

도 9에 도시된 바와 같이 PLC 제어시스템(200)은 제4 코어프로세서(612) 및 제2 HMI 어플리케이션(620b)을 더 포함할 수 있다. 도 9에서는 상술한 구성이 추가됨에 따라 기존 구성에서 추가되는 기능을 갖는 구성에 대해서만 설명한다.As shown in FIG. 9, the PLC control system 200 may further include a fourth core processor 612 and a second HMI application 620b. In FIG. 9, only a configuration having a function added from an existing configuration will be described as the above configuration is added.

제4 코어프로세서(612)는 제2 HMI 어플리케이션을 실행시킨다. 본 발명에 따른 PLC 제어 시스템(200)은 하나의 하드웨어(H/W)에 제1 및 제2 PLC 어플리케이션(210a, 210b)과 제1 및 제2 HMI 어플리케이션(620a, 620b)이 모두 설치되어 동작할 수 있도록, 코어 프로세서는 복수개의 코어 프로세서(202, 204, 610,612)들로 구성된다.The fourth core processor 612 executes the second HMI application. The PLC control system 200 according to the present invention operates by installing both the first and second PLC applications 210a and 210b and the first and second HMI applications 620a and 620b on one hardware (H/W). In order to be able to do so, the core processor is composed of a plurality of core processors 202, 204, 610, and 612.

제1 HMI 어플리케이션(620a)은 마스터로 설정되고, 제1 HMI 어플리케이션(620b)에 대해 이중화된 제2 HMI 어플리케이션(620b)는 슬레이브 설정된다. 일 실시예에 있어서 제1 및 제2 HMI 어플리케이션(620a, 620b) 중 먼저 기동된 HMI 어플리케이션이 마스터로 설정될 수 있고, 이후 기동된 HMI 어플리케이션이 슬레이브로 설정될 수 있다.The first HMI application 620a is set as a master, and the second HMI application 620b duplicated with respect to the first HMI application 620b is set as a slave. In one embodiment, among the first and second HMI applications 620a and 620b, an HMI application that is started first may be set as a master, and an HMI application that is started later may be set as a slave.

마스터로 설정된 제1 HMI 어플리케이션은 메모리 관리부(640)에 의해 액세스키를 부여받아 제2 공유메모리(640)에 접속하여 데이터를 읽거나 쓸 수 있다. 슬레이브로 설정된 제2 HMI 어플리케이션(620b)은 대기상태로 동작하고, 마스터로 설정된 제1 HMI 어플리케이션(210a)의 오류발생여부를 감시한다. 이때 제2 HMI 어플리케이션(620b)는 타스크간 통신(Intertask Communication)을 통해 제1 HMI 어플리케이션(620a)의 오류발생 여부를 감시할 수 있다.The first HMI application set as a master may be given an access key by the memory management unit 640 and access the second shared memory 640 to read or write data. The second HMI application 620b set as a slave operates in a standby state, and monitors whether an error occurs in the first HMI application 210a set as a master. At this time, the second HMI application 620b may monitor whether an error occurs in the first HMI application 620a through intertask communication.

상술한 실시예에 있어서 제1 HMI 어플리케이션(620a)이 마스터로 동작하는 것으로 설명하였으나, 제1 HMI 어플리케이션(620a)이 장애가 발생하면, 제2 HMI 어플리케이션(620b)이 제어권을 이양받아 마스터로 설정되고, 제1 HMI 어플리케이션(620a)이 슬레이브로 설정될 수 있다. 마스터로 설정된 제2 HMI 어플리케이션(620b)은 메모리 관리부(640)에 의해 액세스키를 부여받아 제2 공유메모리(640)에 접속하여 데이터를 읽거나 쓸수 있고, 슬레이브로 설정된 제1 HMI 어플리케이션은 대기상태로 동작하고, 제2 HMI 어플리케이션(210a)의 오류발생여부를 감시한다.In the above-described embodiment, it has been described that the first HMI application 620a operates as a master, but when a failure occurs in the first HMI application 620a, the second HMI application 620b transfers control rights and is set as the master. , The first HMI application 620a may be set as a slave. The second HMI application 620b set as a master receives an access key from the memory management unit 640 and accesses the second shared memory 640 to read or write data, and the first HMI application set as a slave is in a standby state. And monitors whether an error occurs in the second HMI application 210a.

이와 같이 본 발명에 따른 제1 HMI 어플리케이션(620a) 및 제2 HMI 어플리케이션(620b)은 마스터 및 슬레이브가 절체되더라도 제2 공유메모리(630)를 통해 데이터를 공유할 수 있기때문에, 별도의 데이터 동기화가 필요하지 않아 제어권 이양시간(Swiching Overtime)이 감소된다는 효과가 있다. As described above, since the first HMI application 620a and the second HMI application 620b according to the present invention can share data through the second shared memory 630 even if the master and the slave are switched, separate data synchronization is possible. Since it is not required, it has the effect of reducing the switching overtime.

한편 PLC 제어시스템(200)은 도 10에 도시된 바와 같이 제1 및 제2 PLC 어플리케이션(210a, 210b), 제1 및 제2 필드버스 통신모듈(230a, 230b), 제1 및 제2 HMI 어플리케이션(620a, 620b)가 전 이중화(Full Duplex)될 수 있다.Meanwhile, as shown in FIG. 10, the PLC control system 200 includes first and second PLC applications 210a and 210b, first and second fieldbus communication modules 230a and 230b, and first and second HMI applications. (620a, 620b) may be full duplexed.

본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.Those skilled in the art to which the present invention pertains will appreciate that the above-described present invention can be implemented in other specific forms without changing the technical spirit or essential features thereof.

그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting. The scope of the present invention is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

200: PLC 제어시스템 202: 제1 코어 프로세서
204: 제2 코어 프로세서 210a: 제1 PLC 어플리케이션
210b: 제2 PLC 어플리케이션 220: 제1 공유메모리
230a: 제1 필드버스 통신모듈 233a: 제1 필드버스통신어플리케이션
240: 슬레이브 필드버스 통신모듈
200: PLC control system 202: first core processor
204: second core processor 210a: first PLC application
210b: second PLC application 220: first shared memory
230a: first fieldbus communication module 233a: first fieldbus communication application
240: slave fieldbus communication module

Claims (15)

외부장치로부터 수집데이터를 수신하는 제1 마스터 필드버스 통신모듈;
통신 버스를 통해 상기 제1 마스터 필드버스 통신모듈에 연결되어 상기 제1 마스터 필드버스 통신모듈로부터 상기 수집데이터를 수신하고, 상기 수신된 수집데이터를 미리 정해진 제어로직에 따라 연산하여 연산데이터를 생성하는 마스터 PLC(Programmable Logic Controller) 어플리케이션이 실행되는 제1 코어 프로세서(Processor);
상기 마스터 PLC 어플리케이션이 이중화되어 구성되어 스탠바이 상태로 동작하고, 상기 마스터 PLC 어플리케이션의 동작상태를 감시하는 슬레이브 PLC 어플리케이션이 실행되는 제2 코어 프로세서;
상기 마스터 PLC 어플리케이션에 의해 상기 수집데이터 및 상기 연산데이터가 저장되는 제1 공유 메모리;
마스터 HMI 어플리케이션이 설치되는 제3 코어 프로세서;
상기 마스터 PLC 어플리케이션에 의해 상기 수집데이터, 상기 연산데이터, 및 입출력카드에 출력할 출력 데이터가 기록되는 제2 공유 메모리; 및
상기 제2 공유 메모리의 액세스를 위한 액세스키를 관리하고, 상기 마스터 PLC 어플리케이션에 상기 액세스키의 우선권을 부여하는 메모리 관리부;를 포함하고,
상기 슬레이브 PLC 어플리케이션은 상기 마스터 PLC 어플리케이션에 오류 발생시 마스터로 절체하여 상기 제1 공유 메모리 및 상기 제1 마스터 필드버스 통신모듈에 연결되고, 상기 마스터 HMI 어플리케이션은 상기 제2 공유 메모리를 통해 상기 마스터 PLC 어플리케이션과 데이터를 공유하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
A first master fieldbus communication module for receiving collected data from an external device;
It is connected to the first master fieldbus communication module through a communication bus to receive the collected data from the first master fieldbus communication module, and to generate calculation data by calculating the received collected data according to a predetermined control logic. A first core processor on which a master PLC (Programmable Logic Controller) application is executed;
A second core processor in which the master PLC application is configured to be duplicated, operates in a standby state, and executes a slave PLC application that monitors the operation state of the master PLC application;
A first shared memory in which the collected data and the operation data are stored by the master PLC application;
A third core processor on which a master HMI application is installed;
A second shared memory in which the collected data, the operation data, and output data to be output to the input/output card are recorded by the master PLC application; And
Including; a memory management unit that manages an access key for accessing the second shared memory, and gives priority to the access key to the master PLC application,
When an error occurs in the master PLC application, the slave PLC application is transferred to a master and connected to the first shared memory and the first master fieldbus communication module, and the master HMI application is the master PLC application through the second shared memory. A dualized PLC control system based on a multicore processor, characterized in that it shares data and data.
제1항에 있어서,
상기 제1 마스터 필드버스 통신모듈은 입출력 카드에 장착된 제2 필드버스 통신모듈로부터 상기 수집데이터를 수신하여 제1 내부 메모리의 제1 영역에 저장하고,
상기 마스터 PLC 어플리케이션은 상기 제1 내부 메모리의 제1 포트를 통해 상기 제1 영역에 접속하여 상기 수집데이터를 리드하고, 리드한 수집데이터를 상기 제1 공유메모리의 제1 영역에 기록하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The first master fieldbus communication module receives the collected data from a second fieldbus communication module mounted on an input/output card and stores it in a first area of a first internal memory,
The master PLC application is characterized in that it accesses the first area through a first port of the first internal memory to read the collected data, and writes the read collected data to the first area of the first shared memory. A dualized PLC control system based on a multi-core processor.
제2항에 있어서,
상기 제1 마스터 필드버스 통신모듈이 이중화되어 구성된 제1 슬레이브 필드버스 통신모듈을 더 포함하고,
상기 제1 슬레이브 필드버스 통신모듈은 상기 제2 필드버스 통신모듈로부터 상기 수집데이터를 수신하여 제2 내부 메모리의 제1 영역에 저장하고,
상기 마스터 PLC 어플리케이션은 상기 제1 마스터 필드버스 통신모듈에 장애 발생시 상기 제1 슬레이브 필드버스 통신모듈의 제2 내부 메모리의 제1 포트를 통해 상기 제2 내부 메모리의 제2 영역에 접속하여 상기 수집데이터를 리드하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 2,
The first master fieldbus communication module further comprises a first slave fieldbus communication module configured by being duplicated,
The first slave fieldbus communication module receives the collected data from the second fieldbus communication module and stores it in a first area of a second internal memory,
When a failure occurs in the first master fieldbus communication module, the master PLC application connects to a second area of the second internal memory through a first port of the second internal memory of the first slave fieldbus communication module, A dualized PLC control system based on a multi-core processor, characterized in that to lead.
제1항에 있어서,
상기 마스터 PLC 어플리케이션은 상기 제1 공유 메모리의 제1 영역에 저장된 데이터를 상기 제어로직에 따라 연산하여 상기 연산데이터를 생성하고, 생성된 상기 연산데이터를 상기 제1 공유 메모리의 제2 영역에 저장하고, 상기 제2 영역에 저장된 상기 연산데이터 중 입출력 카드로 출력할 출력 데이터를 리드하여 상기 제1 마스터 필드버스 통신모듈의 제1 내부 메모리의 제2 포트를 통해 제2 영역에 기록하고,
상기 제1 마스터 필드버스 통신모듈은 상기 제1 내부 메모리의 제2 영역에 기록된 출력 데이터를 입출력카드에 장착된 제2 필드버스 통신모듈로 출력하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The master PLC application generates the operation data by calculating the data stored in the first area of the first shared memory according to the control logic, and stores the generated operation data in a second area of the first shared memory. , Among the operation data stored in the second area, output data to be output to the input/output card is read and written to a second area through a second port of the first internal memory of the first master fieldbus communication module,
The first master fieldbus communication module outputs the output data recorded in the second area of the first internal memory to a second fieldbus communication module mounted on the input/output card. Control system.
제4항에 있어서,
상기 제1 마스터 필드버스 통신모듈이 이중화되어 구성된 제1 슬레이브 필드버스 통신모듈을 더 포함하고,
상기 마스터 PLC 어플리케이션은 상기 제1 마스터 필드버스 통신모듈에 장애 발생시 상기 제1 공유 메모리의 제2 영역으로부터 상기 출력 데이터를 리드하여 상기 제1 슬레이브 필드버스 통신모듈의 제2 내부 메모리의 제2 포트를 통해 제2 영역에 기록하고,
상기 제1 슬레이브 필드버스 통신모듈은 상기 제2 내부 메모리의 제2 영역에 기록된 상기 출력 데이터를 상기 제2 필드버스 통신모듈로 출력하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 4,
The first master fieldbus communication module further comprises a first slave fieldbus communication module configured by being duplicated,
When a failure occurs in the first master fieldbus communication module, the master PLC application reads the output data from a second area of the first shared memory to open a second port of the second internal memory of the first slave fieldbus communication module. Record in the second area through,
The first slave fieldbus communication module outputs the output data recorded in the second area of the second internal memory to the second fieldbus communication module.
제1항에 있어서,
상기 마스터 PLC 어플리케이션과 상기 제1 마스터 필드버스 통신모듈은 PCI(Peripheral Component Interconnect) 통신버스를 통해 연결되는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The master PLC application and the first master fieldbus communication module are connected through a Peripheral Component Interconnect (PCI) communication bus.
제1항에 있어서,
상기 슬레이브 PLC 어플리케이션은 타스크간 통신(Intertask Communication)을 통해 상기 마스터 PLC 어플리케이션의 오류발생 여부를 감시하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The slave PLC application monitors whether or not an error occurs in the master PLC application through intertask communication.
삭제delete 삭제delete 제1항에 있어서,
상기 메모리 관리부는,
상기 마스터 HMI 어플리케이션이 상기 액세스키를 이용하여 상기 제2 공유 메모리에 액세스 중일 때 상기 마스터 PLC 어플리케이션으로부터 상기 제2 공유 메모리에 대한 액세스 요청이 수신되면, 상기 마스터 HMI 어플리케이션으로부터 상기 액세스키를 회수하여 상기 마스터 PLC 어플리케이션에 제공하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The memory management unit,
When the master HMI application is accessing the second shared memory using the access key, when an access request for the second shared memory is received from the master PLC application, the access key is retrieved from the master HMI application, and the A dualized PLC control system based on a multi-core processor, which is provided to a master PLC application.
제1항에 있어서,
상기 마스터 HMI 어플리케이션은 상기 액세스키가 상기 메모리 관리부에 의해 회수되면, 상기 액세스키가 회수된 제1 시점에서 데이터의 읽기 또는 쓰기를 중지하고, 상기 메모리 관리부로부터 상기 액세스키가 다시 수령되면 상기 제1 시점 이후에 읽기 또는 쓰기 중단된 데이터에 대해 읽기 또는 쓰기를 재개하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
When the access key is recovered by the memory management unit, the master HMI application stops reading or writing data at a first time point when the access key is recovered, and when the access key is received again from the memory management unit, the first A dualized PLC control system based on a multicore processor, characterized in that reading or writing resumes for data that has been read or written after the point in time.
제1항에 있어서,
상기 메모리 관리부는,
상기 마스터 PLC 어플리케이션이 상기 액세스키를 이용하여 상기 제2 공유 메모리에 접속 중일 때 상기 마스터 HMI 어플리케이션으로부터 비상정지명령이 포함된 제어데이터의 기록요청이 수신되면, 상기 마스터 HMI 어플리케이션이 상기 비상정지명령이 포함된 제어데이터를 상기 제2 공유메모리에 기록할 수 있도록 마스터 PLC 어플리케이션으로부터 상기 액세스키를 회수하여 상기 마스터 HMI 어플리케이션으로 제공하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The memory management unit,
When the master PLC application is accessing the second shared memory using the access key and a request for recording control data including an emergency stop command is received from the master HMI application, the master HMI application sends the emergency stop command. A dualized PLC control system based on a multi-core processor, characterized in that the access key is retrieved from a master PLC application so that the included control data can be recorded in the second shared memory and provided to the master HMI application.
제1항에 있어서,
상기 마스터 HMI 어플리케이션은,
비상정지명령이 포함된 제어데이터가 발생되면 상기 비상정지명령이 포함된 제어데이터를 선입선출 방식으로 처리되는 큐(Queue)의 첫 번째 대기열에 저장하고,
상기 메모리 관리부로부터 상기 액세스키가 제공되면 상기 큐의 첫 번째 대기열에 저장된 상기 비상정지명령이 포함된 제어데이터를 상기 제2 공유 메모리에 기록하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
The master HMI application,
When control data including the emergency stop command is generated, the control data including the emergency stop command is stored in the first queue of a queue processed in a first-in, first-out method,
When the access key is provided from the memory management unit, control data including the emergency stop command stored in the first queue of the queue is recorded in the second shared memory. .
제1항에 있어서,
스탠바이 상태로 동작하고, 상기 마스터 HMI 어플리케이션이 이중화된 슬레이브 HMI 어플리케이션이 설치되는 제4 코어 프로세서를 더 포함하고,
상기 슬레이브 HMI 어플리케이션은 상기 마스터 HMI 어플리케이션에 오류발생시 마스터로 절체하여 상기 제2 공유메모리를 통해 상기 마스터 PLC 어플리케이션과 데이터를 공유하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
Further comprising a fourth core processor operating in a standby state, wherein the master HMI application is installed with a duplicated slave HMI application,
The slave HMI application transfers to the master when an error occurs in the master HMI application, and shares data with the master PLC application through the second shared memory.
제1항에 있어서,
적어도 하나의 유휴코어 프로세서; 및
상기 제1 및 제2 코어프로세서와 상기 유휴코어 프로세서의 타스크를 관리하는 스케쥴러를 더 포함하고,
상기 스케쥴러는 제1 또는 제2 코어프로세서에 상기 PLC 어플리케이션 보다 우선실행되어야 하는 인터럽트가 발생되면 상기 인터럽트를 실행하기 위한 타스크를 상기 유휴코어 프로세서에 할당하여 상기 PLC 어플리케이션이 실시간으로 실행되게 하는 것을 특징으로 하는 멀티코어 프로세서 기반의 이중화된 PLC 제어시스템.
The method of claim 1,
At least one idle core processor; And
Further comprising a scheduler for managing tasks of the first and second core processors and the idle core processor,
The scheduler is characterized in that when an interrupt to be executed prior to the PLC application occurs in the first or second core processor, the task for executing the interrupt is assigned to the idle core processor so that the PLC application is executed in real time. A dualized PLC control system based on a multi-core processor.
KR1020180174207A 2018-12-31 2018-12-31 Dual PLC Control System Based on Multi Core Processor Active KR102211200B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180174207A KR102211200B1 (en) 2018-12-31 2018-12-31 Dual PLC Control System Based on Multi Core Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180174207A KR102211200B1 (en) 2018-12-31 2018-12-31 Dual PLC Control System Based on Multi Core Processor

Publications (2)

Publication Number Publication Date
KR20200083017A KR20200083017A (en) 2020-07-08
KR102211200B1 true KR102211200B1 (en) 2021-02-01

Family

ID=71601382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180174207A Active KR102211200B1 (en) 2018-12-31 2018-12-31 Dual PLC Control System Based on Multi Core Processor

Country Status (1)

Country Link
KR (1) KR102211200B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114384792B (en) * 2021-12-10 2024-01-02 浙江大学 Safe and redundant PLC communication control system
CN120523126B (en) * 2025-07-23 2025-09-23 福建省力得自动化设备有限公司 Power station LCU screen adaptive adjustment system controlled by embedded single chip microcomputer and PLC

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101457733B1 (en) * 2010-05-06 2014-11-03 엘에스산전 주식회사 Apparatus for Duplexing Human Machine Interface
KR20120020867A (en) * 2010-08-31 2012-03-08 주식회사 포스코아이씨티 Controller with double structure and method for operating that controller
KR20140141938A (en) * 2013-06-03 2014-12-11 엘에스산전 주식회사 Redundancy method of communication module in Programmable Logic Controller system
KR20140144520A (en) * 2013-06-11 2014-12-19 삼성전자주식회사 Processor module, server system and method for controlling processor module

Also Published As

Publication number Publication date
KR20200083017A (en) 2020-07-08

Similar Documents

Publication Publication Date Title
US8255095B2 (en) Modular avionics system of an aircraft
US6675226B1 (en) Network interface for industrial controller providing application programmer interface
EP2210153B1 (en) Industrial controller using shared memory multicore architecture
KR101951072B1 (en) Inter-core communication apparatus and method
CA2549540C (en) A task management control apparatus and method
US9594606B2 (en) Runtime extension framework
KR102211200B1 (en) Dual PLC Control System Based on Multi Core Processor
EP1956484B1 (en) Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory
CN102636987B (en) Dual control device
WO2024198301A1 (en) Coal mine edge control system
US7516265B2 (en) System and method for providing an application with memory access methods
CN103995789A (en) Direct memory access achievement system and method
KR102116174B1 (en) System for Integrating PLC and HMI Based on Multi Core Processor
CN104698916B (en) Method for operation automation device
CA3113750A1 (en) Data processing apparatus having multiple processors and multiple interfaces
Gergeleit et al. DIRECT: Towards a distributed object-oriented real-time control system
US20200073351A1 (en) Approach and mechanism for execution of critical system operations
US8627225B2 (en) Apparatus and methods for ensuring closure of displays
JP5477122B2 (en) Computer system, computer system management method, gateway device, and program
RU2665225C1 (en) Information handling unit
JP3479623B2 (en) Microcomputer device
CA2619742C (en) An input/output control apparatus for performing high reliability computations
US10346322B2 (en) Onboard Kahn network type system comprising a plurality of source and destination actors in order to manage buffer memories based on tokens
KR20160035446A (en) Control method of factory automation system, recording medium recording a program therefor and central processor of factory automation system
KR20150084616A (en) System For Optimizing PLC Information Exchange

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20181231

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200729

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20201230

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210127

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210127

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240103

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20241230

Start annual number: 5

End annual number: 5