KR102205150B1 - 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법 - Google Patents

통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법 Download PDF

Info

Publication number
KR102205150B1
KR102205150B1 KR1020170034014A KR20170034014A KR102205150B1 KR 102205150 B1 KR102205150 B1 KR 102205150B1 KR 1020170034014 A KR1020170034014 A KR 1020170034014A KR 20170034014 A KR20170034014 A KR 20170034014A KR 102205150 B1 KR102205150 B1 KR 102205150B1
Authority
KR
South Korea
Prior art keywords
service model
model block
memory map
address
memory
Prior art date
Application number
KR1020170034014A
Other languages
English (en)
Other versions
KR20180106218A (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 KR1020170034014A priority Critical patent/KR102205150B1/ko
Publication of KR20180106218A publication Critical patent/KR20180106218A/ko
Application granted granted Critical
Publication of KR102205150B1 publication Critical patent/KR102205150B1/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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/15064MMU, memory management unit
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25305MMA, memory management, set ram and eprom part for flash memory, store state also
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31406Data management, shop management, memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법에 관한 것이다. 본 발명의 실시예에 따른 메모리 맵의 구성 방법은, 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법에 있어서, 서비스 모델 블록을 메모리 맵의 기본 주소(base address)를 기준으로 메모리 맵에 배치하는 단계 및 기본 주소를 기준으로 서비스 모델 블록의 오프셋(offset) 값을 메모리 주소로 변경하는 단계를 포함한다.

Description

통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법{A METHOD FOR CONFIGURATING MEMORY MAP APPLIED TO COMMUNICATION DATA MODEL DESIGN}
본 발명은 통신 데이터 모델 설계에 적용되는 메모리 맵(memory map)의 구성 방법에 관한 것이다.
Modbus는 프로그래머블 로직 컨트롤러(PLC)를 위해 고안된 시리얼 통신 프로토콜이다. 이러한 Modbus는 산업용으로 디펙토 스탠다드(DE FACTO STANDARD)가 되어 현재 산업용 전자 기기에 접속하기 위한 가장 일반적인 수단이 되었다.
특히, Modbus는 사양이 공개되어 이용료가 무료인 점, 기능을 장착하기 비교적 용이한 점, 데이터를 그대로 전송할 수 있어서 판매자에게 제약이 많지 않은 점 등으로 다른 통신 프로토콜보다 널리 보급이 되었다.
이러한 Modbus가 적용되는 통신 데이터 모델에서는, 메모리 맵 구성시, 기본 주소(base address)를 기준으로 각 통신 데이터 항목의 메모리 주소를 절대 주소로 지정하였다.
이에 따라, 특정 데이터 항목에 읽기(read) 또는 쓰기(write) 엑세스(access)를 하고자 하는 경우, 데이터 항목의 절대 주소값을 입력으로 이용하여 엑세스를 하면 되었다.
여기에서, 도 1을 참조하여, 각 통신 데이터 항목의 메모리 주소가 절대 주소로 지정된 종래의 메모리 맵을 설명하도록 한다.
도 1은 절대 주소 방식을 이용하여 구성된 Modbus용 메모리 맵을 설명하는 도면이다.
도 1을 참조하면, 종래의 절대 주소 방식 메모리 맵(10)에서는, 서비스 모델 블록(15)에 포함된 복수의 데이터 항목이 각각 절대 주소(예를 들어, 3x30070~3x30094)로 지정되어 있음을 알 수 있다.
여기에서, 서비스 모델은 전자 장치가 제공하는 서비스에 대한 통신 데이터 모델을 의미할 수 있고, 도 1에 도시된 메모리 맵(10)은 이러한 통신 데이터 모델 설계에 적용되는 메모리 맵을 의미할 수 있다.
참고로, 서비스 모델 블록(15)은 하나의 서비스 모델의 설계시 이용되는 데이터 집단(메모리 맵(10)에 저장되는 해당 서비스 관련 데이터 집단)을 의미할 수 있다.
또한, 이러한 통신 데이터 모델(즉, 서비스 모델)은 전자 장치가 제공하는 서비스 별로 구성될 수 있다.
구체적으로, 전자 장치는 예를 들어, 인버터(inverter), PLC(Power Line Communication) 장치, HMI(Human Machine Interface) 장치, DCS(Distributed Control System) 등일 수 있다.
또한 서비스는 예를 들어, 전자 장치가 자신과 연동된 외부 장비 또는 사용자에게 제공해야 하는 서비스를 의미할 수 있다.
따라서, 전자 장치가 제공하는 서비스는 전자 장치와 외부 장비(또는 사용자) 간 상호 작용(즉, 통신)을 통해서 가능하다.
또한, 전자 장치는 이러한 서비스를 통해 외부 장비 또는 사용자에게 기능을 제공하는바, 해당 서비스를 실현하기 위해 전자 장치는 다양한 데이터 및 기능을 포함할 수 있다.
도 1의 메모리 맵(10)에서는, 서비스 모델 블록(15)에 포함된 복수의 데이터 항목의 메모리 주소(Address)가 기본 주소(예를 들어, 30001, 30070 등)를 기준으로 절대 주소 방식(예를 들어, 3x30070~3x30094 등)으로 지정되어 있음을 알 수 있다.
이에 따라, 특정 데이터 항목(예를 들어, 데이터 이름(Name)이 'W'인 데이터 항목)에 읽기(read) 엑세스를 하고자 하는 경우에는, 해당 데이터 항목의 절대 주소 값(예를 들어, 3x30084)을 입력으로 엑세스하면 된다.
다만, 이러한 Modbus 통신 프로토콜의 경우, 데이터가 구조화되어 있지 않고, 사용자들이 각자 전용 기능을 정의해서 사용하다보니 데이터 간 호환성이 떨어질 수 있다는 단점이 있다.
또한 이로 인해 메모리가 체계적으로 관리되기 힘들다는 문제도 있다.
본 발명은 통신 데이터 모델 설계시 적용되는 메모리 맵을 상대 주소 방식으로 구성함으로써 데이터 호환성을 개선하고, 메모리를 체계적으로 관리할 수 있는 메모리 맵의 구성 방법을 제공하는 것을 목적으로 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 메모리 맵의 구성 방법은, 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법에 있어서, 서비스 모델 블록을 상기 메모리 맵의 기본 주소(base address)를 기준으로 메모리 맵에 배치하는 단계 및 기본 주소를 기준으로 상기 서비스 모델 블록의 오프셋(offset) 값을 메모리 주소로 변경하는 단계를 포함한다.
상기 서비스 모델 블록은 복수개이고, 서비스 모델 블록을 메모리 맵의 기본 주소(base address)를 기준으로 메모리 맵에 배치하는 단계에서, 복수개의 서비스 모델 블록은 메모리 맵의 낮은 기본 주소에서 높은 기본 주소 순으로 또는 메모리 맵의 높은 기본 주소에서 낮은 기본 주소 순으로 메모리 맵에 누적되도록 배치된다.
상기 서비스 모델 블록은 서비스 모델 블록의 서비스와 관련된 복수개의 데이터를 포함하고, 서비스 모델 블록에는 복수개의 데이터 각각의 오프셋 값, 크기, 읽기 또는 쓰기 가능 여부, 이름, 유형, 및 필수/선택 여부 중 적어도 하나가 저장된다.
상기 서비스 모델 블록은 복수개이고, 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경하는 단계는, 복수개의 서비스 모델 블록 중 읽기 또는 쓰기 대상인 서비스 모델 블록의 ID를 검색하는 단계와, 검색된 ID를 가지는 서비스 모델 블록에 포함된 데이터의 전체 길이를 판단하는 단계와, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경하는 단계를 포함한다.
상기 서비스 모델 블록의 ID는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 이름에서 검색되고, 서비스 모델 블록에 포함된 데이터의 전체 길이는 서비스 모델 블록에 포함된 복수개의 데이터 중 다른 하나의 이름에서 검색된다.
상기 서비스 모델 블록에 포함되는 복수개의 데이터 중 어느 하나의 데이터에 대한 읽기 또는 쓰기 작업시, 메모리 주소가 입력으로 제공된다.
상기 서비스 모델 블록은 복수개이고, 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경하는 단계는, 복수개의 서비스 모델 블록 각각에 포함된 데이터의 전체 길이를 판단하는 단계와, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 서비스 모델 블록 각각의 오프셋 값을 메모리 주소로 변경하는 단계를 포함한다.
상기 서비스 모델 블록에 포함된 데이터의 전체 길이는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 이름에서 검색된다.
전술한 바와 같이 본 발명에 의하면, 상대 주소 방식을 이용하여 메모리 맵을 구성함으로써 데이터 호환성을 개선하고, 메모리를 체계적으로 관리할 수 있다. 또한 이를 통해, 메모리 관리의 효율성도 개선할 수 있다.
도 1은 절대 주소 방식을 이용하여 구성된 Modbus용 메모리 맵을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 맵 구성 시스템을 설명하는 블록도이다.
도 3은 도 2의 메모리 맵 구성 시스템의 메모리 맵의 구성 방법을 설명하는 순서도이다.
도 4는 도 3의 S200의 일 예를 설명하는 순서도이다.
도 5는 도 3의 S200의 다른 예를 설명하는 순서도이다.
도 6은 도 3의 S100에 따라 구성된 메모리 맵을 설명하는 도면이다.
도 7은 도 6의 서비스 모델 블록의 구성을 설명하는 도면이다.
도 8은 도 7의 서비스 모델 블록의 오프셋 값이 메모리 주소로 변경된 모습을 설명하는 도면이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
이하에서는, 도 2를 참조하여 본 발명의 일 실시예에 따른 메모리 맵 구성 시스템(1)을 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 메모리 맵 구성 시스템을 설명하는 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 메모리 맵 구성 시스템(1)은 생성 유닛(100), 배치 유닛(200), 변경 유닛(300), 메모리 맵(400), 입력 유닛(500)을 포함할 수 있다.
생성 유닛(100)은 서비스 모델 블록을 생성할 수 있다.
구체적으로, 생성 유닛(100)은 전자 장치가 제공하는 서비스별로 서비스 모델 블록을 생성할 수 있다.
참고로, 전자 장치는 예를 들어, 인버터(inverter), PLC(Power Line Communication) 장치, HMI(Human Machine Interface) 장치, DCS(Distributed Control System) 등일 수 있다.
또한 전자 장치는 복수개일 수 있고, 생성 유닛(100)은 복수개의 전자 장치 각각이 제공하는 서비스 별로 서비스 모델 블록을 생성할 수 있다.
생성 유닛(100)은 해당 서비스 별로 ID(즉, 서비스 간 분별을 위해 존재하는 식별자)와 길이(즉, 해당 서비스 모델 블록에 포함되는 데이터의 전체 길이)를 부여하고, 각 ID에 대해 관련 서비스 정보(즉, 복수개의 데이터 항목)를 부여함으로써 해당 서비스 별로 서비스 모델 블록을 생성할 수 있다.
여기에서, 서비스 모델 블록에는 오프셋 값, 크기, 읽기/쓰기 가능 여부, 이름, 데이터 유형, 필수/선택 구현 여부 등과 같이 다양한 항목이 포함될 수 있다.
참고로, 오프셋 값에는 기본 주소와의 차이값(예를 들어, 메모리 맵 내에서 데이터(즉, 데이터 항목)의 위치를 규정할 때, 기본 주소를 기준으로 하여 그 차이를 명령어 피연산자 주소 부분으로 나타낸 값), 크기에는 해당 데이터의 크기, 읽기/쓰기 가능 여부에는 해당 데이터의 읽기/쓰기 가능 여부, 데이터 유형에는 해당 데이터의 유형(예를 들어, unit16, int16, uint32, int32, float, double, string 등), 이름에는 해당 데이터의 이름, 필수/선택 구현 여부에는 해당 데이터의 필수/선택 구현 여부가 각각 입력될 수 있다.
생성 유닛(100)은 생성된 서비스 모델 블록을 배치 유닛(200)으로 제공할 수 있다.
배치 유닛(200)은 서비스 모델 블록을 메모리 맵(400)의 기본 주소를 기준으로 메모리 맵(400)에 배치할 수 있다.
구체적으로, 배치 유닛(200)은 생성 유닛(100)으로부터 서비스 모델 블록을 제공받아 메모리 맵(400)에 배치할 수 있다.
서비스 모델 블록이 복수개인 경우, 배치 유닛(200)은 복수개의 서비스 모델 블록이 메모리 맵(400)의 낮은 기본 주소에서 높은 기본 주소 순으로(오름차순) 또는 높은 기본 주소에서 낮은 기본 주소 순으로(내림차순) 메모리 맵(400)에 누적되도록 배치할 수 있다.
변경 유닛(300)은 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경할 수 있다.
구체적으로, 변경 유닛(300)은 서비스 모델 블록에 포함된 데이터의 전체 길이를 판단하고, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경할 수 있다.
물론, 서비스 모델 블록이 복수개인 경우, 변경 유닛(300)은 복수개의 서비스 모델 블록 각각에 대해서 전술한 변경 작업을 진행할 수 있다.
여기에서, 서비스 모델 블록에 포함된 데이터의 전체 길이 정보는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 '이름' 항목에서 검색될 수 있다.
또한 오프셋 값은 상대 주소이고, 메모리 주소는 절대 주소일 수 있다.
구체적으로 예를 들어, 오프셋 값이 1이고, 기본 주소가 30070인 경우, 메모리 주소는 3x30070일 수 있고, 오프셋 값이 2이고, 기본 주소가 30070인 경우, 메모리 주소는 3x30071일 수 있다.
참고로, 변경 유닛(300)은 읽기 또는 쓰기 대상인 서비스 모델 블록에 대해서만 오프셋 값을 메모리 주소로 변경할 수도 있다.
이 경우, 변경 유닛(300)은 복수개의 서비스 모델 블록 중 읽기 또는 쓰기 대상인 서비스 모델 블록의 ID를 검색하고, 검색된 ID를 가지는 서비스 모델 블록에 포함된 데이터의 전체 길이를 판단하고, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 해당 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경할 수 있다.
여기에서, 서비스 모델 블록의 ID 정보는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 '이름' 항목에서 검색될 수 있고, 데이터의 전체 길이 정보는 서비스 모델 블록에 포함된 복수개의 데이터 중 다른 하나의 '이름' 항목에서 검색될 수 있다.
참고로, 변경 유닛(300)은 읽기 또는 쓰기 대상인 서비스 모델 블록의 ID 정보를 입력 유닛(500)으로부터 제공받을 수 있다.
입력 유닛(500)은 사용자 또는 외부 장치로부터 입력을 제공받아 생성 유닛(100), 배치 유닛(200), 변경 유닛(300)에 제공할 수 있다.
구체적으로, 예를 들어, 입력 유닛(500)은 외부 장치로부터 전자 장치가 제공하는 서비스에 대한 정보를 입력으로 제공받아 생성 유닛(100)에 제공할 수 있다.
또한 입력 유닛(500)은 외부 장치로부터 복수개의 서비스 모델 블록을 어떤 방법으로 누적 배치할지(예를 들어, 오름차순 또는 내림차순)에 대한 입력을 제공받아 배치 유닛(200)에 제공할 수 있다.
또한 입력 유닛(500)은 외부 장치로부터 메모리 맵(400)에 배치된 전체 서비스 모델 블록의 오프셋 값을 변경할지 또는 읽기 또는 쓰기 대상인 서비스 모델 블록에 대해서만 오프셋 값을 변경할지에 대한 입력을 제공받아 변경 유닛(300)에 제공할 수도 있다.
또한 입력 유닛(500)은 외부 장치로부터 특정 데이터에 대한 읽기 또는 쓰기 엑세스를 위해 해당 데이터의 메모리 주소 정보를 제공받는 경우, 도면에 도시되어 있지 않지만, 프로세서(미도시)에 해당 데이터의 메모리 주소 정보를 제공함으로써, 해당 데이터에 대한 읽기 또는 쓰기 작업이 이루어질 수 있도록 할 수 있다.
전술한 예시 외에도, 입력 유닛(500)은 메모리 맵 구성 시스템(1)에 필요한 다양한 입력을 사용자 또는 외부 장치로부터 제공받아 생성 유닛(100), 배치 유닛(200), 변경 유닛(300) 등에 제공할 수 있다.
이하에서는, 도 2 내지 4 및 6 내지 8을 참조하여, 도 3의 메모리 맵의 구성 방법의 일 예에 대해 설명하도록 한다.
도 3은 도 2의 메모리 맵 구성 시스템의 메모리 맵의 구성 방법을 설명하는 순서도이다. 도 4는 도 3의 S200의 일 예를 설명하는 순서도이다. 도 6은 도 3의 S100에 따라 구성된 메모리 맵을 설명하는 도면이다. 도 7은 도 6의 서비스 모델 블록의 구성을 설명하는 도면이다. 도 8은 도 7의 서비스 모델 블록의 오프셋 값이 메모리 주소로 변경된 모습을 설명하는 도면이다.
도 2 내지 4 및 6 내지 8을 참조하면, 먼저, 서비스 모델 블록을 메모리 맵(400)의 기본 주소를 기준으로 메모리 맵(400)에 배치한다(S100). 참고로, S100 단계는 배치 유닛(200)에 의해 수행될 수 있다.
참고로, 도 3의 메모리 맵의 구성 방법에는 S100 단계 이전에 생성 유닛(100)이 서비스 모델 블록을 생성하는 단계(미도시)가 더 포함될 수 있지만, 설명의 편의를 위해 본 발명에서는 구체적인 설명을 생략하도록 한다.
구체적으로, 메모리 맵(400)의 기본 주소를 기준으로 서비스 모델 블록을 메모리 맵(400)에 배치하는 단계(S100)에서, 서비스 모델 블록이 복수개인 경우, 복수개의 서비스 모델 블록(예를 들어, 공통 모델 블록(Common), PV 인버터 감시 서비스 모델 블록(PV Inverter Monitoring Service), PV 인버터 이벤트 서비스 모델 블록(PV Inverter Event Service), PV 인버터 가격 가치 서비스 모델 블록(PV Inverter Pricing Value Service) 등)은 오름차순 또는 내림차순으로 메모리 맵(400)에 누적되도록 배치될 수 있다.
도 6에는 복수개의 서비스 모델 블록이 기본 주소(예를 들어, 30001, 30070, 30120, 30220)를 기준으로 오름차순으로 누적되도록 배치된 모습을 확인할 수 있다.
구체적으로, 공통 서비스 모델 블록(Common)이 기본 주소 30001에 배치된 경우, 전체 데이터 길이가 66인바, 다음 서비스 모델 블록인 PV 인버터 감시 서비스 모델 블록(PV Inverter Monitoring Service)은 기본 주소 30070에 누적 배치될 수 있다.
또한 PV 인버터 감시 서비스 모델 블록(PV Inverter Monitoring Service)의 전체 데이터 길이가 50인바, 그 다음 서비스 모델 블록인 PV 인버터 이벤트 서비스 모델 블록(PV Inverter Event Service)은 기본 주소 30120에 누적 배치될 수 있다.
또한 PV 인버터 이벤트 서비스 모델 블록(PV Inverter Event Service)의 전체 데이터 길이가 100인바, 그 다음 서비스 모델 블록인 PV 인버터 가격 가치 서비스 모델 블록(PV Inverter Pricing Value Service)은 기본 주소 30220에 누적 배치될 수 있다.
또한 도 7에는 도 6의 메모리 맵(400)에 배치된 서비스 모델 블록의 일 예(25; 예를 들어, PV 인버터 감시 서비스(PV Inverter Monitoring Service)와 관련된 서비스 모델 블록)의 구성이 도시되어 있다.
다만, 설명의 편의를 위해 해당 서비스 모델 블록(25)의 일부 데이터 항목(오프셋 값(Offset) 기준 1~25까지의 데이터 항목)만 도시하여 설명하기로 한다.
해당 서비스 모델 블록(25)에는 오프셋 값(Offset), 크기(Size), 읽기/쓰기 가능 여부(R/W), 이름(Name), 데이터 유형(Type), 필수/선택 구현 여부(M/O) 항목이 포함되어 있다.
이 중 오프셋 값(Offset)이 1인 데이터 항목의 '이름(Name)'에는 ID 정보가 저장되어 있고, 오프셋 값(Offset)이 2인 데이터 항목의 '이름(Name)'에는 데이터의 전체 길이(L) 정보가 저장되어 있을 수 있다.
서비스 모델 블록의 배치가 완료되면(S100), 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경한다(S200).
참고로, S200 단계는 변경 유닛(300)에 의해 수행될 수 있다.
구체적으로, 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경하는 단계(S200)는, 복수개의 서비스 모델 블록 중 읽기 또는 쓰기 대상인 서비스 모델 블록의 ID를 검색하는 단계(S220)와, 검색된 ID를 가지는 서비스 모델 블록에 포함된 데이터의 전체 길이를 판단하는 단계(S240)와, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경하는 단계(S260)를 포함할 수 있다
여기에서, 서비스 모델 블록의 ID는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나(예를 들어, 도 7의 오프셋 값(Offset) 1에 해당하는 데이터 항목)의 이름(Name; 예를 들어, ID=('1001'))에서 검색될 수 있다.
또한 서비스 모델 블록에 포함된 데이터의 전체 길이는 서비스 모델 블록에 포함된 복수개의 데이터 중 다른 하나(예를 들어, 도 7의 오프셋 값(Offset) 2에 해당하는 데이터 항목)의 이름(Name; 예를 들어, L=('50'))에서 검색될 수 있다.
도 8에는 도 7에 도시된 서비스 모델 블록(25)의 오프셋 값(Offset)이 기본 주소를 토대로 메모리 주소(Address)로 변경된 모습이 도시되어 있다.
구체적으로 예를 들어, 오프셋 값(Offset)이 1인 데이터 항목은 기본 주소가 30070인 경우, 메모리 주소(Address)가 3x30070으로 변경되고, 오프셋 값(Offset)이 2인 데이터 항목은 기본 주소가 30070인 경우, 메모리 주소(Address)가 3x30071로 변경될 수 있다.
이에 따라, 특정 데이터 항목(예를 들어, 데이터 이름(Name)이 'W'인 데이터 항목)에 읽기(read) 엑세스를 하고자 하는 경우에는, 해당 데이터 항목의 메모리 주소 값(예를 들어, 3x30084), 즉, 절대 주소 값을 입력으로 엑세스하면 된다.
이하에서는, 도 2, 3 및 5 내지 8을 참조하여, 도 3의 메모리 맵의 구성 방법의 다른 예에 대해 설명하도록 한다.
도 3은 도 2의 메모리 맵 구성 시스템의 메모리 맵의 구성 방법을 설명하는 순서도이다. 도 5는 도 3의 S200의 다른 예를 설명하는 순서도이다. 도 6은 도 3의 S100에 따라 구성된 메모리 맵을 설명하는 도면이다. 도 7은 도 6의 서비스 모델 블록의 구성을 설명하는 도면이다. 도 8은 도 3의 S200에 따라 변경된 메모리 맵을 설명하는 도면이다.
다만, 메모리 맵의 구성 방법의 다른 예는 전술한 메모리 맵의 구성 방법의 일 예와 S200을 제외하고는 동일한바, 차이점을 중심으로 설명하도록 한다.
도 2, 3 및 5 내지 8을 참조하면, 먼저, 서비스 모델 블록을 메모리 맵(400)의 기본 주소를 기준으로 메모리 맵(400)에 배치한다(S100). 참고로, S100 단계는 배치 유닛(200)에 의해 수행될 수 있다.
서비스 모델 블록의 배치가 완료되면(S100), 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경한다(S200).
참고로, S200 단계는 변경 유닛(300)에 의해 수행될 수 있다.
구체적으로, 기본 주소를 기준으로 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경하는 단계(S200)는, 복수개의 서비스 모델 블록 각각에 포함된 데이터의 전체 길이를 판단하는 단계(S230)와, 판단된 데이터의 전체 길이 및 기본 주소를 토대로 서비스 모델 블록 각각의 오프셋 값(Offset)을 메모리 주소(Address)로 변경하는 단계(S250)를 포함할 수 있다.
여기에서, 서비스 모델 블록에 포함된 데이터의 전체 길이는 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나(예를 들어, 도 7의 오프셋 값(Offset) 2에 해당하는 데이터 항목)의 이름(Name; 예를 들어, L=('50'))에서 검색될 수 있다.
즉, 도 5에서는, 도 4와 달리, 메모리 맵(20)에 배치된 전체 서비스 모델 블록의 오프셋 값(Offset)을 메모리 주소(Address)로 변경한다는 점에서 차이가 있다.
참고로, 전술한 본 발명의 메모리 맵의 구성 방법은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 메모리 맵의 구성 방법은 하드웨어, 펌웨어(Firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 메모리 맵의 구성 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러 및 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 메모리 맵의 구성 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
전술한 바와 같이 본 발명에 의하면, 상대 주소 방식을 이용하여 메모리 맵(400)을 구성함으로써 데이터 호환성을 개선하고, 메모리를 체계적으로 관리할 수 있다. 또한 이를 통해, 메모리 관리의 효율성도 개선할 수 있다.
전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100: 생성 유닛 200: 배치 유닛
300: 변경 유닛 400: 메모리 맵
500: 입력 유닛

Claims (8)

  1. 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법에 있어서,
    서비스 모델 블록을 상기 메모리 맵의 기본 주소(base address)를 기준으로 상기 메모리 맵에 배치하는 단계; 및
    상기 기본 주소를 기준으로 상기 서비스 모델 블록의 오프셋(offset) 값을 메모리 주소로 변경하는 단계를 포함하고,
    상기 서비스 모델 블록은 복수개이고,
    상기 기본 주소를 기준으로 상기 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경하는 단계는,
    상기 복수개의 서비스 모델 블록 중 읽기 또는 쓰기 대상인 서비스 모델 블록의 ID를 검색하는 단계와,
    상기 검색된 ID를 가지는 서비스 모델 블록에 포함된 데이터의 전체 길이를 판단하는 단계와,
    상기 판단된 데이터의 전체 길이 및 상기 기본 주소를 토대로 상기 서비스 모델 블록의 오프셋 값을 상기 메모리 주소로 변경하는 단계를 포함하는
    메모리 맵의 구성 방법.

  2. 제1항에 있어서,
    상기 서비스 모델 블록은 복수개이고,
    상기 서비스 모델 블록을 상기 메모리 맵의 기본 주소(base address)를 기준으로 상기 메모리 맵에 배치하는 단계에서,
    상기 복수개의 서비스 모델 블록은 상기 메모리 맵의 낮은 기본 주소에서 높은 기본 주소 순으로 또는 상기 메모리 맵의 높은 기본 주소에서 낮은 기본 주소 순으로 상기 메모리 맵에 누적되도록 배치되는
    메모리 맵의 구성 방법.
  3. 제1항에 있어서,
    상기 서비스 모델 블록은 상기 서비스 모델 블록의 서비스와 관련된 복수개의 데이터를 포함하고,
    상기 서비스 모델 블록에는 상기 복수개의 데이터 각각의 오프셋 값, 크기, 읽기 또는 쓰기 가능 여부, 이름, 유형, 및 필수/선택 여부 중 적어도 하나가 저장되는
    메모리 맵의 구성 방법.
  4. 삭제
  5. 제4항에 있어서,
    상기 서비스 모델 블록의 ID는 상기 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 이름에서 검색되고,
    상기 서비스 모델 블록에 포함된 데이터의 전체 길이는 상기 서비스 모델 블록에 포함된 복수개의 데이터 중 다른 하나의 이름에서 검색되는
    메모리 맵의 구성 방법.
  6. 제4항에 있어서,
    상기 서비스 모델 블록에 포함되는 복수개의 데이터 중 어느 하나의 데이터에 대한 읽기 또는 쓰기 작업시, 상기 메모리 주소가 입력으로 제공되는
    메모리 맵의 구성 방법.
  7. 제3항에 있어서,
    상기 서비스 모델 블록은 복수개이고,
    상기 기본 주소를 기준으로 상기 서비스 모델 블록의 오프셋 값을 메모리 주소로 변경하는 단계는,
    상기 복수개의 서비스 모델 블록 각각에 포함된 데이터의 전체 길이를 판단하는 단계와,
    상기 판단된 데이터의 전체 길이 및 상기 기본 주소를 토대로 상기 서비스 모델 블록 각각의 오프셋 값을 상기 메모리 주소로 변경하는 단계를 포함하는
    메모리 맵의 구성 방법.
  8. 제7항에 있어서,
    상기 서비스 모델 블록에 포함된 데이터의 전체 길이는 상기 서비스 모델 블록에 포함된 복수개의 데이터 중 어느 하나의 이름에서 검색되는
    메모리 맵의 구성 방법.


KR1020170034014A 2017-03-17 2017-03-17 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법 KR102205150B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170034014A KR102205150B1 (ko) 2017-03-17 2017-03-17 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170034014A KR102205150B1 (ko) 2017-03-17 2017-03-17 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법

Publications (2)

Publication Number Publication Date
KR20180106218A KR20180106218A (ko) 2018-10-01
KR102205150B1 true KR102205150B1 (ko) 2021-01-19

Family

ID=63877400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170034014A KR102205150B1 (ko) 2017-03-17 2017-03-17 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법

Country Status (1)

Country Link
KR (1) KR102205150B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115344A (ja) * 2014-12-10 2016-06-23 ゼネラル・エレクトリック・カンパニイ メモリマップを利用するためのシステムおよび方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115344A (ja) * 2014-12-10 2016-06-23 ゼネラル・エレクトリック・カンパニイ メモリマップを利用するためのシステムおよび方法

Also Published As

Publication number Publication date
KR20180106218A (ko) 2018-10-01

Similar Documents

Publication Publication Date Title
CN105353989B (zh) 存储数据访问方法及相关的控制器、设备、主机和系统
CN101980490B (zh) 虚拟交换机和物理交换机的链路建立方法及其装置
CN104169897B (zh) Pci高速地址解码的方法
CN103631596A (zh) 业务对象数据录入及更新规则的配置装置和配置方法
CN1323362C (zh) 网络设备及其外围器件互连资源的分配方法
CN101276389B (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
CN110096528A (zh) 一种分布式系统中生成序列的方法、装置及系统
CN102119508B (zh) 将交换机层级结构后面的多功能设备呈现为单功能设备
CN104462225A (zh) 一种数据读取的方法、装置及系统
CN104050248A (zh) 一种文件存储系统及存储方法
CN103559032A (zh) 嵌入式系统对象管理的装置及方法
CN101788906A (zh) 资源管理方法和系统
CN106200561B (zh) 编码器控制器及配置方法
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
US11997438B2 (en) Declarative IoT data control
CN103309833A (zh) 设备整合方法、终端装置和分布式多终端装置系统
CN111666100B (zh) 软件框架生成方法、装置、电子设备及存储介质
CN109815712A (zh) 用户权限管控方法、装置、计算机装置及可读存储介质
KR102153968B1 (ko) 전자 장치가 제공하는 서비스와 관련된 서비스 모델 블록을 포함하는 메모리 맵의 구성 방법
CN103222286B (zh) 路由交换装置、网络交换系统和路由交换方法
CN104091187A (zh) 一种基于rfid中间件的嵌入式数据集中器
CN101702119B (zh) 面向设备的编程技术与方法
CN101751277B (zh) 用于电子装置的数据处理与寻址方法及其电子装置
CN100437484C (zh) 多端口装置、配置该装置的方法及含该装置的计算机系统
KR102205150B1 (ko) 통신 데이터 모델 설계에 적용되는 메모리 맵의 구성 방법

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