KR101283026B1 - System for real time control of total control system and method thereof - Google Patents

System for real time control of total control system and method thereof Download PDF

Info

Publication number
KR101283026B1
KR101283026B1 KR1020070101373A KR20070101373A KR101283026B1 KR 101283026 B1 KR101283026 B1 KR 101283026B1 KR 1020070101373 A KR1020070101373 A KR 1020070101373A KR 20070101373 A KR20070101373 A KR 20070101373A KR 101283026 B1 KR101283026 B1 KR 101283026B1
Authority
KR
South Korea
Prior art keywords
control panel
processing
real
plc
time
Prior art date
Application number
KR1020070101373A
Other languages
Korean (ko)
Other versions
KR20090036287A (en
Inventor
김성현
Original Assignee
현대자동차주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대자동차주식회사 filed Critical 현대자동차주식회사
Priority to KR1020070101373A priority Critical patent/KR101283026B1/en
Publication of KR20090036287A publication Critical patent/KR20090036287A/en
Application granted granted Critical
Publication of KR101283026B1 publication Critical patent/KR101283026B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4145Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
    • 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/14Plc safety
    • G05B2219/14006Safety, monitoring in general
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15125Multiple kernels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2214Multicontrollers, multimicrocomputers, multiprocessing

Landscapes

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

Abstract

본 발명은 통합 제어시스템으로 서로 다른 이기종으로 구성되고 하나 이상 다수개로 이루어지는 제어반과 제어용 PC(Personal Computer)를 프로세스별로 독립적으로 연결하여 프로세싱(Processing)의 실시간 통합 처리와 모니터링을 제공하는 것이다.The present invention is to provide a real-time integrated processing and monitoring of the processing (Processing) by independently connecting the control panel composed of different heterogeneous and one or more and control PC (Personal Computer) as an integrated control system for each process.

본 발명은 제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정, DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정, 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정, 초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정, 커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정을 포함한다.The present invention comprises a multi-process including a DLL provided by the control panel manufacturing company, connecting each control panel corresponding to each process by the DDE method, and read the necessary input and output information, servo drive information, internal registers in the DLL Extracting the physical base address, which is an internal function for writing, Analyzing the execution image file format of the Windows system to calculate the location and size of the executable file and forcibly fixing it in shared memory to reside the executable file in shared memory Select the PLC of the control panel to be driven in the program, drive the PLC thread to be initially executed using the registered command function, create a waiting thread, and schedule to process a specific routine according to the interrupt signal generated from the kernel drive. After running each thread to process each corresponding routine statement. Setting a synchronization event to a non-signal state.

제어반, PCL/CNC, DLL. 커널 드라이브, 다중 프로세스 Control panel, PCL / CNC, DLL. Kernel drive, multiprocess

Description

통합 제어시스템의 실시간 제어장치 및 방법{SYSTEM FOR REAL TIME CONTROL OF TOTAL CONTROL SYSTEM AND METHOD THEREOF}Real time control device and method of integrated control system {SYSTEM FOR REAL TIME CONTROL OF TOTAL CONTROL SYSTEM AND METHOD THEREOF}

본 발명은 통합 제어시스템에 관한 것으로, 더 상세하게는 서로 다른 이기종으로 구성되고 하나 이상 다수개로 이루어지는 제어반과 제어용 PC(Personal Computer)를 프로세스별로 독립적으로 연결하여 프로세싱(Processing)의 실시간 통합 처리와 모니터링을 제공하는 통합 제어시스템의 실시간 제어장치 및 방법에 관한 것이다.The present invention relates to an integrated control system, and more particularly, a real-time integrated processing and monitoring of the processing (Processing) by independently connecting a control panel composed of different heterogeneous types and one or more control panels and a personal computer (PC) for each process. It relates to a real-time control device and method of an integrated control system for providing a.

일반적으로 자동차의 엔진이나 변속기 등을 가공하는 가공 라인은 첨부된 도 5에 도시된 바와 같이, 소재를 가공하는 가공기(10), 가공기(10)에 가공하고자 하는 소재를 투입시키는 로더(20), 설정된 가공 프로세스에 따라 가공기(10) 및 로더(20)의 동작을 제어하는 제어반(30)으로 구성되며, 통신 인터페이스를 통해 상호 연결되어 복합제어를 실행하는 FMS(Flexible Manufacturing System)로 구성된다.In general, a processing line for processing an engine or a transmission of an automobile is, as shown in FIG. 5, a processing machine 10 for processing a material, a loader 20 for inputting a material to be processed into the processing machine 10, It is composed of a control panel 30 for controlling the operation of the machine 10 and the loader 20 according to the set machining process, it is composed of FMS (Flexible Manufacturing System) that is connected to each other through a communication interface to execute a complex control.

FMS로 구성되는 가공라인은 서로 다른 이기종의 장치로들로 구성되므로, 제어반(30)의 경우 대응되는 각각의 장치들을 제어하기 위하여 SIEMENS의 CNC/PCL 제어기(32), FANUC의 CNC/PCL 제어기(33)(34), MELSEC의 PCL 제어기(35)를 포함하며, 이들 제어기는 상위 프로세서이며 소재의 가공에 대한 전반적인 동작을 제어하는 PC(31)와 필드 버스를 통해 연결되어 대응되는 로더(20) 및 가공기(10)의 동작을 제어한다.Since the processing line composed of FMS is composed of different heterogeneous devices, in order to control the corresponding devices in the case of the control panel 30, the CNC / PCL controller 32 of SIEMENS and the CNC / PCL controller of FANUC ( 33) (34), MELSEC's PCL controller (35), which is a higher processor and is connected to the corresponding loader (20) via a field bus with a PC (31) that controls the overall operation of the workpiece. And control the operation of the processing machine 10.

이와같이 구성되는 FMS의 경우 실질적인 가동에 앞에 각각의 상호 연동 동작에 대하여 시뮬레이션을 실행하여 장치 상호간의 충돌 및 인명 손상이 발생되지 않도록 PC(31)에 설정되는 운용 프로세스의 수정이 이루어져야 한다.In the case of the FMS configured as described above, the operation process set in the PC 31 should be modified so as to prevent the collisions and personal injury between the devices by performing simulation for each interlocking operation before actual operation.

시뮬레이션을 위한 하나의 예로, FANUC의 CNC/PMC(33)(34)의 명령에 따라 로더(20)를 작동시키는 서보모터의 축을 더미(Dummy)축으로 가상 설정하고, PC(31)에서 소재 공급 및 가공 명령을 송출한다.As an example for simulation, the axis of the servomotor that operates the loader 20 according to the instructions of the CNC / PMC 33, 34 of FANUC is virtually set as a dummy axis, and the material is supplied from the PC 31. And send the machining instruction.

이에 따라 SIEMENS의 CNC/PCL 제어기(32), FANUC의 CNC/PCL 제어기(33)(34), MELSEC의 PCL 제어기(35)는 필드 버스를 통해 제공되는 소재 공급 및 가공 명령에 따라 로더(20) 및 가공기(10)의 동작을 제어한다.Accordingly, SIEMENS's CNC / PCL controller 32, FANUC's CNC / PCL controller 33, 34, and MELSEC's PCL controller 35 are loaded with loaders 20 according to material supply and machining instructions provided through the fieldbus. And control the operation of the processing machine 10.

이때, 로더(20)의 움직임에 대하여 PC(31)에서는 가상의 그래픽으로 처리하여 로더(20)와 가공기(10)의 충돌이 발생하는지, 주변의 작업자와 충돌하는지 등을 분석하여 PC(31)에 설정된 운용 프로그램의 오류를 파악한다.At this time, the PC 31 processes the virtual graphics with respect to the movement of the loader 20 and analyzes whether the collision between the loader 20 and the processing machine 10 occurs or collides with a worker nearby. Identify the error of the operation program set in.

특히, FMS로 구성되는 현장라인에서는 각 제어기간 수많은 필드 버스가 복합적으로 얽혀 있어 원 스캔 타이밍(One Scan Timing) 처리 오류에 문제가 발생하는 경우 이기종간 동시 신호측정이 불가능하기 때문에 추적을 통한 해결이 용이하지 않는 문제점이 있다.In particular, in field lines composed of FMS, many field buses are intertwined in each control period, so if there is a problem in one scan timing processing error, simultaneous signal measurement between heterogeneous types is impossible, so it is not possible to solve by tracking. There is a problem that is not easy.

도 4는 자동화 공장에서 PC만을 이용하여 실제 프로그램과 같은 상황에서 입 출력 장치들을 시운전해 볼 수 있도록 하는 PLC 프로그램 시뮬레이션 방법을 도시한 것이다.FIG. 4 illustrates a PLC program simulation method that allows the I / O devices to be commissioned in a situation such as an actual program using only a PC in an automated factory.

이는 프로그램 시뮬레이터가 탑재된 PC(1)와 시뮬레이션하고자 하는 PLC(2) 및 PLC 제어 프로그램을 작성하기 위한 프로그램 로더(3)를 구비하여 프로그램 로더(3)로부터 입력 변수값을 가져오고, 장치 응답 지연시간을 체크하여 만족되면 응답로직을 실행하고 그렇지 않으면 실행기능을 종료한다. It has a PC (1) equipped with a program simulator, a PLC (2) to be simulated and a program loader (3) for creating a PLC control program to take input variable values from the program loader (3) and delay device response. Check the time and if satisfied, execute the response logic, otherwise terminate the execution function.

응답로직이 안정적으로 실행되었으면 그 결과값을 출력 변수로 출력하고, 표현식 분석기가 표현식을 연산하여 그 결과값을 이미지 변수로 출력하며 컴포넌트의 실행이 완료되면 실행처리로 제어권을 넘겨주어 실행처리에서 실행 규칙에 따라 다음 컴포넌트를 실행시키도록 한다. When the response logic is executed stably, the result value is output as an output variable, the expression analyzer calculates the expression and outputs the result value as an image variable, and when the component execution is completed, transfers control to the execution process and executes it in the execution process. Run the following components according to the rules.

따라서, PC만 있어도 실시스템과 같은 상황에서 입출력장치들을 가상으로 시험할 수 있게 된다.Therefore, even with a PC, the I / O devices can be virtually tested in a real system situation.

그러나, 이러한 방법은 하나 이상의 이기종으로 구성되며, 제작회사가 상이한 제어반(PLC/CNC)에 대해서는 시뮬레이션이 불가능한 문제점이 있다.However, this method is composed of one or more heterogeneous, there is a problem that the manufacturer is not possible to simulate the different control panel (PLC / CNC).

또한, 현장라인의 트러블을 해결하기 위하여 동일 기종의 PLC를 적용하는 경우 PC를 통해 프로그램의 실시간 처리가 다소간 가능하지만 이기종 다수개의 PLC를 적용하는 경우에 대해서는 프로그램의 실시간 모니터링이 불가능한 문제점이 있다.In addition, when applying the same type of PLC to solve the problem of the field line, real-time processing of the program through the PC is somewhat possible, but there is a problem that the real-time monitoring of the program is impossible for the case of applying a plurality of heterogeneous PLC.

좀 더 구체적으로, 개방형 제어반(PLC/CNC)의 제작회사별 DLL 파일로 PC에서 진단을 할 수 있는 프로그램을 구성하여 한 종류의 제어반(PLC)에 대한 응용 대상의 통합 진단기능을 구현하는 경우에는 실시간(Real Time) 문제가 다소 줄어들지만 여러 종류의 제어반(PLC/CNC)을 사용하는 통합제어나 트러블 발생시 원인을 분석하는 경우 실 시간처리가 문제가 될 수 있다. More specifically, in the case of implementing the integrated diagnostic function of the application target for one type of control panel (PLC) by constructing a program that can be diagnosed on a PC by the manufacturer-specific DLL file of the open control panel (PLC / CNC) Although the real time problem is somewhat reduced, real time processing can be a problem when analyzing the cause when integrated control or trouble occurs using various control panels (PLC / CNC).

예를 들어 도 5에 도시된 바와 같은 통합제어 시스템이 구현되는 경우 주로 FANUC/MELSEC/SIEMENS로 이루어지는 이기종 제어반(32)(33)(34)(35)들을 필드 버스로 연결하고, 제어반은 각 제작회사별로 자사에서 개발된 폐쇄형 RTOS(Real Time Operating System)을 사용함으로 실시간 처리가 문제되지 않는다.For example, when an integrated control system as shown in FIG. 5 is implemented, heterogeneous control panels 32, 33, 34, and 35 mainly consisting of FANUC / MELSEC / SIEMENS are connected by a field bus, and the control panel is manufactured by each. Each company uses its own closed Real Time Operating System (RTOS), so real-time processing is not a problem.

그러나, 운용체제가 윈도우로 탑재되는 PC(31)와 제어반(PLC)을 연결하는 경우 원격진단/제어, 가상 시뮬레이션 등과 같은 다양한 용도의 작업 진행에 방해되는 각 프로세스와 태스크의 우선순위에 의해 처리시간을 할당하게 되어 윈도우 운영체제가 사용되는 PC에서 통합진단 시스템을 구현함에 있어 실시간 처리가 문제가 된다.However, when the operating system connects the PC 31 mounted with a window to the control panel (PLC), the processing time is determined by the priority of each process and task that prevents the progress of various purposes such as remote diagnosis / control and virtual simulation. In this case, real-time processing becomes a problem when implementing an integrated diagnosis system in a PC using a Windows operating system.

즉, PC의 운영체제는 단일 프로세스 인터럽트 처리방법으로 실시간 처리가 미흡하나마 가능하지만, 프로세스의 수행시간이 짧을 것을 요구하고 시스템 자원의 사용방법에 제한이 가해져 그 구현이 용이하지 않은 문제점이 있다. In other words, the operating system of the PC is a single process interrupt processing method, but real-time processing can be insufficient, but there is a problem that requires a short execution time of the process and is limited in the method of using the system resources, the implementation is not easy.

특히 다중 프로세스의 경우 거의 실시간 구현이 불가능해 이와 관련된 다음과 같은 문제점이 있다.In particular, in the case of multiple processes, almost real-time implementation is impossible, which leads to the following problems.

디스크 스와핑 기법을 적용하여 가상기억 공간에는 존재하지만 실제 메모리에 그 내용이 없을 때에는 디스크로부터 그 내용을 읽어와 실제 메모리에 상주시키고, 현재 메모리에서 잘 사용하지 않는 부분은 다시 디스크에 저장하여 두는 기법을 사용하고 있다. When the disk swapping technique is applied to the virtual memory space but the contents are not in the physical memory, the contents are read from the disk and resident in the physical memory, and the unused portion of the current memory is stored on the disk again. I use it.

그러나, 이러한 기법은 현재 수행될 프로세스가 디스크에 존재하는 경우 속도지연이 발생하는 문제점이 있다.However, this technique has a problem that a speed delay occurs when a process to be executed currently exists on the disk.

또한, 하나의 인터럽트 신호에 대하여 하나의 서비스 루틴만이 배정되며, 이에 대응하는 하나의 프로세스 및 스레드(Thread) 생성을 통해 해당하는 작업이 수행되도록 하고 있기 때문에 다수의 서비스 루틴을 수행하여야 하는 경우 여러 개의 프로세스를 생성시켜야 하고, 동일 개수의 하드웨어 신호를 필요로 하므로 프로세스를 효율적으로 사용하지 못하는 문제점이 발생되며, 반복적인 인터럽트의 발생으로 인하여 시스템의 효율성이 저하되는 문제점이 있다.In addition, only one service routine is assigned to one interrupt signal, and a corresponding process is executed by creating a corresponding process and thread so that a plurality of service routines must be executed. It is necessary to generate two processes, and the same number of hardware signals are required, resulting in a problem in that the process cannot be efficiently used, and a problem in that the efficiency of the system is lowered due to the occurrence of repetitive interrupts.

이외에 실시간 기능을 위해 불필요한 범용 PC와의 통신, 시뮬레이션 데이터의 입출력, 메모리 처리 기능의 홀드 등이 필요한 문제점이 있다.In addition, there is a problem in that communication with a general purpose PC, input / output of simulation data, and hold of a memory processing function are unnecessary for real-time functions.

본 발명은 상기한 문제점을 해결하기 위하여 발명한 것으로, 그 목적은 통합 제어시스템에서 제작회사가 서로 상이하고, 하나 이상 다수개로 이루어지는 이기종 제어반(PLC/CNC)과 제어용 PC를 프로세스별로 독립적으로 연결하여 프로세싱의 실시간 통합 처리와 모니터링을 제공하도록 하는 것이다.The present invention has been invented to solve the above problems, the purpose of which is different from the manufacturer in the integrated control system, the heterogeneous control panel (PLC / CNC) consisting of one or more and the control PC independently connected by process To provide real-time integrated processing and monitoring of the processing.

상기한 목적을 실현하기 위한 본 발명의 특징에 따른 통합 제어시스템의 실시간 제어장치는,Real-time control device of the integrated control system according to a feature of the present invention for realizing the above object,

제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스로 구성되고, 각각의 프로세스는 대응되는 제어반과 DDE 방식으로 연결되는 상위 프로세스; 제어반의 하드웨어와 통신을 통해 얻어진 입출력 신호 데이터를 저장하여 다른 제어반에서 읽고 쓰기가 가능하도록 하는 공유 메모리; 공유 메모리에 저장되어 있는 데이터의 읽기/쓰기 처리를 실시간 스케즐러에 따라 통합 제어하는 커널 드라이브를 포함한다.A multi-process including a DLL provided by a control panel manufacturer, and each process includes an upper process connected to a corresponding control panel in a DDE manner; Shared memory for storing the input and output signal data obtained through communication with the hardware of the control panel to enable the other control panel to read and write; It includes a kernel drive that integrates and controls read / write processing of data stored in shared memory according to a real-time scheduler.

또한, 본 발명의 다른 특징에 따른 통합 통합 제어시스템의 실시간 제어방법은,In addition, the real-time control method of the integrated integrated control system according to another feature of the present invention,

제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정; DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정; 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정; 초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정; 커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정을 포함한다.Configuring multiple processes including a DLL provided by a control panel manufacturing company, and connecting each control panel corresponding to each process in a DDE manner; Extracting a physical base address, which is an internal function for reading and writing the necessary input / output information, servo drive information, and internal registers from the DLL; Analyzing the executable image file format of the Windows system to calculate the location and size of the executable file and forcibly fixing the shared file to the shared memory so that the executable file resides in the shared memory; Selecting a PLC of a control panel to be initially driven, driving a PLC thread to be initially executed using a registered command function, and generating a waiting thread; The process includes setting a synchronization event to a non-signal state after processing a corresponding routine statement by driving a schedule thread for processing a specific routine according to an interrupt signal generated from a kernel drive.

전술한 구성에 의하여 본 발명에서는 각기 다른 메이커의 이기종으로 구성되고 다수개로 이루어지는 제어반에 대하여 안정된 통합 제어 및 시뮬레이션 실시간 모니터링을 제공하는 효과를 기대할 수 있다.By the above-described configuration, the present invention can be expected to provide an effect of providing stable integrated control and simulation real-time monitoring for a control panel consisting of a plurality of different manufacturers of different manufacturers.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.

그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.

도 1은 본 발명의 실시예에 따른 통합 제어시스템의 실시간 제어장치의 구성을 도시한 도면이다.1 is a view showing the configuration of a real-time control device of the integrated control system according to an embodiment of the present invention.

도시된 바와 같이, 커널 드라이브(100)와 상위 프로세스(200) 및 다수개의 이기종 제어반(300)으로 구성된다.As shown, the kernel drive 100 and the upper process 200 and a plurality of heterogeneous control panel 300 is configured.

상위 프로세스(200)는 구성되는 PLC/CNC 등의 제어반(300) 제작회사에서 제공되는 DLL을 포함한 내용을 멀티 스레드 방식으로 구성하고, 제어반(300)의 하드웨어와 통신을 통해 얻어진 입출력 신호 데이터 각각의 값을 다른 PLC/CNC에 전달 하기 위한 공유메모리(Shared Memory)를 포함한다.The upper process 200 configures the contents including the DLL provided by the control panel 300 manufacturing company such as PLC / CNC to be configured in a multi-threaded manner, and each of the input / output signal data obtained through communication with the hardware of the control panel 300. It contains a shared memory to transfer the value to another PLC / CNC.

상기 상위 프로세스(200)는 PLC/CNC 등의 제어반(300) 제작회사에서 제공되는 DLL을 포함하여 각기 독립적인 다중 프로세스로 구현되고, 이들 각각의 프로세스는 대응되는 제어반(300)과 독립적으로 연결된다.The upper process 200 is implemented as a plurality of independent processes, each including a DLL provided by the control panel 300 manufacturing company such as PLC / CNC, each of these processes are independently connected to the corresponding control panel 300 .

상기 공유 메모리는 데이터를 공유하는 형식을 적용하여 각각의 제어반(300)이 읽고 쓰기를 할 수 있도록 한다.The shared memory applies a format for sharing data so that each control panel 300 can read and write.

상기 상위 프로세스(200)와 CNC/PLC 등으로 이루어지는 각 제어반(300)과는 DDE(Data Dynamic Exchange) 방식으로 연결된다.The upper process 200 and each control panel 300 including CNC / PLC are connected by a data dynamic exchange (DDE) method.

상기 커널 드라이브(100)는 상위 프로세스(200)에 구성되는 공유 메모리에 저장되어 있는 파라메터의 실시간 읽기/쓰기 처리를 통합제어 하도록 실시간 스케즐러(Real-Time Scheduler)로 구성된다.The kernel drive 100 is configured as a real-time scheduler to collectively control real-time read / write processing of parameters stored in the shared memory configured in the upper process 200.

상기한 연결을 갖는 구성에서 상위 프로세스의 동작은 다음과 같이 실행된다.In the configuration with the above connection, the operation of the upper process is executed as follows.

먼저, 상위 프로세스(200)는 실시간 처리를 위하여 각각의 제어반(300) 제작회사에서 제공되는 DLL를 포함하여 다중 프로세스를 독립적으로 구성하고, 이들 각각의 프로세스와 대응되는 각각의 제어반(300)을 DDE 방식으로 연결한다(S101).First, the upper process 200 independently configures multiple processes, including a DLL provided by each control panel 300 manufacturer for real-time processing, and each control panel 300 corresponding to each process is DDE. Connect in the manner (S101).

예를 들어, 독립적으로 구성된 다중 프로세스중에서 PLC_1 인터페이스 DLL을 포함하는 프로세스1(210)은 Melsec의 PLC(310)와 연결되고, PLC_2 인터페이스 DLL을 포함하는 프로세스2(220)은 Fanuc의 CNC/PLC(320)와 연결되고, PLC_3 인터페이스 DLL을 포함하는 프로세서3(230)은 Siemens의 CNC/PLC(330)과 연결된다.For example, among multiple independently configured processes, process 1 210 including the PLC_1 interface DLL is connected to the PLC 310 of Melsec, and process 2 220 including the PLC_2 interface DLL is a CNC / PLC (Fanuc). Processor 3 230, which includes a PLC_3 interface DLL, is coupled to Siemens' CNC / PLC 330.

상기한 바와 같이 각각의 다중 프로세스가 대응되는 제어반(300)과의 연결이 이루어지면 DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터 등을 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출한다(S102).As described above, when each of the multiple processes is connected to the corresponding control panel 300, the physical base address, which is an internal function for reading and writing the input / output information, the servo drive information, the internal register, etc. required by the DLL is extracted (S102). .

이후, 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 구하여 그 부분을 고정시킴으로써 프로그램 영역이 항상 메모리에 상주하게 한다(S103)(S104).Thereafter, by analyzing the execution image file format of the window system, the location and size of the execution file are obtained, and the portions thereof are fixed so that the program area always resides in the memory (S103) (S104).

상기 실행파일을 메모리에 상주시키는 방법은 제어반(300)을 구성하는 각각의 PLC/CNC 제작회사별 이미지 실행파일을 읽어 헤더파일인 IMAGE_DOS_HEADER를 분석하여 IMAGE_NT_HEADER/IMAGE_OPTIONAL_HEADER 구조체를 Winnt.h헤더 파일과 비교 분석한 다음 프로그램 실행 코드 크기와 데이터 크기를 합하여 전체 프로그램의 크기를 구하고, 실시간 커널과 함께 사용하기 위하여 가상고정(Virtual Lock) API함수로 강제 고정한다.The method of residing the executable file in the memory is to read the image executable file for each PLC / CNC manufacturing company constituting the control panel 300, analyze the header file IMAGE_DOS_HEADER, and compare the IMAGE_NT_HEADER / IMAGE_OPTIONAL_HEADER structure with the Winnt.h header file. Then, the size of the entire program is obtained by adding the program execution code size and data size, and forcedly fixed with the virtual lock API function for use with the real-time kernel.

그리고, 제어반(300)을 구성하는 각 PLC/CNC 제조회사별 인터페이스 입출력 DLL 함수는 수백 가지가 되며 초기에 구동될 제어반(300)의 PLC를 선정하고, 초기수행 할 PLC 스레드를 구동한다. In addition, there are hundreds of interface input / output DLL functions for each PLC / CNC manufacturing company constituting the control panel 300, and select a PLC of the control panel 300 to be initially driven, and drive a PLC thread to be initially performed.

이때 케이스(Case)문으로 각각의 명령함수를 미리 등록하여 대기용 스레드를 생성한다(S105). At this time, each instruction function is registered in advance in a case statement to create a waiting thread (S105).

이에 따라서, 커널 드라이브(100)에서 발생되는 인터럽트 신호에 맞추어 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정을 한다(S106).Accordingly, in response to the interrupt signal generated from the kernel drive 100, a schedule thread for processing a specific routine is driven to process each corresponding routine statement, and then a synchronization event is set to a non-signal state (S106).

따라서, 본 발명은 하나의 인터럽트에 의한 다중 프로세싱을 수행할 수 있어 인터럽트 신호를 효율적으로 사용함과 동시에 다른 프로세스 및 스레드의 루틴처리에 영향을 주지 않으므로 프로세스 처리 속도의 향상을 제공하는 특징이 있다. Accordingly, the present invention is capable of performing multiple processing by one interrupt, thereby efficiently using an interrupt signal and at the same time not affecting the routine processing of other processes and threads.

또한, 실시간 통합 제어를 제공하는 커널 드라이브(100)의 동작에 대하여 도 3을 참조하여 설명하면 다음과 같다.In addition, the operation of the kernel drive 100 providing real time integrated control will be described with reference to FIG. 3.

제어반(300)을 구성하며 이기종으로 이루어지는 다수의 PLC/CNC 하드웨어 인터럽트 번호를 PC 내부의 타이머로 선택시키기 위한 인터럽트 서비스 루틴(Interrupt Service Routine;ISR)을 인터럽트 정의 테이블(Interrupt Description Table;IDT)에 등록한다(S201).Registers an Interrupt Service Routine (ISR) in the Interrupt Description Table (IDT) for configuring the control panel 300 and selecting a plurality of heterogeneous PLC / CNC hardware interrupt numbers as a timer inside the PC. (S201).

그리고, 실시간 타임 감시 및 표시를 위한 태스크 처리시간을 측정하고 각 태스크 구문함수는 다수의 PLC/CNC 프로세스/멀티 스레드의 입출력, 공유 메모리에 저장된 파라메터를 읽기/쓰기 위한 함수를 등록한다(S202).The task processing time for real time monitoring and display is measured, and each task syntax function registers a function for reading / writing parameters stored in input / output and shared memory of a plurality of PLC / CNC processes / multithreads (S202).

이후, 스택 형식의 메모리에 프로세스의 수행인 인터럽트 서비스 루틴의 스케쥴러를 저장하고(S203), 실시간 처리에 방해되는 불필요한 하드웨어 인터럽트의 발생을 방지한다(S204).Thereafter, the scheduler of the interrupt service routine, which is the execution of the process, is stored in the stack-type memory (S203), and generation of unnecessary hardware interrupts that interfere with real-time processing is prevented (S204).

이후, 현재 상태의 스택 포인터와 태스크 구문을 상기 기본스택의 각 레지스터에 저장 후 상기 레지스터에 저장된 스케즐러 처리 대상의 태스크를 실시간 처리로 순차적으로 읽어 수행하며(S205), 태스크의 종료가 검출되면(S206) 스택 영역을 실시간 처리 확보되기 직전으로 환원하여 스택 레지스터를 복구한다(S207).Subsequently, the stack pointer and the task syntax of the current state are stored in each register of the base stack, and then the tasks of the scheduler processing target stored in the register are sequentially read in real time processing (S205). S206) The stack register is restored to just before the real-time processing is secured, and the stack register is restored (S207).

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수 있다. The embodiments of the present invention described above are not implemented only through the apparatus and the method, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiments of the present invention or a recording medium on which the program is recorded.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

