KR102095224B1 - Apparatus for providing program and cpu module processing execution of the program of the same - Google Patents

Apparatus for providing program and cpu module processing execution of the program of the same Download PDF

Info

Publication number
KR102095224B1
KR102095224B1 KR1020180016030A KR20180016030A KR102095224B1 KR 102095224 B1 KR102095224 B1 KR 102095224B1 KR 1020180016030 A KR1020180016030 A KR 1020180016030A KR 20180016030 A KR20180016030 A KR 20180016030A KR 102095224 B1 KR102095224 B1 KR 102095224B1
Authority
KR
South Korea
Prior art keywords
program
subroutine
unit
code
editing
Prior art date
Application number
KR1020180016030A
Other languages
Korean (ko)
Other versions
KR20190096499A (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 KR1020180016030A priority Critical patent/KR102095224B1/en
Publication of KR20190096499A publication Critical patent/KR20190096499A/en
Application granted granted Critical
Publication of KR102095224B1 publication Critical patent/KR102095224B1/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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13028Convert plc type program in pc type program for running in pc environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13056Edit conversion, jump table interactively

Landscapes

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

Abstract

본 발명은 PLC시스템의 프로그램 제공 장치에 있어서, 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부, 상기 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부, 및 상기 적어도 하나의 서브루틴코드에 대한 리스트를 제공하는 서브루틴리스트제공부를 포함하는 프로그램 제공 장치를 제공한다.The present invention is a program providing apparatus of a PLC system, a plurality of editing units corresponding to different programming languages, and one or more program blocks consisting of a main code and at least one subroutine code by any one of the plurality of editing units are combined. It provides a program providing apparatus including a program providing unit for providing a program, and a subroutine list providing unit for providing a list for the at least one subroutine code.

Figure R1020180016030
Figure R1020180016030

Description

프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 CPU모듈{APPARATUS FOR PROVIDING PROGRAM AND CPU MODULE PROCESSING EXECUTION OF THE PROGRAM OF THE SAME}A program providing device and a CPU module that processes execution of a program therefor. {APPARATUS FOR PROVIDING PROGRAM AND CPU MODULE PROCESSING EXECUTION OF THE PROGRAM OF THE SAME}

본 발명은 PLC시스템의 프로그램 제공 장치 및 CPU모듈에 관한 것으로, 감시기능 및 제어기능을 구현하기 위한 프로그램을 제공하는 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 CPU모듈에 관한 것이다.The present invention relates to a program providing device and a CPU module of a PLC system, and to a program providing device providing a program for implementing a monitoring function and a control function, and a CPU module processing execution of the program.

최근 자동화 설비를 구현함에 있어서, 각 공정을 수행하는 제어대상기기들을 공정의 순서에 따라 순차적으로 연결하기 위한 릴레이 및 카운터 등은 PLC시스템으로 대체되고 있다.In implementing an automated facility, relays and counters for sequentially connecting control target devices that perform each process according to the order of the process are being replaced by PLC systems.

PLC시스템은 사용자에 의해 설정된 공정 순서에 따라 제어대상기기들의 순차 구동을 제어하는 장비이다. 이러한 PLC시스템을 이용하여 자동화 설비를 구현하면, 공정의 순서 변경, 추가 및 삭제가 용이해질 수 있는 장점이 있다.The PLC system is a device that controls the sequential driving of control target devices according to the process sequence set by the user. When implementing an automated facility using such a PLC system, there is an advantage in that it is possible to easily change, add, and delete the order of processes.

일반적으로 PLC시스템은 제어대상기기들의 순차 구동을 제어 및 감시하기 위한 각종 기능들을 구현하기 위한 프로그램을 제공하는 프로그램 제공 장치와, 프로그램을 실행하는 CPU장치를 포함한다.In general, a PLC system includes a program providing device for providing a program for implementing various functions for controlling and monitoring the sequential driving of control target devices, and a CPU device for executing the program.

PLC시스템의 프로그램은 2회 이상 반복되는 기능을 포함할 수 있다. 이에 관련하여, PLC프로그래밍에 관련한 규격인 IEC 61131-3은 사용자 펑션 및 사용자 펑션블록을 설정한다. 즉, 프로그램의 메인코드는 자주 사용되는 기능(또는 연산)에 관한 사용자 펑션(또는 사용자 펑션블록)을 호출하는 명령어를 포함할 수 있다. 이와 같이 하면, 반복적으로 배치되는 기능(또는 연산)을 일일이 코드로 작성하는 것에 비해, 프로그램의 복잡도 및 오류가 감소될 수 있다.The program of the PLC system may include a function that is repeated two or more times. In this regard, IEC 61131-3, a standard related to PLC programming, sets a user function and a user function block. That is, the main code of the program may include a command that calls a user function (or user function block) for a frequently used function (or operation). In this way, program complexity and errors can be reduced compared to writing functions (or operations) that are repeatedly arranged in code.

그러나, 사용자 펑션(또는 사용자 펑션블록)의 변수 설정은 메인코드와 별개로 실시된다. 이에, 사용자 펑션(또는 사용자 펑션블록)이 호출되려면, 메인코드에 따른 변수를 사용자 펑션(또는 사용자 펑션블록)의 입력파라미터로 전달하고, 사용자 펑션(또는 사용자 펑션블록)의 출력파라미터를 메인코드로 전달하는 과정이 필수적이다. However, the variable setting of the user function (or user function block) is performed separately from the main code. Accordingly, in order to call a user function (or user function block), variables according to the main code are transferred to the input parameters of the user function (or user function block), and the output parameters of the user function (or user function block) are returned to the main code. The delivery process is essential.

이러한 입력파라미터 및 출력파라미터의 전달 과정에 의한 지연시간이 발생되므로, 프로그램의 실행 기간이 단축되는 데에 한계가 있는 문제점이 있다.Since the delay time is generated by the process of transferring the input parameters and the output parameters, there is a problem in that the execution period of the program is shortened.

본 발명은 프로그램의 실행 기간이 단축될 수 있는 프로그램 제공 장치 및 그에 의한 프로그램을 실행하는 CPU모듈을 제공한다.The present invention provides a program providing apparatus capable of shortening the execution period of a program and a CPU module for executing the program.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the objects mentioned above, and other objects and advantages of the present invention not mentioned can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. In addition, it will be readily appreciated that the objects and advantages of the present invention can be realized by means of the appended claims and combinations thereof.

이와 같은 과제를 해결하기 위하여, 본 발명의 일 예시는 PLC시스템의 프로그램 제공 장치에 있어서, 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부, 상기 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부, 및 상기 적어도 하나의 서브루틴코드에 대한 리스트를 제공하는 서브루틴리스트제공부를 포함하는 프로그램 제공 장치를 제공한다.In order to solve this problem, an example of the present invention, in a program providing apparatus of a PLC system, a plurality of editing units corresponding to different programming languages, a main code by at least one of the plurality of editing units and at least one sub It provides a program providing unit including a program providing unit for providing a program in which one or more program blocks composed of routine codes are combined, and a subroutine list providing unit for providing a list for the at least one subroutine code.

상기 각 서브루틴코드는 소정의 명령어에 기초하여 상기 각 프로그램블록의 메인코드에 2회 이상 호출된다.Each subroutine code is called twice or more in the main code of each program block based on a predetermined instruction.

상기 각 프로그램블록의 메인코드는 상기 메인코드와 동일한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함한다.The main code of each program block includes an instruction to call at least one of at least one subroutine code disposed in the same program block as the main code.

또는, 상기 각 프로그램블록의 메인코드는 상기 메인코드와 상이한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함한다.Alternatively, the main code of each program block includes an instruction to call at least one of at least one subroutine code disposed in a program block different from the main code.

상기 서브루틴리스트제공부는 상기 복수의 편집부 중 어느 하나에 의해 상기 메인코드가 작성되는 동안 상기 서브루틴리스트를 제공한다.The subroutine list providing unit provides the subroutine list while the main code is written by any one of the plurality of editing units.

상기 복수의 편집부 중 어느 하나에 의해 새로운 서브루틴코드가 작성되면, 상기 서브루틴리스트제공부는 상기 어느 하나의 편집부의 알림에 기초하여 상기 서브루틴리스트를 갱신한다.When a new subroutine code is created by one of the plurality of editing units, the subroutine list providing unit updates the subroutine list based on the notification of the one editing unit.

상기 복수의 편집부는 LD(Ladder Diagram) 언어 기반의 코드 편집기능을 제공하는 LD편집부, ST(Structures Text) 언어 기반의 코드 편집기능을 제공하는 ST편집부, 및 IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부를 포함한다.The plurality of editing units include an LD editing unit providing a code editing function based on a ladder diagram (LD) language, an ST editing unit providing a code editing function based on a structured text (ST) language, and a code editing based on an instruction list (IL) language It includes an IL editor that provides functions.

그리고, 본 발명의 다른 일 예시는 상기 프로그램 제공 장치에 의한 프로그램의 실행을 처리하는 CPU부, 및 상기 CPU부의 처리에 필요한 데이터들을 보유하는 메모리부를 포함하는 CPU모듈을 더 제공한다.Further, another example of the present invention further provides a CPU module including a CPU unit for processing execution of a program by the program providing device, and a memory unit for holding data necessary for processing the CPU unit.

상기 메모리부는 운영 프로그램과 연산 및 제어 기능에 관한 라이브러리를 보유하는 OS ROM 영역, 상기 프로그램 제공 장치에 의해 제공되는 기계어 상태의 프로그램을 보유하는 프로그램 영역, 상기 프로그램 제공 장치에 의해 제공되는 프로그래밍 언어 상태의 프로그램을 보유하는 업로드 영역 및 상기 CPU부의 입출력 데이터와 상기 CPU부에 의한 연산 결과를 보유하는 데이터 영역을 포함한다. 여기서, 상기 OS ROM 영역은 상기 프로그램 제공 장치의 상기 서브루틴리스트제공부에 의한 상기 서브루틴리스트를 보유한다.The memory unit includes an OS ROM area that holds a library of operating programs and arithmetic and control functions, a program area that holds a program in a machine language state provided by the program providing device, and a programming language state that is provided by the program providing device. It includes an upload area for holding a program, data for input and output data of the CPU unit, and a data area for holding the calculation result by the CPU unit. Here, the OS ROM area holds the subroutine list by the subroutine list providing unit of the program providing device.

상기 CPU부는 상기 메모리부의 상기 OS ROM 영역에 보유된 서브루틴리스트에 기초하여, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지한다. 그리고, 상기 CPU부는 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램에 포함되는 각 프로그램 블록의 메인코드를 실행하는 중에 상기 서브루틴코드를 호출하는 명령어를 감지하면, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램 중 상기 명령어에 대응하는 어느 하나의 서브루틴코드를 실행한다.The CPU unit detects that a program held in the program area of the memory unit includes a subroutine code based on a list of subroutines held in the OS ROM area of the memory unit. When the CPU unit detects an instruction to call the subroutine code while executing the main code of each program block included in the program held in the program area of the memory unit, the program retained in the program area of the memory unit Among them, any one subroutine code corresponding to the instruction is executed.

전술한 바와 같은 프로그램 제공 장치는 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부와, 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부를 포함한다. 여기서, 각 서브루틴코드는 소정의 명령어에 기초하여 각 프로그램블록의 메인코드에 2회 이상 호출된다. The above-described program providing apparatus provides a program in which one or more program blocks composed of a plurality of editing units corresponding to different programming languages and a main code and at least one subroutine code by one of the plurality of editing units are combined. Includes a program provider. Here, each subroutine code is called twice or more in the main code of each program block based on a predetermined instruction.

즉, 서브루틴코드는 메인코드와 마찬가지로 복수의 편집부 중 어느 하나에 의해 생성되고, 메인코드에 반복적으로 배치되는 기능에 대응한다.That is, the subroutine code, like the main code, is generated by any one of a plurality of editing units and corresponds to a function repeatedly arranged in the main code.

이러한 서브루틴코드로 인해, 사용자 펑션 또는 사용자 펑션블록을 배제하면서도, 메인코드에 반복적으로 배치되는 기능으로 인한 프로그램의 복잡도 및 오류 증가가 방지될 수 있다. 또한, 사용자 펑션 또는 사용자 펑션블록의 호출에 따른 지연시간이 방지될 수 있으므로, 프로그램의 실행 기간이 단축될 수 있다.Due to the subroutine code, the complexity of the program and the increase in errors due to a function repeatedly disposed in the main code can be prevented while excluding the user function or the user function block. In addition, since the delay time due to the call of the user function or user function block can be prevented, the execution period of the program can be shortened.

도 1은 본 발명의 일 실시예에 따른 PLC시스템을 나타낸 도면이다.
도 2는 도 1의 CPU모듈을 나타낸 도면이다.
도 3은 도 1의 주변기기모듈 중 프로그램 제공 장치를 나타낸 도면이다.
도 4는 도 3의 프로그램 제공 장치에 의한 어느 하나의 프로그램블록에 대한 예시를 나타낸 도면이다.
도 5는 사용자 펑션을 호출하는 예시를 나타낸 도면이다.
도 6은 도 3의 LD편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
도 7은 도 3의 IL편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
도 8은 도 3의 ST편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
1 is a view showing a PLC system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating the CPU module of FIG. 1.
3 is a view showing a program providing device among the peripheral module of FIG.
4 is a view showing an example of any one program block by the program providing apparatus of FIG. 3.
5 is a diagram showing an example of calling a user function.
FIG. 6 is a diagram showing an example of a subroutine code of a program block by the LD editor of FIG. 3 and an instruction of a main code calling it.
7 is a diagram showing an example of a subroutine code of a program block by the IL editor of FIG. 3 and an instruction of a main code calling it.
8 is a diagram illustrating an example of a subroutine code of a program block by the ST editor of FIG. 3 and a command of a main code calling it.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.The above-described objects, features, and advantages will be described in detail below with reference to the accompanying drawings, and accordingly, a person skilled in the art to which the present invention pertains can easily implement the technical spirit of the present invention. In describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to indicate the same or similar components.

이하, 본 발명의 일 실시예에 따른 프로그램 제공 장치에 대해 첨부한 도면을 참고로 하여 상세히 설명한다.Hereinafter, a program providing apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 1 및 도 2를 참조하여, 본 발명의 일 실시예에 따른 프로그램 제공 장치를 포함한 PLC시스템에 대해 설명한다. First, referring to FIGS. 1 and 2, a PLC system including a program providing apparatus according to an embodiment of the present invention will be described.

도 1은 본 발명의 일 실시예에 따른 PLC시스템을 나타낸 도면이다. 도 2는 도 1의 CPU모듈을 나타낸 도면이다.1 is a view showing a PLC system according to an embodiment of the present invention. FIG. 2 is a diagram illustrating the CPU module of FIG. 1.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 PLC시스템(10)은 주변기기모듈(11), CPU모듈(12), 전원모듈(13) 및 입출력모듈(14)을 포함할 수 있다.As shown in FIG. 1, the PLC system 10 according to an embodiment of the present invention may include a peripheral device module 11, a CPU module 12, a power supply module 13, and an input / output module 14. .

CPU모듈(12)은 프로그램 실행을 위한 연산을 수행하고, 연산 결과를 메모리에 저장한다. 그리고, CPU모듈(12)은 각종 통신 기능 및 시스템 전체를 제어하는 기능을 포함할 수 있다.The CPU module 12 performs an operation for program execution and stores the operation result in memory. In addition, the CPU module 12 may include various communication functions and functions for controlling the entire system.

전원모듈(13)은 각 모듈(11, 12, 14)의 구동을 위한 전원을 공급한다. The power module 13 supplies power for driving each of the modules 11, 12, and 14.

주변기기모듈(11)은 사용자 프로그램을 작성하고, 각종 연산 결과 및 상태를 모니터링한다.The peripheral module 11 creates a user program and monitors various calculation results and status.

입출력모듈(14)은 외부입력장치로부터 데이터를 입력 받고, CPU모듈(12)에 의한 연산데이터 또는 수집된 데이터를 출력한다.The input / output module 14 receives data from an external input device, and outputs calculation data or collected data by the CPU module 12.

도 2에 도시된 바와 같이, CPU모듈(12)은 PLC 시스템의 프로그램에 대응하는 각종 연산 기능과 제어 기능의 실행을 처리하는 CPU부(121) 및 CPU부(121)의 처리에 필요한 데이터들을 보유하는 메모리부(122)를 포함한다. 그리고, CPU모듈(12)은 데이터 백업을 실행하고 리셋신호를 공급하는 주변회로부(123)를 더 포함할 수 있다.As shown in Fig. 2, the CPU module 12 holds data necessary for the processing of the CPU unit 121 and the CPU unit 121 that process execution of various calculation functions and control functions corresponding to the program of the PLC system. It includes a memory unit 122. In addition, the CPU module 12 may further include a peripheral circuit unit 123 that performs data backup and supplies a reset signal.

메모리부(122)는 운영 프로그램과 연산 및 제어 기능에 관한 라이브러리 등을 보유하는 OS ROM 영역(122a), 주변기기모듈(11) 중 프로그램 제공 장치(도 3의 11')에 의해 제공되고 기계어 상태의 PLC 시스템의 프로그램을 보유하는 프로그램 영역(122b), 프로그램 제공 장치(도 3의 11')에 의한 프로그래밍 언어 상태의 사용자 프로그램을 보유하는 업로드 영역(122c) 및 CPU부(12)의 입출력 데이터와 CPU부(12)에 의한 각종 연산 결과를 보유하는 데이터 영역(122d)을 포함한다.The memory unit 122 is provided by a program providing device (11 'in FIG. 3) of the OS ROM area 122a, the peripheral device module 11, which holds an operating program, a library related to arithmetic and control functions, and is in a machine language state. The program area 122b holding the program of the PLC system, the upload area 122c holding the user program in the programming language state by the program providing device (11 'in Fig. 3), and the input / output data and CPU of the CPU section 12 And a data area 122d holding various calculation results by the unit 12.

다음, 도 3 내지 도 8을 참조하여, 본 발명의 일 실시예에 따른 도 1의 주변기기모듈(11) 중 CPU모듈(12)에 사용자 프로그램을 제공하는 프로그램 제공 장치에 대해 설명한다. Next, a program providing apparatus for providing a user program to the CPU module 12 of the peripheral module 11 of FIG. 1 according to an embodiment of the present invention will be described with reference to FIGS. 3 to 8.

도 3은 도 1의 주변기기모듈 중 프로그램 제공 장치를 나타낸 도면이다. 도 4는 도 3의 프로그램 제공 장치에 의한 어느 하나의 프로그램블록에 대한 예시를 나타낸 도면이다.3 is a view showing a program providing device among the peripheral module of FIG. 4 is a view showing an example of any one program block by the program providing apparatus of FIG. 3.

도 5는 사용자 펑션을 호출하는 예시를 나타낸 도면이다.5 is a diagram showing an example of calling a user function.

도 6은 도 3의 LD편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다. 도 7은 도 3의 IL편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다. 도 8은 도 3의 ST편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.FIG. 6 is a diagram showing an example of a subroutine code of a program block by the LD editor of FIG. 3 and an instruction of a main code calling it. 7 is a diagram showing an example of a subroutine code of a program block by the IL editor of FIG. 3 and an instruction of a main code calling it. 8 is a diagram illustrating an example of a subroutine code of a program block by the ST editor of FIG. 3 and a command of a main code calling it.

도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 프로그램 제공 장치(11')는 복수의 편집부(111), 프로그램제공부(112), 서브루틴리스트제공부(113) 및 컴파일부(114)를 포함한다.3, the program providing apparatus 11 'according to an embodiment of the present invention includes a plurality of editing units 111, a program providing unit 112, a subroutine list providing unit 113, and a compiling unit ( 114).

복수의 편집부(111)는 IEC 61131-3에 의해 정의된 복수의 서로 다른 프로그래밍 언어에 대응한다.The plurality of editing units 111 correspond to a plurality of different programming languages defined by IEC 61131-3.

예시적으로, 복수의 편집부(111)는 LD(Ladder Diagram) 언어 기반의 코드 편집기능을 제공하는 LD편집부(111a), ST(Structures Text)언어 기반의 코드 편집기능을 제공하는 ST편집부(111b) 및 IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부(111c)를 포함할 수 있다.For example, the plurality of editing units 111 include an LD editing unit 111a providing a code editing function based on a ladder diagram (LD) language, and an ST editing unit 111b providing a code editing function based on a structure text (ST) language. And an IL editing unit 111c that provides a code editing function based on an IL (Instruction List) language.

또는, 복수의 편집부(111)는 FBD(Function Block Diagram)언어 기반의 코드 편집기능을 제공하는 FBD편집부(111d) 및 SFC(Sequential Function Chart)언어 기반의 코드 편집기능을 제공하는 SFC편집부(111e)를 더 포함할 수 있다.Alternatively, the plurality of editing units 111 may include an FBD editing unit 111d providing an FBD (Function Block Diagram) language based code editing function and an SFC editing unit 111e providing an SFC (Sequential Function Chart) language based code editing function. It may further include.

또는, 복수의 편집부(111)는 IEC 61131-3에 의해 정의되지 않았으나 PLC 프로그램 작성에 적용될 수 있는 다른 프로그래밍 언어 기반의 코드 편집기능을 더 포함할 수도 있다.Alternatively, the plurality of editing units 111 may further include code editing functions based on other programming languages that are not defined by IEC 61131-3 but can be applied to PLC programming.

본 발명의 일 실시예에 따르면, LD편집부(111a), ST편집부(111b) 및 IL편집부(111c) 중 어느 하나에 의한 프로그램블록은 적어도 하나의 서브루틴코드를 포함할 수 있다. 즉, FBD편집부(111d) 및 SFC편집부(111e) 중 어느 하나에 의한 프로그램블록은 서브루틴코드를 포함하지 않을 수 있다.According to an embodiment of the present invention, the program block by any one of the LD editor 111a, the ST editor 111b, and the IL editor 111c may include at least one subroutine code. That is, the program block by any one of the FBD editing unit 111d and the SFC editing unit 111e may not include a subroutine code.

프로그램제공부(112)는 복수의 편집부(111) 중 어느 하나에 의한 프로그램블록이 하나 이상 조합된 프로그램을 제공한다. 여기서, 각 프로그램블록은 복수의 편집부(111) 중 어느 하나에 의해 작성되고, 메인코드와 적어도 하나의 서브루틴코드로 이루어진다. The program providing unit 112 provides a program in which one or more program blocks by any one of the plurality of editing units 111 are combined. Here, each program block is created by any one of a plurality of editing units 111, and is composed of a main code and at least one subroutine code.

일 예로, 도 4에 도시된 바와 같이, 어느 하나의 편집부(111)에 의해 작성된 프로그램블록(PB)은 메인코드가 배치되는 메인코드영역(MCA)과, 적어도 하나의 서브루틴코드가 배치되는 서브루틴코드영역(SCA)을 포함할 수 있다. 여기서, 서브루틴코드영역(SCA)은 메인코드영역(MCA)의 후단에 배치될 수 있다. 즉, 메인코드의 종료 명령어 이후에, 서브루틴코드가 배치될 수 있다.For example, as shown in FIG. 4, the program block PB created by any one editing unit 111 includes a main code area MCA in which main codes are arranged and subs in which at least one subroutine code is arranged. It may include a routine code area (SCA). Here, the subroutine code area SCA may be disposed at the rear end of the main code area MCA. That is, after the termination command of the main code, a subroutine code may be arranged.

각 서브루틴코드는 소정의 명령어에 기초하여 각 프로그램블록의 메인코드에 2회 이상 반복하여 호출되는 기능(또는 연산)을 지칭한다. 서브루틴코드의 호출에 대해서는 도 5 내지 도 8을 참조하여 이하에서 상세히 설명하기로 한다.Each subroutine code refers to a function (or operation) that is called twice or more repeatedly in the main code of each program block based on a predetermined instruction. The subroutine code will be described in detail below with reference to FIGS. 5 to 8.

더불어, 어느 하나의 프로그램은 서로 다른 언어 기반으로 작성된 둘 이상의 프로그램블록을 포함할 수 있다.In addition, any one program may include two or more program blocks written in different languages.

이때, 각 프로그램블록의 메인코드는 메인코드와 동일한 프로그램블록 내에서 메인코드의 후단에 배치된 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함할 수 있다. 즉, 메인코드는 그와 동일한 프로그래밍 언어로 작성된 서브루틴코드를 호출할 수 있다.At this time, the main code of each program block may include an instruction to call at least one of at least one subroutine code disposed at the rear end of the main code in the same program block as the main code. That is, the main code can call subroutine codes written in the same programming language.

또는, 각 프로그램블록의 메인코드는 메인코드와 상이한 프로그램블록 내에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함할 수도 있다. 즉, 메인코드는 그와 상이한 프로그래밍 언어로 작성된 서브루틴코드를 호출할 수도 있다.Alternatively, the main code of each program block may include an instruction that calls at least one of at least one subroutine code disposed in a different program block from the main code. That is, the main code may call subroutine codes written in a different programming language.

이를 위해, 프로그램 제공 장치(11')는 서브루틴리스트제공부(113)를 포함한다.To this end, the program providing device 11 'includes a subroutine list providing unit 113.

서브루틴리스트제공부(113)는 각 프로그램블록에 배치된 적어도 하나의 서브루틴코드에 대한 리스트를 제공한다. The subroutine list providing unit 113 provides a list of at least one subroutine code arranged in each program block.

일 예로, 각 편집부(111)에서 새로운 서브루틴코드가 작성되면, 서브루틴리스트제공부(113)는 각 편집부(111)의 알림에 기초하여 서브루틴리스트를 갱신한다. For example, when a new subroutine code is created in each editing unit 111, the subroutine list providing unit 113 updates the subroutine list based on the notification of each editing unit 111.

그리고, 서브루틴리스트제공부(113)는 어느 하나의 편집부(111)에서 코드가 작성되는 동안, 서브루틴리스트를 제공한다. 이에, 프로그램 작성 관리자는 서브루틴리스트에 기초하여 메인코드에 호출할 서브루틴을 용이하게 선택할 수 있다. 이에 따라, 프로그램 작성 용이성이 향상될 수 있다.Then, the subroutine list providing unit 113 provides a subroutine list while code is being written in any one editing unit 111. Accordingly, the program creation manager can easily select the subroutine to be called in the main code based on the subroutine list. Accordingly, the ease of programming can be improved.

컴파일부(114)는 프로그램제공부(112)에 의한 프로그램을 기계어로 변환한다.The compilation unit 114 converts the program by the program providing unit 112 into machine language.

그리고, 프로그램 제공 장치(11')의 컴파일부(114)는 기계어로 변환된 프로그램을 PLC시스템의 CPU모듈(도 1의 12)에 제공한다. 이에, 기계어로 변환된 프로그램이 CPU모듈(12)의 메모리부(122) 중 프로그램영역(122b)에 배치된다.Then, the compilation unit 114 of the program providing device 11 'provides a program converted into machine language to the CPU module (12 in FIG. 1) of the PLC system. Thus, the program converted into machine language is disposed in the program area 122b of the memory unit 122 of the CPU module 12.

더불어, 프로그램 제공 장치(11')의 프로그램제공부(112)는 적어도 하나의 프로그래밍언어로 작성된 프로그램을 CPU모듈(12)에 제공한다. 이에, 프로그래밍 언어 상태의 프로그램이 CPU모듈(12)의 메모리부(122) 중 업로드영역(122c)에 배치될 수 있다.In addition, the program providing unit 112 of the program providing device 11 'provides a program written in at least one programming language to the CPU module 12. Accordingly, a program in a programming language state may be disposed in the upload area 122c of the memory unit 122 of the CPU module 12.

여기서, 프로그램영역(122b) 및 업로드영역(112c) 각각에 전달되는 프로그램은 적어도 하나의 프로그램블록을 포함하고, 적어도 하나의 프로그램블록 중 적어도 어느 하나는 서브루틴코드영역(도 4의 SCA)을 포함한다. 즉, 프로그래밍 언어 상태의 서브루틴코드는, 메인코드와 마찬가지로, 프로그램영역(122b) 및 업로드영역(112c) 각각에 보유된다.Here, the program delivered to each of the program area 122b and the upload area 112c includes at least one program block, and at least one of the at least one program block includes a subroutine code area (SCA in FIG. 4). do. That is, the subroutine code in the programming language state is held in each of the program area 122b and the upload area 112c, like the main code.

또한, 프로그램 제공 장치(11')의 서브루틴리스트제공부(113)는 서브루틴리스트를 CPU모듈(12)에 제공한다. 이에, 서브루틴리스트가 CPU모듈(12)의 메모리부(122) 중 OS ROM영역(122a)에 배치될 수 있다. 이로써, 시스템 관리자 및 CPU모듈(12)은 해당 프로그램이 서브루틴코드를 포함하는 형태임을 용이하게 감지할 수 있다.Further, the subroutine list providing unit 113 of the program providing device 11 'provides the subroutine list to the CPU module 12. Accordingly, a subroutine list may be disposed in the OS ROM area 122a of the memory unit 122 of the CPU module 12. As a result, the system manager and the CPU module 12 can easily detect that the corresponding program includes a subroutine code.

즉, 메인코드 및 서브루틴코드를 포함하는 형태의 프로그램이 CPU모듈(12)에 전달된 경우, CPU부(121)는 OS ROM영역(122a)에 보유된 서브루틴리스트에 기초하여 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지할 수 있다. That is, when a program having a form including a main code and a subroutine code is transferred to the CPU module 12, the CPU unit 121 is based on a list of subroutines held in the OS ROM area 122a. ), It can be detected that the program held in the program area 122b includes a subroutine code.

그리고, CPU부(121)는 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램에 포함되는 적어도 하나의 프로그램블록을 실행한다. 이와 같이 각 프로그램블록의 메인코드를 실행하는 중에 서브루틴코드를 호출하는 명령어를 감지하면, CPU부(121)는 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램 중 명령어에 대응하는 어느 하나의 서브루틴코드를 실행한다.Then, the CPU unit 121 executes at least one program block included in the program held in the program area 122b of the memory unit 122. As described above, when an instruction for calling a subroutine code is detected while executing the main code of each program block, the CPU unit 121 may correspond to any of the programs held in the program area 122b of the memory unit 122. Execute one subroutine code.

또한, 프로그래밍 언어 상태의 프로그램이 CPU모듈(12)의 메모리부(122) 중 업로드영역(122c)에 보유되고, 서브루틴리스트제공부(113)에 의한 서브루틴리스트가 메모리부(122) 중 OS ROM영역(122a)에 보유됨으로써, 시스템 관리자가 프로그램을 수정 또는 재편집하거나 프로그램의 코드를 재활용하는 것이 용이해질 수 있다.Further, a program in the programming language state is held in the upload area 122c of the memory unit 122 of the CPU module 12, and the subroutine list by the subroutine list providing unit 113 is the OS of the memory unit 122. By being held in the ROM area 122a, it can be easy for the system administrator to modify or re-edit the program or recycle the code of the program.

도 5에 도시된 바와 같이, LD프로그래밍 언어로 작성된 프로그램의 메인코드(LD 프로그램; 도 5의 좌측)가 사용자 펑션(CC; 도 5의 우측)을 호출하는 명령어를 포함할 수 있다. 이 경우, 사용자 펑션(CC)은 규격에 따라 LD 프로그램과 상이하게 선언된 변수로 작성되어 있으므로, LD 프로그램의 실행 시, 사용자 펑션(CC)에 입력 파라미터를 전달하고, 사용자 펑션(CC)의 연산에 따른 출력 파라미터를 수신하는 과정이 필수적이다.그로 인해, 파라미터의 전달에 따른 지연시간이 필수불가결하므로, 프로그램의 실행 기간을 단축시키기 어려운 문제점이 있다. As shown in FIG. 5, the main code (LD program; left of FIG. 5) of a program written in LD programming language may include a command that calls a user function (CC; right of FIG. 5). In this case, the user function (CC) is composed of variables declared differently from the LD program according to the standard, so when the LD program is executed, the input parameters are transmitted to the user function (CC) and the operation of the user function (CC) The process of receiving the output parameter according to is essential. Therefore, since the delay time due to the transmission of the parameter is indispensable, it is difficult to shorten the execution period of the program.

반면, 본 발명의 일 실시예에 따른 프로그램블록의 메인코드는 그와 동일하게 선언된 변수로 작성된 서브루틴코드를 호출한다. 이에 따라, 프로그램의 실행 시, 메인코드와 호출된 서브루틴코드 간에 파라미터의 전달이 불필요하므로, 사용자 펑션을 이용하는 경우에 비해 프로그램의 실행 기간이 단축될 수 있다.On the other hand, the main code of the program block according to an embodiment of the present invention calls a subroutine code written in the same declared variable. Accordingly, when the program is executed, transmission of parameters between the main code and the called subroutine code is unnecessary, so that the execution period of the program can be shortened compared to the case of using a user function.

도 6에 도시된 바와 같이, LD 프로그래밍 언어로 작성된 프로그램블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END) 이후에, 서브루틴코드의 개시점과 명칭(name)을 지칭하는 명령어(SBRT서브루틴명칭)가 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된 다음, 서브루틴코드의 종료점을 지칭하는 명령어(RET)가 배치될 수 있다.As shown in FIG. 6, in a program block written in LD programming language, after an instruction (END) indicating the end point of the main code, an instruction (SBRT sub) indicating the start point and name of the subroutine code Routine name). Subsequently, after the operation of the subroutine code is written, an instruction (RET) indicating the end point of the subroutine code may be disposed.

그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다. 이때, 서브루틴 명칭은 서브루틴리스트제공부(113)에 의한 서브루틴리스트에 기초하여 선택될 수 있다.In addition, the main code may include an instruction of "CALL subroutine name" to call a predetermined subroutine code. At this time, the name of the subroutine may be selected based on the subroutine list by the subroutine list providing unit 113.

또는, 도 7에 도시된 바와 같이, IL 프로그래밍 언어로 작성된 프로그램 블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END) 이후에 서브루틴코드의 개시점과 명칭을 지칭하는 명령어(SBRT 서브루틴명칭)가 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된 다음, 서브루틴코드의 종료점을 지칭하는 명령어(RET)가 배치될 수 있다.Alternatively, as shown in FIG. 7, in a program block written in the IL programming language, an instruction indicating the starting point and name of the subroutine code after the instruction (END) indicating the end point of the main code (SBRT subroutine name) ) May be disposed. Subsequently, after the operation of the subroutine code is written, an instruction (RET) indicating the end point of the subroutine code may be disposed.

그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다.In addition, the main code may include an instruction of "CALL subroutine name" to call a predetermined subroutine code.

또는, 도 8에 도시된 바와 같이, ST 프로그래밍 언어로 작성된 프로그램 블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END_PROGRAM) 이후에, 서브루틴코드의 개시점과 명칭을 지칭하는 명령어(SBRT 서브루틴명칭)이 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된 다음, 서브루틴코드의 종료점을 지칭하는 명령어(END_SBRT)가 배치될 수 있다.Or, as shown in FIG. 8, in a program block written in the ST programming language, after an instruction (END_PROGRAM) indicating the end point of the main code, an instruction indicating the start point and name of the subroutine code (SBRT subroutine) Name). Subsequently, after the operation of the subroutine code is written, an instruction (END_SBRT) indicating the end point of the subroutine code may be disposed.

그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다.In addition, the main code may include an instruction of "CALL subroutine name" to call a predetermined subroutine code.

전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The above-described invention, the above-described embodiments and the accompanying drawings because it is possible for a person having ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible without departing from the technical spirit of the present invention. It is not limited by.

10: PLC시스템
11': 프로그램 제공 장치
PB: 프로그램블록
MCA: 메인코드영역
SCA: 서브루틴코드영역
10: PLC system
11 ': Program providing device
PB: Program block
MCA: Main code area
SCA: Subroutine Code Area

Claims (13)

PLC시스템의 프로그램 제공 장치에 있어서,
서로 다른 프로그래밍 언어에 대응하는 복수의 편집부;
상기 복수의 편집부에 의해 작성된 서브루틴코드들에 대응한 서브루틴리스트를 제공하는 서브루틴리스트제공부; 및
상기 복수의 편집부 중 어느 하나에 의한 메인코드를 각각 포함하는 하나 이상의 프로그램블록이 조합된 프로그램을 제공하는 프로그램제공부를 포함하고,
상기 하나 이상의 프로그램블록 각각의 상기 메인코드는 상기 복수의 편집부 중 어느 하나에 의해 작성되며 상기 서브루틴리스트에 대응한 서브루틴코드들 중 적어도 어느 하나를 호출하는 명령어를 포함하는 프로그램 제공 장치.
In the program providing device of the PLC system,
A plurality of editing units corresponding to different programming languages;
A subroutine list providing unit that provides a subroutine list corresponding to the subroutine codes created by the plurality of editing units; And
And a program providing unit providing a program in which one or more program blocks each including a main code by any one of the plurality of editing units are combined,
The main code of each of the one or more program blocks is written by any one of the plurality of editing units and includes a command for calling at least one of subroutine codes corresponding to the subroutine list.
제 1 항에 있어서,
상기 서브루틴리스트에 대응한 서브루틴코드들 각각은 상기 복수의 편집부 중 어느 하나에 의해 작성되며 상기 하나 이상의 프로그램블록의 상기 메인코드에 2회 이상 호출되는 프로그램 제공 장치.
According to claim 1,
Each of the subroutine codes corresponding to the subroutine list is prepared by any one of the plurality of editing units, and the program providing device is called twice or more in the main code of the one or more program blocks.
제 1 항에 있어서,
상기 하나 이상의 프로그램블록 중 어느 하나의 메인코드는 상기 어느 하나의 프로그램블록에 배치되고 상기 어느 하나의 메인코드와 동일한 편집부에 의해 작성된 하나 이상의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함하는 프로그램 제공 장치.
According to claim 1,
The main code of any one of the one or more program blocks is disposed in the one of the program blocks, and the program includes an instruction to call at least one of one or more subroutine codes written by the same editing unit as the one of the main code Provision device.
제 1 항에 있어서,
상기 하나 이상의 프로그램블록 중 어느 하나의 메인코드는 상기 어느 하나의 프로그램블록과 상이한 프로그램블록에 배치되고 상기 어느 하나의 메인코드와 상이한 편집부에 의해 작성된 하나 이상의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함하는 프로그램 제공 장치.
According to claim 1,
The main code of any one of the one or more program blocks is disposed in a program block different from the one of the program blocks, and a command to call at least one of the one or more subroutine codes written by the editing unit different from the one of the main code Program providing device comprising a.
제 1 항에 있어서,
상기 서브루틴리스트제공부는 상기 복수의 편집부 중 어느 하나에 의해 상기 메인코드가 작성되는 동안 상기 서브루틴리스트를 제공하는 프로그램 제공 장치.
According to claim 1,
The subroutine list providing unit provides the subroutine list while the main code is written by any one of the plurality of editing units.
제 1 항에 있어서,
상기 복수의 편집부 중 어느 하나에 의해 새로운 서브루틴코드가 작성되면, 상기 서브루틴리스트제공부는 상기 어느 하나의 편집부의 알림에 기초하여 상기 서브루틴리스트를 갱신하는 프로그램 제공 장치.
According to claim 1,
When a new subroutine code is created by any one of the plurality of editing units, the subroutine list providing unit updates the subroutine list based on the notification of the one editing unit.
제 1 항에 있어서,
상기 복수의 편집부는
LD(Ladder Diagram) 언어 기반의 코드 편집기능을 제공하는 LD편집부;
ST(Structures Text) 언어 기반의 코드 편집기능을 제공하는 ST편집부; 및
IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부를 포함하는 프로그램 제공 장치.
According to claim 1,
The plurality of editing units
LD (Ladder Diagram) LD editor that provides language-based code editing function;
ST (Structures Text) ST editor that provides language-based code editing function; And
A program providing device including an IL editing unit providing an IL (Instruction List) language-based code editing function.
제 7 항에 있어서,
상기 복수의 편집부는
FBD(Function Block Diagram) 언어 기반의 코드 편집기능을 제공하는 FBD편집부; 및
SFC(Sequential Function Chart) 언어 기반의 코드 편집기능을 제공하는 SFC편집부를 더 포함하는 프로그램 제공 장치.
The method of claim 7,
The plurality of editing units
FBD editing unit that provides code editing function based on FBD (Function Block Diagram) language; And
SFC (Sequential Function Chart) A program providing device further comprising an SFC editor that provides language-based code editing.
제 1 항에 있어서,
상기 프로그램제공부의 프로그램을 기계어로 변환하는 컴파일부를 더 포함하는 프로그램 제공 장치.
According to claim 1,
And a compilation unit for converting the program of the program providing unit into machine language.
제 9 항에 있어서,
상기 컴파일부는 상기 기계어로 변환된 프로그램을 상기 PLC시스템에 구비된 CPU모듈의 메모리부의 프로그램영역에 제공하고,
상기 프로그램제공부는 상기 프로그램을 상기 CPU모듈의 메모리부의 업로드영역에 제공하며,
상기 서브루틴리스트제공부는 상기 서브루틴리스트를 상기 CPU모듈의 메모리부의 OS ROM 영역에 제공하는 프로그램 제공 장치.
The method of claim 9,
The compilation unit provides the program converted into the machine language to the program area of the memory unit of the CPU module provided in the PLC system,
The program providing unit provides the program to the upload area of the memory unit of the CPU module,
The subroutine list providing unit provides the subroutine list to the OS ROM area of the memory unit of the CPU module.
제 1 항 내지 제 9 항 중 어느 한 항에 따른 프로그램 제공 장치에 의한 프로그램의 실행을 처리하는 CPU부; 및
상기 CPU부의 처리에 필요한 데이터들을 보유하는 메모리부를 포함하는 CPU모듈.
A CPU unit that processes execution of a program by the program providing device according to any one of claims 1 to 9; And
A CPU module including a memory unit for holding data necessary for processing the CPU unit.
제 11 항에 있어서,
상기 메모리부는
운영 프로그램과 연산 및 제어 기능에 관한 라이브러리를 보유하는 OS ROM 영역;
상기 프로그램 제공 장치에 의해 제공되는 기계어 상태의 프로그램을 보유하는 프로그램 영역;
상기 프로그램 제공 장치에 의해 제공되는 프로그래밍 언어 상태의 프로그램을 보유하는 업로드 영역; 및
상기 CPU부의 입출력 데이터와 상기 CPU부에 의한 연산 결과를 보유하는 데이터 영역을 포함하고,
상기 OS ROM 영역은 상기 프로그램 제공 장치의 상기 서브루틴리스트제공부에 의한 상기 서브루틴리스트를 보유하는 CPU모듈.
The method of claim 11,
The memory unit
An OS ROM area holding a library of operating programs and arithmetic and control functions;
A program area holding a program in a machine language state provided by the program providing device;
An upload area for holding a program in a programming language state provided by the program providing device; And
And a data area holding input / output data of the CPU unit and a result of the calculation by the CPU unit,
The OS ROM area is a CPU module that holds the subroutine list by the subroutine list providing unit of the program providing device.
제 12 항에 있어서,
상기 CPU부는
상기 메모리부의 상기 OS ROM 영역에 보유된 서브루틴리스트에 기초하여, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지하고,
상기 메모리부의 상기 프로그램 영역에 보유된 프로그램에 포함되는 각 프로그램 블록의 메인코드를 실행하는 중에 상기 서브루틴코드를 호출하는 명령어를 감지하면, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램 중 상기 명령어에 대응하는 어느 하나의 서브루틴코드를 실행하는 CPU모듈.
The method of claim 12,
The CPU unit
Based on the list of subroutines held in the OS ROM area of the memory unit, it is detected that the program held in the program area of the memory unit includes a subroutine code,
If an instruction to call the subroutine code is detected while executing the main code of each program block included in the program held in the program area of the memory unit, the command corresponds to the command among programs held in the program area of the memory unit CPU module that executes any one subroutine code.
KR1020180016030A 2018-02-09 2018-02-09 Apparatus for providing program and cpu module processing execution of the program of the same KR102095224B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180016030A KR102095224B1 (en) 2018-02-09 2018-02-09 Apparatus for providing program and cpu module processing execution of the program of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180016030A KR102095224B1 (en) 2018-02-09 2018-02-09 Apparatus for providing program and cpu module processing execution of the program of the same

Publications (2)

Publication Number Publication Date
KR20190096499A KR20190096499A (en) 2019-08-20
KR102095224B1 true KR102095224B1 (en) 2020-03-31

Family

ID=67807453

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180016030A KR102095224B1 (en) 2018-02-09 2018-02-09 Apparatus for providing program and cpu module processing execution of the program of the same

Country Status (1)

Country Link
KR (1) KR102095224B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005389A (en) * 2002-01-10 2004-01-08 Omron Corp Unit, plc and processing method for user program
JP2005141564A (en) * 2003-11-07 2005-06-02 Digital Electronics Corp Editor apparatus, program for operating computer as editor apparatus, and recording medium
JP2009009314A (en) * 2007-06-27 2009-01-15 Digital Electronics Corp Editor device, editor program, and record medium recorded the same editor program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950006585B1 (en) * 1986-02-19 1995-06-19 가부시키가이샤 히타치세이사쿠쇼 Micro program control apparatus and control method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005389A (en) * 2002-01-10 2004-01-08 Omron Corp Unit, plc and processing method for user program
JP2005141564A (en) * 2003-11-07 2005-06-02 Digital Electronics Corp Editor apparatus, program for operating computer as editor apparatus, and recording medium
JP2009009314A (en) * 2007-06-27 2009-01-15 Digital Electronics Corp Editor device, editor program, and record medium recorded the same editor program

