KR102231963B1 - 피엘씨 변수의 메모리 할당 방법 - Google Patents

피엘씨 변수의 메모리 할당 방법 Download PDF

Info

Publication number
KR102231963B1
KR102231963B1 KR1020190130376A KR20190130376A KR102231963B1 KR 102231963 B1 KR102231963 B1 KR 102231963B1 KR 1020190130376 A KR1020190130376 A KR 1020190130376A KR 20190130376 A KR20190130376 A KR 20190130376A KR 102231963 B1 KR102231963 B1 KR 102231963B1
Authority
KR
South Korea
Prior art keywords
plc
variables
program
memory
variable
Prior art date
Application number
KR1020190130376A
Other languages
English (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 KR1020190130376A priority Critical patent/KR102231963B1/ko
Application granted granted Critical
Publication of KR102231963B1 publication Critical patent/KR102231963B1/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
    • 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/15Plc structure of the system
    • G05B2219/15015Assign functions to group of complete or partial cells, modules
    • 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 메모리 업로드 영역에 업로드하는 피엘씨 변수의 메모리 할당 방법에 있어서, a) 변수들 각각의 개별 크기를 설정하여, PLC 메모리를 상기 변수들의 수와 크기에 부합하는 블록으로 할당하는 단계와, b) 컴파일된 변수들을 상기 할당된 블록에 압축 저장하는 단계와, c) 상기 PLC 메모리의 할당 정보인 PLC 메모리 할당 정보 테이블을 상기 PLC 메모리의 업로드 영역에 저장하는 단계를 포함한다.

Description

