KR100224379B1 - 공정 제어 알고리즘 생성 방법 - Google Patents

공정 제어 알고리즘 생성 방법 Download PDF

Info

Publication number
KR100224379B1
KR100224379B1 KR1019970021703A KR19970021703A KR100224379B1 KR 100224379 B1 KR100224379 B1 KR 100224379B1 KR 1019970021703 A KR1019970021703 A KR 1019970021703A KR 19970021703 A KR19970021703 A KR 19970021703A KR 100224379 B1 KR100224379 B1 KR 100224379B1
Authority
KR
South Korea
Prior art keywords
control algorithm
input
block diagram
functional block
function
Prior art date
Application number
KR1019970021703A
Other languages
English (en)
Other versions
KR19980085571A (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 KR1019970021703A priority Critical patent/KR100224379B1/ko
Priority to US09/058,966 priority patent/US6173208B1/en
Publication of KR19980085571A publication Critical patent/KR19980085571A/ko
Application granted granted Critical
Publication of KR100224379B1 publication Critical patent/KR100224379B1/ko

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
    • G05B19/056Programming the PLC
    • 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/13Plc programming
    • G05B2219/13134Two or more languages mixed, RLD, SFC, FBD, IL, ST, relay ladder, function block, sequential function, instruction list, structured text mixed to form logic control program

Landscapes

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

Abstract

본 발명은 공정 제어 시스템에 있어서 기능 블럭도(Function Block Diagram)를 이용하여 작성한 그래픽형 제어 알고리즘을 수행할 수 있는 문자형 제어 코드로 자동 변환 생성하는 방법에 관한 것으로, 본 발명에 따른 방법은 시스템 워크스테이션(1), 상기 시스템 워크스테이션(1)에 이더넷(6)으로 접속되어 입출력 데이타와 상기 시스템 워크스테이션(1)에 제공되는 기능을 지원하는 중앙 제어기 연산 처리부(8), 원거리 입출력부(13)와의 데이타 통신을 위한 프로피버스 드라이버(9), 상기 프로피버스 드라이버가 공용 버스인 VME 버스(9)에 접속되어 구성된 공정 자동화 시스템에서 상기 공정 제어기를 제어하기 위한 공정 제어 알고리즘을 생성하는 방법에 있어서, 상기 시스템 워크스테이션(1)에서 편집시 요청에 따라서 입출력 데이타를 데이타 베이스로 전송하는 단계, 상기 전송된 입출력 데이타를 상기 시스템 워크스테이션(1)의 시스템 워크스테이션 모니터(2) 화면에 입출력 기능 블럭 메뉴로 제공하는 단계, 상기 입출력 기능 블럭 메뉴 및 기본 기능 블록 메뉴를 참조하여 기능 블럭도 형태의 제 1 제어 알고리즘을 편집 생성하는 단계 및 제 1 제어 알고리즘을 기능 블럭도 언어 형태의 제 2 제어 알고리즘으로 자동 변환하는 단계를 포함한다.

Description

공정 제어 알고리즘 생성 방법
본 발명은 공정 제어 시스템에서의 공정 제어 알고리즘 생성 방법에 관한 것으로서, 특히 기능 블럭도(Function Block Diagram)를 이용하여 작성한 그래픽형 제어 알고리즘을 수행할 수 있는 문자형 제어 코드로 자동 변환 생성하는 방법에 관한 것이다.
종래부터 대규모 공정 제어 분야에서 마이크로프로세서 또는 디지탈 컴퓨터를 이용하여 자동 생성 시스템을 구성하고자 하는 시도가 있어 왔다. 예를 들어 크레인 제어 시스템은 운전 조작실로부터 운전자의 조작 명령에 의해 갠트리(gantry), 트롤리(trolley), 호이스트(hoist) 등 세가지 종류의 전동기 및 각종 구동 장치(로프텐셔너, 스프레더 조작기 등)을 적절히 제어하여야 한다. 이러한 다기능 제어기로 공정을 제어하려면 제어 대상에 따른 사용자 프로그램, 즉 제어 알고리즘을 작성해야 한다. 제어 알고리즘을 작성하기 위하여 고급 프로그램 언어인 C++, PASCAL 등과 같은 범용 언어를 사용할 수도 있으나, 현장 사용자가 다루기에는 너무 일반적이고 복잡하며, 구성된 하드웨어를 구동시키기 위하여 하드웨어의 세부 특성을 일일히 파악해야 하는 어려움이 있다. 이러한 어려움을 해소하기 위하여 프로그램형 논리 제어기에서는 그래픽 제어 언어로 래더 다이어그램을 제공하고 있으나, 프로그램형 논리 제어기는 본래 순차 제어 특성을 지니므로 공정의 진행 순서에 따른 순차 제어를 담당하는 기능 및 구동 장치의 동작 속도 설정, 로프 장력 제어, 각종 기계 장치 조작 등 빠른 속도를 요하는 루프 제어 기능을 갖는 공정 제어기로는 충분하지 않으며, 래더 다이어그램의 경우 시스템이 커질수록 복잡성이 기하급수적으로 증대함으로써 문제가 발생하였을때 문제를 추출해 내기 어려운 단점이 있다.
따라서, 이상과 같은 단점을 해소하기 위하여, 본 발명은 크레인 공정 자동화 시스템에 있어서 각 제어의 기본 단위 요소를 하나의 블럭으로 기능화함으로써 다양한 대상 공정에 대한 공정 제어 알고리즘을 생성하는 방법, 및 기능 블럭도로 작성된 공정 제어 알고리즘을 제어 시스템에서 수행할 수 있는 형태인 문자형 제어 코드로 자동적으로 변환하는 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명에 따른 공정 제어 알고리즘 생성 방법은, 시스템 워크스테이션, 상기 시스템 워크스테이션에 이더넷으로 접속되어 입출력 데이타와 상기 시스템 워크스테이션에 제공되는 기능을 지원하는 중앙 제어기 연산 처리부, 원격 입출력 장치와의 데이타 통신을 위한 프로피버스 드라이버, 상기 프로피버스 드라이버가 접속되는 공용 버스인 VME 버스를 포함하는 공정 자동화 시스템을 제어하기 위한 공정 제어 알고리즘을 생성하는 방법에 있어서, 상기 시스템 워크스테이션에서 편집시 요청에 따라서 입출력 데이타를 상기 시스템 워크스테이션의 기능 블럭도 편집기로 데이타 베이스 형태로 전송하는 단계, 상기 전송된 입출력 데이타를 상기 시스템 워크스테이션의 시스템 워크스테이션 모니터 화면에 입출력 기능 블럭 메뉴로 제공하는 단계, 상기 입출력 기능 블럭 메뉴 및 기본 기능 블럭들을 참조하여 기능 블럭도 형태의 제 1 제어 알고리즘을 편집 생성하는 단계, 및 상기 제 1 제어 알고리즘을 기능 블럭도 언어 형태의 제 2 제어 알고리즘으로 자동 변환하는 단계를 포함하는 것을 특징으로 한다.
이와 같은 본 발명의 특징적 구성에 따르면, 기능 블럭을 이용하여 사용자와 컴퓨터의 상호 작용(man-machine interface)에 의해 손쉽게 제어 알고리즘을 구성하는 것이 가능한다. 따라서, 제어 연산에 대한 문자형 제어 코드를 일일히 기억한 후 구문에 맞춰서 제어 알고리즘을 작성할 필요가 없으며, 실제 입출력 장치 및 신호에 관한 상세한 지식이 필요치 않으므로 사용자가 용이하게 제어 알고리즘을 기술할 수 있게 되며, 특정 단위의 제어 기능을 하나의 블럭으로 표현하게 함으로써 기능별로 모듈화된 제어 알고리즘의 작성을 가능하게 해 준다. 뿐만 아니라, 본 발명에 따르면, 사용자가 특정한 기능을 수행하는 기능 블럭들을 하나의 사용자 기능 블럭으로 정의함으로써, 반복 수행되는 제어 연산을 중복해서 서술하는 번거로움을 해소하여 제어코드의 효율을 향상시킨다. 그 밖에도 본 발명은 블럭도 형태의 제어 알고리즘을 소정의 문자형 언어로 자동 변환하는 기능을 제공해 주므로 사용자가 실제적인 상세코드를 숙지하거나 이해할 필요가 없게 된다.
도1은 본 발명의 크레인 공정 자동화 시스템을 도시한 블럭도.
도2는 본 발명에 의한 제어 알고리즘 생성의 단계들을 도시한 순서도.
도3은 도2에서의 기능 블럭도에 대한 문자형 언어 형태의 제어 알고리즘으로 변환하는 단계(20)의 세부 단계들을 도시한 순서도.
도4는 도3에서의 블럭도 리스트를 재구성하는 단계(24)의 세부적인 과정들을 도시한 순서도.
도5는 본 발명에 따른 기능 블럭도 편집기에 대한 주 메뉴 기능을 기초로 사용자 인터페이스 화면을 도시한 도면.
도6은 본 발명에 따른 기능 블럭도 편집기에 대한 블럭도 편집의 사용자 인터페이스 화면.
도7은 본 발명에 따른 사용자 기능 블럭 정의 및 편집을 위한 사용자 인터페이스 화면.
도8(a) 및 (b)는 본 발명에 따른 편집된 기능 블럭도와 방향 그래프와의 대응 관계를 도시한 도면.
도9는 본 발명에 따른 수행 순서에 적합한 제 2 제어 알고리즘으로 자동 변환하기 위한 자료 구조를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
1 : 시스템 워크스테이션 2 : 시스템 워크스테이션 모니터
3 : 마우스 4 : 하드디스크
5 : 키보드 6 : 이더넷
7 : VME 공용 버스 8 : 중앙 제어기 연산 처리부
9 : 프로피 버스 드라이브 10 : 직접 입출력 모듈
11 : 프로피 버스 12 : 전동기 제어기
13 : 원거리 입출력부 14 : 운전 조작실
15 : 갠트리 입출력부 16 : 센서
이하, 첨부 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도1은 본 발명의 크레인 공정 자동화 시스템의 전체적인 구성을 개략적으로 도시한 도면이다. 시스템 워크스테이션(1)은 바람직하게는 IBM-PC와 호환 기종인 컴퓨터이며, 시스템 워크스테이션(1)에 대한 입력 장치로는 마우스(3) 및 키보드(5)를 이용하며, 출력 장치로는 시스템 워크스테이션 모니터(2)를 이용한다. 중앙 제어기 연산 처리부(8)는 실시간 운영체제로 주 연산부가 구축되어 있으며 시스템 워크스테이션(1)과는, 예를 들어 이더넷과 같은 TCP/IP 프로토콜로 통신함으로써 데이타를 공유한다. 중앙 제어기 연산 처리부(8), 프로피 버스 드라이버(9), 직접 입출력 모듈(10)로 구성된 중앙 제어 계층과, 예를 들어 원거리 입출력부(13), 운전 조작실(14), 갠트리 입출력부(15), 센서(16) 등을 포함하는 원격 입출력 시스템 및 전동기 제어기(12)들로 구성된 하위의 단위 기계 제어 계층을 결합하는 자료 연결로는 프로피 버스(11)를 사용하여, 중앙 제어 계층과 그 하위의 단위 기계 제어 계층이 고속의 실시간 통신으로 데이타를 공유할 수 있도록 한다. 또한 중앙 제어기 연산 처리부(8), 프로피 버스 드라이버(9), 및 직접 입출력 모듈은 전체 시스템의 데이타 관리를 위하여 현장에서 신뢰성 있는 버스로 알려진 VME 버스와 같은 공용 버스(7)에 접속 연결되어 있다. 제어 알고리즘에 필요한 기본 연산 단위로는 기본 기능 블럭들을 정의하여 사용하였다. 기본 기능 블럭들은 그 특성에 따라서 산술 기능 블럭, 삼각 함수 기능 블럭, 조합 기능 블럭, 비교 함수 기능 블럭, 비트-쉬프트 기능 블럭, 선택 기능 블럭, 변수형 변환 기능 블럭 및 기타 기능 블럭 그룹으로 분류 정의되어 제공하였다.
공정 자동화 시스템에서 제어 기능을 수행할 때 자주 사용되는 복잡한 일련의 특정한 제어 연산들을 기능 블럭들의 모임인 사용자 기능 블럭으로 정의하여 사용할 수 있는 기능 블럭들의 의미있는 연결 그룹인 사용자 기능 블럭은 시스템 워크스테이션(1)에서 문자 편집기를 이용하여 생성해서 하드 디스크(4)에 화일의 형태로 저장된다. 이미 특정 이름으로 만들어진 사용자 기능 블럭은 그 용도의 사소한 변경에 따라서 편집, 수정하는 것이 가능하며, 이러한 사용자 기능 블럭들은 편집기 실행 중에 동적으로 생성되어 사용자 기능 블럭 객체 내애 라이브러리(library)의 형태로 유지되고 있으므로, 사용자 기능 블럭을 사용할 때마다 하드 디스크(4)을 참조할 필요가 없으며, 동적으로 호출하여 사용이 가능하다. 또한, 사용자가 정의한 블럭인 사용자 기능 블럭은 다른 제어 알고리즘에서 호출하여 사용할 수 있게 된다.
이제 도2의 순서도와 본 발명에서 제공하는 편집 도구인 기능 블럭도 편집기의 주메뉴 기능에 기초한 사용자 인터페이스 화면을 도시한 도5를 참조하여, 상기 기능 블럭을 토대로 기능 블럭도 제어 알고리즘을 생성하는 방법에 대해 상세히 설명하기로 한다. 본 발명에서는 제어 알고리즘에서 필요로 하는 입출력 데이타(예를 들어, 채널 번호, 노드(node)번호, 입력 데이타 번호 등)을 참조하는데 있어서, 입출력 신호 등에 대한 상세한 정보를 알아야 하는 번거로움을 줄이기 위하여 입출력 데이타를 데이타 베이스의 형태로 유지한다. 이러한 데이타 베이스는 입출력 데이타에 대한 상세 설정값들을 포함하고 있다. 대상 공정에 대한 입출력 데이타 베이스는 시스템 워크스테이션(1)이 구동하는 하드 디스크(4)에 저장되어 있다.
먼저, 도2의 단계17)에서 하드 디스크(4)에 저장되어 있는 입출력 데이타는 시스템 워크스테이션(1)의 요청에 의해 시스템 워크스테이션(1)의 기능 블럭도 편집기로 데이타 베이스 형태로 전송된다. 단계(18)에서는 시스템 워크스테이션(1)으로 전송된 입출력 데이타를 시스템 워크스테이션 모니터(2)의 사용자 인터페이스 화면에서 입출력 블럭을 편집하고자 할 때, 대응되는 입출력 기능 블럭 목록으로 변환하여 제공하게 된다. 이와 같이 하나의 제어 알고리즘을 구성하기 시작할 때 제어 공정에 관련된 입출력 데이타를 데이타 베이스의 전송에 의해 한꺼번에 로드(load)하여 구성함으로써 실제로 제어기와 연결되지 않은 입력 장치로부터 제어 신호를 참조하거나 계산 처리된 제어 신호를 잘못된 출력 장치나 출력 노드에 내보내는 등의 오류를 범하지 않도록 해준다. 또한, 제어 알고리즘을 구축하기 위하여 이름 형태로 전송된 입출력 데이타는 특정 제어 알고리즘을 편집하기 시작하는 시점에서 각각의 이름에 해당되는 입력 기능 블럭과 출력 기능 블럭으로 분류되어 입출력 기능들로 제공되므로 산술 연산 기능 블럭 등 다른 기능 블럭들과 동일하게 취급된다.
단계(17)에서의 입출력 데이타의 전송 기능이나 단계(18)에서의 입출력 기능블럭으로 변환하는 기능은 사용자가 직접 복잡한 기능을 선택함으로써 처리되지 않고, 각 제어 알고리즘을 작성하거나 편집하기 시작할 때 도5에서의 File기능의 풀다운(pull down) 메뉴인 open기능이나 new 기능을 마우스(3)로 선택함으로써 간단히 수행된다. 단계(19)에서는 본 발명에 의해 제공되는 기능 블럭도 편집기를 이용해 기능 블럭의 편집이 이루어져 블럭도로 구성된 기능 블럭도 형태의 제 1 제어 알고리즘을 생성하게 된다.
도5와 도7을 참조하여 블럭 편집을 위한 사용자 인터페이스 화면을 설명하면, 사용자는 마우스로 기본 기능 블럭 아이콘(43)을 누른 후 기능 블럭 목록(44)에서 기능 블럭을 선택하여 원하는 화면 영역을 마우스로 다시 누름으로써 기능 블럭을 배치한다. Fbd메뉴가 제공하는 연결기능 또는 연결선 아이콘(41, 42)을 선택한 후 블럭들 사이에서 블럭의 입력 신호와 출력 신호를 연결하여 제어 신호의 연결관계 및 흐름을 표현한다. 연결선 아이콘(41)은 일반적인 모든 형태의 신호 연결에 사용되며 연결선 아이콘(42)은 논리형 신호에 대하여 논리 부정 연결선으로 사용된다. 제어 신호의 연결은 먼저 제어 신호의 출력에 해당되는 블럭을 마우스(3)로 선택한 후 제어 신호의 입력에 해당하는 블럭을 선택하는 마우스의 잇따른 누름 동작으로 단순히 수행된다. 신호의 흐름을 연결하는데 있어서, 하나의 기능 블럭이 두개 이상의 입력 신호를 갖는 경우에는 순서대로 연결하도록 되어 있어서 복잡한 입력 신호의 선택을 간소화하였다. 또한 연결되는 신호가 서로 맞지 않는 경우에는 자동적으로 검사함으로써 신호의 형태에 따라서 올바르게 연결되도록 하였다. 편집하는 동안 잘못 그려진 블럭을 지우기 위하여 cut기능이 제공된다.
또한, 사용자 기능 블럭의 정의는 사용자 기능 블럭 아이콘(45)에 의해서 수행된다. 블럭도를 편집하는 도중에 사용자 기능 블럭 아이콘(45)을 선택하면 사용자 기능 블럭을 편집, 정의하기 위한 도7과 같은 사용자 인터페이스 화면이 나타난다. 사용자 기능 블럭은 그 블럭의 이름과 입출력 노드에 대한 자료 형태 및 이름을 정의한 후 블럭의 내용을 문자형 언어 형태로 편집, 작성하며, 작성이 완성되면 확인단추를 누름으로써 시스템 워크스테이션(1)이 구동하는 하드 디스크(4)의 사용자 기능 블럭 영역에 화일의 형태로 저장된다. 사용자 기능 블럭은 그 특성에 맞춰서 예를 들어 12자 이내의 알파벳 문자로 사용자가 임의의 이름을 지정하도록 되어 있다. 이러한 과정을 거쳐서 작성이 완료된 사용자 기능 블럭은 기능 블럭도 편집기에서 사용할 수 있는 사용자 기능 블럭으로 등록되어 제어 알고리즘에 대한 블럭도를 편집할 때 사용하게 된다.
다시 도2를 참조하여 제어 알고리즘 생성 단계들을 설명하면, 단계(20)에서는 기능 블럭도(function block diagram)의 형태로 그려진 제 1 제어 알고리즘이 기능 블럭도 편집기의 code generation 기능 메뉴(도5 참조)에 의해 기능 블럭도 언어(function block language)형태의 제 2 제어 알고리즘으로 변환된다. 변환과정은 먼저 기능 블럭도로부터 블럭들을 수행 순서에 맞게 재배열한 블럭도 리스트를 생성한다. 이는 블럭도를 편집하는 동안 기능 블럭들은 그려진 순서에 따라서 블럭도 내에 삽입되고 편집 과정을 통해서 지워지거나 새로이 그려지므로, 기능 블럭도에서 블럭이 지니고 있는 고유번호는 작성하고자 하는 제어 알고리즘의 순서와 일치하지 않은 채로 동적으로 변경되면서 유지되기 때문이다. 또한, 제어 알고리즘은 신호의 입출력 순서에 기초하여 구성되어야 하므로 신호의 흐름에 맞도록 블럭의 순서를 조정해야 한다. 따라서, 편집된 기능 블럭도 형태의 제어 알고리즘은 실행 순서에 대응되도록 적합하게 변경해야 하는데, 본 발명에서는 기능 블럭도 형태의 제 1 제어 알고리즘을 방향성 그래프(direct graph)개념을 도입하여 전환하였다. 도8에서 예시한 바와 같이, (a)에 도시된 기능 블럭도 형태의 제어 알고리즘은 블럭도 (a)에서 블럭의 블럭 고유 번호를 노드로 하고 블럭 사이의 연결선을 에지(edge)로 하여 (b)와 같이 방향 그래프로 나타낼 수 있다.
이 개념을 이용하여 제 1 제어 알고리즘을 실행 순서에 적합하게 제 2 제어 알고리즘으로 변환하는 방법에 관한 동작을 도3의 순서도를 참조하여 설명하면 다음과 같다. 편집 작업동안 기능 블럭을 화면에 놓을 때 블럭에 대하여 고유의 번호가 매겨지게 된다. 그런데 편집 과정을 거치는 동안 기능 블럭을 삭제하는 경우 비어 있는 고유 번호가 많이 발생하게 되므로, 단계(21)에서 기능 블럭도에 표현되어 있는 모든 기능 블럭에 대하여 새로이 고유 번호를 매기는 절차를 수행한다. 사용자 기능 블럭의 경우에는 출력 신호의 갯수를 최대 8개까지 가능하도록 제공하므로 사용자 기능 블럭의 출력 갯수만큼 블럭의 고유 번호를 예약함으로써 블럭의 고유 번호가 예상하지 않은 결과로 중복되는 것을 방지한다.
단계(22)에서 각 기능 블럭에 대하여 입출력 신호 블럭이 정의된 형태 및 수만큼 지정되었는지의 여부를 검사한다. 즉, 모든 기능 블럭에 대하여 이미 입력 신호 및 출력 신호의 형태가 정의되어 있으며 그 기능 블럭을 수행하기 위하여 몇 개의 입출력 신호가 필요한지 라이브러리로 정의되어 있으나, 편집 과정을 통하여 사용자가 블럭을 화면에 배치시키고 연결선 기능 메뉴를 이용하여 블럭 사이의 관계를 표현하였다고 할지라도 이 블럭도가 실행될 수 있는 형태로 모두 완전히 그려졌다는 것을 알 수는 없다. 따라서 이 단계(22)에서는 라이브러리를 참조하면서 각 기능 블럭에 대하여 모든 입출력 신호가 제대로 지정되었는지를 검사한다. 단계(22)를 거치는 동안 블럭도가 오류없이 완전히 구성된 블럭도이면 단계(23)을 수행한다.
단계(23)은 단계(21)과 단계(22)를 통하여 전처리가 완료된 편집 블럭도 리스트를 제 2 제어 알고리즘으로 변환, 생성하기 위하여 실제로 블럭 리스트를 조정하는 과정이다. 도8(b)에 나타낸 바와 같이, 제어 알고리즘은 방향 그래프에서 입력 에지(incoming edge)인 입력 신호 블럭이 모두 처리되면 해당 기능 블럭 노드를 처리하고, 각 기능 블럭 노드를 처리할 때 그 노드에 대한 출력 에지(outcoming edge)인 출력 신호 블럭 처리함으로써 생성할 수 있다. 단, 입력 블럭의 경우에는 입력 신호가 존재하지 않으므로 방향 그래프에서 입력 에지가 모두 처리된 것으로 간주하여 처리하면, 제어 알고리즘의 블럭들은 수행 가능한 순서로 변경되며 그 순서는 도8(b)의 블럭 노드 옆에 표기된 번호와 같게 된다. 따라서, 블럭도 리스트를 방향 그래프의 개념으로 처음 블럭에서 부터 마지막 블럭까지 훑어가면서 각 기능 블럭에 대한 입력 신호 블럭이 모두 처리될 때까지 기다리다가 모두 처리되면 그 기능 블럭을 처리하도록 조정한다. 이러한 변환 방법을 구현하는 과정에서는 도 9와 같은 자료 형태를 고안하여 사용하였다. 도 9의 자료 형태는 내부적으로는 스택(stack)의 개념을 가지고 구현되는 것으로써 변환 과정을 통하여 다음에 처리될 후보 기능 블럭들을 유지하기 위하여 사용되었으며 이중 연결 리스트(doubly linked list)를 구성한다.
도9로 표현된 스택 형태의 자료 구조를 이용하여 제 1 제어 알고리즘의 블럭도 리스트를 수행 순서에 따른 제 2 제어 알고리즘의 블럭도 리스트로 조정 변환하는 방법을 도4를 참조하여 설명하면 다음과 같다. 블럭도 리스트에 대한 첫번째 검사가 제대로 끝나면(즉, 도3의 단계(22)가 오류를 발생하지 않고 끝난 경우) 블럭도 리스트를 처음부터 다시 쫓아가면서 기능 블럭들을 처리한다. 입력 기능 블럭은 상기한 바와 같이 입력 신호 블럭이 없으며 도3의 단계(23)에서 입력 기능 블럭은 기능 블럭도 리스트의 처음으로 이동되었으므로 기능 블럭도 리스트의 처음에서부터 입력기능 블럭이 아닌 블럭이 나올 때까지 입력 기능 블럭들을 스택에 넣는다(push, 단계 25). 후보 스택에 기능 블럭이 있고(단계 26) 스택의 꼭대기(top)에서 기능 블럭의 모든 입력 신호가 처리된 경우(단계 27) 기능 블럭도 리스트에서 해당 기능 블럭에 대한 포인터를 변경하여 제 2 제어 알고리즘 블럭도 리스트로 이동시킨다(단계 28). 단계 28에 의해 스택의 꼭대기에 있는 블럭은 변환 작업이 이루어졌으므로 스택에서 꺼내고(pop, 단계 29), 꺼낸 기능 블럭에 대한 신호 출력 블럭을 처리한다. 꺼낸 기능 블럭의 신호 출력 블럭이 이미 스택에 있으면 스택에서 해당 블럭에 대한 입력 신호의 수를 1 감소시킴으로써 해당 입력 신호를 처리한 후, 입력 신호의 수가 변경되었으므로 입력 신호의 수가 0인지를 검사하여 0인 경우 즉, 입력 신호가 모두 처리된 경우 스택의 꼭대기(top)에 옮긴다(단계 31). 꺼낸 기능 블럭의 신호 출력 블럭이 스택에 포함되지 않았으면 새로운 노드를 생성하여 스택의 마지막(botton)에 넣는다(단계 32). 변경된 제 2 제어 알고리즘 블럭도 리스트는 단지 블럭도 리스트에 대한 블럭의 포인터를 적합하게 이용하여 생성하므로 변경된 블럭도 리스트의 맨 앞과 맨 뒤를 가리키는 두 개의포인터 외에 별도의 기억 장소를 요구하지 않아서 기억 장소를 효율적으로 사용할 수 있게 된다.
이와 같은 단계(24)에서 블럭도 리스트에 대한 검사 과정이 제대로 되면, 즉 기능 블럭도를 구성하는 모든 기능 블럭에 대하여 각 블럭 및 해당 블럭에 연결된 입출력 신호 블럭들을 후보 스택에 넣고 꺼내는 일련의 과정을 거친 후, 후보 스택에 남아있는 블럭이 없고(단계 26) 제 1 제어 알고리즘에 대한 블럭도 리스트의 모든 블럭을 처리하였다면(단계 33) 그 결과 생성된 블럭도 리스트는 제어 알고리즘의 순서와 일치하게 변경된 것이다(단계 34). 제 1 제어 알고리즘 리스트에 기능 블럭들이 처리되지 않고 남아있으면 수행할 수 없는 형태로 제어 알고리즘이 작성된 것이므로 해당 기능 블럭에 대하여 오류를 발생시킨다(단계 35). 따라서, 이와 같은 제 2 제어 알고리즘 블럭도 리스트의 순서에 따라서 정의된 문자형 제어 코드로 각 기능 블럭에 대하여 일대 일로 변환하고, 그렇지 않으면 현재 그려진 기능 블럭도는 기능 블럭의 신호가 서로 맞물려서 수행될 수 없는 형태이므로 문자형 제어 코드로 변경하지 않고 사용자에게 기능 블럭도에서 수행될 수 없는 해당 기능 블럭을 알려줌으로써 기능 블럭도를 수정하도록 한다. 이와 같이 수행 흐름에 맞게 생성된 블럭도 리스트를 변환하여 기능 블럭도 언어 형태의 제 2 제어 알고리즘을 생성하게 된다. 제 1 제어 알고리즘으로부터 code generation기능에 의해 생성된 제 2 제어 알고리즘을 예시하면 다음과 같다.
FUNCTION_BLOCK_VAR
test : RS ;
END_FUNCTION_BLOCK_VAR
%LB1 : = Var #12 ;
%LB2 : = Var #3 ;
%LB3 : = %LB1 %LB2 ;
Var #2 : = %LB3 ;
test(S : %LB1, R1 : %LB2) ;
%LB5 : test. Q1 ;
Var #7 : = %LB5 ;
이와 같이 구성된 본 발명의 제어 알고리즘은 단계(20)에서 변환된 기능 블럭도 형태의 제 2 제어 알고리즘 및 기능 블럭도 형태로 작성된 제 1 제어 알고리즘과 함께 하드 디스크(4)에 화일의 형태로 저장된다. 기능 블럭도 형태의 제 1 제어 알고리즘은 화일 형태로 저장되므로 작성한 후에 연결된 시스템적 요소의 사소한 변경과 기존 시스템 구성과 유사한 공정에 응용하기 위하여 그와 유사한 기능을 하는 제어 알고리즘 화일을 하드 디스크(4)로 부터 가져와서 해당 부분을 변경함으로써 전체를 재구성하지 않고 제어 알고리즘을 얻을 수 있다.
또한, 제어 알고리즘은 사용자의 기호에 따라서 기능 블럭도 편집기 뿐만 아니라 문자 편집기를 이용하여 기능 블럭도 언어 형태의 제어 알고리즘으로 직접 편집할 수 있다.
이와 같이 본 발명에 따르면, 제어 알고리즘을 기능 블럭들을 이용하여 사용자 인터페이스 화면에서 아이콘으로 주어진 블럭들을 입력 장치인 마우스로 선택하여 배치하고 블럭의 관계를 연결선으로 잇는 단순한 작업으로 손쉽게 프로그램할 수 있게 되며, 누구든지 용이하게 그래픽형으로 제어 알고리즘을 작성한 후 기능 메뉴를 단순히 선택함에 의해서 해당되는 문자형 제어 코드를 자동적으로 변환하여 생성할 수 있게 된다. 즉, 마우스 단추의 누름 조작만으로 프로그래밍이 이루어지게 되므로 프로그래밍 도구를 소규모화할 수 있으며, 일반적인 프로그래밍 언어에서 요구되는 컴파일러나 생성기 등에 대한 지식을 사용자에게 요구하지 않는다. 또한 그래픽형 제어 알고리즘에 대하여 자동적으로 적합성으로 검사하고 수행 순서에 맞는 제어 코드로 자동 변환시킴에 있어서 별도의 자료형을 요구하지 않으므로 시스템 기억 장치의 사용에 있어서 효율을 증대시킨다. 또한, 제어의 기본 요소인 기능 블럭에 의해서 여러가지 다양한 공정을 대상으로 제어 알고리즘을 작성할 수 있어서 범용성을 부여하면서 융통성을 높인다.
이상에서 설명한 바와 같이, 본 발명은 자동화 시스템에서 대상 공정에 대하여 가장 적합하고 우수한 자동화 시스템을 구성할 수 있도록 해 주며, 대상 공정을 제어하는 알고리즘을 사용자가 용이하고 융통성 있게 구성할 수 있도록 해 준다는 장점을 가진다.
본 발명은 예시적인 실시예를 참조하여 설명되었지만, 이러한 설명들은 제한적 의미로 해석되어서는 아니될 것이다. 본 발명이 관련된 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 상세한 설명을 참고로 하여 예시적인 실시예를 다양하게 변경 또는 조합하거나 달리 실시할 수도 있음은 명백하다. 따라서, 다음의 특허청구의 범위는 이러한 변경과 실시예들을 모두 포함하는 것으로 이해하여야 할 것이다.

Claims (4)

  1. 기능 블럭도 편집기를 구비하는 시스템 워크스테이션(1), 및 상기 시스템 워크스테이션(1)에 접속되어 입출력 데이타와 상기 시스템 워크스테이션(1)에 제공되는 기능을 지원하는 중앙 제어기 연산 처리부(8)를 포함하는 공정 자동화 시스템을 제어하기 위한 공정 제어 알고리즘을 생성하는 방법에 있어서, 상기 시스템 워크스테이션(1)에서 편집시 요청에 따라서 상기 시스템 워크스테이션의 데이타 베이스 관리부의 입출력 데이타를 상기 시스템 워크스테이션(1)의 기능 블럭도 편집기로 형태화된(formatted) 화일인 데이타 베이스 형태로 전송하는 단계, 상기 전송된 입출력 데이타를 상기 시스템 워크스테이션(1)의 모니터(2) 화면에 입출력 기능 블럭 메뉴로 제공하는 단계, 상기 입출력 기능 블럭 메뉴와 기본 기능 블럭들을 참조하여 기능 블럭도 형태의 제 1 제어 알고리즘을 편집 생성하는 단계, 및 상기 제 1 제어 알고리즘을 기능 블럭도 언어 형태의 제 2 제어 알고리즘으로 자동 변환하는 단계를 포함하는 것을 특징으로 하는 공정 제어 알고리즘 생성 방법.
  2. 제1항에 있어서, 상기 기능 블럭은 제어에 필요한 산술 기능 블럭, 삼각 함수 기능 블럭, 조합 기능 블럭, 비교 함수 기능 블럭, 비트-쉬프트 기능 블럭, 선택 기능 블럭, 변수형 기능 블럭을 포함하는 것을 특징으로 하는 공정 제어 알고리즘 생성 방법.
  3. 제1항에 있어서, 상기 제 2 제어 알고리즘으로 자동 변환하는 단계는, 상기 제 1 제어 알고리즘의 기능 블럭도에 있는 기능 블럭들의 고유 번호를 재정렬하는 단계, 상기 각 기능 블럭의 완전성 검사를 행하는 단계, 상기 편집 생성된 기능 블럭도 형태의 제 1 제어 알고리즘에서 입력 기능 블럭을 기능 블럭도 리스트의 처음으로 이동시키는 단계, 및 상기 각 기능 블럭을 수행 순서에 맞게 재배열함으로써 상기 기능 블럭도 리스트의 블럭을 재구성하는 단계를 포함하는 것을 특징으로 하는 공정 제어 알고리즘 생성 방법.
  4. 제3항에 있어서, 상기 재구성하는 단계는 기능 블럭에 대한 포인터와 기능 블럭의 고유 번호로 구성되는 스택형으로 구현되는 것을 특징으로 하는 공정 제어 알고리즘 생성 방법.
KR1019970021703A 1997-05-29 1997-05-29 공정 제어 알고리즘 생성 방법 KR100224379B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019970021703A KR100224379B1 (ko) 1997-05-29 1997-05-29 공정 제어 알고리즘 생성 방법
US09/058,966 US6173208B1 (en) 1997-05-29 1998-04-13 Method for generating control codes for use in a process control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970021703A KR100224379B1 (ko) 1997-05-29 1997-05-29 공정 제어 알고리즘 생성 방법

Publications (2)

Publication Number Publication Date
KR19980085571A KR19980085571A (ko) 1998-12-05
KR100224379B1 true KR100224379B1 (ko) 1999-10-15

Family

ID=19507742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970021703A KR100224379B1 (ko) 1997-05-29 1997-05-29 공정 제어 알고리즘 생성 방법

Country Status (2)

Country Link
US (1) US6173208B1 (ko)
KR (1) KR100224379B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251554B2 (en) 2012-12-26 2016-02-02 Analog Devices, Inc. Block-based signal processing

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3330379B2 (ja) * 1997-06-23 2002-09-30 マイクロエプシロン・メステクニク・ゲーエムベーハー・アンド・カンパニー・カーゲー 処理をモニターし、制御し、及び整合する方法
KR19990012455A (ko) * 1997-07-29 1999-02-25 이대원 공정제어용 통합제어 시스템
US6463339B1 (en) * 1999-09-27 2002-10-08 Rockwell Automation Technologies, Inc. High reliability industrial controller using tandem independent programmable gate-arrays
US6952405B2 (en) * 2000-12-05 2005-10-04 Sycamore Networks, Inc. Coding scheme using a transition indicator for signal transmission in optical communications networks
DE10197097B4 (de) * 2001-03-29 2012-02-23 Mitsubishi Denki K.K. Programmierwerkzeug
US6931288B1 (en) 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US7337430B2 (en) * 2001-07-20 2008-02-26 The Mathworks, Inc. Optimized look-up table calculations in block diagram software
US7200448B2 (en) * 2001-11-27 2007-04-03 Rockwell Automation Technologies, Inc. System and method for function block execution order generation
ATE261591T1 (de) * 2002-05-22 2004-03-15 Siemens Ag System und verfahren zur anpassung anwendungsspezifischer funktionsbausteine für ein automatisierungsgerät
JP2004078476A (ja) * 2002-08-14 2004-03-11 Fanuc Ltd 数値制御装置
US6640163B1 (en) * 2002-09-30 2003-10-28 Husco International, Inc. Operating system for a programmable controller of a hydraulic system
US7694272B2 (en) * 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7146361B2 (en) * 2003-05-30 2006-12-05 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)
US20040243560A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching
US7139752B2 (en) * 2003-05-30 2006-11-21 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
US20040243556A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and including a document common analysis system (CAS)
WO2005101147A1 (ja) * 2004-04-15 2005-10-27 Mitsubishi Denki Kabushiki Kaisha プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法
US7729789B2 (en) 2004-05-04 2010-06-01 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
EP1607811A1 (de) * 2004-06-18 2005-12-21 Siemens Aktiengesellschaft Verfahren zum Betrieb einer Recheneinheit sowie Signal zur Verarbeitung in einer Recheneinheit
EP1983426A1 (de) * 2007-04-17 2008-10-22 Siemens Aktiengesellschaft Automatisierte Visualisierung einer Auswahl von Simulationsdaten
US8407716B2 (en) * 2007-05-31 2013-03-26 Fisher-Rosemount Systems, Inc. Apparatus and methods to access information associated with a process control system
US8881039B2 (en) 2009-03-13 2014-11-04 Fisher-Rosemount Systems, Inc. Scaling composite shapes for a graphical human-machine interface
US8825183B2 (en) * 2010-03-22 2014-09-02 Fisher-Rosemount Systems, Inc. Methods for a data driven interface based on relationships between process control tags
US9600785B2 (en) * 2011-01-31 2017-03-21 International Business Machines Corporation Automatically generated and updated graphical rendering of processes
EP2827240A1 (en) * 2013-07-17 2015-01-21 ABB Technology AG Method for generating control-code by a control-code-diagram
EP3191940B1 (en) 2014-09-10 2019-11-06 Lego A/S A method for establishing a functional relationship between input and output functions
KR102273306B1 (ko) 2014-09-10 2021-07-07 레고 에이/에스 전자 장치들 사이의 무선 연결을 구축하기 위한 방법
EP3299914A1 (de) * 2016-09-26 2018-03-28 Siemens Aktiengesellschaft Verfahren zum erzeugen eines kontrollflussplanes
US20190068325A1 (en) * 2017-08-23 2019-02-28 Microsemi Storage Solutions, Inc. System and method for block-coding transcoding
DE102017011368A1 (de) * 2017-12-11 2019-06-13 Qass Gmbh Verfahren, Vorrichtung, und Komponenten davon, zum Erkennen von Ereignissen in einem Materialbearbeitungs- und/oder Herstellungsprozess unter Verwendung von Ereignismustern
JP7188198B2 (ja) * 2019-03-13 2022-12-13 オムロン株式会社 グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム
JP7183877B2 (ja) * 2019-03-13 2022-12-06 オムロン株式会社 グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5610828A (en) * 1986-04-14 1997-03-11 National Instruments Corporation Graphical system for modelling a process and associated method
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251554B2 (en) 2012-12-26 2016-02-02 Analog Devices, Inc. Block-based signal processing