Also Published As

Publication number Publication date
KR20190096499A (en) 2019-08-20

Similar Documents

Publication Publication Date Title
CN101667134B (en) Method for constructing compiling system and compiling system constructing device
CN105786691B (en) Automatic integrated testing device, method and system for mobile terminal
US9477578B2 (en) Sequence-program-debugging supporting apparatus
EP3336627B1 (en) Support device, method, and recording medium whereon support program is stored
CN109324799A (en) A kind of code compiling method, computer installation and computer readable storage medium
CN111078265B (en) Web project update patch generation method based on jenkins
CN102722384A (en) On-line upgrading method and upgrading system for optical module firmware
CN110377523A (en) Program debugging method and device, electronic equipment and storage medium
CN104391754A (en) Method and device for processing task exception
KR101350798B1 (en) Robot system controlled on the basis of opros platform and control method thereof
CN111158680A (en) Page construction method, device, equipment and storage medium
KR102095224B1 (en) Apparatus for providing program and cpu module processing execution of the program of the same
WO2018096717A1 (en) Control system and control method
CN113939780B (en) Support device and recording medium
KR20190114510A (en) Method for Processing Branch Command in PLC
CN112558553A (en) Method and system for executing channel command of multi-channel numerical control system
CN114281404B (en) Method and device for transplanting algorithm codes of industrial personal computer
JP6318214B2 (en) PLC debugging method using a general-purpose microprocessor
US11036617B2 (en) Sequence program processor used for tracing of sequence program
CN111966602B (en) Fixed point code debugging method, system, terminal and storage medium
KR102683193B1 (en) Method for automatically testing battery packs
EP1174779A1 (en) Method of programming motion controller
JP4877257B2 (en) Programmable controller, programmable controller support apparatus, and programmable controller system
CN110750308A (en) Task processing method and device, storage medium and electronic equipment
CN109669721B (en) Method capable of developing software for second time

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
GRNT Written decision to grant