피엘씨 변수의 메모리 할당 방법{An allocating method for memory for plc variables}
본 발명은 피엘씨 변수의 메모리 할당 방법에 관한 것으로, 더 상세하게는 수정된 프로그램 변수들에 대한 할당 정보를 수집하여 컴파일 시간을 단축할 수 있는 피엘씨 변수의 메모리 할당 방법에 관한 것이다.
일반적으로 PLC(Programmable Logic Controller)는 공장 자동화를 위한 무접점 순차 제어 회로 시스템에 주로 사용되며, 계전기, 타이머, 카운터 등의 요소를 하드웨어적으로 연결하여 제어 시스템을 구성하거나, 프로그램을 변경할 수 있는 무접점 시퀀스의 제어에 사용된다.
PLC의 장점은 고속, 내환경성, 취급용이성, 경제성의 장점이 있으며, 단순한 순차 제어기가 아닌 수많은 제어 요소를 갖추고 프로그램이 가능한 실시간 복합 제어가 가능하다는 점에 있다.
통상 PLC는 다수의 센서에 연결되는 입력회로, 모터 등 제어 대상에 연결되는 출력회로, 입력에 따른 처리를 수행하기 위한 프로그램을 저장하는 내부 및 외부 메모리, 입력회로를 통해 입력된 신호를 프로그램에 따라 처리하여 출력회로를 통해 출력할 수 있도록 처리하는 중앙처리장치를 포함한다.
PLC는 사용자가 작성한 프로그램을 순차적으로 반복해서 수행하는 제어기기이며, PLC에서 수행되는 프로그램은 크게 스캔 프로그램과 태스크 프로그램으로 구분된다.
스캔 프로그램은 스캔마다 반복적으로 수행되는 프로그램이고, 태스크 프로그램은 타이머, 인터럽트, 내부 접점 등의 기동 조건이 맞는 경우에 수행되는 프로그램이다.
스캔 프로그램을 수행하기 전에 입력 모듈의 상태 값을 읽어들여 입력 이미지 영역에 저장하고, 스캔 프로그램의 연산이 끝나고 나면, 출력 이미지 영역의 데이터를 출력 모듈에 출력한다.
도 1에 일반적인 PLC의 동작 흐름을 도시하였다.
앞서 언급한 바와 같이 PLC의 스캔 과정은 입력모듈의 접점 상태를 검출하여(S11) 입력 이미지 영역(S12)에 저장하고, 스캔 프로그램을 순차적으로 수행(S13)하면서 기동 조건에 부합하는 경우에만 태스크 프로그램을 수행(S16)한다.
스캔 프로그램의 마지막까지 수행한 후, 연산 결과를 출력 이미지 영역에 저장하고(S14)에 저장하고, 그 결과를 이용하여 출력모듈의 접점상태를 변경(S15)한다.
도 2는 프로그램 편집기의 구조도이다.
상기 스캔 및 태스크 프로그램은 사용자가 직접 작성하며, 이때 스캔 및 태스크 프로그램에 사용되는 언어들은 IEC 61131-3에 정의된 LD(Ladder Diagram), ST(Structured Text, Pascal type language), IL(Instruction List), FBD(Function Block Diagram), SFC(Sequential Function Chart) 언어들이 있으며, 이를 프로그램 편집기라고 한다.
상기 LD 편집기는 래더 다이어그램 프로그램을 할 수 있으며, IL 편집기는 명령어 리스트 프로그래밍을 하는 편집기이다.
또한, ST 편집기는 구조화된 텍스트 프로그래밍을 할 수 있으며, SFC 편집기는 시퀀스 함수 차트 프로그래밍을 할 수 있고, FBD 편집기는 펑션 블록 다이어그램 프로그래밍을 할 수 있다.
도 3은 로컬 변수와 프로그램 편집기의 관계도이다.
도 3을 참조하면 프로그램 편집기들 각각은 로컬 변수와 프로그램으로 구성된다. 로컬 변수는 프로그램에서 사용하는 변수들의 목록이며, 글로벌 변수는 외부 변수로서 로컬 변수에 등록된다.
결국, PLC에서 사용하는 스캔 프로그램 및 태스크 프로그램은 선언된 변수들을 사용하여 편집기에서 제공하는 언어로 작성한 코드이다.
사용자가 작성한 프로그램들을 컴파일할 경우, 프로그램에 사용된 글로벌 변수와 로컬 변수들은 PLC 메모리 영역으로 할당된다.
도 4는 종래 변수들의 첫 번째 메모리 할당의 예시도이다.
글로벌 변수 및 로컬 변수들에 대한 메모리 할당은 프로그램 순서대로 수행된다. 최초 사용된 PLC 메모리 영역이 없기 때문에 변수들(A, B, C, D, E)은 PLC 메모리의 처음부터 차례대로 할당된다.
이때 A, B는 글로벌 변수이고, D와 E는 제1프로그램(PB1)의 로컬 변수, C는 제2프로그램(PB2)의 로컬 변수인 것으로 한다.
PLC 메모리에는 메모리 할당 순서에 따라 글로벌 변수, 제1프로그램(PB1), 제2프로그램 편집기가 차례로 저장된다.
이와 같은 상태에서 다음 스캔 과정에서 변수들이 삭제 또는 추가되는 경우가 발생하게 되며, 도 5의 두 번째 메모리 할당의 예시도에 도시하였다.
도 5를 참조하면 글로벌 변수 B가 삭제되고, F, I가 추가되었으며, 제1프로그램(PB1)의 로컬 변수 E가 삭제되고 H가 추가되고, 제2프로그램(PB2)의 로컬 변수 G가 추가된 경우의 예시이며, 이때 삭제된 변수 영역에 추가된 변수들이 순서대로 할당된다.
이때, 컴파일 전 동작으로 전체 변수 목록을 가지고 PLC 메모리의 사용한 영역과 사용하지 않은 영역 정보를 구성하며, 컴파일을 수행할 때, 사용 안 된 영역을 기준으로 새로 추가된 변수에 대해서만 메모리 할당을 수행한다.
PLC 메모리에서 변수 B가 삭제된 메모리 영역에 추가된 글로벌 변수 F가 저장되고, 글로벌 변수 I는 변수 E가 삭제된 영역에 저장된다. 이와 같은 영역의 할당은 변수의 크기에 따라 사용 영역 사이에 비사용 영역이 존재하게 된다.
이러한 PLC 메모리의 할당은 전체적인 메모리 사용의 효율성을 저하시키는 원인이 된다.
도 6은 PLC의 중앙처리장치부의 구성도이다.
도 6을 참조하면 각종 연산 기능과 제어 기능을 담당하는 중앙처리장치(CPU, 1)와, 연산 및 제어 기능을 수행하도록 작성된 O/S ROM 영역(2), 사용자 프로그램이 저장되는 프로그램 영역(3), 입출력 데이터 및 각종 연산 결과가 저장되는 데이터 영역(4), 프로그램 목록과 할당된 변수들의 목록을 업로드해서 프로젝트를 재구성하기 위한 업로드 영역(5), 데이터 백업 및 리셋 신호를 공급하는 주변 회로 영역(6)으로 구성된다.
프로그램 목록과 메모리 할당된 글로벌 변수와 로컬 변수들의 변수 목록은 PLC의 업로드 영역(5)에 압축 파일로 저장된다.
프로그램들은 중간 코드로 변환되고, 중간 코드는 할당된 변수 정보를 가지고 PLC 기계어로 변환되며, 변환된 PLC 기계어는 PLC의 프로그램 영역(3)에 다운로드 된다.
이와 같은 과정을 도 7에 도시하였다.
앞서, 도 1을 참조하여 설명한 바와 같이 PLC가 운전 모드로 전환되면 스캔 프로그램이 수행되며, 선택적으로 태스크 프로그램들이 수행된다.
사용자가 PLC 운전 중에 수행되고 있는 프로그램을 수정하기 위해서는, 업로드 영역(5)의 프로그램 목록과 변수 목록을 이용하여 재구성해야 한다.
도 8은 PLC 운전 중 프로그램 수정 방법을 설명하기 위한 다운로드 흐름도이다.
도 8을 참조하면 사용자가 PLC 운전 중에 프로그램을 수정하기 위해서는 업로드 영역(5)에 업로드 되어 있는 압축된 파일들을 다시 다운로드 후, 압축을 해제한 다음 프로그램 목록과 변수 목록들을 재구성한 후 다시 업로드 영역(5)에 업로드 해야 한다.
도 9는 PLC 운전 중 프로그램 수정시 PLC 메모리의 할당의 예시도이다.
도 9에 도시한 바와 같이, 전체 변수 목록을 가지고 사용 영역과 미사용 영역 정보를 재구성하며, 운전 중 수정에서 삭제된 변수에 대해서도 사용 영역으로 처리되고, 이것은 다음 운전 중 수정시 미사용 영역으로 설정된다.
즉, 글로벌 변수 B와 제1프로그램(PB1)의 로컬 변수 E가 삭제되었으나, 운전 중 수정에서는 글로벌 변수 B와 로컬 변수 E가 삭제된 메모리 영역은 사용 영역으로 간주되어 처리된다.
다음 스캔 동작에서 글로벌 변수 B와 로컬 변수 E의 위치는 미사용 영역으로 처리된다.
도 10은 종래 운전 중 프로그램 수정시 업로드 방법을 보인 예시도이다.
도 10을 참조하면, 프로그램 목록과 메모리 할당된 글로벌 변수와 로컬 변수들은 PLC의 업로드 영역(5)에 압축 파일로 업로드 된다.
프로그램들은 중간 코드로 변환되고, 중간 코드는 할당된 변수 정보를 가지고 PLC 기계어로 변환된다. 변경된 프로그램 정보와 수정된 PLC 기계어 정보를 MOVE 테이블로 작성하여 프로그램 영역에 업로드하며, PLC는 변경된 프로그램으로 동작을 수행한다.
이처럼 PLC 기계어로 변환하여 업로드하는 과정을 컴파일이라 하며, 종래에는 사용자가 작성한 프로그램들을 컴파일할 경우, 프로그램에 사용된 글로벌 변수와 로컬 변수들은 PLC 메모리 영역으로 할당된다.
첫 번째 글로벌 변수 및 로컬 변수들에 대한 메모리 할당은 프로그램 순서대로 수행되며, 사용된 PLC 메모리 영역이 없기 때문에 처음부터 차례대로 할당된다.
또한, 두 번째 글로벌 변수 및 로컬 변수들에 대한 메모리 할당도 프로그램 순서대로 수행된다. 이때 컴파일 전 동작으로 전체 변수 목록을 가지고 사용 영역과 미사용 영역 정보를 구성한다.
컴파일을 수행할 때, 미사용 영역을 기준으로 새로 추가된 변수에 대해서만 메모리 할당을 수행한다.
기존에는 하나의 프로그램을 PLC가 운전 중에 수정하려고 하면 글로벌 변수 및 로컬 변수들의 메모리 할당 정보를 수집하여 사용 영역과 미사용 영역을 재구성한다. 이와 같이 재구성 정보를 사용하여 추가된 변수들의 메모리 할당을 수행하면 컴파일에 소요되는 시간이 증가하는 문제점이 있었다.
또한, 글로벌 변수와 로컬 변수들 그리고 모든 프로그램들을 다시 다운로드 하기 때문에 운전 중 수정 시간이 오래 걸리는 문제점이 있었다.
아울러 하나의 블록으로 메모리를 관리하기 때문에 PLC 운전 중에 여러 사용자가 동시에 PLC 프로그램을 수정할 수 없어 유연성이 저하되는 문제점이 있었다.
상기와 같은 문제점을 감안한 본 발명이 해결하고자 하는 과제는, 메모리의 할당 방식을 변경하여 컴파일 시간 및 프로그램 수정 시간을 단축할 수 있는 피엘씨 변수의 메모리 할당 방법을 제공함에 있다.
아울러 본 발명이 해결하고자 하는 다른 과제는, PLC의 운전 중 다수의 사용자가 수정 가능한 각각의 프로그램을 동시에 수정할 수 있는 피엘씨 변수의 메모리 할당 방법을 제공함에 있다.
상기와 같은 기술적 과제를 해결하기 위한 본 발명 피엘씨 변수의 메모리 할당 방법은, 프로그램 편집기 소프트웨어를 구동하는 사용자의 컴퓨터에서 PLC 프로그램을 작성 또는 수정하여 PLC 시스템의 PLC 메모리 업로드 영역에 업로드하는 피엘씨 변수의 메모리 할당 방법에 있어서, a) 변수들 각각의 개별 크기를 설정하여, PLC 메모리를 상기 변수들의 수와 크기에 부합하는 블록으로 할당하는 단계와, b) 컴파일된 변수들을 상기 할당된 블록에 압축 저장하는 단계와, c) 상기 PLC 메모리의 할당 정보인 PLC 메모리 할당 정보 테이블을 상기 PLC 메모리의 업로드 영역에 저장하는 단계를 포함한다.
본 발명의 실시예에서, 상기 a) 단계에서 상기 변수들은, 글로벌 변수와 PLC 프로그램별 로컬 변수이며, 상기 PLC 메모리는, 글로벌 변수를 저장하는 글로벌 변수 저장영역과 각 PLC 프로그램별 로컬 변수를 각각 저장하는 다수의 로컬 변수 저장영역으로 할당할 수 있다.
본 발명의 실시예에서, 상기 글로벌 변수 저장영역은 제1크기로 할당되고, 상기 로컬 변수 저장영역은 제2크기로 할당되며, 상기 제1크기는 제2크기에 비하여 크거나, 작거나, 같은 것일 수 있다.
본 발명의 실시예에서, 상기 로컬 변수 저장영역들 각각은 PLC 프로그램에 따라 크기가 결정되는 것일 수 있다.
본 발명의 실시예에서, 상기 c) 단계는 글로벌 변수 및 로컬 변수들의 주소 옵셋은 블록별 상대 옵셋으로 설정될 수 있다.
본 발명의 실시예에서, d) PLC 메모리의 업로드 영역에 저장된 변수 중 수정이 필요한 프로그램의 변수와 PLC 메모리 할당 정보 테이블을 컴퓨터로 다운로드하여, 변수를 수정하고 수정된 정보를 PLC 메모리 할당 정보 테이블에 기록하여 PLC 메모리의 업로드 영역에 업로드하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 d) 단계에서 상기 수정이 필요한 프로그램은 하나 또는 둘 이상일 수 있다.
본 발명의 실시예에서, 상기 수정이 필요한 프로그램이 둘 이상인 경우, 수정은 하나 또는 둘 이상의 컴퓨터에서 프로그램 편집기를 이용하여 수정하되, 상기 컴퓨터의 수는 프로그램의 수와 같거나 작은 것일 수 있다.
본 발명은 프로그램별로 변수를 저장하는 메모리영역을 구분함으로써, 특정한 프로그램의 변수만을 수정함이 가능하여 컴파일 시간 및 프로그램 수정 시간을 단축할 수 있는 효과가 있다.
또한, 본 발명은 각기 다른 프로그램을 수정하는 다수의 사용자들이 동시에 프로그램을 수정할 수 있어, 유연성을 향상시킬 수 있는 효과가 있다.
도 1은 일반적인 PLC의 동작 흐름도이다.
도 2는 프로그램 편집기의 구성도이다.
도 3은 로컬 변수와 프로그램 편집기의 관계도이다.
도 4는 종래 변수들의 첫 번째 메모리 할당의 예시도이다.
도 5의 두 번째 메모리 할당의 예시도이다.
도 6은 PLC의 중앙처리장치부의 구성도이다.
도 8은 프로그램 수정 과정의 예시도이다.
도 9는 운전중 PLC 프로그램 수정 과정의 흐름도이다.
도 10은 종래 운전 중 프로그램 수정시 업로드 방법을 보인 예시도이다.
도 11은 본 발명의 바람직한 실시예에 따른 피엘씨 변수의 메모리 할당 방법을 보인 예시도이다.
도 12는 본 발명에 따라 변수들의 첫 번째 메모리 할당의 예시도이다.
도 13은 본 발명에 따라 이루어지는 두 번째 메모리 할당의 예시도이다.
도 14에서는 본 발명에 따른 PLC 프로그램의 변환 및 업로드 과정의 예시도이다.
도 15는 운전 중이 아닌 PLC의 프로그램 수정과정 중 다운로드 예시도이다.
도 16은 본 발명에 따라 운전 중이 아닌 PLC 메모리의 프로그램을 수정한 경우의 할당 상태 예시도이다.
도 17은 본 발명에 따라 운전중 PLC 프로그램 수정 과정의 흐름도이다.
도 18은 본 발명의 다른 특징을 설명하기 위한 예시도이다.
본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라, 여러가지 형태로 구현될 수 있고 다양한 변경을 가할 수 있다. 단지, 본 실시예에 대한 설명은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위하여 제공되는 것이다. 첨부된 도면에서 구성요소는 설명의 편의를 위하여 그 크기를 실제보다 확대하여 도시한 것이며, 각 구성요소의 비율은 과장되거나 축소될 수 있다.
'제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 상기 구성요소는 위 용어에 의해 한정되어서는 안 된다. 위 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 수 있다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다. 또한, 단수의 표현은 문맥상 명백하게 다르게 표현하지 않는 한, 복수의 표현을 포함한다. 본 발명의 실시예에서 사용되는 용어는 다르게 정의되지 않는 한, 해당 기술분야에서 통상의 지식을 가진 자에게 통상적으로 알려진 의미로 해석될 수 있다.
본 발명은 '피엘씨 변수의 메모리 할당 방법'에 관한 것으로, 특정한 단계들로 이루어지는 제어방법의 동작주체는 프로그램 편집소프트웨어가 저장되고 실행되는 컴퓨터와 PLC 시스템의 중앙처리장치 및 PLC 시스템을 이루는 구체적인 하드웨어들에서 이루어지는 것으로 한다.
이하에서는, 도면을 참조하여 본 발명의 일실시예에 따른 피엘씨 변수의 메모리 할당 방법에 대하여 상세히 설명한다.
도 11은 본 발명의 바람직한 실시예에 따른 피엘씨 변수의 메모리 할당 방법을 보인 예시도이다.
도 11을 참조하면 본 발명의 바람직한 실시예에 따른 피엘씨 변수의 메모리 할당 방법은, 사용자는 프로그램을 작성할 때 프로그램별 PLC 메모리 설정 정보를 수정한다.
좀 더 구체적으로 사용자는 프로그램 목록(10)에 나열된 프로그램들의 로컬변수 및 글로벌 변수가 PLC 메모리(20)에 저장될 영역을 미리 설정한다.
도 11에서 글로벌 변수는 6kbyte, 제1프로그램의 로컬 변수는 2kbyte, 제2프로그램의 로컬 변수는 4kbyte등으로 설정하여, PLC 메모리(20)에 저장될 변수들의 영역을 미리 할당하여 설정할 수 있다.
이때 PLC 메모리(20)의 할당정보는 프로그램 편집기를 구동하는 컴퓨터의 중앙처리장치와 PLC의 중앙처리장치에서 상호 공유하여, 미리 저장되는 변수의 할당 위치를 알 수 있도록 한다.
즉, 컴파일을 할 때, 프로그램에 사용된 글로벌 변수와 로컬 변수들은 프로그램별 PLC 메모리 설정 정보를 참조하여 메모리 할당이 되고, PLC의 중앙처리장치는 컴파일된 프로그램을 수행할 때 해당 프로그램의 변수를 할당된 메모리 영역을 참조하도록 구성된다.
도 12는 본 발명에 따라 변수들의 첫 번째 메모리 할당의 예시도이다.
도 12를 참조하면, 글로벌 변수와 각 프로그램의 로컬 변수들이 저장되는 PLC 메모리(20)의 영역들을 2kbyte로 균등하게 할당한 경우, PLC 메모리(20)의 영역은 글로벌 변수 저장영역(21), 제1프로그램(PB1)의 로컬 변수 저장영역(22), 제2프로그램(PB2)의 로컬 변수 저장영역(23), 제3프로그램(PB3)의 로컬 변수 저장영역(24)으로 할당된다.
위에서는 글로벌 변수와 각 프로그램의 로컬 변수들이 저장되는 PLC 메모리(20)의 영역들을 균등하게 할당한 것을 예로 들었으나, 글로벌 변수 저장영역(21)을 제1프로그램(PB1)의 로컬 변수 저장영역(22) 및 제2프로그램(PB2)의 로컬 변수 저장영역(23)에 비해 더 크게 할당하거나, 반대로 글로벌 변수 저장영역(21)을 로컬 변수 저장영역(22,23)에 비해 더 작게 할당할 수 있다.
또한 로컬 변수 저장영역(22,23)들의 할당 크기도 서로 다르게 할 수 있으며, 이는 프로그램의 종류에 따라 다르게 PLC 메모리(20)의 영역을 다르게 할당할 수 있음을 나타낸다.
도면에서 글로벌 변수 A, B는 상기 글로벌 변수 저장영역(21)에만 저장되고, 제1프로그램(PB1)의 로컬 변수 D, E는 제1프로그램의 로컬 변수 저장영역(22)에만 저장된다.
또한, 제2프로그램(PB2)의 로컬 변수 C는 제2프로그램의 로컬 변수 저장영역(23)에 컴파일된 상태로 저장된다.
이와 같은 과정은 글로벌 변수 및 로컬 변수들에 대한 메모리 할당은 프로그램별 PLC 메모리 설정의 사이즈를 참조하여 프로그램 순서대로 변수 할당이 수행된다. 이때 글로벌 변수 및 로컬 변수들의 주소 옵셋은 블록(저장영역)별 상대 옵셋으로 설정된다.
도 13은 본 발명에 따라 이루어지는 두 번째 메모리 할당의 예시도이다.
상기 도 12의 상태에서 프로그램이 수정되어 글로벌 변수 F, I가 추가되고, 제1프로그램(PB1)의 로컬 변수 H와 제2프로그램의 로컬 변수 G가 추가된 경우를 가정한다.
이와 같이 변수들이 추가된 경우에도 각 블록에서 미사용 영역과 사용 영역의 정보를 재구성하여 미사용 영역에 추가된 변수들을 저장한다.
만약 PLC가 운전 중이 아닌 경우에는 수정에 의해 PLC 메모리에 할당되었던 변수가 삭제되면, 그 삭제된 영역은 사용 영역에서 미사용 영역으로 처리되고, 미사용 영역에 추가된 변수들을 저장한다.
도 14에서는 본 발명에 따른 PLC 프로그램의 변환 및 업로드 과정의 예시도이다.
도 14를 참조하면, 사용자가 작성 또는 수정한 프로그램들과, 글로벌 변수 및 로컬 변수들은 PLC의 업로드 영역에 항목별 압축 파일로 저장된다.
이때의 저장은 앞서 도 12와 도 13을 참조하여 설명한 바와 같이 각 변수에 따라 할당된 블록에 저장된다. 이때 글로벌 변수와 특정 프로그램의 특정 로컬 변수가 각각 어느 블록의 어느 주소에 저장되었다는 정보인 PLC 메모리 할당 정보도 업로드 영역에 업로드되어, PLC의 중앙처리장치에서 PLC 메모리 할당 정보를 읽어 변수의 위치를 확인하게 된다.
프로그램들은 중간 코드로 변환되고, 중간 코드는 할당된 변수 정보를 가지고 PLC 기계어로 변환된다.
변환된 PLC 기계어는 PLC의 프로그램 영역에 업로드 된다.
도 15는 운전 중이 아닌 PLC의 프로그램 수정과정 중 다운로드 예시도이다.
도 15를 참조하면, 전체 프로그램이 아닌 제1프로그램(PB1)을 수정할 필요가 있을 때에는 제1프로그램(PB1)의 로컬 변수만을 PLC 메모리의 업로드 영역으로부터 압축을 해제하여 프로그램 목록을 재구성한다. 이때 프로그램 목록과 함께 PLC 메모리 할당 정보도 다운로드하여 이를 재구성한다.
도 16은 본 발명에 따라 운전 중이 아닌 PLC 메모리의 프로그램을 수정한 경우의 할당 상태 예시도이다.
도 16을 참조하면 앞서 도 13을 참고하여 설명한 PLC 메모리의 할당 상태에서, 글로벌 변수 B가 삭제되고, 제1프로그램(PB1)의 로컬 변수 E가 삭제된 경우의 예시도이다.
앞서 설명한 바와 같이 도 15의 예시와 같이 수정이 필요한 프로그램의 변수와 PLC 메모리 할당 정보를 다운로드하고, 글로벌 변수 B와 제1프로그램(PB1)의 로컬 변수 E를 삭제하고, 그 삭제 정보에 따라 PLC 메모리 할당 정보를 수정한 후 다시 도 14의 과정을 따라 업로드 영역에 업로드 한다.
위의 예는 PLC가 운전 중이 아닌 경우의 프로그램 수정 과정의 설명이며, PLC가 운전 중인 경우에는 도 17과 같이 가 운전 중인 경우에는 MOVE 테이블을 추가로 이용하여 프로그램 영역에 수정된 프로그램을 업로드한다.
이때 역시 PLC 메모리 할당 정보 테이블도 업로드 영역에 업로드 된다.
PLC가 운전 중인 상태에서 수정된 프로그램들은 중간 코드로 변환되고, 중간 코드는 할당된 변수 정보를 가지고 PLC 기계어로 변환된다. 변경된 프로그램 정보와 수정된 PLC 기계어 정보를 MOVE 테이블로 작성하여 프로그램 영역에 업로드 된다.
이처럼 본 발명은 PLC가 운전 상태이거나 운전 상태가 아닌 경우, 공통으로 프로그램을 수정할 필요가 있을 때, 전체 프로그램들을 업로드 영역에서 읽어 압축을 해제할 필요가 없이, PLC 메모리 할당 정보 테이블을 이용하여 수정이 필요한 프로그램 및 변수만을 압축 해제하기 때문에 시간을 단축할 수 있다.
또한, 전체 프로그램이 아닌 수정된 프로그램만 컴파일하여 업로드 영역에 업로드하기 때문에 컴파일 시간을 단축할 수 있는 효과가 있다.
도 18은 본 발명의 다른 특징을 설명하기 위한 예시도이다.
도 18에 도시한 바와 같이 본 발명은 PLC 메모리(20)의 저장영역(블록)을 분할하여 각 프로그램별로 할당하기 때문에 여러 사용자가 동시에 다른 프로그램을 수정할 수 있다.
예를 들어 A 사용자는 제1프로그램(PB1)을 B 사용자는 제3프로그램(PB3)을 수정하기 위해 다운로드 하거나 수정된 프로그램을 업로드 영역에 업로드 할 수 있다.
따라서, 사용자들이 각자 PLC 프로그램을 담당하여, 담당하는 프로그램들을 PLC의 운전 중 또는 정지상태에서 업데이트할 수 있으며, 이는 시스템의 유연성을 보다 향상시킬 수 있다.
또한, PLC 시스템이 대형화 및 복잡도가 증가하는 경우에도 다수의 사용자들이 각각 담당하는 프로그램을 관리할 수 있어 편의성을 향상시키며, 시스템 안정성도 향상시킬 수 있다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 청구범위에 의해서 정해져야 할 것이다.

Claims (8)

  1. 프로그램 편집기 소프트웨어를 구동하는 사용자의 컴퓨터에서 PLC 프로그램을 작성 또는 수정하여 PLC 시스템의 PLC 메모리 업로드 영역에 업로드하는 피엘씨 변수의 메모리 할당 방법에 있어서,
    a) 변수들 각각의 개별 크기를 설정하여, PLC 메모리를 상기 변수들의 수와 크기에 부합하는 블록으로 할당하는 단계;
    b) 컴파일된 변수들을 상기 할당된 블록에 압축 저장하는 단계; 및
    c) 상기 PLC 메모리의 할당 정보인 PLC 메모리 할당 정보 테이블을 상기 PLC 메모리의 업로드 영역에 저장하는 단계를 포함하되,
    상기 a) 단계에서 상기 변수들은, 글로벌 변수와 PLC 프로그램별 로컬 변수이며, 상기 PLC 메모리는 글로벌 변수를 저장하는 글로벌 변수 저장영역과 각 PLC 프로그램별 로컬 변수를 각각 저장하는 다수의 로컬 변수 저장영역으로 할당하고,
    상기 컴퓨터는 상기 PLC 메모리의 할당 영역 각각에 저장되는 변수들에 대응하여 수정할 수 있도록 다수로 마련되고, PLC 메모리의 업로드 영역에 저장된 변수 중 수정이 필요한 프로그램의 변수와 PLC 메모리 할당 정보 테이블을 각각의 컴퓨터로 다운로드하여, 변수를 수정하고 수정된 정보를 PLC 메모리 할당 정보 테이블에 기록하여 PLC 메모리의 업로드 영역에 업로드하는 하여, 복수의 사용자 컴퓨터에서 서로 다른 프로그램을 수정할 수 있는 것을 특징으로 하는 피엘씨 변수의 메모리 할당 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 글로벌 변수 저장영역은 제1크기로 할당되고, 상기 로컬 변수 저장영역은 제2크기로 할당되며,
    상기 제1크기는 제2크기에 비하여 크거나, 작거나, 같은 것을 특징으로 하는 피엘씨 변수의 메모리 할당 방법.
  4. 제1항 또는 제3항에 있어서,
    상기 로컬 변수 저장영역들 각각은 PLC 프로그램에 따라 크기가 결정되는 것을 특징으로 하는 피엘씨 변수의 메모리 할당 방법.
  5. 제1항에 있어서,
    상기 c) 단계에서,
    글로벌 변수들 및 로컬 변수들의 주소 옵셋은 블록별 상대 옵셋으로 설정되는 피엘씨 변수의 메모리 할당 방법.
  6. 삭제
  7. 삭제
  8. 삭제
