KR20170047435A - 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 - Google Patents
범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 Download PDFInfo
- Publication number
- KR20170047435A KR20170047435A KR1020150147155A KR20150147155A KR20170047435A KR 20170047435 A KR20170047435 A KR 20170047435A KR 1020150147155 A KR1020150147155 A KR 1020150147155A KR 20150147155 A KR20150147155 A KR 20150147155A KR 20170047435 A KR20170047435 A KR 20170047435A
- Authority
- KR
- South Korea
- Prior art keywords
- debugging
- mpu
- plc
- code
- stop
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13142—Debugging, tracing
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25252—Microprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
Abstract
PLC의 MPU가 사용자 프로그램에 포함된 스텝중에서 정지 스텝의 식별정보 및 파일 정보를 데이터 저장부에 백업하고, 해당 정지 스텝의 컴파일 코드 영역에 예외 인터럽트 코드를 치환하여 디버깅을 위한 정지 스텝을 설정하는 단계; 및 상기 MPU가 PLC 운전중에 상기 사용자 프로그램을 스텝별로 실행하다가 예외 인터럽트 코드가 있는 스텝에서는 PLC 운전을 정지하는 단계를 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법이 제공된다.
Description
본 발명은 범용 마이크로 프로세서를 이용한 PLC(Programmable Logic Controller)의 디버깅 방법에 관한 것으로, 상세하게는 전용 ASIC와 다르게 별도의 트레이스 기능을 가지고 있지 않은 범용 MPU를 이용해서 사용자가 설정한 스텝에서 운전을 일시 정지할 수 있도록 하여 효과적인 디버깅 기능이 가능한 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에 관한 것이다.
PLC(Programmable Logic Controller)의 디버깅 기능은 사용자가 작성한 시퀀스 프로그램을 실행하는 도중에 사용자가 원하는 프로그램 스텝에서 PLC의 동작을 일시 정지하고 그 때까지의 운전 정보를 사용자가 확인할 수 있도록 해서 사용자 프로그램의 오류, 또는 특정 시점에서의 데이터를 손쉽게 확인할 수 있는 기능이다.
PC는 사용자가 임의로 선택할 수 있는 디버깅 정지 스텝을 포함한 디버그 명령을 통신을 통해 PLC에 전달하고 PLC로부터 각종 데이터를 읽는 동작을 수행한다.
PLC는 PLC의 동작 자체에 필요한 기본 처리를 수행하고 컴파일 코드를 실행하는 동작을 반복해서 수행하다가 PC로부터 전달받은 운전스텝이 되면 운전을 일시 정지하고 역시 PC의 지령에 따라 운전을 재개하는 동작을 수행한다.
PLC는 PC로부터 디버깅 정지할 정지스텝을 전달받으면 해당 정지할 스텝번호를 PLC내부의 버퍼에 저장한다. PLC는 사용자 프로그램을 수행할 때 매 스텝마다 디버그 체크 함수를 수행한다. 디버그 체크 함수에서는 현재의 운전 스텝과 버퍼에 저장된 정지 스텝을 비교해서 정지 스텝인 경우 운전을 일시 정지한다. 임의의 함수에서 일시 정지한 경우 PLC는 PC로부터 운전재개 지령을 받을 때까지 대기하다가 운전 재개 지령을 받으면 정지했던 스텝부터 운전을 재개한다.
일반적으로 PLC 전용의 ASIC을 설계하는 경우는 사용자 프로그램의 특정 스텝에서 연산을 중지하고 PLC 에게 이를 통지하는 TRACE 기능을 H/W적으로 포함시킬 수도 있지만, 범용 MPU를 사용하는 경우는 이러한 기능이 없기 때문에 PLC는 매 번의 스텝마다 디버깅 체크 루틴을 수행하도록 알고리듬을 설계한다.
따라서, 종래의 경우 디버깅 처리 루틴에서는 현재의 PLC 운전 모드가 디버깅 모드인지 확인한 후 현재 스텝이 설정한 디버그 스텝과 일치하면 운전을 일시 정지하고 PC로부터 다음 지령이 올 때 까지 대기한다. PLC는 PC로부터 운전 재개 지령을 받으면 현재 정지했던 스텝의 다음 스텝부터 운전을 재개한다.
이와 같이 종래에는 사용자 프로그램의 운전 스탭마다 디버깅 정지 처리 조건을 확인하는 디버깅 처리 루틴을 수행하기 때문에 분기와 디버그 처리 동작의 수행을 위해 PLC의 처리시간이 길어지게 된다.
또한 PLC가 디버깅 모드로 운전할 때 정상 운전모드에서는 수행하지 않는 디버깅 체크 루틴이 반복해서 실행되기 때문에 이로 인해 예측하지 못한 부수효과가 발생해서 PLC가 운전모드에서 동작할 때와 동일한 동작을 하지 않을 수 있는 가능성이 있다.
본 발명이 해결하고자 하는 과제는, 범용 MPU를 이용한 PLC의 디버그 동작을 수행할 때 운전 스텝마다 디버깅 처리 루틴을 실행하지 않고 사용자가 지정한 운전스텝에서만 디버깅 처리 동작을 수행할 수 있도록 함으로써 PLC의 디버깅 처리를 단순화하고 성능을 향상시킬 수 있는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 제안되는 실시 예가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일측면에 의하면, PLC의 MPU가 사용자 프로그램에 포함된 스텝중에서 정지 스텝의 식별정보 및 파일 정보를 데이터 저장부에 백업하고, 해당 정지 스텝의 컴파일 코드 영역에 예외 인터럽트 코드를 치환하여 디버깅을 위한 정지 스텝을 설정하는 단계; 및 상기 MPU가 PLC 운전중에 상기 사용자 프로그램을 스텝별로 실행하다가 예외 인터럽트 코드가 있는 스텝에서는 PLC 운전을 정지하는 단계를 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법이 제공된다.
상기 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법은 상기 MPU가, 상기 디버깅이 완료되면 PLC 운전을 다시 재개하는 단계를 더 포함할 수 있다.
상기 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법은 상기 MPU가 PLC 운전을 다시 재개하기 위해 PC로부터 PLC 운전 재개 명령을 수신하는 단계를 더 포함할 수 있다.
상기 디버깅을 위한 정지 스텝을 설정하는 단계는, 상기 MPU가 PC로부터 정지 스텝의 설정 지령을 수신하면 정지 스텝의 번호와, 해당 정지 스텝의 컴파일 코드를 데이터 저장부의 임시 저장 영역에 백업하는 단계; 및 상기 MPU가 컴파일 코드 영역에서 해당 정지스텝의 컴파일 코드를 인터럽트 코드로 치환하는 단계를 포함할 수 있다.
상기 PLC 운전을 정지하는 단계는, 디버깅을 위한 인터럽트 처리 루틴을 수행하되, 상기 MPU가 PLC 운전중에 상기 사용자 프로그램을 스텝별로 처리하는 단계; 상기 MPU가 상기 각 스텝에 해당하는 컴파일 코드 영역을 읽어 예외 인터럽트 코드가 포함되어 있는지에 따라 예외 인터럽트 발생여부를 판단하는 단계; 상기 MPU가 예외 인터럽트가 발생된 경우 현재 모드가 디버깅 모드인지를 판단하는 단계; 및 상기 MPU가 판단 결과 디버깅 모드이면 디버깅을 위해 PLC 운전을 정지하는 단계를 포함할 수 있다.
상기 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법은 상기 MPU가, 디버깅이 완료되면 운전을 재개하고, 해당 정지 스텝에 상응하여 상기 데이터 저장부의 임시 저장 영역에 백업된 상기 컴파일 코드를 복원하는 단계를 더 포함할 수 있다.
상기 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법은 상기 MPU가, 상기 현재 모드가 디버깅 모드인지를 판단한 결과, 디버깅 모드가 아니면 일반 예외 인터럽트 처리를 수행하는 단계를 더 포함할 수 있다.
본 발명에 의하면, PLC 운전 중에 디버깅을 위한 정지 스텝이 설정된 임의의 스텝에 도달하면 해당 컴파일 코드가 MPU의 예외 인터럽트를 발생시키는 코드로 치환되어 있기 때문에 MPU 예외 인터럽트를 발생하고 인터럽트 처리 루틴으로 분기할 수 있다. 따라서, 현재 스텝이 디버그 설정 스텝인지를 확인할 필요 없이 디버깅 모드인지만 확인한 후 무조건 PLC의 운전을 일시 정지시키게 된다.
이렇게 함으로써, 종래에 디버깅 모드에서 매 스텝을 운전할 때마다 디버그 스텝인지를 확인하는 함수를 수행함으로 인해 PLC의 처리 속도가 느려지거나 디버그 스텝 확인 함수의 실행에 따른 부수효과로 인한 문제점을 해결할 수 있다.
본 발명에 의하면 예외 인터럽트가 발생하기 전까지는 일반적인 운전 모드와 동일한 동작을 수행하기 때문에 PLC 디버깅의 속도와 정확성을 개선할 수 있다.
도 1은 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법을 수행하기 위한 시스템 구성 블록도이다.
도 2는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 정지 스텝을 설정하는 것을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 컴파일 코드를 백업하고 예외 인터럽트 코드로 치환하는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 인터럽트 처리 루틴을 수행하는 것을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 정지 스텝을 설정하는 것을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 컴파일 코드를 백업하고 예외 인터럽트 코드로 치환하는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 인터럽트 처리 루틴을 수행하는 것을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법을 수행하기 위한 시스템 구성 블록도이다.
도 1을 참조하면, PC(100)는 PLC(200)와 통신을 수행하여 사용자가 임의로 선택할 수 있는 디버깅 정지 스텝을 포함한 디버그 명령을 통신(USB,시리얼 등)을 통해 MPU(210)에 전달하고 MPU(210)로부터 상태 정보를 수신하여 PLC(200)의 각종 데이터를 읽는 동작을 수행한다.
PC(100)는 사용자 프로그램의 오류, 또는 특정 시점에서의 데이터를 확인하기 위해 PLC 디버깅을 수행할 수 있다. PC(100)는 이를 위해서는 PLC(200)내에서 사용자에 의해 작성된 시퀀스 프로그램을 실행하는 도중에 사용자가 원하는 프로그램 스텝에서 PLC(200)의 동작을 일시정지시키고 그 때까지의 운전 정보를 사용자가 확인할 수 있다.
PLC(200)는 MPU(210)와 데이터 저장부(220)를 구비하고 있다. MPU(210)는 PC(100)와 통신을 수행하여 정지 스텝의 번호와 컴파일 코드를 데이터 저장부(220)에 백업하고, 해당 정지 스텝의 컴파일 코드에 예외 인터럽트 코드를 치환하여 디버깅을 위한 정지 스텝을 설정한다.
MPU(210)는 PLC 운전중에 사용자 프로그램을 스텝별로 실행하다가 예외 인터럽트 코드가 포함되어 있는 스텝에서는 인터럽트 처리 루틴을 수행하여 디버깅을 위해 PLC 운전을 정지한다. MPU(210)는 PC(100)와의 통신을 통해 디버깅이 완료되면 PLC 운전을 다시 재개한다.
데이터 저장부(220)는 사용자가 입력한 시퀀스 프로그램을 MPU(210)에서 동작하기 위한 기계어로 번역한 컴파일코드와 운전 데이터를 저장하고 있다. 데이터 저장부(200)를 RAM을 포함할 수 있다. 데이터 저장부(220)는 각 스텝별 컴파일 코드를 저장하고 있는 컴파일 코드 영역과, 임시 저장 영역을 포함할 수 있다.
도 2는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, PLC(200)는 PC(100)와 통신을 수행하여 정지 스텝의 설정 지령이 있는 경우에 정지 스텝의 번호와 컴파일 코드를 데이터 저장부(220)의 임시 저장 영역에 백업하고, 정지 스텝에 예외 인터럽트 코드를 치환하여 디버깅을 위한 정지 스텝을 설정한다(S10).
디버깅을 위한 정지 스텝이 설정된 상태에서, PLC(200)는 PLC 운전중에 사용자 프로그램을 스텝별로 실행하다가 예외 인터럽트 코드가 포함되어 있는 스텝에서는 인터럽트 처리 루틴을 수행하여 디버깅을 위해 PLC 운전을 정지하고, 디버깅을 완료하면 PLC 운전을 다시 재개한다(S20).
도 3은 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 정지 스텝을 설정하는 것을 설명하기 위한 도면이다. 도 4는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 컴파일 코드를 백업하고 예외 인터럽트 코드로 치환하는 것을 설명하기 위한 도면이다.
도 3을 참조하면, PLC(200)의 MPU(210)는 PC(100)와 통신을 수행한다(S11). 이에 따라, MPU(210)는 PC(100)로부터 정지 스텝을 설정받을 수 있다.
따라서, MPU(210)는 PC(100)로부터 정지 스텝의 설정을 위한 정지 스텝 설정 지령이 수신되었는지 여부를 판단한다(S12).
판단 결과, PC(100)로부터 정지 스텝 설정 지령이 수신된 경우 MPU(210)는 해당 정지 스텝의 번호와 정지 스텝의 위치에 해당하는 컴파일 코드를 데이터 저장부(220)의 임시 저장 영역(222)에 백업한다(S13).
MPU(210)는 정지 스텝요청을 받은 정지 스텝의 번호만 임시 저장 영역(222)에 저장하지 않고, 정지할 스텝에 위치한 컴파일 코드 자체도 함께 임시 저장 영역(222)에 저장한다.
예를 들어, 도 4에서는 2번째 스텝에 디버깅 정지 설정지령을 받은 예이므로 2번째 스텝의 컴파일 코드인 ‘SUB’를 데이터 저장부(220)의 임시 저장 영역(222)에 저장한다.
그리고, MPU(210)는 데이터 저장부(220)의 컴파일 코드 영역(221)에서 정지 스텝의 위치에 해당하는 컴파일 코드를 예외 인터럽트 코드로 치환한다(S14). 즉, 정지 스텝의 위치에 해당하는 컴파일 코드는 MPU(210)의 예외 인터럽트를 발생시키는 예외 인터럽트 코드로 치환한다. 예를 들어, 예외 인터럽트 코드는 NMI(Non Maskable Interrupt), 또는 Instruction Exception을 발생시키는 기계어 코드를 포함할 수 있다. 그러나 본 발명은 이에 제한되지 않으며 각 범용 MPU에서 사용되는 예외 인터럽트 코드들이 사용될 수 있다.
도 4에서는 2번째 스텝에 대하여 디버깅을 위한 정지 설정지령을 받은 예이므로, MPU(210)는 데이터 저장부(220)의 컴파일 코드 영역(221)에서 2번째 스텝의 컴파일 코드인 ‘SUB’를 EXCEPTION 코드로 치환한다. 이후 MPU(210)는 정상적인 PLC 운전을 수행한다.
도 5는 본 발명의 일실시예에 따른 범용 마이크로 프로세서를 이용한 프로그래머블 로직 컨트롤러의 디버깅 방법에서 인터럽트 처리 루틴을 수행하는 것을 설명하기 위한 도면이다.
도 5를 참조하면, PLC(200)의 MPU(210)는 사용자 프로그램을 스텝별로 처리한다(S21). PLC(200)는 매 스텝을 실행하면서 매 스텝의 컴파일 코드를 읽어서 예외 인터럽트가 발생했는지 여부를 판단한다(S22).
판단 결과, 임의의 스탭에서 예외 인터럽트가 발생된 경우, MPU(210)는 디버깅 모드인지 여부를 판단한다(S23). 여기에서 디버깅 모드인지 여부를 판단하는 것은 예외 인터럽트에 대하여 임시 저장 영역(222)에 저장되어 있는 정지 스텝의 번호와 그에 해당하는 컴파일 코드가 있는지 여부에 따라 가능하다. 예를 들어, 예외 인터럽트가 발생된 상태에서 임시 저장 영역(222)에 정지 스텝의 번호와 그에 해당하는 컴파일 코드가 저장된 경우에는 디버깅 모드라고 판단할 수 있다.
판단 결과, 디버깅 모드인 경우에는 MPU(210)는 운전 일시 정지하고 디버깅을 위해 PC(100)와 통신을 수행한다. 이에 따라, PC(100)는 PLC(200)가 운전 정지 상태에서 해당 스텝에서의 디버깅 작업을 수행하게 된다.
MPU(210)는 PC(100)로부터 운전 재개 지령이 수신되었는지를 판단한다(S25).
판단 결과 PC(100)로부터 운전 재개 지령이 수신되면 임시 저장 영역(222)에 저장되어 있는 컴파일 코드를 복원하고(S26), 다음 스텝으로 이동한다.
한편, S23의 판단 결과 디버깅 모드가 아닌 경우에는 일반 예외 인터럽트가 발생된 것으로 간주하여 일반 예외 인터럽트로 처리한다(S28). 즉, 임시 저장 영역(222)에 정지 스텝의 번호와 그에 해당하는 컴파일 코드가 저장되어 있지 않은 경우에는 일반 예외 인터럽트가 발생된 것으로 간주하여 일반 예외 인터럽트 처리를 수행한다.
이와 같이 운전 중 두 번째 스텝에 도달하면 해당 컴파일 코드가 MPU(210)의 예외 인터럽트를 발생시키는 코드로 치환되었기 때문에 MPU 예외 인터럽트를 발생하고 인터럽트 처리 루틴으로 분기하게 된다.
따라서, 현재 스텝이 디버그 설정 스텝인지를 확인할 필요 없이 디버깅 모드인지만 확인한 후 무조건 PLC(100)의 운전을 일시 정지시킨다. 이후 MPU(210)는 PC(100)와의 통신처리를 수행하면서 대기하다가 운전재개 지령이 수신되면 해당 스텝의 컴파일 코드를 백업했던 원래의 명령어 코드로 복원시킨 후 운전을 재개한다.
이와 같이, 종래에는 디버깅 모드에서 매 스텝을 운전할 때마다 디버그 스텝인지를 확인하는 함수를 수행하기 때문에 PLC의 처리 속도가 느려지거나 디버그 스텝 확인 함수의 실행에 따른 부수효과로 인한 문제점이 발생할 수 있지만, 본 발명에 의하면 예외 인터럽트가 발생하기 전까지는 일반적인 운전 모드와 동일한 동작을 수행하기 때문에 이러한 문제점을 개선할 수 있다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
Claims (7)
- PLC의 MPU가 사용자 프로그램에 포함된 스텝중에서 정지 스텝의 식별정보 및 파일 정보를 데이터 저장부에 백업하고, 해당 정지 스텝의 컴파일 코드 영역에 예외 인터럽트 코드를 치환하여 디버깅을 위한 정지 스텝을 설정하는 단계; 및
상기 MPU가 PLC 운전중에 상기 사용자 프로그램을 스텝별로 실행하다가 예외 인터럽트 코드가 있는 스텝에서는 PLC 운전을 정지하는 단계를 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제1 항에 있어서,
상기 MPU가, 상기 디버깅이 완료되면 PLC 운전을 다시 재개하는 단계를 더 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제2 항에 있어서,
상기 MPU가 PLC 운전을 다시 재개하기 위해 PC로부터 PLC 운전 재개 명령을 수신하는 단계를 더 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제1 항에 있어서, 상기 디버깅을 위한 정지 스텝을 설정하는 단계는,
상기 MPU가 PC로부터 정지 스텝의 설정 지령을 수신하면 정지 스텝의 번호와, 해당 정지 스텝의 컴파일 코드를 데이터 저장부의 임시 저장 영역에 백업하는 단계; 및
상기 MPU가 컴파일 코드 영역에서 해당 정지스텝의 컴파일 코드를 인터럽트 코드로 치환하는 단계를 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제1 항에 있어서, 상기 PLC 운전을 정지하는 단계는,
디버깅을 위한 인터럽트 처리 루틴을 수행하되,
상기 MPU가 PLC 운전중에 상기 사용자 프로그램을 스텝별로 처리하는 단계;
상기 MPU가 상기 각 스텝에 해당하는 컴파일 코드 영역을 읽어 예외 인터럽트 코드가 포함되어 있는지에 따라 예외 인터럽트 발생여부를 판단하는 단계;
상기 MPU가 예외 인터럽트가 발생된 경우 현재 모드가 디버깅 모드인지를 판단하는 단계; 및
상기 MPU가 판단 결과 디버깅 모드이면 디버깅을 위해 PLC 운전을 정지하는 단계를 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제 5항에 있어서,
상기 MPU가, 디버깅이 완료되면 운전을 재개하고, 해당 정지 스텝에 상응하여 상기 데이터 저장부의 임시 저장 영역에 백업된 상기 컴파일 코드를 복원하는 단계를 더 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
- 제5 항에 있어서,
상기 MPU가, 상기 현재 모드가 디버깅 모드인지를 판단한 결과, 디버깅 모드가 아니면 일반 예외 인터럽트 처리를 수행하는 단계를 더 포함하는 범용 마이크로 프로세서를 이용한 PLC의 디버깅 방법.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150147155A KR101743836B1 (ko) | 2015-10-22 | 2015-10-22 | 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 |
ES16192825T ES2776445T3 (es) | 2015-10-22 | 2016-10-07 | Método para depurar un programa PLC |
EP16192825.4A EP3159756B1 (en) | 2015-10-22 | 2016-10-07 | Method of debugging a plc program |
CN201610919617.2A CN107065737B (zh) | 2015-10-22 | 2016-10-19 | 通过使用通用微处理器来调试plc的方法 |
US15/331,623 US10041998B2 (en) | 2015-10-22 | 2016-10-21 | Method of debugging PLC by using general-purpose microprocessor |
JP2016206596A JP6318214B2 (ja) | 2015-10-22 | 2016-10-21 | 汎用マイクロプロセッサを用いたplcのデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150147155A KR101743836B1 (ko) | 2015-10-22 | 2015-10-22 | 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170047435A true KR20170047435A (ko) | 2017-05-08 |
KR101743836B1 KR101743836B1 (ko) | 2017-06-07 |
Family
ID=57113192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150147155A KR101743836B1 (ko) | 2015-10-22 | 2015-10-22 | 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10041998B2 (ko) |
EP (1) | EP3159756B1 (ko) |
JP (1) | JP6318214B2 (ko) |
KR (1) | KR101743836B1 (ko) |
CN (1) | CN107065737B (ko) |
ES (1) | ES2776445T3 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897301A (zh) * | 2018-06-06 | 2018-11-27 | 北京铂阳顶荣光伏科技有限公司 | 一种专用设备的调试方法、装置及系统 |
CN109375576B (zh) * | 2018-12-05 | 2021-07-20 | 广州奇芯机器人技术有限公司 | 一种plc程序信号在线分析和诊断方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4303990A (en) * | 1976-07-01 | 1981-12-01 | Gulf & Western Industries, Inc. | Programmable controller using microprocessor |
DE3678893D1 (de) * | 1985-10-03 | 1991-05-29 | Mitsubishi Electric Corp | Rechnerprogrammdebugsystem. |
US5802389A (en) * | 1994-12-29 | 1998-09-01 | Siemens Energy & Automation, Inc. | Expansion module address method and apparatus for a programmable logic controller |
JPH1165886A (ja) | 1997-08-19 | 1999-03-09 | Hitachi Ltd | 計算機のプログラムデバック方式 |
JP2000215079A (ja) * | 1999-01-22 | 2000-08-04 | Nec Radio Equipment Eng Ltd | Cpuデバッガ |
DE60028379T2 (de) * | 1999-03-30 | 2007-03-08 | Siemens Energy & Automation, Inc. | Speicherprogrammierbare steuerung |
US6839785B2 (en) * | 2001-03-21 | 2005-01-04 | Siemens Energy & Automation, Inc. | System for and method of interfacing expansion modules with programmable logic controllers (PLC) |
JP4784355B2 (ja) | 2006-03-17 | 2011-10-05 | 富士電機株式会社 | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム |
JP2008204023A (ja) | 2007-02-19 | 2008-09-04 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 |
CN101082819A (zh) * | 2007-07-10 | 2007-12-05 | 张家港市万科信息技术有限公司 | 可视化可编程逻辑控制器 |
KR101426983B1 (ko) * | 2010-07-07 | 2014-08-06 | 엘에스산전 주식회사 | Plc의 통신장치 및 방법 |
JP4905597B1 (ja) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 |
JP5800135B2 (ja) | 2011-07-15 | 2015-10-28 | 富士電機株式会社 | プログラマブルコントローラ |
JP5849592B2 (ja) * | 2011-10-07 | 2016-01-27 | 富士電機株式会社 | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 |
CN104898546B (zh) * | 2015-05-06 | 2017-07-14 | 浙江中控研究院有限公司 | 一种基于soc的plc在线调试系统和方法 |
-
2015
- 2015-10-22 KR KR1020150147155A patent/KR101743836B1/ko active IP Right Grant
-
2016
- 2016-10-07 EP EP16192825.4A patent/EP3159756B1/en active Active
- 2016-10-07 ES ES16192825T patent/ES2776445T3/es active Active
- 2016-10-19 CN CN201610919617.2A patent/CN107065737B/zh active Active
- 2016-10-21 JP JP2016206596A patent/JP6318214B2/ja not_active Expired - Fee Related
- 2016-10-21 US US15/331,623 patent/US10041998B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170115349A1 (en) | 2017-04-27 |
JP6318214B2 (ja) | 2018-04-25 |
ES2776445T3 (es) | 2020-07-30 |
CN107065737B (zh) | 2019-08-13 |
CN107065737A (zh) | 2017-08-18 |
EP3159756A1 (en) | 2017-04-26 |
JP2017084361A (ja) | 2017-05-18 |
KR101743836B1 (ko) | 2017-06-07 |
EP3159756B1 (en) | 2019-12-25 |
US10041998B2 (en) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101903805B1 (ko) | 프로그램 상태를 체크포인팅하며 복원하기 위한 방법 | |
US8601445B2 (en) | Detaching profilers | |
US20080270988A1 (en) | Method and system for debugging a program in a multi-thread environment | |
US7992042B2 (en) | Debug support device, and program for directing computer to perform debugging method | |
CN113742237B (zh) | 程序调试方法、装置、设备以及存储介质 | |
CN113127248B (zh) | 面向机器人ros程序的自动崩溃恢复方法和系统 | |
KR101743836B1 (ko) | 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
CN107526622B (zh) | Linux的快速异常处理方法及装置 | |
US7822492B2 (en) | Methods and systems for operating an automated system using a process definition model | |
JP2005215816A (ja) | ハードウェアモニタを用いた性能プロファイリング方法 | |
JP2013109652A (ja) | コンパイラ、そのコンパイラによって作成されたプログラムモジュールの制御方法、及び、その制御方法を実現する制御装置 | |
CN106021041B (zh) | 基于有限状态机的多周期非流水线cpu调试方法 | |
JP2007213396A (ja) | デバッグシステム、オペレーションシステム、デバッグ方法、プログラム | |
CN113986321A (zh) | 一种plc设备的升级方法、装置、设备及存储介质 | |
JP6097572B2 (ja) | ソフトウェアパイプライン化されたプログラムのハードウェアデバッギング装置及び方法 | |
CN118708287A (zh) | 虚拟机断点调试方法、系统、设备及计算机可读存储介质 | |
CN117149246A (zh) | 嵌入式系统应用程序升级方法和装置、挖掘机和存储介质 | |
CN116089164A (zh) | 故障点前滚恢复方法、装置及存储介质 | |
KR20220022629A (ko) | 기기의 동작 제어 장치 및 방법 | |
KR20140139812A (ko) | 프로그램 개발 환경 제공 장치 및 방법 | |
JP2005322078A (ja) | チェックポインティング方式及びプログラム | |
JPH05233367A (ja) | コンパイル方式 | |
JPH07334374A (ja) | 割り込み検出処理装置 | |
JPH1165886A (ja) | 計算機のプログラムデバック方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |