KR20090036287A - 통합 제어시스템의 실시간 제어장치 및 방법 - Google Patents

통합 제어시스템의 실시간 제어장치 및 방법 Download PDF

Info

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

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • 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)의 실시간 통합 처리와 모니터링을 제공하는 것이다.
본 발명은 제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정, DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정, 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정, 초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정, 커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정을 포함한다.
제어반, PCL/CNC, DLL. 커널 드라이브, 다중 프로세스

Description

통합 제어시스템의 실시간 제어장치 및 방법{SYSTEM FOR REAL TIME CONTROL OF TOTAL CONTROL SYSTEM AND METHOD THEREOF}
본 발명은 통합 제어시스템에 관한 것으로, 더 상세하게는 서로 다른 이기종으로 구성되고 하나 이상 다수개로 이루어지는 제어반과 제어용 PC(Personal Computer)를 프로세스별로 독립적으로 연결하여 프로세싱(Processing)의 실시간 통합 처리와 모니터링을 제공하는 통합 제어시스템의 실시간 제어장치 및 방법에 관한 것이다.
일반적으로 자동차의 엔진이나 변속기 등을 가공하는 가공 라인은 첨부된 도 5에 도시된 바와 같이, 소재를 가공하는 가공기(10), 가공기(10)에 가공하고자 하는 소재를 투입시키는 로더(20), 설정된 가공 프로세스에 따라 가공기(10) 및 로더(20)의 동작을 제어하는 제어반(30)으로 구성되며, 통신 인터페이스를 통해 상호 연결되어 복합제어를 실행하는 FMS(Flexible Manufacturing System)로 구성된다.
FMS로 구성되는 가공라인은 서로 다른 이기종의 장치로들로 구성되므로, 제어반(30)의 경우 대응되는 각각의 장치들을 제어하기 위하여 SIEMENS의 CNC/PCL 제어기(32), FANUC의 CNC/PCL 제어기(33)(34), MELSEC의 PCL 제어기(35)를 포함하며, 이들 제어기는 상위 프로세서이며 소재의 가공에 대한 전반적인 동작을 제어하는 PC(31)와 필드 버스를 통해 연결되어 대응되는 로더(20) 및 가공기(10)의 동작을 제어한다.
이와같이 구성되는 FMS의 경우 실질적인 가동에 앞에 각각의 상호 연동 동작에 대하여 시뮬레이션을 실행하여 장치 상호간의 충돌 및 인명 손상이 발생되지 않도록 PC(31)에 설정되는 운용 프로세스의 수정이 이루어져야 한다.
시뮬레이션을 위한 하나의 예로, FANUC의 CNC/PMC(33)(34)의 명령에 따라 로더(20)를 작동시키는 서보모터의 축을 더미(Dummy)축으로 가상 설정하고, PC(31)에서 소재 공급 및 가공 명령을 송출한다.
이에 따라 SIEMENS의 CNC/PCL 제어기(32), FANUC의 CNC/PCL 제어기(33)(34), MELSEC의 PCL 제어기(35)는 필드 버스를 통해 제공되는 소재 공급 및 가공 명령에 따라 로더(20) 및 가공기(10)의 동작을 제어한다.
이때, 로더(20)의 움직임에 대하여 PC(31)에서는 가상의 그래픽으로 처리하여 로더(20)와 가공기(10)의 충돌이 발생하는지, 주변의 작업자와 충돌하는지 등을 분석하여 PC(31)에 설정된 운용 프로그램의 오류를 파악한다.
특히, FMS로 구성되는 현장라인에서는 각 제어기간 수많은 필드 버스가 복합적으로 얽혀 있어 원 스캔 타이밍(One Scan Timing) 처리 오류에 문제가 발생하는 경우 이기종간 동시 신호측정이 불가능하기 때문에 추적을 통한 해결이 용이하지 않는 문제점이 있다.
도 4는 자동화 공장에서 PC만을 이용하여 실제 프로그램과 같은 상황에서 입 출력 장치들을 시운전해 볼 수 있도록 하는 PLC 프로그램 시뮬레이션 방법을 도시한 것이다.
이는 프로그램 시뮬레이터가 탑재된 PC(1)와 시뮬레이션하고자 하는 PLC(2) 및 PLC 제어 프로그램을 작성하기 위한 프로그램 로더(3)를 구비하여 프로그램 로더(3)로부터 입력 변수값을 가져오고, 장치 응답 지연시간을 체크하여 만족되면 응답로직을 실행하고 그렇지 않으면 실행기능을 종료한다.
응답로직이 안정적으로 실행되었으면 그 결과값을 출력 변수로 출력하고, 표현식 분석기가 표현식을 연산하여 그 결과값을 이미지 변수로 출력하며 컴포넌트의 실행이 완료되면 실행처리로 제어권을 넘겨주어 실행처리에서 실행 규칙에 따라 다음 컴포넌트를 실행시키도록 한다.
따라서, PC만 있어도 실시스템과 같은 상황에서 입출력장치들을 가상으로 시험할 수 있게 된다.
그러나, 이러한 방법은 하나 이상의 이기종으로 구성되며, 제작회사가 상이한 제어반(PLC/CNC)에 대해서는 시뮬레이션이 불가능한 문제점이 있다.
또한, 현장라인의 트러블을 해결하기 위하여 동일 기종의 PLC를 적용하는 경우 PC를 통해 프로그램의 실시간 처리가 다소간 가능하지만 이기종 다수개의 PLC를 적용하는 경우에 대해서는 프로그램의 실시간 모니터링이 불가능한 문제점이 있다.
좀 더 구체적으로, 개방형 제어반(PLC/CNC)의 제작회사별 DLL 파일로 PC에서 진단을 할 수 있는 프로그램을 구성하여 한 종류의 제어반(PLC)에 대한 응용 대상의 통합 진단기능을 구현하는 경우에는 실시간(Real Time) 문제가 다소 줄어들지만 여러 종류의 제어반(PLC/CNC)을 사용하는 통합제어나 트러블 발생시 원인을 분석하는 경우 실 시간처리가 문제가 될 수 있다.
예를 들어 도 5에 도시된 바와 같은 통합제어 시스템이 구현되는 경우 주로 FANUC/MELSEC/SIEMENS로 이루어지는 이기종 제어반(32)(33)(34)(35)들을 필드 버스로 연결하고, 제어반은 각 제작회사별로 자사에서 개발된 폐쇄형 RTOS(Real Time Operating System)을 사용함으로 실시간 처리가 문제되지 않는다.
그러나, 운용체제가 윈도우로 탑재되는 PC(31)와 제어반(PLC)을 연결하는 경우 원격진단/제어, 가상 시뮬레이션 등과 같은 다양한 용도의 작업 진행에 방해되는 각 프로세스와 태스크의 우선순위에 의해 처리시간을 할당하게 되어 윈도우 운영체제가 사용되는 PC에서 통합진단 시스템을 구현함에 있어 실시간 처리가 문제가 된다.
즉, PC의 운영체제는 단일 프로세스 인터럽트 처리방법으로 실시간 처리가 미흡하나마 가능하지만, 프로세스의 수행시간이 짧을 것을 요구하고 시스템 자원의 사용방법에 제한이 가해져 그 구현이 용이하지 않은 문제점이 있다.
특히 다중 프로세스의 경우 거의 실시간 구현이 불가능해 이와 관련된 다음과 같은 문제점이 있다.
디스크 스와핑 기법을 적용하여 가상기억 공간에는 존재하지만 실제 메모리에 그 내용이 없을 때에는 디스크로부터 그 내용을 읽어와 실제 메모리에 상주시키고, 현재 메모리에서 잘 사용하지 않는 부분은 다시 디스크에 저장하여 두는 기법을 사용하고 있다.
그러나, 이러한 기법은 현재 수행될 프로세스가 디스크에 존재하는 경우 속도지연이 발생하는 문제점이 있다.
또한, 하나의 인터럽트 신호에 대하여 하나의 서비스 루틴만이 배정되며, 이에 대응하는 하나의 프로세스 및 스레드(Thread) 생성을 통해 해당하는 작업이 수행되도록 하고 있기 때문에 다수의 서비스 루틴을 수행하여야 하는 경우 여러 개의 프로세스를 생성시켜야 하고, 동일 개수의 하드웨어 신호를 필요로 하므로 프로세스를 효율적으로 사용하지 못하는 문제점이 발생되며, 반복적인 인터럽트의 발생으로 인하여 시스템의 효율성이 저하되는 문제점이 있다.
이외에 실시간 기능을 위해 불필요한 범용 PC와의 통신, 시뮬레이션 데이터의 입출력, 메모리 처리 기능의 홀드 등이 필요한 문제점이 있다.
본 발명은 상기한 문제점을 해결하기 위하여 발명한 것으로, 그 목적은 통합 제어시스템에서 제작회사가 서로 상이하고, 하나 이상 다수개로 이루어지는 이기종 제어반(PLC/CNC)과 제어용 PC를 프로세스별로 독립적으로 연결하여 프로세싱의 실시간 통합 처리와 모니터링을 제공하도록 하는 것이다.
상기한 목적을 실현하기 위한 본 발명의 특징에 따른 통합 제어시스템의 실시간 제어장치는,
제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스로 구성되고, 각각의 프로세스는 대응되는 제어반과 DDE 방식으로 연결되는 상위 프로세스; 제어반의 하드웨어와 통신을 통해 얻어진 입출력 신호 데이터를 저장하여 다른 제어반에서 읽고 쓰기가 가능하도록 하는 공유 메모리; 공유 메모리에 저장되어 있는 데이터의 읽기/쓰기 처리를 실시간 스케즐러에 따라 통합 제어하는 커널 드라이브를 포함한다.
또한, 본 발명의 다른 특징에 따른 통합 통합 제어시스템의 실시간 제어방법은,
제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정; DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정; 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정; 초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정; 커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정을 포함한다.
전술한 구성에 의하여 본 발명에서는 각기 다른 메이커의 이기종으로 구성되고 다수개로 이루어지는 제어반에 대하여 안정된 통합 제어 및 시뮬레이션 실시간 모니터링을 제공하는 효과를 기대할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 통합 제어시스템의 실시간 제어장치의 구성을 도시한 도면이다.
도시된 바와 같이, 커널 드라이브(100)와 상위 프로세스(200) 및 다수개의 이기종 제어반(300)으로 구성된다.
상위 프로세스(200)는 구성되는 PLC/CNC 등의 제어반(300) 제작회사에서 제공되는 DLL을 포함한 내용을 멀티 스레드 방식으로 구성하고, 제어반(300)의 하드웨어와 통신을 통해 얻어진 입출력 신호 데이터 각각의 값을 다른 PLC/CNC에 전달 하기 위한 공유메모리(Shared Memory)를 포함한다.
상기 상위 프로세스(200)는 PLC/CNC 등의 제어반(300) 제작회사에서 제공되는 DLL을 포함하여 각기 독립적인 다중 프로세스로 구현되고, 이들 각각의 프로세스는 대응되는 제어반(300)과 독립적으로 연결된다.
상기 공유 메모리는 데이터를 공유하는 형식을 적용하여 각각의 제어반(300)이 읽고 쓰기를 할 수 있도록 한다.
상기 상위 프로세스(200)와 CNC/PLC 등으로 이루어지는 각 제어반(300)과는 DDE(Data Dynamic Exchange) 방식으로 연결된다.
상기 커널 드라이브(100)는 상위 프로세스(200)에 구성되는 공유 메모리에 저장되어 있는 파라메터의 실시간 읽기/쓰기 처리를 통합제어 하도록 실시간 스케즐러(Real-Time Scheduler)로 구성된다.
상기한 연결을 갖는 구성에서 상위 프로세스의 동작은 다음과 같이 실행된다.
먼저, 상위 프로세스(200)는 실시간 처리를 위하여 각각의 제어반(300) 제작회사에서 제공되는 DLL를 포함하여 다중 프로세스를 독립적으로 구성하고, 이들 각각의 프로세스와 대응되는 각각의 제어반(300)을 DDE 방식으로 연결한다(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)과 연결된다.
상기한 바와 같이 각각의 다중 프로세스가 대응되는 제어반(300)과의 연결이 이루어지면 DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터 등을 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출한다(S102).
이후, 윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 구하여 그 부분을 고정시킴으로써 프로그램 영역이 항상 메모리에 상주하게 한다(S103)(S104).
상기 실행파일을 메모리에 상주시키는 방법은 제어반(300)을 구성하는 각각의 PLC/CNC 제작회사별 이미지 실행파일을 읽어 헤더파일인 IMAGE_DOS_HEADER를 분석하여 IMAGE_NT_HEADER/IMAGE_OPTIONAL_HEADER 구조체를 Winnt.h헤더 파일과 비교 분석한 다음 프로그램 실행 코드 크기와 데이터 크기를 합하여 전체 프로그램의 크기를 구하고, 실시간 커널과 함께 사용하기 위하여 가상고정(Virtual Lock) API함수로 강제 고정한다.
그리고, 제어반(300)을 구성하는 각 PLC/CNC 제조회사별 인터페이스 입출력 DLL 함수는 수백 가지가 되며 초기에 구동될 제어반(300)의 PLC를 선정하고, 초기수행 할 PLC 스레드를 구동한다.
이때 케이스(Case)문으로 각각의 명령함수를 미리 등록하여 대기용 스레드를 생성한다(S105).
이에 따라서, 커널 드라이브(100)에서 발생되는 인터럽트 신호에 맞추어 특정 루틴을 처리하기 위한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정을 한다(S106).
따라서, 본 발명은 하나의 인터럽트에 의한 다중 프로세싱을 수행할 수 있어 인터럽트 신호를 효율적으로 사용함과 동시에 다른 프로세스 및 스레드의 루틴처리에 영향을 주지 않으므로 프로세스 처리 속도의 향상을 제공하는 특징이 있다.
또한, 실시간 통합 제어를 제공하는 커널 드라이브(100)의 동작에 대하여 도 3을 참조하여 설명하면 다음과 같다.
제어반(300)을 구성하며 이기종으로 이루어지는 다수의 PLC/CNC 하드웨어 인터럽트 번호를 PC 내부의 타이머로 선택시키기 위한 인터럽트 서비스 루틴(Interrupt Service Routine;ISR)을 인터럽트 정의 테이블(Interrupt Description Table;IDT)에 등록한다(S201).
그리고, 실시간 타임 감시 및 표시를 위한 태스크 처리시간을 측정하고 각 태스크 구문함수는 다수의 PLC/CNC 프로세스/멀티 스레드의 입출력, 공유 메모리에 저장된 파라메터를 읽기/쓰기 위한 함수를 등록한다(S202).
이후, 스택 형식의 메모리에 프로세스의 수행인 인터럽트 서비스 루틴의 스케쥴러를 저장하고(S203), 실시간 처리에 방해되는 불필요한 하드웨어 인터럽트의 발생을 방지한다(S204).
이후, 현재 상태의 스택 포인터와 태스크 구문을 상기 기본스택의 각 레지스터에 저장 후 상기 레지스터에 저장된 스케즐러 처리 대상의 태스크를 실시간 처리로 순차적으로 읽어 수행하며(S205), 태스크의 종료가 검출되면(S206) 스택 영역을 실시간 처리 확보되기 직전으로 환원하여 스택 레지스터를 복구한다(S207).
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도 1은 본 발명의 실시예에 따른 통합 제어시스템의 실시간 모니터링 장치의 구성을 도시한 도면이다.
도 2는 도 1에 도시된 다중 프로세스의 실행 흐름을 도시한 도면이다.
도 3은 도 1에 도시된 커널 드라이브의 실시간 처리 흐름을 도시한 도면이다.
도 4는 종래의 PLC 시뮬레이션 장치의 구성을 도시한 도면이다.
도 5는 일반적인 통합 제어 시스템의 개략적인 구성을 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 커널 드라이브 200 : 상위 프로세스
300 : 다중 제어반