KR1020190130376A 2019-10-21 2019-10-21 피엘씨 변수의 메모리 할당 방법 KR102231963B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190130376A KR102231963B1 (ko) 2019-10-21 2019-10-21 피엘씨 변수의 메모리 할당 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190130376A KR102231963B1 (ko) 2019-10-21 2019-10-21 피엘씨 변수의 메모리 할당 방법

Publications (1)

Publication Number Publication Date
KR102231963B1 true KR102231963B1 (ko) 2021-03-24

Family

ID=75256933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190130376A KR102231963B1 (ko) 2019-10-21 2019-10-21 피엘씨 변수의 메모리 할당 방법

Country Status (1)

Country Link
KR (1) KR102231963B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284815A (ja) * 1999-03-30 2000-10-13 Fuji Electric Co Ltd プログラム作成装置
JP2001022413A (ja) * 1999-07-09 2001-01-26 Toshiba Corp プログラマブルコントローラ
KR20150132929A (ko) * 2014-05-19 2015-11-27 엘에스산전 주식회사 Plc 프로그램 관리 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284815A (ja) * 1999-03-30 2000-10-13 Fuji Electric Co Ltd プログラム作成装置
JP2001022413A (ja) * 1999-07-09 2001-01-26 Toshiba Corp プログラマブルコントローラ
KR20150132929A (ko) * 2014-05-19 2015-11-27 엘에스산전 주식회사 Plc 프로그램 관리 장치