도 1은 본 발명의 실시예에 따른 통합 제어시스템의 실시간 모니터링 장치의 구성을 도시한 도면이다.1 is a view showing the configuration of a real-time monitoring device of the integrated control system according to an embodiment of the present invention.

도 2는 도 1에 도시된 다중 프로세스의 실행 흐름을 도시한 도면이다.FIG. 2 is a diagram illustrating an execution flow of the multiple processes illustrated in FIG. 1.

도 3은 도 1에 도시된 커널 드라이브의 실시간 처리 흐름을 도시한 도면이다.FIG. 3 is a diagram illustrating a real-time processing flow of the kernel drive shown in FIG. 1.

도 4는 종래의 PLC 시뮬레이션 장치의 구성을 도시한 도면이다.4 is a diagram showing the configuration of a conventional PLC simulation apparatus.

도 5는 일반적인 통합 제어 시스템의 개략적인 구성을 도시한 도면이다.5 is a view showing a schematic configuration of a general integrated control system.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 커널 드라이브 200 : 상위 프로세스100: kernel drive 200: parent process

300 : 다중 제어반300: multiple control panel

Claims (4)

삭제delete 삭제delete 제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정;Configuring multiple processes including a DLL provided by a control panel manufacturing company, and connecting each control panel corresponding to each process in a DDE manner; DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정;Extracting a physical base address, which is an internal function for reading and writing the necessary input / output information, servo drive information, and internal registers from the DLL; 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정;Analyzing the executable image file format of the Windows system to calculate the location and size of the executable file and forcibly fixing the shared file to the shared memory so that the executable file resides in the shared memory; 초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정;Selecting a PLC of a control panel to be initially driven, driving a PLC thread to be initially executed using a registered command function, and generating a waiting thread; 커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정;Setting a synchronization event to a non-signal state after processing a corresponding routine statement by driving a schedule thread for processing a specific routine according to an interrupt signal generated from a kernel drive; 을 포함하고,/ RTI &gt; 상기 실행파일을 공유 메모리에 상주시키는 방법은,The method of resident in the shared memory, 제어반을 구성하는 각 제작회사별 이미지 실행파일을 읽어 헤더 파일인 IMAGE_DOS_HEADER을 분석하는 과정;Analyzing the header file IMAGE_DOS_HEADER by reading an image executable file of each manufacturing company constituting the control panel; 상기 헤더 파일의 IMAGE_NT_HEADER/IMAGE_OPTIONAL_HEADER 구조체를 Winnt.h헤더 파일과 비교 분석한 다음 프로그램 실행 코드 크기와 데이터 크기를 합하여 전체 프로그램의 크기를 산출하는 과정 및;Comparing the IMAGE_NT_HEADER / IMAGE_OPTIONAL_HEADER structure of the header file with a Winnt.h header file and calculating the size of the entire program by adding the program execution code size and the data size; 실시간 커널과 함께 사용하기 위하여 가상고정 API함수로 강제 고정하는 과정을 포함하는 통합 제어시스템의 실시간 제어방법.Real-time control method of the integrated control system including forcibly fixing with a virtual fixed API function for use with the real-time kernel. 제3항에 있어서,The method of claim 3, 상기 커널 드라이브에 인터럽트 신호에 따른 특정 루틴의 실행은,Execution of a specific routine according to the interrupt signal to the kernel drive, 제어반을 구성하는 다수의 PLC/CNC 하드웨어 인터럽트 번호를 선택하기 위한 인터럽트 서비스 루틴(ISR)을 인터럽트 정의 테이블(IDT)에 등록하는 과정;Registering an interrupt service routine (ISR) in the interrupt definition table (IDT) for selecting a plurality of PLC / CNC hardware interrupt numbers constituting the control panel; 실시간 타임 감시 및 표시를 위한 태스크 처리시간을 측정하고 각 태스크 구문함수를 다중 프로세스의 입출력 및 공유 메모리 데이터의 읽기/쓰기 위한 함수로 등록하는 과정;Measuring a task processing time for real-time time monitoring and display and registering each task syntax function as a function for reading / writing of input / output and shared memory data of multiple processes; 공유 메모리에 인터럽트 서비스 루틴의 스케쥴러를 저장하고, 실시간 처리에 방해되는 불필요한 하드웨어 인터럽트의 발생을 방지하는 과정 및;Storing a scheduler of the interrupt service routine in the shared memory and preventing generation of unnecessary hardware interrupts that interfere with real-time processing; 현재의 스택 포인터와 태스크 구문을 기본 스택의 각 레지스터에 저장한 후 상기 레지스터에 저장된 스케즐러 처리 대상의 태스크를 순차적으로 읽어 수행하는 과정 및;Storing a current stack pointer and a task syntax in each register of the base stack and sequentially reading and performing a task of a scheduler processing target stored in the register; 태스크가 종료되면 스택 레지스터를 복구하는 과정을 포함하는 통합 제어시스템의 실시간 제어방법.Real-time control method of the integrated control system comprising the step of restoring the stack register when the task is finished.
KR1020070101373A 2007-10-09 2007-10-09 System for real time control of total control system and method thereof KR101283026B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070101373A KR101283026B1 (en) 2007-10-09 2007-10-09 System for real time control of total control system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070101373A KR101283026B1 (en) 2007-10-09 2007-10-09 System for real time control of total control system and method thereof

Publications (2)

Publication Number Publication Date
KR20090036287A KR20090036287A (en) 2009-04-14
KR101283026B1 true KR101283026B1 (en) 2013-07-05

Family

ID=40761313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070101373A KR101283026B1 (en) 2007-10-09 2007-10-09 System for real time control of total control system and method thereof

Country Status (1)

Country Link
KR (1) KR101283026B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029977A (en) 2017-09-13 2019-03-21 최문기 A control system for device and process for operationg the control system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419558B1 (en) * 2009-09-02 2014-07-14 엘에스산전 주식회사 Monitoring system of plc system and monitoring method of plc system using the same
KR102160014B1 (en) * 2019-03-05 2020-09-25 서울대학교산학협력단 Method for task communication on heterogeneous network and system using thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079125A (en) * 1998-04-01 1999-11-05 유철진 Implementation of numerical control device using single central processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079125A (en) * 1998-04-01 1999-11-05 유철진 Implementation of numerical control device using single central processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029977A (en) 2017-09-13 2019-03-21 최문기 A control system for device and process for operationg the control system

Also Published As

Publication number Publication date
KR20090036287A (en) 2009-04-14

Similar Documents

Publication Publication Date Title
US7480825B2 (en) Method for debugging reconfigurable architectures
JP5535393B2 (en) How to test an electronic control system
EP3379358B1 (en) Control system, control device, control program, and control method
JP6692278B2 (en) Arithmetic device and virtual development environment device
CN109213680B (en) Automatic testing method based on embedded software simulator
JP5270330B2 (en) Multicore microcomputer system simulation method and simulation apparatus
JP5904989B2 (en) Method and adjusting unit for adjusting a control device
JP2018173883A (en) Control device, control program, control system, and control method
KR101283026B1 (en) System for real time control of total control system and method thereof
Brecher et al. Model-based control of a handling system with SysML
CN100403275C (en) Micro processor and method using in firmware program debug
US11544436B1 (en) Hardware-software interaction testing using formal verification
Schamp et al. Virtual commissioning of industrial control systems-a 3D digital model approach
CN114780421A (en) Abnormity testing method, system and storage medium based on virtual instruction set platform
Gee The how's and why's of PC based control
US20100077383A1 (en) Simulation method and storage medium for storing program
JP7419956B2 (en) Information processing device, information processing method and program
Cheng et al. Real-time computing in open systems for manufacturing
JPH0938876A (en) Simulation device
JP2003281076A (en) Unauthorized access detection circuit of dma controller, unauthorized access detecting method and program thereof
Kutscher et al. Concept for Interaction of Hardware Simulation and Embedded Software in a Digital Twin Based Test Environment
JP2023151726A (en) Development device, development program, and development method
JPH02210556A (en) Visualizing device for program execution state
JP2507789B2 (en) Logical simulation processing method of virtual machine
CN117892661A (en) Simulator comparison system based on RISC-V processor verification

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: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 7