Presentation is loading. Please wait.

Presentation is loading. Please wait.

MDA 기반 태양광 에너지 모니터링 시스템의 유지보수를 위한 비용 감소 방안 사례

Similar presentations


Presentation on theme: "MDA 기반 태양광 에너지 모니터링 시스템의 유지보수를 위한 비용 감소 방안 사례"— Presentation transcript:

1 MDA 기반 태양광 에너지 모니터링 시스템의 유지보수를 위한 비용 감소 방안 사례
홍익대학교 소프트웨어공학 연구실 장우성

2 Contents 1 개요 2 관련 연구 3 M-PVMS의 개선 4 결론 및 향후 연구

3 개요 기존 태양광 모니터링 시스템의 문제 인버터 업체 별로 서로 다른 이종의 프로토콜을 사용
다양한 인버터를 사용하는 시공업체는 힘든 통합 모니터링 관리를 수행 일반적으로 인버터 회사에서 모니터링 시스템을 제작 인버터 회사가 도산 또는 바뀐다면, 시스템 유지보수가 필요

4 M-PVMS Metamodel-based Photovoltaic Monitoring System
메타모델을 이용하여 서로 다른 이종의 인버터 데이터를 효율적으로 관리 Photo Voltaic Cell Inverter A Inverter n Local Monitoring (M-PVMS Client) Server Monitoring (M-PVMS Server) DB MySQL Data Analysis (Hadoop) PHP Server (M-PVMS Monitoring) Power Plant 1 Integrated Monitoring Server TCP/IP Power Plant n

5 M-PVMS Metamodel-based Photovoltaic Monitoring System
메타모델을 이용하여 서로 다른 이종의 인버터 데이터를 효율적으로 관리 Photo Voltaic Cell Inverter A Inverter n Local Monitoring (M-PVMS Client) Server Monitoring (M-PVMS Server) DB MySQL Data Analysis (Hadoop) PHP Server (M-PVMS Monitoring) Power Plant 1 Integrated Monitoring Server TCP/IP Power Plant n A사 인버터 패킷 S 1 2 3 B사 인버터 패킷 A B 1 2 3

6 M-PVMS Metamodel-based Photovoltaic Monitoring System
메타모델을 이용하여 서로 다른 이종의 인버터 데이터를 효율적으로 관리 Photo Voltaic Cell Inverter A Inverter n Local Monitoring (M-PVMS Client) Server Monitoring (PVMS Server) DB MySQL Data Analysis (Hadoop) PHP Server (M-PVMS Monitoring) Power Plant 1 Integrated Monitoring Server TCP/IP Power Plant n

7 M-PVMS Metamodel-based Photovoltaic Monitoring System
메타모델을 이용하여 서로 다른 이종의 인버터 데이터를 효율적으로 관리 Photo Voltaic Cell Inverter A Inverter n Local Monitoring (M-PVMS Client) Server Monitoring (M-PVMS Server) DB MySQL Data Analysis (Hadoop) PHP Server (M-PVMS Monitoring) Power Plant 1 Integrated Monitoring Server TCP/IP Power Plant n

8 Model to Model 변환 하나의 모델을 새로운 모델로 변환하는 방법 구성요소
소스 모델 : 변환 전의 모델 소스 메타모델 : 소스 모델의 스키마 타깃 모델 : 변환 후의 모델 타깃 메타모델 : 타깃 모델의 스키마 변환 규칙 : 메타모델을 참조하여 소스 모델을 타깃 모델로 변환 변환 엔진 : 변환 규칙을 실행 이클립스에서는 EMF(Eclipse Modeling Framework)의 Ecore 모델을 이용하여 메타모델을 표현할 수 있는 환경을 제공 Source Metamodel Refers to Transformation Language Refers to Target Metamodel Conforms to Executes Conforms to Source Model Transformation Engine Target Model Reads Writes

9 M-PVMS Metamodel-based Photovoltaic Monitoring System
변환 엔진이 인버터 메타모델을 준수하여 작성된 인버터 모델의 파일을 읽는다. 변환 엔진이 모델 변환 언어(Java)를 실행한다. 모델 변환 언어는 인버터 메타모델과 통합 태양광 메타모델을 참조하여, 인버터 모델을 통합 태양광 모델로 변환한다. 변환 엔진은 변환된 통합 태양광 모델을 파일 형태로 작성한다. Inverter Packet Model WILLINGS Packet DASS Packet HS Packet Integrated Packet Model Inverter Metamodel Refers to Java Language Refers to Integrated SolarEnergy Metamodel DASS Inverter Packet Conforms to Executes Conforms to S 1 2 3 Inverter Model Transformation Engine Integrated SolarEnergy Model Reads Writes HS Inverter Packet A B 1 2 3

10 M-PVMS Metamodel-based Photovoltaic Monitoring System
변환 엔진이 인버터 메타모델을 준수하여 작성된 인버터 모델의 파일을 읽는다. 변환 엔진이 모델 변환 언어(Java)를 실행한다. 모델 변환 언어는 인버터 메타모델과 통합 태양광 메타모델을 참조하여, 인버터 모델을 통합 태양광 모델로 변환한다. 변환 엔진은 변환된 통합 태양광 모델을 파일 형태로 작성한다. Inverter Packet Model WILLINGS Packet DASS Packet HS Packet Integrated Packet Model Inverter Metamodel Refers to Java Language Refers to Integrated SolarEnergy Metamodel DASS Inverter Packet Conforms to Executes Conforms to S 1 2 3 Inverter Model Transformation Engine Integrated SolarEnergy Model Reads Writes HS Inverter Packet A B 1 2 3

11 M-PVMS Metamodel-based Photovoltaic Monitoring System
변환 엔진이 인버터 메타모델을 준수하여 작성된 인버터 모델의 파일을 읽는다. 변환 엔진이 모델 변환 언어(Java)를 실행한다. 모델 변환 언어는 인버터 메타모델과 통합 태양광 메타모델을 참조하여, 인버터 모델을 통합 태양광 모델로 변환한다. 변환 엔진은 변환된 통합 태양광 모델을 파일 형태로 작성한다. Inverter Packet Model WILLINGS Packet DASS Packet HS Packet Integrated Packet Model Inverter Metamodel Refers to Java Language Refers to Integrated SolarEnergy Metamodel DASS Inverter Packet Conforms to Executes Conforms to S 1 2 3 Inverter Model Transformation Engine Integrated SolarEnergy Model Reads Writes HS Inverter Packet A B 1 2 3

12 M-PVMS Metamodel-based Photovoltaic Monitoring System
변환 엔진이 인버터 메타모델을 준수하여 작성된 인버터 모델의 파일을 읽는다. 변환 엔진이 모델 변환 언어(Java)를 실행한다. 모델 변환 언어는 인버터 메타모델과 통합 태양광 메타모델을 참조하여, 인버터 모델을 통합 태양광 모델로 변환한다. 변환 엔진은 변환된 통합 태양광 모델을 파일 형태로 작성한다. Inverter Packet Model WILLINGS Packet DASS Packet HS Packet Integrated Packet Model Inverter Metamodel Refers to Java Language Refers to Integrated SolarEnergy Metamodel DASS Inverter Packet Conforms to Executes Conforms to S 1 2 3 Inverter Model Transformation Engine Integrated SolarEnergy Model Reads Writes HS Inverter Packet A B 1 2 3

13 M-PVMS Metamodel-based Photovoltaic Monitoring System
변환 엔진이 인버터 메타모델을 준수하여 작성된 인버터 모델의 파일을 읽는다. 변환 엔진이 모델 변환 언어(Java)를 실행한다. 모델 변환 언어는 인버터 메타모델과 통합 태양광 메타모델을 참조하여, 인버터 모델을 통합 태양광 모델로 변환한다. 변환 엔진은 변환된 통합 태양광 모델을 파일 형태로 작성한다. Inverter Packet Model WILLINGS Packet DASS Packet HS Packet Integrated Packet Model Inverter Metamodel Refers to Java Language Refers to Integrated SolarEnergy Metamodel DASS Inverter Packet Conforms to Executes Conforms to S 1 2 3 Inverter Model Transformation Engine Integrated SolarEnergy Model Reads Writes HS Inverter Packet A B 1 2 3

14 M-PVMS Metamodel-based Photovoltaic Monitoring System
2019 현재, 총 127개의 사이트 관리 중

15 4년 간, 실무에 M-PVMS를 적용해 본 결과는…

16 4년 간, 실무에 M-PVMS를 적용해 본 결과는… 통신 방법이 추가됨(기존:Wi-Fi, 추가:LoRa)
계속해서 새로운 종류의 인버터 패킷 적용이 필요함 기존 석/박사들의 졸업 본인 업무 환경 내에 개발환경 다시 구축 필요 가상 OS 이미지 내에 개발환경을 구축하면 UART 통신 속도가 느림 기존 소스코드 해석을 위해 프로젝트의 전체 구조 이해가 필요

17 개선 방안 기존 Java에 종속적인 모델, 모델 변환 룰을 외부 파일로 변경 XMI, ATL, ECore 적용
M-PVMS 구조 개선 인버터 모델 재설계 모델 변환 엔진 재설계

18 XMI, ATL, and ECore XMI(XML Metadata Interchange)
메타 모델 정의 언어(MOF)를 XML 기반으로 데이터 관리를 위해 확장한 OMG 표준. 문서형 정의(DTD)와 스키마를 통해 XML로 메타 모델과 모델의 표현(representation)을 표준화 XMI DTD와 스키마는 모델들에 대한 메타데이터가 됨 MDA의 모델은 XMI로 표현될 수 있음 객체 간의 관계를 나타내기 위해 태그 기반의 언어를 사용 ATL(Atlas Transformation Language) 메타 모델 및 텍스트의 구체적인 구문으로 지정된 모델 변환 언어 구문 또는 의미 변환을 수행하는 데 사용 원본 모델 요소가 대상 모델의 요소를 만들고 초기화하는 방법을 정의하는 규칙 ECore EMF(Eclipse Modeling Framework)에서 정의된 메타모델 Ecore 모델은 다음 요소들로 구성됨 EClass : 0 개 이상의 속성과 0 개 이상의 참조가 있는 클래스 EAttribute : 이름과 유형 등의 클래스 속성 EReference : 두 클래스 사이의 연관성 EDataType : 속성의 유형 (예 : int , float 또는 java.util.Date)

19 M-PVMS의 개선 DBMS 기존 M-PVMS 개선된 M-PVMS Inverter Inverter M-PVMS Client
Data Packet Data Packet M-PVMS Client M-PVMS Client Transfer Packet Data Transfer Packet Data InverterA Metamodel.class InverterB Metamodel.class IntegratedSolarEnergy Metamodel.class DataCollect Rule.xmi Inverter Metamodel.ecore TranslateRule.atl IntegratedSolarEnergy Metamodel.ecore included input input Data Collector Transformation Engine based on Java Data Collector Transformation Engine based on ATL input output IntegratedSolar EnergyModel.xmi create Inverter Model.xmi input output IntegratedSolar EnergyModel.xmi Transfer File Transfer File M-PVMS Server M-PVMS Server DBMS input IntegratedSolar EnergyModel.xmi DBMS input IntegratedSolar EnergyModel.xmi 기존 M-PVMS 개선된 M-PVMS

20 인버터 메타모델의 재설계 A사의 인버터 패킷 구조 재설계 된 인버터 메타모델 B사의 인버터 패킷 구조
HEADER Data CHECK SUM SOP CODE Address Length ID 1byte 2bytes 3bytes 0~20bytes B사의 인버터 패킷 구조 Header Data Tail CHECK SUM ACK Type Command CMD Type Bock Count Data Count ETC 3bytes 5bytes 0~25 bytes 인버터 메타모델을 이용해 생성된 코드 Data 영역에 저장되는 정보의 종류 인버터 기본 정보(ID등) PV 정보 계통(grid) 전압 정보 계통(grid) 전류 정보 인버터 발전량 인버터 상태

21 변환 엔진의 재설계 Inverter Metamodel (ECore) Integrated SolarEnergy Inverter
Refers to ATLAS Transformation Language Refers to Conforms to Executes Conforms to Inverter Model (XMI) Transformation Engine Integrated SolarEnergy Model (XMI) Reads Writes

22 M-PVMS의 개선 A사 인버터 패킷의 메타모델 변환 과정 ATL로 작성된 변환룰 rule ControlRule { from
i : IAM using { check : Boolean = false; current : Float = 0; total : Float = 0; warningId : String = ''; warningName : String = ''; } do { for(p in i.H_item.asOrderedSet() ) { if(p.name = 'CODE' and p.value='D') {check1 <- true;} if(check1 = true and p.name='Address' and p.value='4') { current <- thisModule.getCurrentPower(i.Data.value); total <- thisModule.getTotalPower(i.Data.value); thisModule.getIMMInverters().element <- thisModule.createInverter(current, total); check <- false; else if(check1 = true and p.name='Address' and p.value='6') warningId <- thisModule.getWarningId(i.Data.value); warningName <- thisModule.getWarningName(i.Data.value); thisModule.getIMMLastInverterWarningRoot().element <- thisModule.createWarning(warningId, warningName); [중간 생략]

23 M-PVMS의 개선 A 인버터의 xmi 데이터가 포함된 통합 모델의 xmi 데이터 A 인버터 모델의 xmi 데이터

24 결론 및 향후 연구 M-PVMS의 유지보수성을 향상시키기 위한 개선 방안을 제안
기존 시스템의 재컴파일 없이 새로운 메타모델이 추가될 수 있도록 개선 개선 방안 자바 언어로 구현된 변환 엔진을 ECore, XMI, ATL로 재구성 인버터의 메타모델을 개선된 구조에 맞게 재설계 모델 변환룰과 메타모델을 외부파일로 저장하도록 구성 개선 결과 새로운 이종 인버터가 추가된다면, 데이터 요청/응답 패킷의 스키마를 XMI 파일 내에 추가하고, ATL 변환룰이 저장된 ATL 파일을 수정하여 쉽게 메타모델을 추가 및 관리 가능 ECore, ATL 개발 환경은 이클립스 플러그인으로 제공되기 때문에 메타모델 및 변환룰의 쉬운 제작이 가능


Download ppt "MDA 기반 태양광 에너지 모니터링 시스템의 유지보수를 위한 비용 감소 방안 사례"

Similar presentations


Ads by Google