Also Published As

Publication number Publication date
KR19980085571A (ko) 1998-12-05
US6173208B1 (en) 2001-01-09

Similar Documents

Publication Publication Date Title
KR100224379B1 (ko) 공정 제어 알고리즘 생성 방법
CN110543144B (zh) 图形化编程控制机器人的方法及系统
US7590970B2 (en) Autogeneration of code via human-machine interfaces (HMI) and self-building HMI
US4956773A (en) System and method of generating a source program from inputted schematic information
US4969083A (en) Network programmable logic controller system
EP1586966B1 (en) Control system configuration device
CN108681444A (zh) 一种基于xml技术的软plc组态开发方法
JPH0772920A (ja) Faシステムの制御方法及び装置
US6173245B1 (en) Programmable logic array device design using parameterized logic modules
EP3296860A1 (en) Program processing apparatus and program
CN111352620A (zh) 可视化组态编程方法及系统
EP0597646B1 (en) Apparatus and method for synthesizing program specifications
JPS5858608A (ja) 運動制御装置
CN111880793A (zh) 一种基于二进制文件的hmi组态配置系统和方法
JP2000020114A (ja) モーションコントローラのプログラム作成および実行方法
EP2631793B1 (en) Method for generating a technical document of functional specifications of a control unit of a vehicle to be programmed while the control unit is programmed
JP4301919B2 (ja) エディタ装置、コンピュータをエディタ装置として機能させるためのプログラム、および記録媒体
KR970010024B1 (ko) 기능 블럭도를 이용한 연속 공정 제어 알고리즘 생성 방법 및 장치
CN109522009A (zh) 桁架上下料机器人控制程序的编写方法
JP2537418B2 (ja) 制御プログラム作成装置
JP2003223204A (ja) プログラマブルコントローラのプログラミング方法およびその装置並びに記憶媒体
KR100258633B1 (ko) 제어로직 프로그램 관리방법
JP2000132295A (ja) Gui動作仕様記述装置及びgui制御装置及びguiシステム
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP2700013B2 (ja) プログラマブルコントローラのためのユーザプログラム用コンパイラ

Legal Events

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

Payment date: 20060630

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee