[go: up one dir, main page]

KR101771289B1 - Plc 프로그램 관리 장치 - Google Patents

Plc 프로그램 관리 장치 Download PDF

Info

Publication number
KR101771289B1
KR101771289B1 KR1020140059503A KR20140059503A KR101771289B1 KR 101771289 B1 KR101771289 B1 KR 101771289B1 KR 1020140059503 A KR1020140059503 A KR 1020140059503A KR 20140059503 A KR20140059503 A KR 20140059503A KR 101771289 B1 KR101771289 B1 KR 101771289B1
Authority
KR
South Korea
Prior art keywords
execution
memory
plc
memory block
code
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020140059503A
Other languages
English (en)
Other versions
KR20150132929A (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 KR1020140059503A priority Critical patent/KR101771289B1/ko
Priority to EP15167613.7A priority patent/EP2947526B1/en
Priority to ES15167613T priority patent/ES2771799T3/es
Priority to US14/712,666 priority patent/US10579036B2/en
Priority to CN201510341902.6A priority patent/CN105094937B/zh
Priority to JP2015101999A priority patent/JP6023266B2/ja
Publication of KR20150132929A publication Critical patent/KR20150132929A/ko
Application granted granted Critical
Publication of KR101771289B1 publication Critical patent/KR101771289B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/13153Modification, change of program in real time
    • 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/15065Optimize program memory space

Landscapes

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

Abstract

PLC에 적용될 사용자 프로그램의 실행 코드가 다양한 크기의 메모리 블록 중 적합한 블록에 맞추어 배치되고, 각 실행 코드의 실행 순서와 위치 정보가 기록된 실행 테이블과 함께 PLC로 다운로드 된다. PLC의 CPU 모듈은 메모리에 랜덤하게 배치된 각 실행 코드를 실행 테이블을 참조하여 순차 실행하게 된다. N, 2N, 4N 등 각각 다른 크기를 갖는 메모리 블록에 실행 코드가 적재되기 때문에 종래 고정 크기의 할당 기법에 비해 미사용 공간에 대한 활용성이 개선되고, 실행 테이블을 활용하므로 프로그램 실행 영역을 비연속적으로 구성할 수 있으며, PLC 운전 중 사용자 프로그램을 수정하거나 추가하는 것이 손쉽게 이루어진다.

Description

PLC 프로그램 관리 장치{ Apparatus for Program Management of Programmable Logic Controller }
본 발명은 PLC에 적용될 사용자 프로그램을 관리하는 장치 및 PLC의 CPU 모듈에 관한 것으로서, 사용자 프로그램의 크기에 적합한 메모리 블록을 할당하여 메모리 공간을 더욱 효율적으로 사용할 수 있도록 하고, 동작 중인 PLC를 멈추지 않고도 실행 중인 사용자 프로그램을 수정/추가할 수 있도록 한다.
PLC(Programmable Logic Controller)는 공장 자동화 등에 필수적인 요소로서 다양한 산업분야에서 사용되고 있다.
PLC의 사용자 프로그램은 필요에 따라 변경되거나 추가될 수 있고, 변경된 사용자 프로그램은 다시 PLC로 다운로드 되어 실행되어야 한다. 이때 제어 시스템의 멈춤 없이 사용자 프로그램에 대한 기능의 변경 및 추가 등이 이루어 질 수 있도록 할 필요가 있다.
이를 위하여, 각 사용자 프로그램이 적재되는 메모리 블록에 여유 공간을 두고, 수정되는 부분을 그 여유 공간에 로딩하여, PLC 동작 중에도 사용자 프로그램의 수정이 가능하게 하고 있다.
그런데 종래에는 각 사용자 프로그램의 크기에 관계없이 항상 그에 할당 되는 메모리 블록의 크기가 고정되어 있어서, 미 사용 공간에 대한 활용성이 떨어질 뿐 아니라, 프로그램 수정을 위한 공간을 확보할 수 없을 경우 더 이상의 프로그램 수정이 불가능 해지는 문제점이 있었다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 각 사용자 프로그램에 할당되는 메모리 블록의 크기를 다양하게 구성하여, 미 사용 공간에 대한 활용성을 개선하고, 유연한 프로그램 수정이나 추가가 이루어질 수 있도록 하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 PLC 프로그램 관리 장치는, 소스 코드를 컴파일 하여 실행 코드를 생성하는 컴파일 수단; 메모리가 어떤 메모리 블록들로 구성되는 지에 관한 메모리 구성정보를 기초로 실행 코드의 크기에 따라 적합한 메모리 블록을 할당하는 블록 할당 수단; 실행 코드를 상기 블록 할당 수단을 통해 할당된 메모리 블록의 위치에 배치하는 링크 수단; 각 실행 코드의 실행 순서와 위치 정보가 기록된 실행 테이블을 생성하는 실행 테이블 생성 수단; 및 상기 링크 수단에 의해 처리된 실행 코드와 상기 실행 테이블을 상기 PLC로 다운로드 시키는 다운로드 수단을 포함하여 이루어진다.
이때 메모리 블록들의 크기는 적어도 2가지 이상일 수 있다.
상기 메모리 블록의 크기에 관한 하나의 실시예는 기본 크기(N)의 정수배로 구성하는 것이다.
상기 블록 할당 수단은 소스 코드가 수정되는 경우, 수정된 실행 코드의 크기와 수정 전 실행 코드에 할당되어 있는 메모리 블록의 크기에 따라, 그 메모리 블록을 그대로 할당하거나, 또는 새로운 메모리 블록을 할당할 수 있다.
메모리 블록의 크기가 기 설정된 기본 크기(N)의 정수배로 구성되는 경우, 상기 블록 할당 수단은 'CEIL(수정된 실행 코드의 크기 ÷ N) × N'으로부터 시작하여 크기를 한 단위씩 높여 가면서 유효한 메모리 블록을 탐색할 수 있다.
여기서, CEIL(x)는 x보다 큰 최소 정수를 의미한다.
상기 블록 할당 수단은 새로운 메모리 블록을 찾지 못한 경우 상기 메모리 구성정보를 기초로 각 실행 코드에 대한 메모리 블록을 다시 할당할 수 있다.
본 발명에 따른 PLC(Programmable Logic Controller)의 CPU 모듈은, 메모리에 기록된 복수개의 사용자 프로그램의 실행 코드를 순차적으로 반복 실행하는 프로그램 실행기를 포함하고, 각 사용자 프로그램의 실행 순서와 위치 정보가 기록된 실행 테이블을 유지한다. 이때 상기 프로그램 실행기는 상기 실행 테이블을 참조하여 메모리의 실행 코드를 순차 실행한다.
본 발명에 따르면, N, 2N, 4N 등 각각 다른 크기를 갖는 프로그램 메모리 블록을 구성하고, 사용자 프로그램의 크기에 따라 적합한 크기의 메모리 블록을 할당한다. 그러므로, 종래 고정 크기의 할당 기법에 비해 미 사용 공간에 대한 활용성이 개선된다.
또한, 실행 테이블을 활용하여 프로그램 실행 영역을 비연속적으로 구성할 수 있으므로, 프로그램의 선택적인 실행이 가능하고, PLC 운전 중 사용자 프로그램을 수정하거나 추가하는 것도 가능하다.
도 1은 본 발명에 따른 PLC 프로그램 관리 장치와 CPU 모듈의 일 실시예,
도 2는 사용자 프로그램을 설명하기 위한 예,
도 3은 메모리 구성정보에 관한 예,
도 4는 메모리 블록 할당과 실행 테이블을 설명하기 위한 예,
도 5와 도 6은 사용자 프로그램이 수정될 때 메모리 블록을 다시 할당하는 방법의 구체적인 예이다
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 1을 참조하자면, PLC(20: Programmable Logic Controller)는 별도의 외부 장치인 PLC 프로그램 관리 장치(10)와 연동한다.
본 발명에서 PLC 프로그램 관리 장치(10)란 그 명칭과 관계없이 사용자가 PLC(20)에 적용할 프로그램을 관리할 수 있도록 해 주는 장치를 말하며, PLC(20)로 사용자 프로그램을 다운로드 시켜 줄 수 있다. PLC 프로그램 관리 장치(10)는 이하에서 설명하는 프로그램 관리와 관련한 기능을 수행하는 한 PLC(20)의 운용과 관리를 위한 다양한 역할을 수행할 수 있다.
PLC 프로그램 관리 장치(10)는 데스크 탑 컴퓨터나 노트 북 컴퓨터 등의 컴퓨터 장치로 구성될 수 있다.
PLC 프로그램 관리 장치(10)에는 사용자가 래더(Ladder) 프로그램을 작성할 수 있도록 하거나, 작성된 프로그램을 컴파일 하여 PLC(20)로 다운로드 할 수 있도록 해 주는 등의 역할을 수행하는 어플리케이션 툴이 설치될 수 있다.
PLC(20)는 CPU 모듈(21), 전원 모듈(22), 입출력 모듈(23) 등 다양한 종류의 모듈이 구비될 수 있다.
CPU 모듈(21)은 PLC(20)의 기본 유닛 역할을 수행하며, 중앙처리장치(21-1: Central Processing Unit)와 같은 연산 프로세서, 사용자 프로그램의 실행 코드가 기록되는 메모리(21-2) 등을 포함하여 구성된다.
CPU 모듈(21)이란 그 명칭과 관계없이 PLC(20)의 주요 운용 프로그램을 실행하여 PLC(20)를 관리하는 주 제어 모듈을 의미한다.
PLC 프로그램 관리 장치(10)와 CPU 모듈(21)이 각 통신모듈(10-7, 21-7)을 통해 서로 연결된 예가 도시되어 있다. PLC 프로그램 관리 장치(10)와 CPU 모듈(21)은 직렬통신이나 이더넷 등 다양한 통신 방식을 통해 통신할 수 있다.
도 2를 참조하자면, 일반적으로 PLC(20)의 사용자 프로그램(18)은 프로그램1, 프로그램2, 프로그램3, 프로그램4 등 여러 개의 하위 프로그램으로 구성되며, 사용자가 PLC 프로그램 개발 환경에서 작성한 사용자 프로그램의 소스 코드는 실행 코드로 컴파일 되어 PLC(20)로 다운로드 된다.
본 발명에 따른 PLC 프로그램 관리 장치(10)는 컴파일 수단(11), 블록 할당 수단(12), 링크 수단(13), 실행 테이블 생성 수단(14), 및 다운로드 수단(15)을 포함하여 이루어진다.
컴파일 수단(11)은 사용자 프로그램의 소스 코드(10-1)를 컴파일 하여 실행 코드(10-2)를 생성하는 역할을 수행한다. 실행 코드란 PLC(20)의 연산 프로세서가 처리할 수 있는 형태의 코드를 말한다.
블록 할당 수단(12)은 메모리 구성정보(10-3)를 참조하여 실행 코드에 메모리 블록을 할당하는 역할을 수행한다. 즉, 블록 할당 수단(12)은 컴파일 수단(11)에 의해 컴파일된 실행 코드의 크기에 따라 적합한 메모리 블록을 탐색하고, 탐색된 메모리 블록을 해당 실행 코드에 할당한다.
메모리 구성정보란 메모리가 어떤 메모리 블록으로 구성될 것인지를 나타내는 정보를 말한다. 각 메모리 블록은 모두 동일한 크기를 갖는 것이 아니라 다양한 크기를 가진다. 구체적인 예로서, 메모리 블록의 크기는 기 설정된 기본 크기(N)의 정수배로 구성될 수 있다.
도 3은 메모리 구성정보의 예를 보인 것으로서, 메모리 블록의 크기가 N, 2N, 4N 등의 크기를 갖도록 하되, 메모리의 주소 순서대로 크기가 N인 메모리 블록 4개(31~34), 크기가 2N인 메모리 블록 2개(35,36), 크기가 4N인 메모리 블록 1개(37)로 이루어진 구조를 나타내고 있다.
메모리 구성정보는 메모리가 블록 단위로 어떤 구조를 갖도록 할 것인지에 따라 얼마든지 다양하게 구성될 수 있다.
링크 수단(13)은 실행 코드를 블록 할당 수단(12)을 통해 할당된 메모리 블록의 위치에 배치하는 역할을 수행한다.
즉, 각 사용자 프로그램의 실행 코드는 링크 수단(13)을 통해 자신이 실제 위치해야 하는 메모리 주소에 위치하도록 배치된다. 예컨대 어떤 실행 코드에 도 3의 첫 번째 2N 크기의 메모리 블록(35)이 할당 되었다면, 링크 수단(13)은 이 실행 코드가 그 메모리 블록(35)에 위치하도록 배치한다.
실행 테이블 생성 수단(14)은 각 실행 코드의 실행 순서와 위치 정보를 담은 실행 테이블(10-4)을 생성한다.
각 실행 코드는 블록 할당 수단(12)에 의해 할당된 메모리 블록에 배치되지만, 블록 할당 수단(12)이 할당하는 메모리 블록의 위치는 실행 코드의 크기와 현재 메모리 사용 상황에 따라 임의적으로 결정되는 것이므로, 각 사용자 프로그램의 실행 코드가 그 실행 순서대로 배치된다는 보장이 없다.
그러나, 실제 PLC(20)에서 실행될 때는 사용자가 의도한 순서대로 실행되어야 하므로, 프로그램 실행 순서 및 각 프로그램의 실행 위치에 관한 정보가 필요한데, 이 역할을 실행 테이블이 수행한다.
도 4를 참조하여, 실행 테이블에 대한 예를 설명하기로 한다.
사용자 프로그램이 프로그램1, 프로그램2, 프로그램3, 프로그램4로 이루어졌고, 블록 할당 수단(12)이 프로그램1, 프로그램2, 프로그램3, 프로그램4에 각각 메모리 블록5, 메모리 블록7, 메모리 블록1, 메모리 블록2를 할당했다.
그러면 링크 수단(13)은 프로그램1을 메모리 블록5에, 프로그램2를 메모리 블록7에, 프로그램3을 메모리 블록1에, 프로그램4를 메모리 블록2에 각각 배치하기 때문에, 프로그램1 내지 프로그램4가 순서대로 실행될 수 없다.
이를 위하여, 실행 테이블(10-4)에는 프로그램 실행 순서와 해당 순서에 실행되어야 하는 프로그램의 위치 정보가 기록되며, 이 정보를 이용하여 이후 각 프로그램을 사용자의 의도에 따라 순서대로 실행시킬 수 있게 된다.
실행 테이블(10-4)에는 프로그램 실행 순서와 위치를 지정하기 위하여 필요한 여러 정보가 포함될 수 있다.
예컨대 메모리 블록의 시작 위치뿐 아니라 해당 메모리 블록에 배치된 실행 코드의 크기 정보 등도 포함될 수 있다.
다운로드 수단(15)은 링크 수단(13)에 의해 처리된 실행 코드와, 실행 테이블 생성 수단(14)에 의해 생성된 실행 테이블을 PLC(20)로 다운로드 시킨다.
한편, 이미 메모리 블록이 할당되었던 사용자 프로그램이 수정되는 경우, 블록 할당 수단(12)은 수정된 실행 코드의 크기와 수정 전 실행 코드에 할당되어 있는 메모리 블록의 크기를 비교하여, 그 메모리 블록을 그대로 할당하거나, 또는 새로운 메모리 블록을 할당한다.
도 5를 참조하여, 사용자 프로그램이 수정된 경우 블록 할당 수단(12)의 동작에 관한 예를 설명하기로 한다.
블록 할당 수단(12)은 수정된 사용자 프로그램이 컴파일 수단(11)을 통해 실행 코드로 변환되어 블록 할당을 해야 하는 경우(S111), 해당 사용자 프로그램에 할당되었던 메모리 블록에 수정된 실행 코드를 적재 할만한 여유가 있는지를 확인한다(S112).
단계 S112에서의 확인 결과 현재 메모리 블록에 여유가 있을 때는 현재 메모리 블록을 그대로 할당하며(S113), 여유 공간이 없을 때는 새로운 메모리 블록을 탐색하는 과정을 진행한다(S114).
새로운 메모리 블록 탐색 과정을 수행한 결과 새로운 블록이 탐색되었으면(S115), 그 메모리 블록을 할당하고(S116), 새로운 블록을 찾을 수 없으면 메모리 블록을 재배치 한다(S117).
메모리 블록을 재배치한다는 것은 각 실행 코드에 대한 메모리 블록을 모두 다시 할당한다는 것을 의미한다.
도 6은 도 5에서 새로운 메모리 블록을 탐색하는 과정(S114)에 관한 예를 보인 것이다. 메모리 블록의 크기는 도 3에 도시된 예와 같이 기 설정된 기본 크기(N)의 정수배로 구성된다고 가정한다.
먼저 블록 할당 수단(12)은 탐색블록크기를 'CEIL(수정된 실행 코드의 크기 ÷ N) × N'에 따라 구한다(S114-1).
여기서 CEIL(x)는 x보다 큰 최소 정수이다.
그리고, 탐색블록크기의 유효한 메모리 블록(사용할 수 있는 상태의 메모리 블록)이 남아 있는 지를 조사한다(S114-2).
현재 탐색블록크기의 유효한 메모리 블록이 남아 있으면, 해당 메모리 블록을 선택한다(S114-3). 그러면, 도 5의 단계 S116이 수행된다.
그러나, 현재 탐색블록크기의 유효한 메모리 블록이 남아 있지 않은 경우에는 탐색블록크기를 한 단계 증가시키고(S114-4), 단계 S114-2로 진행하여 현재 탐색블록크기의 유효한 메모리 블록이 남아 있는 지를 조사하는 과정을 탐색블록크기 값이 규정된 최대 블록 크기보다 클 때까지 반복하여 진행한다(S114-5).
만일 유효한 메모리 블록을 찾지 못한 경우에는 메모리 블록 할당 실패로 이어지며, 도 5의 단계 S117이 수행된다. 즉, 블록 할당 수단(12)은 새로운 메모리 블록을 찾지 못한 경우 각 사용자 프로그램의 실행 코드에 대한 메모리 블록을 다시 할당한다.
어떤 사용자 프로그램이 수정되면, 링크 수단(13)에 의한 재배치가 이루어지며, 다시 배치된 실행 코드와, 그에 따라 변경된 실행 테이블이 다시 생성되어, 다운로드 수단(15)을 통해 PLC(20)로 다운로드 된다.
한편, CPU 모듈(21)은 메모리(21-2)에 기록된 여러 사용자 프로그램의 실행 코드를 순차적으로 반복 실행하는 프로그램 실행기(21-3)를 포함하고 있으며, CPU 모듈(21)은 PLC 프로그램 관리 장치(10)로부터 다운로드 된 실행 테이블(21-4)을 유지한다.
또한, CPU 모듈(21)은 PLC 프로그램 관리 장치(10)로부터 다운로드 된 사용자 프로그램의 실행 코드를 자신의 메모리(21-2)에 적재 시킨다.
그리고, 프로그램 실행기(21-3)는 실행 테이블(21-4)을 참조하여 메모리(21-2)의 실행 코드를 순차 실행한다.
도 4의 예를 통해 설명한 바와 같이, 프로그램 실행기(21-3)는 실행 테이블에 저장되어 있는 정보를 이용하여 메모리(21-2)의 실제 프로그램 실행 영역에 있는 사용자 프로그램(실행 코드)을 실행하게 된다.
도 4의 예를 메모리 관점에서 볼 때, 실제 메모리(21-2)에는 프로그램3, 프로그램4, 프로그램1, 프로그램2의 순서대로 적재되지만, 실행 테이블에서 지정하는 순서를 참조하여 실행하면, 메모리 블록 5, 7, 1, 2에 기록된 실행 코드의 순서대로 실행되기 때문에, 결국 프로그램1 내지 프로그램4가 순서대로 실행된다.
즉, 실행 테이블이 실행되어야 할 프로그램이 기록된 메모리 위치를 순서대로 지정해 주기 때문에 프로그램 실행기(21-3)는 항상 올바른 순서에 따라 프로그램을 실행할 수 있다.
또한, 실행 테이블은 사용되지 않은 메모리 블록에 대한 보존 영역을 가질 수 있으며, 이를 이용하면 PLC(20)를 운전하는 중에도 새로운 사용자 프로그램을 손쉽게 추가할 수 있다.
예컨대 도 4의 예에서 PLC 프로그램 관리 장치(10)로부터 새로 추가되는 프로그램5가 다운로드 되어 메모리(21-2)의 메모리 블록6에 추가되었고, 실행 테이블의 첫 번째 보존영역에 그에 대한 정보가 추가되어 있다면, 프로그램 실행기(21-3)는 프로그램4의 실행 후 새로 추가된 프로그램5를 실행할 것이다.
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
10: PLC 프로그램 관리 장치 10-1: 소스 코드
10-2: 실행 코드 10-3: 메모리 구성정보
10-4, 21-4: 실행 테이블 10-7, 21-7: 통신모듈
11: 컴파일 수단 12: 블록 할당 수단
13: 링크 수단 14: 실행 테이블 생성 수단
15: 다운로드 수단 20: PLC
21: CPU 모듈 21-1: CPU
21-2: 메모리 21-3: 프로그램 실행기
22: 전원모듈 23: 입출력 모듈

Claims (6)

  1. PLC(Programmable Logic Controller)의 주요 운용 프로그램을 실행하여 PLC를 관리하는 CPU 모듈로 복수개의 사용자 프로그램의 실행코드를 제공하기 위한 PLC 프로그램 관리 장치에 있어서,
    상기 PLC 프로그램 관리 장치는,
    소스 코드를 컴파일 하여 실행 코드를 생성하는 컴파일 수단;
    메모리가 어떤 메모리 블록들로 구성되는 지에 관한 메모리 구성정보를 기초로, 실행 코드의 크기에 따라 적합한 메모리 블록을 할당하는 블록 할당 수단;
    실행 코드를 상기 블록 할당 수단을 통해 할당된 메모리 블록의 위치에 배치하는 링크 수단;
    각 실행 코드의 실행 순서와 위치 정보가 기록된 실행 테이블을 생성하는 실행 테이블 생성 수단; 및
    상기 링크 수단에 의해 처리된 실행 코드와 상기 실행 테이블을 상기 PLC의 CPU 모듈로 다운로드 시키는 다운로드 수단을 포함하고,
    상기 실행 테이블은, 실행코드의 실행순서와 위치정보가 저장된 영역과 사용되지 않은 메모리 블록에 대한 보존 영역을 포함하고, 상기 복수개의 사용자 프로그램 실행 중에 임의의 사용자 프로그램이 수정된 경우, 수정된 사용자 프로그램에 대한 정보가 상기 보존영역에 추가되어서 변경된 실행 테이블이 재생성되는 것을 특징으로 하는 PLC 프로그램 관리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 블록의 크기는 기 설정된 기본 크기(N)의 정수배로 구성되는 것을 특징으로 하는 PLC 프로그램 관리 장치.
  3. 제 1 항에 있어서,
    상기 블록 할당 수단은 소스 코드가 수정되는 경우, 수정된 실행 코드의 크기와 수정 전 실행 코드에 할당되어 있는 메모리 블록의 크기에 따라, 그 메모리 블록을 그대로 할당하거나, 또는 새로운 메모리 블록을 할당하는 것을 특징으로 하는 PLC 프로그램 관리 장치.
  4. 제 3 항에 있어서,
    메모리 블록의 크기는 기 설정된 기본 크기(N)의 정수배로 구성되고, CEIL(x)는 x보다 큰 최소 정수라 할 때,
    상기 블록 할당 수단은 'CEIL(수정된 실행 코드의 크기 ÷ N) × N'으로부터 시작하여 크기를 한 단위씩 높여 가면서 유효한 메모리 블록을 탐색하는 것을 특징으로 하는 PLC 프로그램 관리 장치.
  5. 제 3 항에 있어서,
    상기 블록 할당 수단은 새로운 메모리 블록을 찾지 못한 경우 상기 메모리 구성정보를 기초로 각 실행 코드에 대한 메모리 블록을 다시 할당하는 것을 특징으로 하는 PLC 프로그램 관리 장치.
  6. 제 1 항에 있어서,
    상기 다운로드 수단으로부터 상기 실행 코드와 실행 테이블을 수신하는 PLC의 CPU 모듈을 더 포함하고,
    상기 CPU 모듈은 상기 실행 테이블을 참조하여 메모리의 실행 코드를 순차 실행하는 것을 특징으로 하는 PLC 프로그램 관리 장치.
KR1020140059503A 2014-05-19 2014-05-19 Plc 프로그램 관리 장치 Active KR101771289B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020140059503A KR101771289B1 (ko) 2014-05-19 2014-05-19 Plc 프로그램 관리 장치
EP15167613.7A EP2947526B1 (en) 2014-05-19 2015-05-13 Apparatus for program management of programmable logic controller
ES15167613T ES2771799T3 (es) 2014-05-19 2015-05-13 Aparato para la gestión de programas de controlador lógico programable
US14/712,666 US10579036B2 (en) 2014-05-19 2015-05-14 Apparatus for program management of programmable logic controller
CN201510341902.6A CN105094937B (zh) 2014-05-19 2015-05-18 用于可编程逻辑控制器的程序管理的装置
JP2015101999A JP6023266B2 (ja) 2014-05-19 2015-05-19 Plcプログラム管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140059503A KR101771289B1 (ko) 2014-05-19 2014-05-19 Plc 프로그램 관리 장치

Publications (2)

Publication Number Publication Date
KR20150132929A KR20150132929A (ko) 2015-11-27
KR101771289B1 true KR101771289B1 (ko) 2017-08-24

Family

ID=53283990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140059503A Active KR101771289B1 (ko) 2014-05-19 2014-05-19 Plc 프로그램 관리 장치

Country Status (6)

Country Link
US (1) US10579036B2 (ko)
EP (1) EP2947526B1 (ko)
JP (1) JP6023266B2 (ko)
KR (1) KR101771289B1 (ko)
CN (1) CN105094937B (ko)
ES (1) ES2771799T3 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824128B2 (en) 2018-05-03 2020-11-03 Lsis Co., Ltd. Device for processing programmable logic controller program
KR20210071487A (ko) * 2019-12-06 2021-06-16 엘에스일렉트릭(주) Plc 시스템

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3380899B1 (en) * 2016-01-11 2020-11-04 Siemens Aktiengesellschaft Program randomization for cyber-attack resilient control in programmable logic controllers
JP6812727B2 (ja) 2016-09-30 2021-01-13 オムロン株式会社 安全制御ユニット、安全制御方法、安全制御プログラム
US10664405B2 (en) * 2017-11-03 2020-05-26 Google Llc In-memory distributed cache
CN109840430B (zh) * 2017-11-28 2023-05-02 中国科学院沈阳自动化研究所 Plc的安全处理单元及其总线仲裁方法
JP6954256B2 (ja) * 2018-11-02 2021-10-27 横河電機株式会社 エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
KR102231963B1 (ko) * 2019-10-21 2021-03-24 엘에스일렉트릭(주) 피엘씨 변수의 메모리 할당 방법
DE102019217848A1 (de) * 2019-11-20 2021-05-20 Robert Bosch Gmbh Dynamische Koordination und Ausführung unabhängiger heterogener Programmeinheiten
CN115826487B (zh) * 2021-09-17 2025-01-21 沈机(上海)智能系统研发设计有限公司 Plc软件地址交叉表图形化的应用方法、系统、终端及介质
KR102802414B1 (ko) * 2022-07-06 2025-04-29 엘에스일렉트릭(주) Plc 시스템 및 그 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022413A (ja) * 1999-07-09 2001-01-26 Toshiba Corp プログラマブルコントローラ
JP2004295872A (ja) * 2003-03-13 2004-10-21 Omron Corp 制御装置、cpuユニット、プログラマブルコントローラのユーザプログラム編集方法、及びオンラインエディットされる際のプログラマブルコントローラの処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61118806A (ja) 1984-11-15 1986-06-06 Fuji Electric Co Ltd プログラミング装置
US6993456B2 (en) * 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
JP2002333903A (ja) 2001-05-09 2002-11-22 Yaskawa Electric Corp ラダープログラミングエディタにおける編集操作およびデータの記憶方法
JP2003122410A (ja) 2001-10-17 2003-04-25 Shimadzu System Solutions Co Ltd コントローラの演算実行方法
US8141052B2 (en) * 2003-05-09 2012-03-20 Microsoft Corporation Instrumenting software for enhanced diagnosability
US7325118B2 (en) * 2003-09-30 2008-01-29 Samsung Electronics, Co., Ltd. Method and apparatus for executing dynamic memory management with object-oriented program
JP4825644B2 (ja) * 2006-11-14 2011-11-30 ルネサスエレクトロニクス株式会社 画像復号装置、画像符号化装置、およびシステムlsi
US7835806B2 (en) 2007-01-29 2010-11-16 Rockwell Automation Technologies, Inc. Method for indirect access to controller data using name stored in string tag
JP5224498B2 (ja) 2007-02-28 2013-07-03 学校法人早稲田大学 メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム
DE102010027906A1 (de) * 2010-04-19 2011-10-20 Beckhoff Automation Gmbh Datenverwaltungsverfahren und speicherprogrammierbare Steuerung
US9485200B2 (en) * 2010-05-18 2016-11-01 Intel Corporation Network switch with external buffering via looparound path
KR101719563B1 (ko) * 2010-06-22 2017-03-24 삼성전자주식회사 방송수신장치 및 그의 메모리 관리방법
US8751724B2 (en) * 2011-09-20 2014-06-10 International Business Machines Corporation Dynamic memory reconfiguration to delay performance overhead

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022413A (ja) * 1999-07-09 2001-01-26 Toshiba Corp プログラマブルコントローラ
JP2004295872A (ja) * 2003-03-13 2004-10-21 Omron Corp 制御装置、cpuユニット、プログラマブルコントローラのユーザプログラム編集方法、及びオンラインエディットされる際のプログラマブルコントローラの処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824128B2 (en) 2018-05-03 2020-11-03 Lsis Co., Ltd. Device for processing programmable logic controller program
KR20210071487A (ko) * 2019-12-06 2021-06-16 엘에스일렉트릭(주) Plc 시스템
KR102753309B1 (ko) 2019-12-06 2025-01-09 엘에스일렉트릭(주) Plc 시스템

Also Published As

Publication number Publication date
EP2947526A2 (en) 2015-11-25
CN105094937B (zh) 2019-03-15
JP2015219924A (ja) 2015-12-07
CN105094937A (zh) 2015-11-25
JP6023266B2 (ja) 2016-11-09
EP2947526A3 (en) 2016-06-29
US20150331407A1 (en) 2015-11-19
EP2947526B1 (en) 2019-11-27
ES2771799T3 (es) 2020-07-07
KR20150132929A (ko) 2015-11-27
US10579036B2 (en) 2020-03-03

Similar Documents

Publication Publication Date Title
KR101771289B1 (ko) Plc 프로그램 관리 장치
US11209788B2 (en) Techniques for improving industrial control systems
CN107168749B (zh) 一种编译方法、装置、设备和计算机可读存储介质
JP2012118715A (ja) Plcシステム、その開発支援装置、プログラム
JP2016519385A (ja) ドライバをロードする方法及び組み込みデバイス
JP6879625B2 (ja) プログラマブルコントローラ、管理装置および制御システム
JP6445029B2 (ja) 自動化システムを構成するための処理装置および方法
CN114706590B (zh) Plc应用包生成方法、plc应用执行方法及相关装置和系统
CN101681266B (zh) 用于包括多个设备的联网控制系统的编译器和编译方法
CN103645888A (zh) 一种自动构建操作系统的系统及方法
JP2019016037A (ja) プログラム作成装置
JP6292096B2 (ja) プログラマブルコントローラシステム、その支援装置
JP5655448B2 (ja) Plcシステム、その開発支援装置
JP4366575B2 (ja) ツール
US9170839B2 (en) Method for job scheduling with prediction of upcoming job combinations
KR20200140382A (ko) 프로그램 관리 시스템, 프로그래밍 지원 장치, 프로그램 관리 방법 및 프로그래밍 지원 프로그램
JP2015022511A (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP5906609B2 (ja) デバッグ支援プログラム、デバッグ支援方法及びデバッグ支援システム
JP2015005224A (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
JP4516046B2 (ja) プログラマブルコントローラ
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
US20130006397A1 (en) Programmable controller and programming tool for communication with legacy equipment
JP5978775B2 (ja) プログラマブルコントローラ、その支援装置、プログラム、プログラム転送方法
CN113254020A (zh) 固件自动编译打包的系统及方法
CN104678875A (zh) 一种变频器配置方法及变频器配置系统

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140519

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20160928

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20140519

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20170220

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20170810

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20170818

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20170818

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20200701

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20210712

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20230627

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20240624

Start annual number: 8

End annual number: 8