Claims (4)

  1. 제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스로 구성되고, 각각의 프로세스는 대응되는 제어반과 DDE 방식으로 연결되는 상위 프로세스;
    제어반의 하드웨어와 통신을 통해 얻어진 입출력 신호 데이터를 저장하여 다른 제어반에서 읽고 쓰기가 가능하도록 하는 공유 메모리;
    공유 메모리에 저장되어 있는 데이터의 읽기/쓰기 처리를 실시간 스케즐러에 따라 통합 제어하는 커널 드라이브를 포함하는 통합 제어시스템의 실시간 제어장치.
  2. 제어반 제작회사에서 제공되는 DLL을 포함하여 다중 프로세스를 구성하고, 각각의 프로세스와 대응되는 각각의 제어반을 DDE 방식으로 연결하는 과정;
    DLL에서 필요한 입출력 정보와 서보 드라이브 정보, 내부 레지스터를 읽고 쓰기 위한 내부함수인 물리적 기본 어드레스를 추출하는 과정;
    윈도우 시스템의 실행 이미지 파일 포맷을 분석하여 실행파일의 위치 및 크기를 산출한 다음 공유 메모리에 강제 고정시켜 공유 메모리에 실행파일을 상주시키는 과정;
    초기에 구동될 제어반의 PLC를 선정하고, 등록된 명령함수를 이용하여 초기수행 할 PLC 스레드를 구동하며, 대기용 스레드를 생성하는 과정;
    커널 드라이브에서 발생되는 인터럽트 신호에 따라 특정 루틴을 처리하기 위 한 스케줄용 스레드를 구동하여 각각의 해당 루틴 명령문을 처리한 후 비신호 상태로 동기화 이벤트 설정하는 과정을 포함하는 통합 제어시스템의 실시간 제어방법.
  3. 제2항에 있어서,
    상기 실행파일을 공유 메모리에 상주시키는 방법은,
    제어반을 구성하는 각 제작회사별 이미지 실행파일을 읽어 헤더 파일인 IMAGE_DOS_HEADER을 분석하는 과정;
    상기 헤더 파일의 IMAGE_NT_HEADER/IMAGE_OPTIONAL_HEADER 구조체를 Winnt.h헤더 파일과 비교 분석한 다음 프로그램 실행 코드 크기와 데이터 크기를 합하여 전체 프로그램의 크기를 산출하는 과정 및;
    실시간 커널과 함께 사용하기 위하여 가상고정 API함수로 강제 고정하는 과정을 포함하는 통합 제어시스템의 실시간 제어방법.
  4. 제2항에 있어서,
    상기 커널 드라이브에 인터럽트 신호에 따른 특정 루틴의 실행은,
    제어반을 구성하는 다수의 PLC/CNC 하드웨어 인터럽트 번호를 선택하기 위한 인터럽트 서비스 루틴(ISR)을 인터럽트 정의 테이블(IDT)에 등록하는 과정;
    실시간 타임 감시 및 표시를 위한 태스크 처리시간을 측정하고 각 태스크 구문함수를 다중 프로세스의 입출력 및 공유 메모리 데이터의 읽기/쓰기 위한 함수로 등록하는 과정;
    공유 메모리에 인터럽트 서비스 루틴의 스케쥴러를 저장하고, 실시간 처리에 방해되는 불필요한 하드웨어 인터럽트의 발생을 방지하는 과정 및;
    현재의 스택 포인터와 태스크 구문을 기본 스택의 각 레지스터에 저장한 후 상기 레지스터에 저장된 스케즐러 처리 대상의 태스크를 순차적으로 읽어 수행하는 과정 및;
    태스크가 종료되면 스택 레지스터를 복구하는 과정을 포함하는 통합 제어시스템의 실시간 제어방법.
KR1020070101373A 2007-10-09 2007-10-09 통합 제어시스템의 실시간 제어장치 및 방법 KR101283026B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070101373A KR101283026B1 (ko) 2007-10-09 2007-10-09 통합 제어시스템의 실시간 제어장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070101373A KR101283026B1 (ko) 2007-10-09 2007-10-09 통합 제어시스템의 실시간 제어장치 및 방법

Publications (2)

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

Family

ID=40761313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070101373A KR101283026B1 (ko) 2007-10-09 2007-10-09 통합 제어시스템의 실시간 제어장치 및 방법

Country Status (1)

Country Link
KR (1) KR101283026B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419558B1 (ko) * 2009-09-02 2014-07-14 엘에스산전 주식회사 Plc 시스템의 모니터링 시스템 및 그를 이용한 모니터링 방법
KR20200106704A (ko) * 2019-03-05 2020-09-15 서울대학교산학협력단 혼합 네트워크상에서의 태스크 간 통신 방법 및 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029977A (ko) 2017-09-13 2019-03-21 최문기 기기의 제어 시스템 및 그 구동 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100258893B1 (ko) * 1998-04-01 2000-06-15 유철진 단일 중앙처리부를 이용한 수치제어장치의 구현방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419558B1 (ko) * 2009-09-02 2014-07-14 엘에스산전 주식회사 Plc 시스템의 모니터링 시스템 및 그를 이용한 모니터링 방법
KR20200106704A (ko) * 2019-03-05 2020-09-15 서울대학교산학협력단 혼합 네트워크상에서의 태스크 간 통신 방법 및 시스템

Also Published As

Publication number Publication date
KR101283026B1 (ko) 2013-07-05

Similar Documents

Publication Publication Date Title
JP5535393B2 (ja) 電子制御システムをテストする方法
US8069373B2 (en) Method for debugging reconfigurable architectures
US5950006A (en) Object-oriented programmable controller
JP6692278B2 (ja) 演算装置及び仮想開発環境装置
EP3336637A1 (en) Control system, control program, and control method
CN102955460A (zh) 一种数控系统主站对io端子从站的控制系统
JP2018173883A (ja) 制御装置、制御プログラム、制御システム、および制御方法
KR101283026B1 (ko) 통합 제어시스템의 실시간 제어장치 및 방법
US10643009B2 (en) Simulation apparatus
Brecher et al. Model-based control of a handling system with SysML
US10445071B2 (en) Computer-implemented method for computer-aided generation of an executable control program, and also computer-implemented method for computer-aided translation of a graphical model describing the functionality of a control program
US11544436B1 (en) Hardware-software interaction testing using formal verification
Schamp et al. Virtual commissioning of industrial control systems-a 3D digital model approach
US10488835B2 (en) Method for configuring a tester equipped for testing an electronic control unit
CN112527690B (zh) 一种针对半导体存储器老化测试的离线调试方法及装置
CN114780421A (zh) 基于虚拟指令集平台的异常测试方法、系统及存储介质
Gee The how's and why's of PC based control
US20100077383A1 (en) Simulation method and storage medium for storing program
JP7419956B2 (ja) 情報処理装置、情報処理方法およびプログラム
Kutscher et al. Concept for Interaction of Hardware Simulation and Embedded Software in a Digital Twin Based Test Environment
JPH0938876A (ja) シミュレーション装置
Cheng et al. Real-time computing in open systems for manufacturing
EP4328681A1 (en) Method and system for managing technical installation during occurrence of error state in a controller
JP2023151726A (ja) 開発装置、開発プログラムおよび開発方法
CN110244950B (zh) 一种嵌入式汇编程序生成设备和方法

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