Similar Documents

Publication Publication Date Title
US8327316B2 (en) Compilation model
US7110837B2 (en) Control system and method for on-line editing of user program
CN109918081B (zh) 一种编译方法及编译器
CN110663006B (zh) 对可编程逻辑控制器执行故障转移并控制物理系统的方法
CN104898546A (zh) 一种基于soc的plc在线调试系统和方法
CN106737676A (zh) 一种基于脚本可二次开发的工业机器人编程系统
CN106547522B (zh) 一种流应用优化的方法及装置
US10712731B2 (en) Control device, control method, and non-transitory computer-readable recording medium
CN104156221A (zh) 芯片、修改芯片配置的方法及装置
CN111142466B (zh) 工程装置、工程装置的控制方法和存储介质
KR102231963B1 (ko) 피엘씨 변수의 메모리 할당 방법
CN108804228A (zh) 一种dsp程序空间扩展的实现方法
JP6445029B2 (ja) 自動化システムを構成するための処理装置および方法
CN108345264B (zh) 可编程控制器
JP4366575B2 (ja) ツール
CN104423310A (zh) 用于更新可编程逻辑控制器中的操作系统的装置和方法
CN100375029C (zh) 存储器配置系统与方法
CN108829440B (zh) 一种将逻辑组态数组转为逻辑执行命令的方法和系统
CN113632016A (zh) 用于混合使用编程语言和制造商定义的语言的内存映射方法
JP2009176178A (ja) Plcのグローバル変数定義方式
US10768597B2 (en) Method and controller for flexible process control
CN104678875A (zh) 一种变频器配置方法及变频器配置系统
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
Ebenhofer et al. Generic and reconfigurable IEC 61499 function blocks for advanced platform independent engineering
KR100437013B1 (ko) 프로그래머블 제어기의 제어 로직 실행 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant