KR100264765B1 - Controlling algorithm changing system and changing method of controller - Google Patents
Controlling algorithm changing system and changing method of controller Download PDFInfo
- Publication number
- KR100264765B1 KR100264765B1 KR1019960021914A KR19960021914A KR100264765B1 KR 100264765 B1 KR100264765 B1 KR 100264765B1 KR 1019960021914 A KR1019960021914 A KR 1019960021914A KR 19960021914 A KR19960021914 A KR 19960021914A KR 100264765 B1 KR100264765 B1 KR 100264765B1
- Authority
- KR
- South Korea
- Prior art keywords
- word
- controller
- command
- control algorithm
- control
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B11/00—Automatic controllers
- G05B11/01—Automatic controllers electric
- G05B11/36—Automatic controllers electric with provision for obtaining particular characteristics, e.g. proportional, integral, differential
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Programmable Controllers (AREA)
Abstract
Description
본 발명은 제어기의 제어 알고리즘 변경 시스템 및 그 변경 방법에 관한 것으로서, 특히 적어도 하나 이상의 제어기를 갖는 시스템에서 제어기가 동작되는 도중에도 외부 조작자에 의해 제어 알고리즘을 용이하게 변경할 수 있는 제어기의 제어 알고리즘 변경 시스템 및 그 변경 방법에 관한 것이다.The present invention relates to a control algorithm changing system of a controller and a changing method thereof, and more particularly to a control algorithm changing system of a controller which can easily change a control algorithm by an external operator even while the controller is operating in a system having at least one controller. And a method of changing the same.
일반적으로, 디지털 제어기는 아날로그 제어기에 비해 특히 제어기 설계자 입장에서 제어 알고리즘을 자유롭게 구현할 수 있는 등의 다수의 이점으로 인해 산업계 전반에 걸쳐 널리 사용되고 있다.Generally, digital controllers are widely used throughout the industry due to the many advantages over analog controllers, including the freedom to implement control algorithms, especially for controller designers.
그런데, 상기 디지털 제어기는 설계시 자유롭게 제어 알고리즘의 변경이 가능한 반면에 제어기 설계가 종료되면 외부에서 조작자에 의해 제어 알고리즘 및 파라미터(parameter, 매개변수)를 고칠 수 있는 체계적인 방법이 제공되지 않고 있다. 따라서, 외부에서 프로그램 방식으로 복잡한 조작이 가능하지 않을 뿐만 아니라 이러한 조작을 제어기 동작 중에는 불가능하기 때문에 시스템에서는 일부 파라미터를 사전에 설정해 놓고 가변 스위치 등을 이용하여 제어 알고리즘이나 파라미터를 변경하는 방식을 사용하고 있다.However, the digital controller can freely change the control algorithm at the time of designing, but does not provide a systematic method of fixing the control algorithm and parameters (parameters) from the outside by the operator when the controller design is finished. Therefore, it is not possible to perform complicated operations from the outside in a programmable manner, and since such an operation can not be performed during the operation of the controller, the system uses a method of changing a control algorithm or a parameter by using a variable switch have.
구체적으로, 종래 기술에 의한 제어기의 제어 알고리즘 변경 방법은 다음과 같다.Specifically, a control algorithm change method of the controller according to the related art is as follows.
첫째, 프로그램의 원시파일을 고치고 컴퓨터 등을 이용해 재컴파일한 후에 롬(ROM)에 자료를 기억시키는 롬라이터(ROM Writer)를 이용하여 롬의 내용을 새롭게 변형시켜 사용하는 방법이다.First, it is a method to modify the original contents of the ROM by using a ROM writer which fixes the program's original file and recompiles it using a computer and then stores the data in the ROM.
그러나, 이 경우에 제어 알고리즘을 변경하기 위해서는 원시파일을 갖고 있어야 하며 제어 시스템을 개발한 작업자만이 제어기의 상태를 변경할 수 있다는 문제점이 있다.However, in this case, in order to change the control algorithm, it is necessary to have a source file and only the operator who developed the control system can change the state of the controller.
둘째, 원시파일을 컴파일하여 통신을 통해 PC 등에서 타겟 보드(TARGET BOARD)로 다운 로드(down load)하여 사용하는 방법이다.Second, the source file is compiled and downloaded from the PC to the target board (TARGET BOARD) via communication.
이때, 제어기의 상태 변경시 전문성이 요구되며 작업 시간이 상당히 소요되므로 쉽게 작업을 수행할 수 없다는 문제점이 있다.At this time, the controller needs to be specialized in changing the state of the controller, and since the operation time is considerably long, there is a problem that the operation can not be performed easily.
셋째, 사전에 시스템에서 이미 정해진 파라미터의 일부분을 가변스위치 등을 이용하여 제어기의 제어 알고리즘을 변경하는 방법이다.Third, it is a method of changing a control algorithm of the controller by using a variable switch or the like in a part of a parameter that has already been determined in the system.
그러나, 극히 제한된 파라미터만을 고칠 수 있고 전문성이 요구되어 쉽게 작업을 수행할 수 없다는 문제점이 있다.However, there is a problem that it is not possible to easily perform an operation because it is required to be able to repair only an extremely limited parameter and requires expertise.
또한, 교육용, 연구용, 시작품 제작용, 시험 기기, 통신기기에 사용되는 제어기의 경우에는 상황에 따라 조작자(조작자란 조작하는 사람과 통신을 위해 접근하는 컴퓨터 등 외부 지령 기기를 통칭)가 다음과 같이 제어기의 제어 알고리즘을 수시로 변경할 필요가 있다.In the case of controllers used for educational, research, prototype manufacturing, test equipment, and communication equipment, the operator (collectively, the external command equipment such as the operator accessing the operator and the operator for communication) It is necessary to change the control algorithm of the controller from time to time.
1. 제어기의 파라미터를 변경할 필요가 있다. 통상적으로 가장 많이 사용되는 것 중에는 PID(Proportional Integral Difference) 제어기의 제어 이득값의 튜닝, 샘플링 시간 간격의 가변 등이 여기에 해당된다.1. The parameters of the controller need to be changed. Among the most commonly used ones are the tuning of the control gain value of a proportional integral difference (PID) controller, the variation of the sampling time interval, and the like.
2. 피드백(feedback) 등의 목적으로 사용되는 제어기에 입력되는 센서의 종류를 사용자가 임의로 지정할 필요가 있다. 센서의 종류를 바꾸어 제어 성능에도 영향을 줄 수 있으며, 센서의 고장 등에 즉시 대처할 수 있게 하는 기능이 필요하다.2. It is necessary for the user to designate the type of sensor input to the controller used for feedback purposes. It is necessary to change the type of sensor to affect the control performance, and to be able to cope with sensor failure immediately.
3. 제어기의 제어 알고리즘을 미리 1개 이상을 준비해 놓고, 정해 놓은 몇 가지 중에서 선택할 필요가 있다. 이때, 제어기의 출력값도 알고리즘에 따라 선택될 수 있으며, 때로는 제어를 하지 않고 사용자가 정하는 임의의 값을 유지하는 등의 오픈 루프(open loop) 방식의 제어를 할 수 있다. 이러한 기능은 제어 대상의 수학적인 모델 특성을 검출하기 위해 통상 사용하는 스텝 응답 시험(step response test) 등의 시스템 아이덴티피케이션(identification)에 사용될 수 있다.3. It is necessary to prepare at least one control algorithm of the controller in advance, and to select from among several predetermined ones. At this time, the output value of the controller can also be selected according to the algorithm, and sometimes it is possible to perform an open loop control such as maintaining a user-defined arbitrary value without control. Such a function can be used for system identification such as a step response test, which is usually used for detecting a mathematical model characteristic of a control object.
4. 제어기의 목표치(제어목표 프로화일)가 함수의 형태로 주어질 때, 이 함수 형태와 파라미터를 변경할 필요가 있다.4. When the target value of the controller (control target profile) is given in the form of a function, it is necessary to change this function type and parameters.
5. 제어기 출력 등 시스템 변수를 편리하고 신속하게 감시할 필요가 있다.5. It is necessary to monitor the system variables such as the controller output conveniently and quickly.
6. 시스템 기능의 확장의 목적으로 외부에 PC 또는 마이크로 컴퓨터가 내장된 기기와 통신할 필요가 있다.6. For the purpose of expanding the system function, it is necessary to communicate with an external PC or a device with built-in microcomputer.
그러나, 종래 제어기의 제어 알고리즘 변경 방법으로는 단순한 방식의 프로토콜과 달리 프로그램이 가능한 형태의 프로토콜을 적용해야 하며, 제어 알고리즘을 수시로 변경할 수 없다는 문제점이 있다.However, in the control algorithm changing method of the conventional controller, unlike a simple protocol, a protocol that can be programmed is applied, and the control algorithm can not be changed from time to time.
본 발명은 상기한 종래 기술의 문제점을 해결하기 위하여 안출된 것으로서, 그 목적은 제어기 동작을 멈추지 않은 상태에도 키보드나 음성인식장치와 같은 입력수단을 통해 전달되는 명령 또는 다른 지령 기기의 지령을 통해 조작자의 명령을 대화식으로 받아들여 저장용 스택과 낱말 데이터 베이스를 이용하여 여러 가지 함수 및 연산을 수행함으로써 제어기의 제어 알고리즘을 용이하게 바꿀 수 있는 동시에 일련의 절차로 된 일괄처리 개념의 프로그램 기능을 수행할 수 있는 제어기의 제어 알고리즘 변경 시스템 및 그 변경 방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made in order to solve the problems of the prior art described above, and it is an object of the present invention to provide a control apparatus and a control method thereof, The control algorithm of the controller can be easily changed by performing various functions and operations by using the storage stack and the word database to interactively execute the program function of the batch processing concept And a method for changing the control algorithm of the controller.
제1도는 본 발명에 따른 제어기의 제어 알고리즘 변경 시스템의 구성이 도시된 블록도.FIG. 1 is a block diagram showing a configuration of a control algorithm changing system of a controller according to the present invention; FIG.
제2도는 제1도의 일부 구성요소인 낱말 데이터 베이스의 구성이 도시된 도면.FIG. 2 shows a configuration of a word database, which is a component of FIG. 1; FIG.
제3도 및 제4도는 본 발명에 따른 제어기의 제어 알고리즘 변경 방법이 도시된 순서도.FIG. 3 and FIG. 4 are flow charts illustrating a method for changing a control algorithm of a controller according to the present invention.
* 도면의 주요부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE NUMERALS
1 : 제어 대상 2 : 센서1: Control target 2: Sensor
3 : 구동부 5 : 제어기모듈3: driving part 5: controller module
10 : 플랜트 20 : 입출력인터페이스부10: Plant 20: Input / output interface unit
30 : 기준클록 발생부 40 : 입력수단30: reference clock generator 40: input means
50 : 제어기 운영부 51 : 버퍼 메모리50: controller operating unit 51: buffer memory
52 : 명령해석기 53 : 스택52: Instruction Analyzer 53: Stack
54 : 스택연산처리부 55 : 낱말 데이터 베이스54: stack operation processor 55: word database
56 : 스케줄러 57 : 출력수단56: scheduler 57: output means
상기한 과제를 해결하기 위한 본 발명에 의한 제어기의 제어 알고리즘 변경 시스템의 제1 특징에 따르면, 제어 대상의 각 동작 및 상태를 감지하여 그 감지결과를 인터페이스를 통해 제어기에 전달하는 다수의 센서와, 상기 센서의 감지결과에 의해 제어 대상의 동작 및 상태에 대한 제어신호를 인터페이스를 통해 제어기로부터 전달받아 그에 따라 제어 대상을 구동 제어하는 구동부로 이루어진 플랜트와; 각 부의 동작 시기와 실시간 처리를 위해 기준클록을 생성 출력시키는 기준클록 발생부와; 상기 제어기의 파라미터나 제어 알고리즘 변경을 위한 조작자의 명령이나 데이터 프로그램과 같은 각 명령을 입력받아 이를 명령입력신호로 시스템에 전달하는 입력수단과; 상기 입력수단의 명령입력신호를 전달받아 이를 해석하여 특정 낱말을 생성하고, 미리 저장된 연산 데이터와 특정 낱말과의 결합을 통해 새로운 제어 알고리즘을 산출하여 그에 따라 온-라인(ON-LINE) 상태에서 제어기의 파라미터나 제어기 알고리즘을 실시간으로 변경시키는 제어기 운영부와; 상기 제어기 운영부의 동작 결과를 조작자에게 디스플레이 하는 출력수단을 포함하여 구성된다.According to a first aspect of the present invention, there is provided a control algorithm changing system for a controller, comprising: a plurality of sensors for detecting each operation and state of a control object and transmitting the detection result to a controller through an interface; And a driving unit that receives a control signal for the operation and state of the control object from the controller through the interface according to the sensing result of the sensor and drives and controls the control target according to the control signal. A reference clock generator for generating and outputting a reference clock for the operation timing of each unit and for real time processing; Input means for receiving each command such as an operator's command or data program for changing the parameters of the controller or the control algorithm, and transmitting it to the system as a command input signal; A command word input signal of the input means is received and interpreted to generate a specific word and a new control algorithm is calculated through a combination of pre-stored operation data and a specific word to thereby generate a new control algorithm in an ON- A controller for changing a parameter of the controller or a controller algorithm in real time; And output means for displaying an operation result of the controller operating unit to an operator.
본 발명의 제2 특징에 따르면, 상기 제어기 운영부는 입력수단을 통해 명령입력신호를 전달받아 조작자의 명령 내용을 기록/판독하는 메모리부와, 상기 메모리부에 기록된 명령을 읽어들여 이를 해석함으로써 그 해석결과를 시스템에서 처리 가능토록 특정 낱말로 생성 출력시키는 명령해석부와, 상기 명령해석부의 특정 낱말을 전달받아 이를 순차적으로 저장하여 일정 순서대로 출력시키는 동시에 제어 알고리즘 변경을 위한 연산 데이터가 저장된 스택과, 상기 스택에 저장된 낱말이나 연산 데이터를 일정 순서대로 전달받아 이를 연산 처리함으로써 특정 제어 알고리즘을 생성 출력시키는 연산처리부와, 일련의 낱말과 명령행이 일대일로 짝을 이루어 데이터 베이스화 되어 저장되는 동시에 상기 연산처리부의 특정 제어 알고리즘을 전달받아 그 낱말을 근거로 삽입, 삭제, 변경, 실행의 기능을 수행하는 낱말데이터 베이스와, 상기 기준클록 발생부에서 기준클록을 전달받아 우선 순위를 관리하여 각 부의 실행시기를 결정하는 스케줄러를 포함한다.According to a second aspect of the present invention, the controller operating unit receives a command input signal through input means and records / reads command contents of the operator, and a controller for reading and interpreting the command recorded in the memory, A command interpretation unit for generating and outputting the analysis result as a specific word so as to be able to process in the system; a stack for storing specific data of the command interpretation unit, sequentially storing the data and outputting the data in a predetermined order, An arithmetic processing unit for receiving a word or arithmetic data stored in the stack in a predetermined order and performing arithmetic processing to generate and output a specific arithmetic control algorithm; It receives the specific control algorithm of the processor and A word database for performing insertion, deletion, modification, and execution on the basis of words; and a scheduler for receiving the reference clocks from the reference clock generator and managing the priorities to determine execution timings of the respective units.
본 발명의 제3 특징에 따르면, 상기 낱말 데이터 베이스는 이름 필드(field)와 내용 필드의 두 문자열로 구성된다.According to a third aspect of the present invention, the word database comprises two strings, a name field and a content field.
본 발명의 제4 특징에 따르면, 시스템의 초기화 작업이 수행되면서 각 부의 실행시간 및 우선 순위를 관리하는 스케줄러의 동작이 허가되는 초기화 단계와; 상기 스케줄러에 의해 현재 특정 작업의 실행 여부가 확인되면 그 확인 결과에 따라 제어 대상을 감시하는 센서로부터 변수 저장을 위한 색인 지표로 사용되는 샘플링 시간(sampling time)에서 한 샘플링 시간 전의 정보를 획득하고 그 획득 결과를 통해 특정 제어기의 계산값을 산출하여 플랜트에 전달함으로써 해당 제어 알고리즘을 수행하는 정보산출 단계와; 일련의 낱말과 명령행이 일대일로 짝을 이루어 데이터 베이스화 되어 저장된 낱말 데이터 베이스에서 각 플래그(flag)를 검사하여 그 검사 결과가 각 플래그의 명령이 필요한 경우에 낱말 데이터 베이스의 해당 낱말을 찾아 그 내용에 따라 제어 알고리즘 변경을 위한 변수를 결정하는 변수결정 단계와; 상기 변수결정 단계가 완료되면 각 변수에 따른 정보를 전달받아 그 변수값을 저장하는 동시에 특정 제어기의 제어 알고리즘을 수행하여 그 수행 결과를 저장하는 정보저장 단계와; 상기 샘플링 시간을 ‘1’증가시키는 동시에 외부 출력이 필요한지를 결정하는 외부출력결정 단계와; 상기 외부출력결정 단계에서 외부 출력이 필요한 경우에는 해당 변수를 낱말 데이터 베이스에 갱신하고, 외부 출력이 필요하지 않은 경우에는 다음 동작을 대기하는 갱신/대기 단계를 포함한다.According to a fourth aspect of the present invention, there is provided an information processing apparatus comprising: an initialization step in which an initialization operation of a system is performed, and an operation of a scheduler managing the execution time and priority of each part is permitted; If it is confirmed by the scheduler that the current task is to be executed, acquire information before a sampling time from a sampling time used as an index for storing a variable from a sensor that monitors the control object according to a result of the check, An information calculation step of calculating a calculation value of a specific controller through an acquisition result and transmitting the calculated value to a plant, thereby performing a corresponding control algorithm; A set of words and command lines are paired in a one-to-one correspondence database, and each flag is checked in a stored word database. If the check result of the flag is an instruction of each flag, the corresponding word of the word database is searched A variable determining step of determining a variable for changing the control algorithm according to the control algorithm; An information storage step of receiving information according to each variable, storing the variable value, performing a control algorithm of the specific controller, and storing the result of the control; An external output determining step of increasing the sampling time by '1' and determining whether external output is required; And an updating / waiting step of updating the variable in the word database when external output is required in the external output determining step and waiting for the next operation if no external output is required.
본 발명의 제5 특징에 따르면, 상기 변수결정 단계에서는 낱말 데이터 베이스에서 센서선택 플랜트를 검사하여 그 검사결과가 센서가 필요한 경우에 낱말 데이터 베이스의 센서채널선택 낱말을 찾아 그 내용에 따라 제어기의 입력 센서를 결정하는 센서결정 단계와; 상기 낱말 데이터 베이스에서 제어기 플래그를 검사하여 그 검사결과가 제어 알고리즘의 선택이 필요한 경우에 낱말 데이터 베이스의 제어기알고리즘선택 낱말을 찾아 그 내용에 따라 제어 알고리즘을 결정하는 제어알고리즘 결정 단계와; 상기 낱말 데이터 베이스에서 파라미터 변경 플래그를 검사하여 그 검사결과가 파라미터 변경이 필요한 경우에 낱말 데이터 베이스의 파라미터변경 낱말을 찾아 그 내용에 파라미터를 변경하는 파라미터 변경 단계와; 상기 낱말 데이터 베이스에서 목표치 변경 플래그를 검사하여 그 검사결과가 목표치 함수의 변경이 필요한 경우에 낱말 데이터 베이스의 목표치변경 낱말을 찾아 그 내용에 따라 목표치 함수를 변경하는 목표치 변경 단계를 포함한다.According to a fifth aspect of the present invention, in the step of determining the parameters, the sensor selection plant is checked in the word database, and if the result of the check is a sensor, the sensor channel selection word of the word database is found, A sensor determining step of determining a sensor; A control algorithm decision step of checking a controller flag in the word database and finding a controller algorithm selection word of a word database when a result of the check is a selection of a control algorithm and determining a control algorithm according to the selected word; A parameter change step of checking a parameter change flag in the word database and finding a parameter change word of the word database and changing a parameter to the content if the check result indicates that a parameter change is required; And a target value changing step of checking the target value change flag in the word database and finding a target value change word of the word database when the inspection result requires changing of the target value function, and changing the target value function according to the target value change word.
본 발명의 제6 특징에 따르면, 조작자에 의해 입력되는 명령행이 전달되면 이를 저장하는 명령행저장 단계와; 상기 명령행저장 단계에 저장된 명령행을 일정 순서대로 해독하여 각각의 낱말로 분리하는 낱말분리 단계와; 상기 낱말분리 단계에서 분리된 각 낱말이 낱말 데이터 베이스에 등록되어 있는지를 판단하는 낱말등록 판단단계와; 상기 낱말등록 판단단계에서 해당 낱말이 등록된 경우에는 그 낱말의 명령 정보를 낱말 데이터 베이스에서 찾아 해석하는 낱말해석 단계와; 상기 낱말등록 판단단계에서 해당 낱말이 등록되지 않은 경우나 상기 낱말해석 단계에서 해당 낱말이 해석된 경우에 그 낱말이 숫자, 문자열, 행렬과 같은 데이터인지, 연산처리명령인지를 판단하는 데이터 판단단계와; 상기 데이터 판단단계의 판단 결과에 따라 각 데이터를 스택에 저장하고, 상기 스택에 저장된 데이터를 순차적으로 읽어 들여 연산처리를 수행하는 데이터 실행단계와; 상기 명령행저장 단계에 저장된 명령행이 모두 해독되었음이 확인되면 낱말 해독 과정을 종료하는 종료단계를 포함한다.According to a sixth aspect of the present invention, there is provided an information processing method comprising: a command line storing step of storing a command line inputted by an operator when the command line is inputted; A word separating step of separating the command lines stored in the command line storing step into a plurality of words in a predetermined order; A word registration determination step of determining whether each word separated in the word separation step is registered in a word database; A word interpretation step of searching and analyzing command information of the word in a word database if the word is registered in the word registration determination step; A data determination step of determining whether the word is data such as a number, a character string, a matrix, or an operation processing command when the corresponding word is not registered in the word registration determination step or when the word is interpreted in the word interpretation step ; A data execution step of storing each data in a stack according to the determination result of the data determination step, sequentially reading data stored in the stack, and performing operation processing; And terminating the word decryption process when it is confirmed that all the command lines stored in the command line storing step have been decrypted.
본 발명의 제7 특징에 따르면, 상기 데이터 판단단계에서는 해당 낱말이 특정 데이터나 연산처리명령에 모두 해당되지 않는 경우에 에러 처리 기능을 수행하는 에러 처리 단계를 포함한다.According to a seventh aspect of the present invention, in the data determination step, an error processing step is performed to perform an error processing function when the word does not correspond to specific data or an operation processing command.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
제1도는 본 발명에 따른 제어기의 제어 알고리즘 변경 시스템의 구성이 도시된 블록도이고, 제2도는 제1도의 일부 구성요소인 낱말 데이터 베이스의 구성이 도시된 도면이며, 제3도 및 제4도는 본 발명에 따른 제어기의 제어 알고리즘 변경 방법이 도시된 순서도이다.FIG. 1 is a block diagram showing a configuration of a control algorithm changing system of a controller according to the present invention, FIG. 2 is a diagram showing a configuration of a word database which is a part of a constituent of FIG. 1, A method of changing the control algorithm of the controller according to the present invention is a flow chart shown.
먼저 제1도를 참조하면 본 발명은, 제어 대상(1)과, 상기 제어 대상(1)의 각 동작 및 상태를 감지하여 그 감지결과를 다수의 제어기로 이루어진 제어기모듈(5)에 전달하는 다수의 센서(2)와, 상기 센서(2)의 감지결과에 의해 제어 대상(1)의 동작 및 상태에 대한 제어신호를 제어기로부터 전달받아 그에 따라 제어 대상(1)을 구동 제어하는 구동부(3)로 이루어진 플랜트(10)와; 상기 플랜트(10)와 제어기모듈(5)과의 상호 통신 기능을 수행하는 입출력 인터페이스부(20)과; 각 부의 동작 시기와 실시간 처리를 위해 기준클록을 생성 출력시키는 기준클록 발생부(30)와; 상기 제어기모듈(5)의 특정 제어기의 제어 알고리즘 변경을 위한 조작자의 명령이나 데이터 프로그램과 같은 각 명령을 입력받아 이를 명령입력신호로 시스템에 전달하는 음성인식장치, 키보드, 무선통신과 같은 입력수단(40)과; 상기 입력수단(40)의 명령입력신호를 전달받아 이를 해석하여 그 해석 결과에 따라 연산 작업을 수행하여 제어 알고리즘 변경 기능을 수행하는 제어기 운영부(50)를 포함하여 구성된다.Referring first to FIG. 1, the present invention includes a control module 1 for detecting the operation and state of the control object 1 and the control object 1, and transmitting the detection result to the controller module 5 having a plurality of controllers A driving unit 3 for receiving a control signal for the operation and state of the controlled object 1 from the controller according to the detection result of the sensor 2 and controlling the controlled object 1 according to the received control signal, (10); An input / output interface unit (20) for performing a mutual communication function between the plant (10) and the controller module (5); A reference clock generator 30 for generating and outputting a reference clock for the operation timing of each unit and for real time processing; A voice recognition device for inputting each command such as an operator's command or data program for changing the control algorithm of the controller of the controller module 5 and transmitting it to the system as a command input signal, 40); And a controller operating unit 50 for receiving a command input signal of the input unit 40 and interpreting the command input signal and performing a calculation operation according to the analysis result to perform a control algorithm changing function.
특히, 상기 제어기모듈(5)을 내장하고 있는 제어기 운영부(50)는 입력수단(40)을 통해 명령입력신호를 전달받아 조작자의 명령 내용을 기록/판독하는 버퍼 메모리(51)와, 상기 버퍼 메모리(51)에 기록된 명령을 읽어들여 이를 해석함으로써 그 해석결과를 시스템에서 처리 가능토록 특정 낱말로 생성 출력시키는 명령해석기(52)와, 상기 명령해석기(52)의 특정 낱말을 전달받아 이를 순차적으로 저장하여 일정 순서대로 출력시키는 동시에 제어 알고리즘 변경을 위한 연산 데이터가 저장된 스택(53)과, 상기 스택(53)에 저장된 낱말이나 연산 데이터를 일정 순서대로 전달받아 이를 연산 처리함으로써 특정 제어 알고리즘을 생성 출력시키는 스택연산처리부(54)와, 일련의 낱말과 명령행이 일대일로 짝을 이루어 데이터 베이스화 되어 저장되는 동시에 상기 스택연산처리부(54)의 특정 제어 알고리즘을 전달받아 그 낱말을 근거로 삽입, 삭제, 변경, 실행의 기능을 수행하는 낱말 데이터 베이스(55)와, 상기 기준클록 발생부(30)에서 기준 클록을 전달받아 우선 순위를 관리하여 각 부의 실행시기를 결정하는 스케줄러(56)와, 상기 버퍼 메모리(51) 또는 낱말 데이터 베이스(55), 스택(53)의 내용을 선택적으로 조작자에게 표시하는 출력수단(57)으로 구성된다.In particular, the controller operating unit 50 incorporating the controller module 5 receives a command input signal through the input unit 40 and receives a command to read / write the contents of the command from the operator. A command interpreter 52 for reading a command written in the command interpreter 51 and analyzing the command and generating and outputting the interpreted result as a specific word so that the interpretation result can be processed in the system; A stack 53 for storing operation data for changing control algorithms and for outputting the data in a predetermined order, and a processor 53 for receiving a word or operation data stored in the stack 53 in a predetermined order, A series of words and a command line are paired in a one-to-one correspondence with each other and stored as a database, and at the same time, A word database 55 that receives a specific control algorithm of the acid processor 54 and performs a function of insertion, deletion, modification, and execution on the basis of the word, a reference clock generation unit 30, A scheduler 56 for managing the priority of each unit to manage the priority of each unit and an output unit 57 for selectively displaying contents of the buffer memory 51 or the word database 55 and the stack 53 ).
여기서, 상기 제어기 운영부(50)는 일종의 프로그램 해석기와 같은 기능이 있으며, 조작자가 사람인 경우에는 입력수단(40)에 PC가 연결되어 터미널 단말이 위치하지만, PC측에 조작과 관리를 자동으로 할 수 있는 관리담당 프로그램 또는 웹 브라우저와 같은 프로그램이 연결될 수도 있다.Here, the controller operation unit 50 has the same function as a kind of program interpreter. When the operator is a person, the PC is connected to the input means 40 to locate the terminal terminal, but the operation and management can be automatically performed on the PC side A program such as a management program or a web browser may be connected.
특히, 본 발명에서는 하나의 제어 대상에 대해 적용 가능한 구조를 갖고 있지만, 다수의 플랜트(10)를 동시에 관리할 수 있도록 채널(channel)이 구비되게 되면 하나 이상의 제어 대상에 대해 적용될 수 있다.In particular, although the present invention has a structure applicable to one control target, if a channel is provided to manage a plurality of plants 10 simultaneously, the control target can be applied to one or more control targets.
또한, 상기 낱말 데이터 베이스(55)는 제2도에 도시된 바와 같이 이름 필드와 내용 필드의 두 문자열로 구분되는데, 그 주요 기능은 제어기 운영부(50) 내에 존재하는 주요 파라미터, 프로그램들은 관리하는 데이터 베이스이다. 또한, 조작자 또는 다른 제어 시스템과의 데이터 통신시의 임시 저장 장소이며, 디버깅시의 정보 저장 장소 등으로 사용되게 된다. 상기 낱말 데이터 베이스(55)는 제어기모듈(5)의 프로그램에 의해 변경도 가능하지만 스택(53)과 스택연산처리부(54)에 의해서도 조작 변경이 가능하게 된다.As shown in FIG. 2, the word database 55 is divided into a name field and a content field. The main functions of the word database 55 include a main parameter existing in the controller operating unit 50, It is the base. In addition, it is a temporary storage place for data communication with an operator or another control system, and is used as an information storage place at the time of debugging. Although the word database 55 can be changed by the program of the controller module 5, the operation can be changed by the stack 53 and the stack operation processor 54 as well.
상기 낱말 데이터 베이스(55)의 이름 필드에는 센서 선택, 제어기 선택, 파라미터 변경, 목표치 변경, 외부 출력에 대한 플래그와, T(시간 인덱스), 변수, 매크로 프로그램 모듈, 파라미터, 제어기, 센서채널 선택, 입출력 포트상태, 목표프로화일 종류, 제어기 출력값, 제어 알고리즘과 같은 일련의 낱말과 명령행이 하나씩 일대일 대응으로 짝을 이루고 있다.A flag for the external output, a flag for T (time index), a variable, a macro program module, a parameter, a controller, a sensor channel selection, a sensor flag, and the like are stored in the name field of the word database 55, A series of words and command lines, such as input / output port status, target profile type, controller output value, and control algorithm, are paired in a one-to-one correspondence.
이러한, 상기 낱말 데이터 베이스(55)는 제어기모듈(5)의 제어 알고리즘을 관리하기 위해 센서선택_플래그, 제어기선택_플그래, 파라미터변경_플래그, 목표치변경_플래그, 외부출력_플래그와 같은 플래그가 있어 제어기 운영부(50)의 내부 상태를 외부에서 확인할 수 있을 뿐만 아니라, 외부에서 내부 상태를 변경하는 것도 가능하게 된다. 또한, T(시간 인덱스)는 제어기모듈(5)이 수행될 때마다 증가치가 다시 낱말 데이터 베이스(55)에 등록되게 되고, 변수 1 및 2와 같은 변수로 사용되는 경우는 다른 제어 시스템과의 데이터 통신시 임시 저장 장소로 활용되거나 디버깅시 정보 저장 장소, 또는 스택연산처리부(54)에 의한 결과가 저장되어 있는 스택(53)의 내용을 낱말 데이터 베이스(55)에 등록하는 경우, 그 자체의 프로그램 모듈 상호간의 데이터 전송의 목적에 사용되게 된다.The word database 55 includes flags such as a sensor selection flag, a controller selection flag, a parameter change flag, a target value change flag, and an external output flag in order to manage the control algorithm of the controller module 5 So that it is possible to not only check the internal state of the controller operating unit 50 from outside but also change the internal state from the outside. Further, T (time index) is registered in the word database 55 again every time the controller module 5 is executed, and when it is used as a variable such as the variables 1 and 2, the data with the other control system In the case of registering the content of the stack 53 in which the result of the information storage location or the stack operation processing unit 54 is stored in the word database 55 as a temporary storage place in communication or in an information storage location in debugging, It is used for the purpose of data transfer between modules.
매크로_지령_리스트_1과 프로그램_모듈_지령_리스트_1은 스택연산처리부(54)에 속하는 각종 명령어와 데이터들의 집합 리스트로 매크로_이름_1 또는 프로그램_모듈명_1에 의해 해당 리스트가 축약되어 사용될 수도 있다. 파라미터_1은 제어기모듈(5)에 사용되는 파라미터 값을 나타내는 것으로서 제어기모듈(5)의 동작시 이 파라미터 값을 복사해 사용하게 된다.The macro_instruction_list_1 and the program_module_instruction_list_1 are sets of various commands and data belonging to the stack operation processing unit 54 and are stored in the corresponding list May be used in abbreviated form. The parameter _1 indicates a parameter value used in the controller module 5, and the controller module 5 copies and uses this parameter value in operation.
그리고, 제어기_1은 제어기모듈(5)에 의해 주기적으로 실행될 수도 있는 제어 알고리즘의 이름이며, 제어기_알고리즘_프로그램_리스트는 스택연산처리부(54)에 속하는 각종 명령어와 데이터들의 집합 리스트이다. 센서종류와 목표프로화일_종류는 각각 제어기의 제어 알고리즘과 연관되어 미리 정해진 영역에서 프로그램으로 선택될 수 있게 되고, 조작자의 명령으로 센서 및 목표치 종류를 변경하는 것이 가능해진다. 또한, 입출력포트상태 및 제어기_출력_값은 각각 입출력 포트와 연관되어 그 값을 조작자로 하여금 변경할 수 있도록 해주는 것이다.The controller_Algorithm_program_list is a list of various commands and data belonging to the stack operation processing unit 54. The controller_Algorithm_program_list is a list of various commands and data belonging to the stack operation processing unit 54. [ The sensor type and the target profile_type can be selected as a program in a predetermined area in association with the control algorithm of the controller respectively and it becomes possible to change the sensor and the target value type by the operator's command. Also, the input / output port state and the controller_output_value are associated with the input / output port, respectively, so that the operator can change the value thereof.
상기에서 조작자의 명령에 따라 제어 알고리즘을 변경 가능토록 이를 지원하는 상기 낱말 데이터 베이스(55)의 구성에 의해 특정한 변수값을 감시할 수 있게 된다.The variable value can be monitored by the configuration of the word database 55 that supports the control algorithm so that the control algorithm can be changed according to the operator's command.
한편, 상기 제어기모듈(5)은 플랜트(10) 제어, 통상적인 디지털 신호 처리와 소프트웨어 타이머 기능을 갖고 있고, 일정 주기마다 실행되는 루틴이다. 통상의 방법에 따라 플랜트(10)에 적합한 사용자의 루틴을 포함하여 제어용의 각종 라이브러리로 구성되어 있다. 상기 제어용 라이브러리에 포함된 모듈은 PI, PD, LMFC, FIR 필터, 임의 함수 발생기, 데이터 획득, 적분기 등이 있고, 각 모듈은 파라미터, 리미터 등을 낱말 데이터 베이스(55)에 의해 지정할 수 있게 된다.On the other hand, the controller module 5 has a plant 10 control, a general digital signal processing and a software timer function, and is a routine executed at regular intervals. And is composed of various libraries for control including routine of the user suitable for the plant 10 according to a normal method. The module included in the control library includes PI, PD, LMFC, FIR filter, arbitrary function generator, data acquisition, integrator, etc., and each module can designate parameters, limiters and the like by the word database 55.
예를 들면, 아래 수학식(1), (2)과 같은 형태의 PI, PD 제어기를 구현하고, 이를 이산 시간 제어기로 나타내면 수학식(3), (4)과 같다. 이때, 제어기 구현시에는 1 스텝(STEP) 지연을 갖게 된다.For example, PI and PD controllers of the form (1) and (2) below can be implemented and expressed by discrete time controllers as shown in equations (3) and (4). At this time, the controller has one step (STEP) delay.
[수학식 1][Equation 1]
[수학식 2]&Quot; (2) "
[수학식 3]&Quot; (3) "
[수학식 4]&Quot; (4) "
상기와 같이, PI, PD 제어기를 이용하여 성능 사양을 만족하지 못할 경우에는 통상적으로 사용되는 비선형 제어 방법을 이용하여 마찰력 보상(OVER COMPENSATION, UNDER COMPENSATION) 등을 병행하여 사용할 수 있다. 이러한 방법은 속도의 부호와 제어기 출력의 부호에 따라 조정된 값으로 마찰력 보상을 수행하게 된다.As described above, when performance specifications can not be satisfied by using the PI and PD controllers, it is possible to use friction compensation (OVER COMPENSATION, UNDER COMPENSATION, etc.) by using a nonlinear control method that is commonly used. This method performs frictional force compensation with a value adjusted according to the sign of the speed and the sign of the controller output.
상기 명령해석기(52)는 행단위의 입력에 의한 인터프리터 실행 방식을 따르게 되는데, 공백 문자에 의해 연산자와 연산자, 낱말의 단위 분리가 이루어지게 된다. 다만, 상기 공백 문자를 포함하는 문자열 또는 산술식을 포함하는 행렬의 경우에는 문자열 또는 행렬의 시작과 끝은 ‘{}’로 묶어준다.The instruction interpreter 52 follows an interpreter execution method by row-by-row input. The operator, operator, and word are separated by a space character. However, in the case of a matrix containing a space character or an arithmetic expression, the start and end of the string or matrix are enclosed in '{}'.
또한, 상기 스택연산처리부(54)는 행렬, 문자열, 부동소수와 같은 다양한 데이터 표현 방식과 이에 따르는 각종 산술, 논리, 비트 연산 기능과, 각종 스택 조작 명령, 내장 함수, 입출력 명령, 제어문을 포함하므로 범용성이 있는 체계이다. 상기 스택연산처리부(54)는 자유로운 변수 표현방식과, 명령어를 변경하거나, 여러 단계를 하나의 이름으로 지정하는 매크로 기능이 있어 유연성을 갖게 되고, 효율적이고 편리한 조작이 가능하게 된다.The stack operation processing unit 54 includes various types of data representation methods such as a matrix, a string, and a floating-point number, various arithmetic, logic, and bit operation functions and various stack operation commands, built-in functions, It is a versatile system. The stack operation processing unit 54 has a flexible variable representation method, a macro function for changing an instruction or designating a plurality of steps with a single name, thereby providing flexibility and efficient and convenient operation.
상기 스택연산처리부(54)는 메모리 조작 명령, 시간 관리 명령, 타스크 관리 등의 기능까지 제공하게 되고, 이러한 기능은 기존의 범용 컴퓨터 프로그램 운영체제의 커널 또는 쉘 커맨드(command)에서 통상적으로 제공하는 것이다. 함수 또는 각 부 또는 모듈간의 매개변수, 결과 등의 저장 장소로서 스택(53)을 이용하게 되면 각 부 또는 모듈이 독립적으로 정의될 수 있고, 재귀적(RECVRSIVE)인 프로그램이 가능하게 된다. 각각의 부 또는 모듈이 독립적인 기능을 수행하게 됨으로써 그 자체로 시험이 가능하고 에러를 수정할 수 있어 테스트, 디버깅, 유지 보수가 용이해지게 된다.The stack operation processing unit 54 also provides functions such as a memory operation command, a time management command, and a task management function, which are normally provided in a kernel or shell command of an existing general purpose computer program operating system. When the stack 53 is used as a function or as a storage place of parameters, results and the like between the respective units or modules, each unit or module can be defined independently, and a program that is recursive (RECVRSIVE) becomes possible. As each module or module performs its own function, it can test itself and correct errors, which makes testing, debugging, and maintenance easier.
상기 스택연산처리부(54)는 후위 표기법을 지원하므로 목적어 다음에 동사가 오는 우리말 어순과 거의 유사하다. 예를 들면, “3과 4를 더해서 보여라”는 스택연산처리부(54)에서 “3 + 4 ?”로 표현하게 된다.Since the stack operation processing unit 54 supports a postfix notation method, the stack operation processing unit 54 is almost similar to the Korean word order that follows the object word. For example, " Show 3 and 4 together " is expressed as " 3 + 4? &Quot; in the stack operation processing unit 54.
한편, 상기 제어기 운영부(50)에 포함되는 주요한 알고리즘으로는 제어기모듈(5)의 수행 알고리즘과 조작자 인터페이스 모듈의 동작 알고리즘이 있다. 각각이 제3도 및 제4도에 도시되어 있는데, 상기한 두 알고리즘을 수행하는 각각의 프로세스는 스케줄러(56)에서 컨텍스트 스위치(CONTEXT SWITCHING) 기능을 이용하여 각 부 또는 모듈의 실행을 번갈아 가며 진행하고, 각 부 또는 모듈이 병렬 처리되는 효과를 갖게 하는 동시에 각 부의 처리 우선 순위를 관리하게 된다.Meanwhile, the main algorithm included in the controller operation unit 50 is an execution algorithm of the controller module 5 and an operation algorithm of the operator interface module. Each of which is shown in FIGS. 3 and 4, wherein each of the processes performing the two algorithms described above alternately performs the execution of each part or module using the context switch function in the scheduler 56 So that each part or module has the effect of being processed in parallel, and the processing priority order of each part is managed.
상기한 제어기모듈(5)의 수행 알고리즘과 조작자 인터페이스 모듈의 동작 알고리즘을 수행하는 프로세스간의 우선 순위는 제어기모듈(5)의 우선 순위가 더 높으므로 제어기모듈(5)의 수행 알고리즘에 관한 프로세스가 종료될 때까지 컨텍스트 스위칭이 일어날 수 없고, 상기 조작자 인터페이스 모듈의 동작 알고리즘에 관한 프로세스 실행은 중간에 다른 프로세스가 끼어드는 것을 허가하게 된다.The priority between the execution algorithm of the controller module 5 and the operation algorithm of the operator interface module is higher than that of the controller module 5 because the process regarding the execution algorithm of the controller module 5 is completed Context switching can not take place and the execution of a process related to the operation algorithm of the operator interface module allows another process to intervene in the middle.
상기와 같이 구성된 본 발명의 동작은, 외부에서 조작자가 입력수단(40)을 통해 제어기모듈(5) 중에서 특정 제어기의 제어 알고리즘 변경을 수행하기 위해 일정한 명령행을 입력시키게 되면 이를 버퍼 메모리(51)에서 전달받아 저장하게 된다.In the operation of the present invention configured as described above, when an operator inputs a certain command line to perform a control algorithm change of a specific controller among the controller modules 5 through the input means 40, And stored.
그 후, 상기 버퍼 메모리(51)에 저장되어 있는 조작자의 입력 명령행은 명령해석기(52)에 전달되어 해석되게 되며 그 해석된 내용이 스택(53)이나 스택연산처리부(54)로 순차적으로 전달되는 동시에 저장됨으로써 스택연산처리부(54)에서는 제어 알고리즘 변경을 위한 연산처리 작업을 수행하게 된다.Thereafter, the input command line of the operator stored in the buffer memory 51 is transferred to the command interpreter 52 and interpreted, and the analyzed contents are sequentially transmitted to the stack 53 or the stack operation processing unit 54 And the stack operation processing unit 54 performs an operation processing operation for changing the control algorithm.
이때, 상기 스택(53) 또는 스택연산처리부(54)에서는 그 해석된 내용이 낱말 데이터 베이스(55)에 등록되어 있는지, 그 해석된 내용이 일련의 데이터 또는 연산처리 명령인지를 판단하여 그 판단결과에 따라 에러 처리를 수행할 수도 있고, 상기 조작자의 입력 명령행 해독을 완료한 후에 다음 명령행 입력을 대기할 수도 있다.At this time, the stack 53 or the stack operation processing unit 54 determines whether the analyzed content is registered in the word database 55 and whether the interpreted content is a series of data or an operation processing command, Or may wait for the next command line input after completing the input command line decoding of the operator.
이렇게, 상기 버퍼 메모리(51)에 저장되어 있는 조작자의 입력 명령행의 해독이 완료되면 그에 따라 연산처리 작업을 수행하여 제어기모듈(5) 내의 특정 제어기의 제어 알고리즘을 변경하고, 그 변경된 제어 알고리즘에 따라 플랜트(10)의 동작 및 상태를 제어하게 된다. 즉, 상기 플랜트(10)와 제어기모듈(5) 사이에 설치되어 있는 입출력 인터페이스부(20)를 통해 제어기모듈(5)은 제어 대상(1)의 동작 및 상태에 관한 정보를 센서(2)에 의해 전달받게 되고, 그와 동시에 제어기모듈(5)의 변경된 제어 알고리즘에 따라 제어 대상(1)에 대한 구동제어신호를 입출력 인터페이스부(20)를 통해 구동부(3)에 전달함으로써 상기 구동부(3)는 제어 대상(1)의 동작 및 상태를 변경하게 된다.When the decryption of the input command line of the operator stored in the buffer memory 51 is completed, an operation processing operation is performed to change the control algorithm of the specific controller in the controller module 5, Thereby controlling the operation and the state of the plant 10. [ That is, the controller module 5 transmits information about the operation and state of the control object 1 to the sensor 2 through the input / output interface 20 provided between the plant 10 and the controller module 5 At the same time, according to the changed control algorithm of the controller module 5, the drive unit 3 transmits the drive control signal for the control object 1 to the drive unit 3 through the input / output interface unit 20, The operation and state of the controlled object 1 are changed.
여기서, 각 부의 동작 시기와 실행시기, 우선 순위는 기준클록 발생부(30)에서 생성 출력되는 기준클록을 전달받아 스케줄러(56)에서 관리하게 된다. 그리고, 출력수단(57)에서는 스택(53), 낱말 데이터 베이스(55)에 현재 저장되어 있는 내용이나 변경 내용이 버퍼 메모리(51)를 통해 사용자에게 디스플레이하게 된다.Here, the operation timing, the execution timing, and the priority of each unit are received by the reference clock generated and output by the reference clock generator 30, and are managed by the scheduler 56. The output means 57 displays contents or changes currently stored in the stack 53 and the word database 55 to the user through the buffer memory 51.
제3도를 참조하여 제어기모듈(5)에서 수행되는 제어기의 제어 알고리즘 변경 방법을 살펴보면 다음과 같다.Referring to FIG. 3, a method of changing the control algorithm of the controller performed by the controller module 5 will be described below.
상기 제어기모듈(5)의 수행 알고리즘은 각각의 제어기가 제어 대상(1)의 동작 및 상태에 관한 제어 기능을 수행하기 위해 기준클록에 의해 움직이는 타이머(미도시)를 이용하여 일정한 시간 간격으로 스케줄러(56)가 컨텍스트 스위칭을 하여 각 부 또는 모듈의 실행을 번갈아 가며 진행하여 각 부나 모듈이 병렬 처리되는 효과를 갖게 된다. 이때, 상기 제어기모듈(5)이나 각 부의 실행 시간, 우선 순위는 스케줄러(56)에 의해 실시간으로 관리되게 된다.The execution algorithm of the controller module 5 is executed by a scheduler (not shown) at a predetermined time interval using a timer (not shown) which is moved by a reference clock to perform a control function regarding the operation and state of the control object 1. [ 56) perform context switching and alternately perform execution of each unit or module, thereby having the effect that each unit or module is processed in parallel. At this time, the execution time and the priority order of the controller module 5 and the respective units are managed in real time by the scheduler 56.
먼저, 제1 과정에서는 초기 설정으로서 하드웨어의 초기화가 수행되게 되고, 타이머 카운트 레지스터에 인터럽트 주기를 설정하는 동시에 T를 ‘0’으로 만들고, 각종 변수의 초기화를 수행하게 된다. 그리고, 필요한 경우에 제어 목표치(목표 프로화일)의 함수 형태 테이블을 만들게 되고, 상기 스케줄러(56)의 동작을 허가하게 된다.(S1 참조)First, hardware initialization is performed as an initial setting in the first process, and an interrupt cycle is set in the timer count register, T is set to '0', and various variables are initialized. Then, if necessary, a function type table of the control target value (target profile file) is created, and the operation of the scheduler 56 is permitted (see S1).
다음, 제2 과정에서는 상기 스케줄러(56)에 의해 설정된 시간이 경과하게 되면 컨텍스트 스위칭이 이루어져 제어기모듈(5)의 동작을 수행할 필요가 있는지를 결정하게 된다.(S2 참조) 즉, 병렬 처리에서 여러 개의 타스크가 동작되는 중에 어떠한 사항에 의해 몇 개의 타스크가 슬립(SLEEP)되는 경우가 있고, 그 슬립된 타스크는 또 다른 사항에 의해서 다시 실행되게 된다. 이러한 타스크의 실행 여부를 결정하는 것이 스케줄러(56)이고, 타스크의 우선 순위를 확인하여 그 확인 결과에 따라 제어기모듈(5)의 동작을 수행할 필요가 있는지를 결정하게 되는 것이다.Next, in the second process, when the time set by the scheduler 56 has elapsed, context switching is performed to determine whether it is necessary to perform the operation of the controller module 5 (refer to S2). In other words, There are cases in which a number of tasks are sleeping (SLEEP) due to certain things while several tasks are running, and the sleeped task is executed again by another matter. It is the scheduler 56 that determines whether to execute the task, determines the priority of the task, and determines whether it is necessary to perform the operation of the controller module 5 according to the confirmation result.
이때, 상기 제2 과정(S2)에서 제어기모듈(5)의 동작이 필요 없다고 판단된 경우에 제3 과정에서는 대기 동작을 수행하면서 다음 제어기의 동작 수행이 필요한지를 상기 제2 과정(S2)에서 다시 결정하게 된다.(S3 참조) 그런데, 상기 제2 과정(S2)에서 제어기모듈(5)의 동작이 필요한 경우에 제4 과정에서는 제어의 목적이 달성되어 제어기모듈(5)의 동작을 완전히 종료할 것인가를 결정하게 된다.(S4 참조)If it is determined in the second process S2 that the controller module 5 does not need to be operated, it is checked in the second process S2 whether it is necessary to perform the operation of the next controller while performing the standby operation in the third process If the controller module 5 is required to be operated in the second step S2, the control objective is achieved in the fourth step and the controller module 5 is completely terminated (See S4).
상기 제4 과정(S4)에서 종료인 경우에는 모든 작업을 끝내게 되지만, 상기 제4 과정(S4)에서 종료가 아닌 경우에는 제5 과정에서 한 샘플링 시간 전에 계산된 제어기의 출력 결과를 입출력 인터페이스부(20)를 통해 플랜트(10)에 전달하게 된다.(S5 참조) 여기서, 상기 제어기모듈(5)의 출력 결과를 제어 알고리즘 수행 즉시 보내지 않고 다음 샘플링 시간까지 기다렸다가 컨텍스트 스위칭된 후에 바로 보내는 것은 제어 알고리즘의 수행 루틴의 계산 시간이 일정하지 않으므로 계산 지연(COMPUTATION DELAY)을 일정하게 함으로써 계산 시간이 일정하지 않음으로 인한 영향을 받지 않고 제어기의 동작을 일정하게 하기 위함이다.If it is determined in step S4 that the process is to be terminated, all the processes are completed. If the process is not finished in the fourth process (S4), the output result of the controller calculated before one sampling time in the fifth process is output to the input / The controller module 5 sends the output result of the controller module 5 to the plant 10 through the control module 5 without waiting for the next sampling time and immediately after the context switching. Since the computation time of the execution routine is not constant, the computation delay is made constant so that the operation of the controller is kept constant without being affected by the inconsistency of the computation time.
제6 과정에서는 상기 낱말 데이터 베이스(55)에 있는 센서선택 플래그를 검사하게 되고, 그 검사 결과가 센서의 선택이 필요한 경우에는 제7 과정에서 센서채널 선택 낱말의 내용에 따라 제어기의 입력 센서를 결정하게 된다.(S6 및 S7 참조) 상기 제어기의 입력 센서의 변경으로 인한 제어기 출력의 갑작스런 변화로 인한 시스템에 저킹(JERKING) 문제는 두 센서의 평균값을 중간 단계로 두어 제어기의 입력을 완만하게 변화시키는 방법 등 통상의 기법을 사용할 수 있다.In the sixth step, the sensor selection flag in the word database 55 is checked. If it is necessary to select the sensor, the input sensor of the controller is determined according to the content of the sensor channel selection word in the seventh step (See S6 and S7.) The problem of jerking the system due to a sudden change of the controller output due to the change of the input sensor of the controller is that the average value of the two sensors is set at an intermediate level and the input of the controller is changed gently And the like can be used.
그러나, 상기 제6 과정(S6)의 검사 결과가 센서의 선택이 필요하지 않은 경우 또는 상기 제7 과정(S7)에서 제어기의 입력 센서를 결정한 후에는 제8 과정에서 상기 낱말 데이터 베이스(55)에 있는 제어기 플래그를 검사하게 된다.(S8 참조) 상기 제8 과정(S8)의 검사 결과가 제어기의 제어 알고리즘 선택이 필요한 경우에는 제9 과정에서 낱말 데이터 베이스(55)에 있는 제어 알고리즘 선택 낱말의 내용에 따라 제어기의 제어 알고리즘을 결정하고 다음 과정으로 넘어가게 된다.(S9 참조) 여기서, 상기 제어기의 제어 알고리즘의 교환 단계에서 발생될 수 있는 저킹을 막을 필요가 있는 시스템에서는 통상의 제어기에서 수행되는 범프레스(BUMPLESS) 제어 방법을 이용하여 해결할 수 있다.However, if the result of the sixth step S6 does not require the selection of the sensor or after the input sensor of the controller is determined in the seventh step S7, (S8). If it is determined in step S8 that the control algorithm selection of the controller is necessary, the control content of the control algorithm selection word in the word database 55 in the ninth step The control algorithm of the controller is determined according to the control algorithm of the controller, and the process proceeds to the next step (refer to S9). Here, in a system which needs to prevent jerking that may occur in the control algorithm switching step, It can be solved by using the BUMPLESS control method.
그런데, 상기 제8 과정(S8)의 검사 결과가 제어 알고리즘의 선택이 필요하지 않은 경우에는 제10 과정에서 낱말 데이터 베이스(55)에 있는 파라미터 변경 플래그를 검사하게 되고(S10 참조), 그 검사 결과가 제어기의 파라미터 변경이 필요한 경우에 제11 과정에서는 낱말 데이터 베이스(55)에 있는 파라미터 변경 낱말의 내용에 따라 제어기의 파라미터 또는 외부 기기와의 통신 프로토콜 파라미터 등을 결정하고 다음 과정으로 넘어가게 된다.(S11 참조) 상기 파라미터의 변경은 새로운 값으로 이전 값을 대치하는 치환 방법이 있을 수 있고, 현재의 파라미터에서의 차분 값을 지정하여 현재값에서 증가 또는 감소량을 지정하면 제어기 출력의 갑작스런 변화를 막을 수 있다.If it is determined in step S8 that the selection of the control algorithm is not required, the parameter change flag in the word database 55 is checked in step S10 (refer to step S10) The controller determines the parameter of the controller or the communication protocol parameter with the external device according to the content of the parameter change word in the word database 55 in step 11, and then proceeds to the next step. (See S11). There may be a replacement method that replaces the previous value with a new value, and designating a difference value in the current parameter to specify an increase or decrease amount in the current value prevents the sudden change in the controller output .
그 반면에, 상기 제10 과정(S10)의 검사 결과가 제어기의 파라미터 변경이 필요하지 않은 경우에 제12 과정에서는 낱말 데이터 베이스(55)에 있는 목표치 변경 플랜트가 유효한지를 판단하게 된다.(S12 참조) 이때, 상기 제12 과정(S12)의 판단 결과가 ‘예’인 경우에 제13 과정에서는 제어 목표치 함수의 형태 또는 파라미터의 변경이 필요하다고 판단하고 낱말 데이터 베이스(55)에 있는 목표치 변경 낱말의 내용에 따라 제어기의 목표치 함수 등을 변경하고 다음 과정으로 넘어가게 된다.(S13 참조)On the other hand, if the inspection result of the tenth step (S10) does not require parameter change of the controller, it is determined whether the target value changing plant in the word database 55 is valid in the twelfth step. If it is determined in step S12 that the type or parameter of the control target value function is required to be changed and the target value change word in the word database 55 is changed, The target value function of the controller is changed according to the content, and the process proceeds to the next step. (See S13)
상기 제6 내지 제13 과정(S6~S13)은 그 순서를 편의상 정해놓은 것으로서 순서에 상관없이 낱말 데이터 베이스의 각 플래그를 검사하여 그 검사 결과에 따라 제어 알고리즘 변경을 위한 모든 작업을 수행하게 된다.The sixth through thirteenth steps S6 through S13 are performed for each of the flags of the word database regardless of the order, and perform all the operations for changing the control algorithm according to the inspection results.
제14 과정에서는 상기 제12 과정(S12)의 판단 결과가 ‘아니오’인 경우에 제어기의 원래 목적에 해당하는 기능으로써 플랜트(10)에 위치되어 있는 다수의 센서(2)로부터 자료를 획득하고, 제어기의 수행 목적상 필요한 내부, 입력 변수값과 조작자 등에게 보여줄 수 있는 변수값을 저장하고, 상기 제6 내지 제13 과정(S6~S13)에서 결정된 제어 알고리즘을 수행한 후에 그 수행 결과를 저장하게 된다.(S14 참조)In step 14, when the result of the twelfth step (S12) is 'No', the function corresponding to the original purpose of the controller acquires data from the plurality of sensors 2 located in the plant 10, The internal variables necessary for the execution of the controller and the variable values that can be displayed to the operator and the like are stored and the result of the execution is stored after performing the control algorithm determined in the sixth to thirteenth steps S6 to S13 (Refer to S14)
상기 제14 과정(S14)이 완료되면 제15 과정에서는 제어기모듈(5)을 수행시 또는 변수 저장을 위한 색인지표로 사용되는 샘플링 시간 인덱스(T)를 증가시키게 된다.(S15 참조) 그 후에, 제16 과정에서는 낱말 데이터 베이스(55)에서 외부출력 플랜트가 유효한지를 판단하게 된다.(S16 참조)When the 14th step S14 is completed, the sampling time index T used as an index for the storage of the controller module 5 or for storing the variable is increased in step 15. In step 15, In step 16, it is determined whether the external output plant is valid in the word database 55. (See S16)
상기 제16 과정(S16)의 판단 결과가 ‘예’인 경우에 제17 과정에서는 해당되는 낱말 데이터 베이스(55)를 갱신하게 되지만, 상기 제16 과정(S16)의 판단 결과가 ‘아니오’인 경우에는 외부 출력이 필요없다고 판단하고 상기 제2 과정(S2)으로 되돌아가 다음 컨텍스트 스위칭 동작을 기다리게 된다.(S17 참조) 이때, 해당 변수의 출력이 너무 잦은 빈도로 출력될 필요가 없을 때에는 상기 제17 과정(S17)에서 적절히 그 빈도를 조절할 수 있다.If the determination result of step S16 is YES, the seventh step updates the corresponding word database 55. If the determination result of step S16 is NO It is determined that the external output is not necessary and the process returns to the second step S2 to wait for the next context switching operation. (See S17) At this time, when the output of the variable is not required to be output at too high a frequency, The frequency can be appropriately adjusted in the step S17.
본 발명에 따른 제어기의 제어기 제어 알고리즘 변경 방법을 위한 제어기 운영부(50)에서의 알고리즘이 제4도에 도시되어 있다.An algorithm in the controller operating unit 50 for a method of changing the controller control algorithm of the controller according to the present invention is shown in FIG.
먼저, 제1 단계에서는 조작자의 입력 명령행을 입력수단(40)을 통해 입력되었는지를 판단하게 된다.(T1 참조) 그 후, 제2 단계에서는 상기 제1 단계(T1)의 판단 결과가 ‘아니오’인 경우에 조작자가 명령행을 입력할 때까지 대기 동작을 수행하게 되지만, 제3 단계에서는 상기 제1 단계(T1)의 판단 결과가 ‘예’인 경우에 상기 제1 단계(T1)에서 입력된 입력 명령행을 즉시 버퍼 메모리(51)에 저장하게 된다.(T2 및 T3 참조)First, in the first step, it is judged whether the input command line of the operator is inputted through the input means 40. (Refer to T1) Then, in the second step, if the result of the first step (T1) In the case where the result of the determination in the first step (T1) is YES, in the first step (T1), the input operation is performed in the first step (T1) And immediately stores the input command line in the buffer memory 51. (See T2 and T3)
제4 단계에서는 상기 제3 단계(T3)에서 저장된 조작자의 입력 명령행을 명령해석기(52)에 전달하여 명령해석기(52)에 의해 조작자의 입력 명령행이 좌에서 우로 차례로 해독되어 각 낱말로 분리시키게 된다.(T4 참조) 제5 단계에서는 공백으로 분리된 낱말들이 낱말 데이터 베이스(55)에 등록되었는지를 확인하게 되는데, 상기 제5 단계(T5)의 확인 결과가 ‘예’인 경우에 제6 단계에서는 낱말 데이터 베이스(55)에 등록된 낱말을 찾아 해당되는 내용 필드의 내용을 명령행으로 복사하여 상기 제4 단계(T4)와 같은 방식으로 해독하고, 제5 단계(T5)로 되돌아가 다음 낱말의 등록 여부를 확인하게 된다.(T5 및 T6 참조)In the fourth step, the input command line of the operator stored in the third step (T3) is transmitted to the command interpreter 52, and the command interpreter 52 decodes the input command line of the operator in order from left to right, (See T4). In the fifth step, it is confirmed whether or not the words separated by the blank are registered in the word database 55. If the result of the fifth step T5 is YES, Finds the word registered in the word database 55 and copies the content of the corresponding content field to the command line and decodes it in the same manner as the fourth step T4 and returns to the fifth step T5, Check whether the word is registered (see T5 and T6).
그런데, 상기 제5 내지 제6 단계(T5, T6)에서 조작자의 입력 명령행에 포함되어 있는 모든 낱말의 해독이 완료된 후에 특정 낱말이 낱말 데이터 베이스(55)에 등록되지 않은 경우에 그 낱말이 숫자, 문자열, 행렬과 같은 데이터인지를 판단하게 된다.(T7 참조) 이때, 상기 제7 단계(T7)의 판단 결과가 ‘예’인 경우에 제8 단계에서는 해당되는 낱말을 스택(53)의 가장 윗부분에 저장하게 되는데, 상기 제7 단계(T7)의 판단 결과가 ‘아니오’인 경우에 제9 단계에서는 그 특정 낱말이 스택연산처리부(54)에 등록되어 있는 연산처리 명령인지를 판별하게 된다.(T8 및 T9 참조)If a specific word is not registered in the word database 55 after the decoding of all the words included in the input command line of the operator is completed in the fifth to sixth steps T5 and T6, (Step T7). If the result of the seventh step (T7) is YES, in step 8, the corresponding word is stored in the memory of the stack 53 If the result of the seventh step T7 is NO, the ninth step determines whether the specific word is an operation processing command registered in the stack operation processing unit 54. [ (See T8 and T9)
상기 제9 단계(T9)의 판별 결과가 ‘예’인 경우에 제10 단계에서는 그 낱말이 스택연산처리부(54)에 등록된 명령 중에서 종료 명령에 해당되는지를 검사하게 된다.(T10 참조) 상기 제10 단계(T10)의 판단 결과가 ‘예’인 경우에는 즉시 모든 프로그램을 종료하게 되지만, 상기 제10 단계(T10)의 판단 결과가 ‘아니오’인 경우에는 제11 단계에서 상기 스택(53)에 저장된 적어도 1개 이상의 데이터에 대해 스택연산처리부(54)에서 정의된 연산 처리 작업을 수행하게 된다.(T11 참조)If the result of the determination in the ninth step T9 is YES, the tenth step checks whether the word corresponds to a termination command among the commands registered in the stack operation processing unit 54 (refer to T10). If the determination result of the tenth step T10 is YES, all the programs are immediately terminated. If the result of the tenth step T10 is NO, At least one data stored in the stack operation processing unit 54 is subjected to the operation processing operation defined by the stack operation processing unit 54. (See T11)
상기 스택연산처리부(54)의 연산처리 명령 중에서 낱말 데이터 베이스(55)의 내용을 삽입, 변경, 삭제 명령이 있고, 스택(53)을 이용한 산술연산, 수학함수 계산, 스택(53)의 저장 순서 변경, 복사와 같은 스택 조작, 반복문, 조건문 등의 프로그램 흐름 제어 명령, 외부 기기와의 입출력, 기준클록을 이용한 시간 관리 등이 있으며, 이러한 연산처리 명령은 모두 스택(53)을 이용하여 연산 처리 작업이 진행되게 된다.There are instructions for inserting, changing and deleting the contents of the word database 55 from among the operation processing instructions of the stack operation processing unit 54 and for executing arithmetic operations using the stack 53, A program operation control instruction such as a stack operation such as change and copy operation, a program flow control instruction such as an iteration statement and a conditional statement, input / output with an external device, and time management using a reference clock. .
예를 들어 “출력하라”와 같은 명령을 내리면 스택(53)에서 가장 윗부분의 값을 없애고 화면에 그 값을 출력하게 된다. 그러나, 상기 낱말 데이터 베이스(55)에 대해 “목록을 출력하라”와 같은 명령은 스택(53)과 관계없이 처리하게 된다.For example, if you issue a command such as "print out", you will remove the topmost value from the stack (53) and print the value on the screen. However, an instruction such as "output a list" for the word database 55 is processed irrespective of the stack 53.
그런데, 상기 제9 단계(T9)의 판별 결과가 ‘아니오’인 경우에는 제12 단계에서 에러 처리하고 다음 단계로 넘어가게 된다.(T12 참조) 마지막으로, 제13 단계에서는 상기 버퍼 메모리(51)에 저장된 명령행이 모두 해독되었는지를 판단하게 되고(T13 참조), 상기 제13 단계(T13)의 판단 결과가 ‘아니오’인 경우에는 상기 제4 단계(T4)로 되돌아가 다시 버퍼 메모리(51)에 저장된 명령행 중에서 해독되지 않은 낱말을 해독하게 된다. 그러나, 상기 제13 단계(T13)의 판단 결과가 ‘예’인 경우에는 제1 단계(T1)로 되돌아가 조작자에 의해 다음 명령행이 입력되는지를 감시하게 된다.If the result of the determination in the ninth step T9 is NO, the error processing is performed in the twelfth step and the process proceeds to the next step. (See T12.) Finally, in the thirteenth step, (T13). If the result of the determination in the step T13 is NO, the flow returns to the fourth step (T4) to return to the buffer memory 51, And decipher the undocoded words from the command line stored in. However, if the determination result of the thirteenth step (T13) is YES, the process returns to the first step (T1) to monitor whether the next command line is input by the operator.
상기와 같은 알고리즘은 버퍼 메모리(51)가 한번에 한 개의 명령행을 저장할 수 있을 때를 기준으로 설명하고 있으나, 상기 버퍼 메모리(51)의 저장 용량이 1개 이상이라도 같은 원리로 구현될 수 있다.The above algorithm is described based on the case where the buffer memory 51 can store one command line at a time. However, even if the buffer memory 51 has one or more storage capacities, the same algorithm can be implemented.
본 발명의 다른 실시예로서 제어기 파라미터 변경을 수행할 경우에 출력수단(57)에서의 과정을 설명하면, 먼저 변경하고자 하는 파라미터의 이름과 변경 내용을 차례로 스택(53)에 입력시키게 된다. 상기 스택연산처리부(54)에서는 스택(53)에 미리 저장되어 있는 데이터에 대해 등록명령을 내려 파라미터의 변경 내용을 낱말 데이터 베이스(55)에 등록시키게 된다.In another embodiment of the present invention, in the case of performing the controller parameter change, the process of the output means 57 will be described. First, the name and the change contents of the parameter to be changed are sequentially inputted to the stack 53. The stack operation processing unit 54 registers a parameter change in the word database 55 by issuing a register command to the data stored in the stack 53 in advance.
이때, 1개 이상의 파라미터를 동시에 변경할 필요가 있을 경우에는 위의 과정을 각각의 파라미터 이름에 대해 수행하게 된다. 상기 파라미터 변경시에는 변경 값을 직접 지적할 수도 있고, 파라미터의 현재 값에서 증가 또는 감소량을 지정하여 변경할 수도 있으며, 상기 스택(53)과 낱말 데이터 베이스(55)에 연관된 각종 연산명령을 이용하여 함수 형태로 지정할 수도 있다. 그리고, 현재 시스템의 상태 변수(예를 들어 제어기 출력 값)를 입력 변수로 활용할 수도 있으며, 비선형 및 선형 제어기 등의 모든 제어 알고리즘을 포함할 수도 있다. 이와 같은 연산 과정을 통해 변경된 파라미터는 파라미터변경 플래그를 변경하여 실제 제어기의 동작에 반영되게 된다.At this time, when it is necessary to change one or more parameters at the same time, the above process is performed for each parameter name. The change value may be directly indicated at the time of the parameter change or may be changed by designating an increase or a decrease amount at the current value of the parameter and may be changed using various operation commands related to the stack 53 and the word database 55, It can also be specified in the form. The current system state variable (for example, the controller output value) may be used as an input variable, and may include all control algorithms such as non-linear and linear controllers. The parameters changed through the calculation process are reflected in the operation of the actual controller by changing the parameter change flag.
입력 센서 종류의 선택, 제어기의 제어 알고리즘 선택, 제어 목표치 변경, 통신 파라미터 변경 등도 해당되는 변수와 플래그를 변경하여 상기한 제어기 파라미터변경 방법과 동일한 방법으로 선택 또는 변경 작업을 수행할 수 있게 된다.It is possible to perform the selection or change operation in the same manner as the above-described controller parameter changing method by changing the variables and flags for selecting the input sensor type, selecting the control algorithm of the controller, changing the control target value, and changing the communication parameter.
시스템 변수의 모니터링을 위한 실시예로는, 센서(2) 등의 입력포트의 현재 값을 모니터링하기 위해서는 스택(53)에 입출력 인터페이스부(20)의 해당 아날로그/디지털 변환기(A/D CONVERTER)의 어드레스를 스택(53)에 저장하고, 변환 명령을 내려 해당 센서(2)의 감지량, 즉 물리량의 변환 값을 스택(53)에 가져오게 된다. 그리고, 필요한 경우 스택(53)에 저장된 값에 대해 사칙연산과 같은 산술 기능, 삼각함수와 같은 수학함수, 사용자 정의함수 등 각종 연산을 수행하게 된다. 그 후, 상기 스택(53)에 저장된 결과 값에 대해 조작자가 관찰할 수 있도록 출력 명령으로 화면에 송출하게 된다.In order to monitor the current value of the input port of the sensor 2 or the like, an embodiment for monitoring the system variable may be configured to monitor the current value of the analog / digital converter (A / D converter) of the input / The address is stored in the stack 53, a conversion command is issued, and the sensing value of the sensor 2, that is, the converted value of the physical quantity, is brought to the stack 53. If necessary, various operations such as an arithmetic function such as arithmetic operation, a mathematical function such as a trigonometric function, and a user-defined function are performed on the value stored in the stack 53. Thereafter, the resultant value stored in the stack 53 is sent to the screen as an output command so that the operator can observe the result value.
결국, 본 발명은 특히 연구용, 학습용 제어기로 적용할 경우 시스템을 운전하면서도 여러 가지 시스템의 환경을 바꾸어가며 시스템을 이해할 수 있는 기능을 구현할 수 있다. 예를 들면, 민감도 검사와 같이 특정 파라미터의 변화에 따라 시스템의 특성이 어떻게 변화하는지를 알아볼 수 있다. 또한, 본 발명은 제어기 생산업체에서 여러 개의 유사한 품종을 한가지의 제어기로 제어할 수 있는 범용 제어기를 구현할 수 있기 때문에 생산되는 제어기의 모델 수를 줄일 수 있고, 개발 기간의 단축과 같은 이점을 갖는 시스템을 구현할 수 있게 된다.As a result, the present invention can realize a function of understanding the system while changing the environment of various systems while operating the system, in particular, when applied to a controller for research and learning. For example, it can be seen how the characteristics of the system change with changes in specific parameters, such as sensitivity testing. In addition, since the controller manufacturer can implement a general-purpose controller capable of controlling several similar varieties with one controller, the present invention can reduce the number of models of the controller produced, . ≪ / RTI >
본 발명은 제어기 및 전체 시스템의 동작 중에 제어기의 파라미터, 함수를 변경하여 그 파라미터의 전체 시스템에 대한 영향을 파악할 수 있을 뿐만 아니라, 상기 파라미터나 함수의 변경 결과로 더욱 개선된 제어기 파라미터, 함수를 얻을 수 있다.The present invention can not only obtain the influence of the parameter on the entire system by changing the parameters and functions of the controller during operation of the controller and the whole system but also obtain more improved controller parameters and functions as a result of the change of the parameters or functions .
또한, 제어기의 제어 알고리즘을 단순한 파라미터 수정뿐만 아니라 제어기의 제어 알고리즘에 포함되는 제어 방법을 시스템이 동작되는 도중에, 혹은 시스템 정지중에 조작자로부터 그 변경 내용을 전달받아 그에 따라 제어 알고리즘을 변경하고, 그 변경된 제어 알고리즘에 따라 시스템을 동작시킴으로써 적극적인 의미의 가변형 제어 기능을 수행할 수 있다.The control algorithm of the controller may be modified not only by a simple parameter modification but also by a control method included in the control algorithm of the controller. The control algorithm may be changed during operation of the system, By operating the system according to the control algorithm, it is possible to perform a variable control function in an active sense.
그리고, 본 발명은 제어기의 입력 센서를 조작자가 지시하여 작업 도중에 바꿀 수 있게 하며, 센서 보정(CALIBRATION)에 관한 파라미터와 함수도 작업 도중에 조작자가 지령할 수 있다.In addition, the present invention enables the operator to change the input sensor of the controller by instructing the operator during operation, and parameters and functions related to the sensor calibration can also be instructed by the operator during the operation.
무엇보다도, 본 발명은 제어기의 동작을 멈추지 않으면서도 제어기와 연결되어 있는 특정 기기를 시간 또는 입력 조건 등의 상태 변수에 따라 출력 변수의 상태를 변경할 수 있고, 조작자의 선택에 따라 제어 알고리즘을 선택할 수 있다. 목표 프로화일 등의 제어 목표 함수, 파라미터 등을 조작자의 의도 또는 여러 가지 조건에 따라 변화시킬 수도 있다.The present invention can change the state of an output variable according to a state variable such as a time or an input condition or the like to a specific device connected to the controller without stopping the operation of the controller, have. A control target function such as a target profile, parameters, and the like may be changed according to an operator's intention or various conditions.
본 발명은 제어기. 센서 출력 등 시스템의 주요한 변수 또는 물리량을 검출하고, 그 검출 결과를 기기의 자체에 내장되어 있는 스택 연산 방식에 기반을 둔 스택연산처리부(54)를 이용하여 여러 가지 필요한 계산 작업을 수행하여 시스템의 중요한 상태 또는 성능을 편리하고 신속하게 감시할 수 있다.The present invention relates to a controller. A sensor output, etc., and performs various necessary calculations using a stack operation processing unit 54 based on a stack operation method built in the apparatus itself to detect a main variable or a physical quantity of the system, You can monitor critical conditions or performance conveniently and quickly.
또한, 외부에 PC 또는 마이크로컴퓨터가 내장된 기기와 통신할 수 있도록 환경이 구성되어 있을 때, 두 통신 대상간의 통신방법에 관한 파라미터, 프로토콜 등 통신방법을 자유롭게 선택할 수 있고, 이러한 통신은 그 동작을 특징짓는 명령부와 이 명령부와 연관된 데이터부가 전달되어야 한다. 상기 명령부와 데이터부에 관한 송신측과 수신측간의 약속을 프로토콜이라고 하는데, 본 발명에 의한 통신에서는 이러한 프로토콜이 고정된 것이 아니라 자체적으로 정해진 문법을 갖는 프로그램 형식을 가질 수 있다.In addition, when an environment is configured to communicate with a device having a PC or a microcomputer built in the outside, a communication method such as a parameter and a protocol relating to a communication method between two communication objects can be freely selected. The characterizing part and the data part associated with this part of the command must be communicated. The promise between the sender and the receiver regarding the command and data parts is called a protocol. In the communication according to the present invention, such a protocol is not fixed, but can have a program format having its own predetermined grammar.
상기와 같은 기능을 구현하기 위해서는 입력 또는 통신되는 명령어는 숫자, 영문자, 특수문자, 한글 등 다양하게 표현될 수 있으며, 판독하기 용이한 형태로 문서화 가능하고, 한번 작성된 명령행을 저장하고 이를 다시 사용할 수도 있다.In order to implement the above function, input or communicated commands can be expressed in various forms such as numbers, alphabets, special characters, Korean characters, etc., can be documented in a form that is easy to read, It is possible.
무엇보다도, 본 발명은 기존과 달리 별도의 튜닝 작업이 온-라인으로 수행할 수 있으므로 별도의 장비를 이용하여 제어기를 튜닝하는 작업이 불필요해진다.First of all, since tuning work can be performed on-line separately from the conventional method, it is not necessary to tune the controller using a separate device.
이에 대한 일실시예를 살펴보면, 상기 입력수단(40)을 통해 조작자가 미리 사전에 설정되어 있는 프로토콜에 의하여 특정 명령어를 입력하게 되면 제어기 운영부(50)의 버퍼 메모리(51), 명령해석기(52), 스택연산처리부(54)를 통해 낱말 데이터 베이스(55)에 있는 “외부출력_플래그”와 같은 파라미터 값을 수정하게 된다.If the operator inputs a specific command through a predetermined protocol through the input unit 40, the command is transmitted to the buffer memory 51, the command interpreter 52, , And the parameter value such as " external output_flag " in the word database 55 is modified through the stack operation processing unit 54. [
그리고, 상기 제어기 운영부(50)에서는 제어 대상(1)을 구동 제어하기 위해 제3도와 같은 방법을 수행하는 도중에 제14 단계(S14)를 수행할 때에는 센서(2)를 통해 제5 단계(S5)에서 전달받은 입력값을 이용해 제어기모듈(5)에서 제어기 출력을 연산하고, 그 연산된 값을 제14 단계(S14)와 제5 단계(S5)를 거쳐 구동부(3)를 통해 제어대상(1)으로 입력되게 된다.When the controller operation unit 50 performs the operation S14 in the same manner as the operation 3 of the third embodiment to drive and control the control object 1, The control unit 5 calculates the controller output using the input value received from the control unit 1 and outputs the calculated value to the control object 1 through the driving unit 3 through the fourteenth step S14 and the fifth step S5, .
상기 제어대상(1)으로 입력되는 값, 즉 제어기모듈(5)에서 구동부(3)로 출력되는 값(즉, “제어기_출력_값”)을 하나, 또는 일정 기간 동안 축적된 데이터를 행렬 형태로 제16 및 제17 단계(S16, S17)을 수행할 때 낱말 데이터 베이스(55)에 지속적으로 등록하게 된다.A value input to the control object 1, that is, a value output from the controller module 5 to the driving unit 3 (i.e., " controller_output_value "), The user is continuously registered in the word database 55 when performing steps 16 and 17 (S16 and S17).
상기와 같은 작업을 통해 기존에 외부 장비를 통해 튜닝 작업을 수행하던 것을 본 발명에서는 외부 장비가 별도로 필요 없이 튜닝하는 방법이 제공되게 된다. 여기서, 상기 제어기 운영부(50)에서는 제어기모듈(5)에서 구동부(3)로 출력되는 값(즉, “제어기_출력_값”) 뿐만 아니라 제어기 운영부(50) 내의 내부 변수를 동시에 출력수단(57)으로 출력함으로써 보다 정확한 튜닝 작업이 수행되도록 한다.In the present invention, a tuning operation is performed through an external device through the above-described operation. Here, the controller operating unit 50 simultaneously outputs internal variables in the controller operating unit 50 as well as a value (i.e., a " controller_output_value ") output from the controller module 5 to the driving unit 3 ) So that a more accurate tuning operation can be performed.
한편, 외부 조작자나 프로그램 등에서 입력수단(40)을 통해 낱말 데이터 베이스(55)에 저장되어 있는 상기 내부 변수 또는 “제어기_출력_값”을 출력수단(57)을 통해 출력하라고 명령하게 되면, 그 명령어는 상기 버퍼 메모리(51), 명령해석기(52)를 거쳐 낱말 데이터 베이스(55)에 저장된 “제어기_출력_값”이 제4도의 제6 단계(T6)를 통해 데이터로 변환되고, 제7 및 제8 단계(T7, T8)을 통해 상기 제6 단계(T6)에서 변환된 데이터가 스택(53)에 저장된 후에 제10 및 제11 단계(T10, T11)를 수행하여 출력수단(57)으로 그 데이터를 외부 기기로 송신할 수 있게 된다.On the other hand, when an external operator or program instructs the output means 57 to output the internal variable or " controller_output_value " stored in the word database 55 via the input means 40, Quot; controller_output_value " stored in the word database 55 via the buffer memory 51 and the command interpreter 52 is converted into data through the sixth step T6 of FIG. 4, And the data converted in the sixth step T6 through the eighth step T7 and T8 are stored in the stack 53 and then the tenth and eleventh steps T10 and T11 are performed to the outputting means 57 The data can be transmitted to the external device.
그러면, 외부 기기는 일정 시간 동안 데이터의 동향과 셀프 튜닝 알고리즘(STR 기법 등)이 내장된 프로그램 또는 수작업에 의해 적절한 제어기의 파라미터 값을 계산할 수 있고, 이렇게 계산된 파라미터는 다시 입력수단(40)에 의해 제어기로 파라미터변경 명령이 보내지게 된다. 상기 입력수단(40)에 의해 전달된 명령은 낱말 데이터 베이스(55)의 “파라미터변경_플래그”와 “파라미터_1”과 같은 적절한 파라미터를 변경하는데 이 명령어는 버퍼 메모리(51), 명령해석기(52), 스택연산처리부(54)를 통해 진행되고, 다시 제3도의 재10 및 제11 단계(S10, S11)에 의해 제어기 내부의 해당 메모리를 변경하게 된다.Then, the external device can calculate a parameter value of an appropriate controller by a program or manual operation with a built-in data trend and a self-tuning algorithm (STR technique, etc.) for a predetermined time, The parameter change command is sent to the controller. The command delivered by the input means 40 changes the appropriate parameters such as " parameter change flag " and " parameter_1 " of the word database 55, which are stored in the buffer memory 51, 52, and the stack operation processing unit 54, and the corresponding memory in the controller is changed again by the re-10 and the eleventh steps (S10, S11) of FIG.
상기와 같이 구성되는 본 발명의 제어기의 제어 알고리즘 변경 시스템 및 그 변경방법은 제어기 동작을 멈추지 않은 상태에서도 키보드나 음성인식장치와 같은 입력수단을 통해 전달되는 명령 또는 다른 지령 기기의 지령을 통해 조작자의 명령을 대화식으로 받아들여 저장용 스택과 낱말 데이터 베이스를 이용하여 여러 가지 함수 및 연산을 수행함으로써 제어기의 제어 알고리즘을 용이하게 바꿀 수 있는 동시에 일련의 절차로 된 일괄처리 개념의 프로그램 기능을 수행할 수 있는 효과가 있다.The control algorithm changing system and the altering method of the controller according to the present invention configured as described above may be configured such that a command transmitted through an input means such as a keyboard or a speech recognition apparatus or a command transmitted from another command device By taking commands interactively and performing various functions and operations using the storage stack and word database, it is possible to easily change the control algorithm of the controller, and at the same time, perform a program function of a batch process concept in a series of procedures There is an effect.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960021914A KR100264765B1 (en) | 1996-06-18 | 1996-06-18 | Controlling algorithm changing system and changing method of controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960021914A KR100264765B1 (en) | 1996-06-18 | 1996-06-18 | Controlling algorithm changing system and changing method of controller |
Publications (2)
Publication Number | Publication Date |
---|---|
KR980003938A KR980003938A (en) | 1998-03-30 |
KR100264765B1 true KR100264765B1 (en) | 2000-09-01 |
Family
ID=19462213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960021914A KR100264765B1 (en) | 1996-06-18 | 1996-06-18 | Controlling algorithm changing system and changing method of controller |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100264765B1 (en) |
-
1996
- 1996-06-18 KR KR1019960021914A patent/KR100264765B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR980003938A (en) | 1998-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4683549A (en) | Sequence control method and apparatus | |
US5490266A (en) | Process oriented logic simulation having stability checking | |
US5987248A (en) | Debugging information display device | |
US5619734A (en) | Programmable controller and method of operation thereof | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
JPH08221107A (en) | Sequence control program generating device | |
JPS60263256A (en) | Computer provided with skill degree function | |
KR100264765B1 (en) | Controlling algorithm changing system and changing method of controller | |
US5963725A (en) | Simulation system and method for microcomputer program | |
US5619702A (en) | Method and apparatus for programming registers using simplified commands | |
US4761750A (en) | Electronic calculator with a program calculation function | |
JPH01108602A (en) | Sequence controller | |
JPH06187015A (en) | Program converter for sequencer | |
JP2653880B2 (en) | Program content analyzer | |
GB2175112A (en) | Sequence control method and apparatus | |
JPH1130581A (en) | Controller for gas analyzer system and its control method | |
JP2940470B2 (en) | Structure analysis method and structure analysis device | |
JPS62162105A (en) | Flow chart type programmable controller | |
JPH06110547A (en) | Sequence result data collector | |
JPH05250221A (en) | Simulator execution system | |
JP2616613B2 (en) | Programmable controller | |
JPS60225908A (en) | Programmable controller | |
JPH0472244B2 (en) | ||
JP3638505B2 (en) | Simulation apparatus and software simulation method for microprocessor | |
JPS6383842A (en) | Program processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110607 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |