KR100437013B1 - 프로그래머블 제어기의 제어 로직 실행 방법 - Google Patents

프로그래머블 제어기의 제어 로직 실행 방법 Download PDF

Info

Publication number
KR100437013B1
KR100437013B1 KR10-1998-0039390A KR19980039390A KR100437013B1 KR 100437013 B1 KR100437013 B1 KR 100437013B1 KR 19980039390 A KR19980039390 A KR 19980039390A KR 100437013 B1 KR100437013 B1 KR 100437013B1
Authority
KR
South Korea
Prior art keywords
control logic
function
control
programmable controller
changed
Prior art date
Application number
KR10-1998-0039390A
Other languages
English (en)
Other versions
KR20000020675A (ko
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 KR10-1998-0039390A priority Critical patent/KR100437013B1/ko
Publication of KR20000020675A publication Critical patent/KR20000020675A/ko
Application granted granted Critical
Publication of KR100437013B1 publication Critical patent/KR100437013B1/ko

Links

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
    • G05B19/056Programming the PLC

Landscapes

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

Abstract

본 발명은 제어 대상에 대한 제어 방법을 나타내는 제어 로직을 여러개 실행하는 프로그래머블 제어기에 있어서, 상기 각각의 제어 로직을 상기 전체 제어 로직을 실행시키는 하나의 제어 로직 실행 태스크로부터 호출 받는 함수로 구현시키는 단계; 상기 전체 제어 로직 중에서 어느 하나의 제어 로직을 변경해야 하는 경우 해당 제어 로직 파일을 로드하여 해당 제어 로직을 변경하는 단계; 상기 변경된 제어 로직을 컴파일하여 제어 로직을 프로그래머블 제어기가 이해할 수 있는 함수로 구현하는 제어 로직 함수에 대한 목적 부호를 생성하는 단계; 상기 생성된 목적 부호를 상기 프로그래머블 제어기에 다운로드한 후 메모리에 로드하고 기존에 상기 프로그래머블 제어기에 로드되어 있던 다른 모듈들과 동적으로 링크시키는 단계; 상기 제어 로직 함수가 상기 메모리에 로드되었을 때 로드된 메모리 위치를 나타내는 함수 포인터 가운데 변경된 제어 로직에 해당하는 함수 포인터를 새롭게 로드된 상기 변경된 제어 로직의 메모리 위치 값으로 변경시키는 단계; 및 상기 제어 로직 실행 태스크가 상기 함수 포인터가 가리키는 함수를 호출하므로 상기 변경된 제어 로직에 대한 제어 로직 함수를 호출하여 상기 변경된 제어 로직을 재실행시키는 단계를 구비하여 이루어지는 것을 특징으로 한다.

Description

프로그래머블 제어기의 제어 로직 실행 방법
본 발명은 프로그래머블 제어기의 제어 로직 실행 방법에 관한 것으로서, 더욱 상세하게는 전체 제어 로직 중 일부 제어 로직들에 대한 수정이 불가피한 경우 제어 로직 실행 태스크가 해당 제어 로직 함수를 호출하여 호출된 해당 제어 로직만을 수정하고 다운로드 후 재실행시킬 수 있도록 한 프로그래머블 제어기의 제어 로직 실행 방법에 관한 것이다.
일반적으로 프로그래머블 제어기가 사용자가 작성한 제어 로직을 수행하기 위해서는 사용자가 작성한 제어 로직을 해석할 수 있어야 하는 바, 사용자가 제어 로직을 작성하는 방법으로는 크게 텍스트 형식의 프로그래밍 언어를 직접 편집하여 제어 로직 프로그램을 작성하는 방법과, 그래픽 환경에서 펑션 블록 다이어그램이나 래더(Ladder)를 이용하여 제어 로직을 작성하는 방법이 존재한다. 전술한 바와 같은 방법으로 사용자가 작성한 제어 로직 프로그램은 프로그래머블 제어기의 하드웨어 상에서 실행된다. 여기서, 제어 로직의 실행을 담당하는 주체를 제어 로직 실행 태스크라고 한다.
도 1은 종래의 일 실시예에 따른 제어 로직 실행 태스크 구현 방법을 설명하기 위한 도이고, 도 2는 종래의 일 실시예에 따른 제어 로직 실행 방법을 설명하기 위한 도이다. 도 1에 도시하는 바와 같이, 종래의 일 실시예에 따른 제어 로직 실행 태스크 구현 방법은 전체의 제어 로직을 하나의 제어 로직 실행 태스크로 구현하는 것으로써, 이 경우에는 사용자가 작성한 여러 개의 제어 로직이 하나의 제어 로직 실행 태스크의 메인 함수로 구현이 된다. 전술한 바와 같이, 제어 로직 실행 태스크를 구현한 후 여러 개의 제어 로직이 제어 대상을 제어하는 제어 출력을 내보내고 있던 중에 일부 제어 로직의 수정이 불가피한 경우가 발생되면 도 2에 도시하는 바와 같이, 제어 로직 파일들에서 수정을 해야하는 해당 제어 로직 파일을 로드하여 수정한 후 전체 제어 로직을 컴파일하고, 다운로드한다. 그리고, 이미 실행중인 제어 로직 실행 태스크를 잠시 중단시키고 새롭게 생성된 제어 로직 실행 태스크를 다시 실행시킨다.
도 3은 종래의 타 실시예에 따른 제어 로직 실행 태스크 구현 방법을 설명하기 위한 도이고, 도 4는 종래의 타 실시예에 따른 제어 로직 실행 방법을 설명하기 위한 도이다. 도 3에 도시하는 바와 같이, 종래의 타 실시예에 따른 제어 로직 실행 태스크 구현 방법은 개별 제어 로직을 하나의 제어 로직 실행 태스크로 구현하는 것으로써, 이 경우에는 하나의 제어 로직이 하나의 제어 로직 실행 태스크의 메인 함수로 구현이 된다. 따라서, 전체 제어 로직을 실행하기 위해서는 제어 로직 개수에 대응되는 만큼의 제어 로직 실행 태스크가 필요하다. 전술한 바와 같이, 제어 로직 실행 태스크를 구현한 후 여러 개의 제어 로직이 제어 대상을 제어하는 제어 출력을 내보내고 있던 중에 일부 제어 로직의 수정이 불가피한 경우가 발생되면 도 4에 도시하는 바와 같이, 제어 로직 파일들에서 수정을 해야하는 해당 제어 로직 파일을 로드하여 수정한 후 해당 제어 로직을 컴파일하고, 다운로드한다. 그리고, 수정된 제어 로직의 실행 태스크를 다시 실행시킨다.
앞서 말한 바와 같이, 종래의 일 실시예에 따른 제어 로직 실행 방법은 제어 로직의 내용을 일부 변경하거나 수정하면 전체 제어 로직의 실행을 담당하는 제어 로직 실행 태스크를 재생성 및 재실행시켜야 하므로 중요한 설비나 프로세서를 실시간으로 제어해야 하는 상황에서는 비효율적이고, 안정된 제어를 하기에는 불합리한 문제점이 발생한다.
한편, 종래의 타 실시예에 따른 제어 로직 실행 방법은 제어 로직마다 자신을 실행하는 제어 로직 실행 태스크가 구분되어 별개로 있으므로 A라는 제어 로직을 수정하고 수정된 제어 로직을 다시 실행시킬 때 B라는 제어 로직에 아무런 영향을 끼치지 않는다는 장점이 있으나, 제어 로직 실행 태스크의 수가 제어 로직의 개수만큼 있어야 하므로 프로그래머블 제어기의 실시간 운영 체제가 관리해야 할 태스크의 수가 많아지고 빈번한 태스크간의 스위칭으로 인해 프로그래머블 제어기의 전체적인 성능이 저하되는 문제점이 발생한다. 또한, 제어 로직 실행 태스크의 수가 많아져 다른 기능을 수행하는 태스크의 수가 줄어들어 드는 문제점이 발생한다.
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 하나의 제어 로직 실행 태스크로 전체의 제어 로직을 실행하도록 하며, 개별 제어 로직은 제어 로직 실행 태스크로부터 호출 받는 함수로 구현함으로써, 단일 제어 로직 실행 태스크로 전체의 제어 로직을 실행하며 제어 로직의 개별적인 수정, 다운로드 및 실행이 가능하도록 한 프로그래머블 제어기의 제어 로직 실행 방법을 제공함에 그 목적이 있다.
전술한 목적을 달성하기 위한 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법은 제어 대상에 대한 제어 방법을 나타내는 제어 로직을 여러개 실행하는 프로그래머블 제어기에 있어서, 상기 각각의 제어 로직을 상기 전체 제어 로직을 실행시키는 하나의 제어 로직 실행 태스크로부터 호출 받는 함수로 구현시키는 단계; 상기 전체 제어 로직 중에서 어느 하나의 제어 로직을 변경해야 하는 경우 해당 제어 로직 파일을 로드하여 해당 제어 로직을 변경하는 단계; 상기 변경된 제어 로직을 컴파일하여 제어 로직을 프로그래머블 제어기가 이해할 수 있는 함수로 구현하는 제어 로직 함수에 대한 목적 부호를 생성하는 단계; 상기 생성된 목적 부호를 상기 프로그래머블 제어기에 다운로드한 후 메모리에 로드하고 기존에 상기 프로그래머블 제어기에 로드되어 있던 다른 모듈들과 동적으로 링크시키는 단계; 상기 제어 로직 함수가 상기 메모리에 로드되었을 때 로드된 메모리 위치를 나타내는 함수 포인터 가운데 변경된 제어 로직에 해당하는 함수 포인터를 새롭게 로드된 상기 변경된 제어 로직의 메모리 위치 값으로 변경시키는 단계; 및 상기 제어 로직 실행 태스크가 상기 함수 포인터가 가리키는 함수를 호출하므로 상기 변경된 제어 로직에 대한 제어 로직 함수를 호출하여 상기 변경된 제어 로직을 재실행시키는 단계를 구비하여 이루어지는 것을 특징으로 한다.
이하에서는 첨부한 도면을 참조하여 본 발명의 양호한 실시예에 따른 프로그래머블 제어기의 제어 로직 실행 방법에 대해서 상세하게 설명한다.
도 5는 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법에 적용되는 제어 로직 실행 태스크의 구현 방법을 설명하기 위한 도이고, 도 6은 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법을 설명하기 위한 도이다.
도 5에 도시하는 바와 같이, 본 발명에 적용되는 제어 로직 실행 태스크 구현 방법은 전체의 제어 로직을 하나의 제어 로직 실행 태스크로 구현하는 것으로써, 본 발명에서 사용자가 작성한 제어 로직은 제어 로직 실행 태스크가 함수 포인터를 이용하여 간접적으로 호출하는 제어 로직 함수로 구현된다.
전술한 바 있는 제어 로직은 사용자가 작성한 것으로 제어 대상에 대한 제어 방법을 나타내는 것으로써 일반적으로 시스템이 제공하는 제어용 라이브러리 함수들에 대한 호출 리스트의 형태로 이루어져 있다.
제어 로직 함수는 사용자가 작성한 제어 로직을 프로그래머블 제어기가 이해할 수 있는 함수로 구현하는 것으로써, 이러한 제어 로직 함수는 호스트에서 컴파일되어 목적 부호(object code)로 생성되고, 이것이 프로그래머블 제어기에 다운로드된다. 또한, 제어 로직 함수는 메모리에 로드되어 기존에 프로그래머블 제어기에 있는 모듈들과 동적으로 링크된다.
여기서, 제어 로직 함수가 메모리에 로드되었을 때 로드된 메모리 위치를 함수 포인터로 나타내며, 제어 로직 함수가 메모리에 로드되지 않은 경우에는 NULL 함수로 나타낸다.
한편, 감시 및 제어 시스템인 BAS(Building Automation System)나 DCS(Distributed Control System) 등은 대상 플랜트를 제어하기 위하여 플랜트의 여러 부분들에 대한 제어 로직을 프로그래머블 제어기를 이용하여 실행시킨다. 하나의 프로그래머블 제어기에서는 여러 개의 제어 로직이 동시에 실행되고, 이러한 제어 로직들은 제어 대상 플랜트로부터 입력받아 자신의 알고리즘에 의해 연산을 수행하고 다시 제어 대상 플랜트로 제어 값을 출력한다.
전술한 바와 같이, 실시간으로 제어가 수행되는 도중에 여러 개의 제어 로직중 일부를 변경해야 하는 경우에는 도 6에 도시하는 바와 같이, 변경해야 하는 해당 제어 로직 파일을 로드하여 제어 로직을 변경한다. 변경된 제어 로직을 크로스 컴파일하여 제어 로직 함수에 대한 목적 부호를 생성하고, 생성된 목적 부호를 프로그래머블 제어기에 다운로드한 후 이것을 메모리에 로드하고 기존에 프로그래머블 제어기에 로드되어 있던 다른 모듈들과 동적으로 링크시킨다. 여기서, 함수 포인터 가운데 변경된 제어 로직에 해당하는 함수 포인터는 새롭게 로드된 변경 제어 로직의 메모리 위치 값을 갖게 되며, 제어 로직 실행 태스크는 함수 포인터가 가리키는 함수를 호출하여 변경된 제어 로직에 대한 제어 로직 함수를 호출한다. 다시 말해서, 제어 로직이 변경되는 경우 제어 로직 실행 태스크는 그대로 실행 중에 있으면서 제어 로직 실행 태스크가 호출하는 제어 로직 함수와 이 함수를 가리키는 함수 포인터만 변경이 된다.
결론하여, 전술한 바와 같이 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법은 실시간으로 제어가 수행되는 도중에 여러 개의 제어 로직 중 일부를 변경해야 하는 경우 다른 제어 로직의 수행에는 영향을 주지 않고 해당 제어 로직만 변경한 후 재수행이 가능하기 때문에 대상 플랜트에 대한 시운전시 제어 로직 전체를 튜닝해야 하는 경우 효율적으로 튜닝이 가능하다. 또한, 여러 개의 제어 로직을 하나의 제어 로직 실행 태스크가 실행하므로 빈번한 태스크 스위칭으로 인한 오버헤드를 줄이므로 시스템의 성능도 향상시킬 수 있다.
본 발명의 프로그래머블 제어기의 제어 로직 실행 방법은 전술한 실시예에 국한되지 않고 본 발명의 기술 사상이 허용하는 범위 내에서 다양하게 변형하여 실시할 수 있다.
이상에서 설명한 바와 같은 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법에 따르면, 하나의 제어 로직 실행 태스크로 전체의 제어 로직을 실행하도록 하며, 개별 제어 로직은 제어 로직 실행 태스크로부터 호출 받는 함수로 구현함으로써, 일부의 제어 로직이 변경된 경우 나머지 변경되지 않은 제어 로직의 수행과는 무관하게 변경된 제어 로직들만을 수정한 후 프로그래머블 제어기에서 수정된 제어 로직을 실행시킬 수 있는 효과가 있다. 또한, 여러 개의 제어 로직을 하나의 제어 로직 실행 태스크가 실행하므로 빈번한 태스크 스위칭으로 인한 오버헤드를 줄이므로 시스템의 성능을 향상시킬 수 있는 효과가 있다.
도 1은 종래의 일 실시예에 따른 제어 로직 실행 태스크 구현 방법을 설명하기 위한 도,
도 2는 종래의 일 실시예에 따른 제어 로직 실행 방법을 설명하기 위한 도,
도 3은 종래의 타 실시예에 따른 제어 로직 실행 태스크 구현 방법을 설명하기 위한 도,
도 4는 종래의 타 실시예에 따른 제어 로직 실행 방법을 설명하기 위한 도,
도 5는 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법에 적용되는 제어 로직 실행 태스크의 구현 방법을 설명하기 위한 도,
도 6은 본 발명의 프로그래머블 제어기의 제어 로직 실행 방법을 설명하기 위한 도이다.

Claims (1)

  1. 제어 대상에 대한 제어 방법을 나타내는 제어 로직을 여러개 실행하는 프로그래머블 제어기에 있어서,
    상기 각각의 제어 로직을 상기 전체 제어 로직을 실행시키는 하나의 제어 로직 실행 태스크로부터 호출 받는 함수로 구현시키는 단계;
    상기 전체 제어 로직 중에서 어느 하나의 제어 로직을 변경해야 하는 경우 해당 제어 로직 파일을 로드하여 해당 제어 로직을 변경하는 단계;
    상기 변경된 제어 로직을 컴파일하여 제어 로직을 프로그래머블 제어기가 이해할 수 있는 함수로 구현하는 제어 로직 함수에 대한 목적 부호를 생성하는 단계;
    상기 생성된 목적 부호를 상기 프로그래머블 제어기에 다운로드한 후 메모리에 로드하고 기존에 상기 프로그래머블 제어기에 로드되어 있던 다른 모듈들과 동적으로 링크시키는 단계;
    상기 제어 로직 함수가 상기 메모리에 로드되었을 때 로드된 메모리 위치를 나타내는 함수 포인터 가운데 변경된 제어 로직에 해당하는 함수 포인터를 새롭게 로드된 상기 변경된 제어 로직의 메모리 위치 값으로 변경시키는 단계; 및
    상기 제어 로직 실행 태스크가 상기 함수 포인터가 가리키는 함수를 호출하므로 상기 변경된 제어 로직에 대한 제어 로직 함수를 호출하여 상기 변경된 제어 로직을 재실행시키는 단계를 구비하여 이루어지는 것을 특징으로 하는 프로그래머블 제어기의 제어 로직 실행 방법.
KR10-1998-0039390A 1998-09-23 1998-09-23 프로그래머블 제어기의 제어 로직 실행 방법 KR100437013B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0039390A KR100437013B1 (ko) 1998-09-23 1998-09-23 프로그래머블 제어기의 제어 로직 실행 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1998-0039390A KR100437013B1 (ko) 1998-09-23 1998-09-23 프로그래머블 제어기의 제어 로직 실행 방법

Publications (2)

Publication Number Publication Date
KR20000020675A KR20000020675A (ko) 2000-04-15
KR100437013B1 true KR100437013B1 (ko) 2005-05-24

Family

ID=19551581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0039390A KR100437013B1 (ko) 1998-09-23 1998-09-23 프로그래머블 제어기의 제어 로직 실행 방법

Country Status (1)

Country Link
KR (1) KR100437013B1 (ko)

Also Published As

Publication number Publication date
KR20000020675A (ko) 2000-04-15

Similar Documents

Publication Publication Date Title
CN109614170B (zh) 控制由计算系统执行的任务
US20120253479A1 (en) System and Method for Creating a Graphical Control Programming Environment
KR100641015B1 (ko) 프로그램가능한 논리 제어기의 제어 논리로의 시퀀스인터프리터 접근법을 사용하는 방법 및 장치
CN111552172B (zh) 一种数据处理方法、装置、存储介质及电子设备
KR100437013B1 (ko) 프로그래머블 제어기의 제어 로직 실행 방법
JP7085305B2 (ja) コントロールシステム及びコントロール方法
JP2004280299A (ja) コントローラ、開発装置及びシステム
JP7364388B2 (ja) 制御システム
EP1150206A1 (en) A method for converting information related to the hardware/software configuration of a distributed control system
KR100282094B1 (ko) 제어로직 작성기의 제어 로직 관리 방법
KR20020001853A (ko) 모션컨트롤러의 프로그래밍 방법
Penny et al. Use of multiprogramming in the design of a low cost digital computer
JP3099889B2 (ja) 電子計算機、プログラマブル論理回路及びプログラム処理方法
US10768597B2 (en) Method and controller for flexible process control
Tešanović et al. Ensuring real-time performance guarantees in dynamically reconfigurable embedded systems
KR100271596B1 (ko) 기능블럭형 공정 제어 프로그램의 해석 및 실시간 실행 방법
Fernandez-Gauna et al. Simion zoo: A workbench for distributed experimentation with reinforcement learning for continuous control tasks
Piedrafita et al. Evaluation of Sequential Function Charts execution techniques. The Active Steps Algorithm.
KR100250206B1 (ko) 멀티프로세싱이 가능한 피엘씨 및 구현방법
Crockett Triform programs
CN1119744C (zh) 实现多任务功能的微型机可编程控制器及其控制方法
Khalgui et al. Implementation of agent-based reconfigurable embedded control systems
Palumbo et al. Considerations in the development of a knowledge-based control systems design associate
CN117435268A (zh) 一种动态加载用户程序的方法
Horn et al. Platform for advanced control applications

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120404

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130408

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150305

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170309

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 15

EXPY Expiration of term