KR20210057533A - Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof - Google Patents

Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof Download PDF

Info

Publication number
KR20210057533A
KR20210057533A KR1020190144390A KR20190144390A KR20210057533A KR 20210057533 A KR20210057533 A KR 20210057533A KR 1020190144390 A KR1020190144390 A KR 1020190144390A KR 20190144390 A KR20190144390 A KR 20190144390A KR 20210057533 A KR20210057533 A KR 20210057533A
Authority
KR
South Korea
Prior art keywords
automationml
opc
file
node
data
Prior art date
Application number
KR1020190144390A
Other languages
Korean (ko)
Other versions
KR102295100B1 (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 KR1020190144390A priority Critical patent/KR102295100B1/en
Priority to PCT/KR2019/015441 priority patent/WO2021095915A1/en
Publication of KR20210057533A publication Critical patent/KR20210057533A/en
Application granted granted Critical
Publication of KR102295100B1 publication Critical patent/KR102295100B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • 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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a method for converting an AutomationML data model to an OPC UA information model to automatically convert an AutomationML data model into an OPC UA information model without information loss or errors and an apparatus thereof. According to one embodiment of the present invention, a data conversion model comprises the following steps: receiving an AutomationML file created according to an AutomationML model and parsing AutomationML elements and data for the AutomationML elements from the received AutomationML file to generate a data structure; using a mapping rule which maps the AutomationML elements to the OPC UA nodes to convert the AutomationML elements into OPC UA nodes on the basis of the generated data structure; and using the converted OPC UA nodes to generate an OPC UA file according to the OPC UA model.

Description

AutomationML 데이터 모델을 OPC UA 정보 모델로 변환하는 방법 및 그 장치{Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof}TECHNICAL FIELD [Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof]

본 발명은 데이터 모델 변환 방법에 관한 것으로, 보다 구체적으로 AutomationML 데이터 모델을 OPC UA 정보 모델로 변환하는 데이터 모델 변환 방법 및 데이터 모델 변환 장치에 관한 발명이다. The present invention relates to a data model conversion method, and more specifically, to a data model conversion method and a data model conversion apparatus for converting the AutomationML data model into an OPC UA information model.

미래 스마트 공장의 가장 중요한 특징으로 생산 시스템과 해당 IT 시스템에 대한 적응 용이성(Adaptability)을 들 수 있다. 즉, 스마트 공장은 지속적으로 생산 공정을 최적화하고 생산 설비를 변경할 수 있으며, 다양한 제품으로 변형 생산이 가능한 능력을 갖춰야 한다. 하지만 위와 같은 목표를 달성하기 위해서는 생산 기계와 설비뿐만 아니라 관련 소프트웨어의 지속적인 재설정(Reconfiguration)을 요구한다. 하지만 현재의 생산 환경에서는 공장별로 더 나아가서는 공정 라인 별로 서로 다른 시스템을 사용하고 있으며, 시스템 별로 상이한 데이터 포맷과 데이터 전송 프로토콜을 채택하여 사용하고 있어 전체 시스템의 유연한 변경에 큰 장애가 되고 있다. 따라서 최근 다양한 생산 시스템 간의 상호호환성을 높이고 연결을 가능하도록 하는 AutomationML이나 OPC UA 표준과 같은 기술들이 제안되고 있으며, 더 나아가 두 표준간의 통합이 크게 주목 받고 있다.The most important feature of the future smart factory is the adaptability of the production system and the corresponding IT system. In other words, a smart factory must have the ability to continuously optimize production processes, change production facilities, and transform production into various products. However, in order to achieve the above goal, continuous reconfiguration of not only production machinery and equipment, but also related software is required. However, in the current production environment, different systems are used for each plant and further for each process line, and different data formats and data transmission protocols are used for each system, which is a big obstacle to the flexible change of the entire system. Therefore, technologies such as AutomationML and OPC UA standards have recently been proposed to increase interoperability and enable connection between various production systems, and furthermore, integration between the two standards is attracting great attention.

AutomationML은 생산 시스템 엔지니어링 단계에서 데이터를 일관되게 교환함으로써 정보전달의 효율성을 높이고 상호호환성을 향상시키기 위해 제안된 표준(IEC 62714)이다. 생산 시스템의 엔지니어링 단계는 크게 공장 설계, 시공, 커미셔닝, 유지관리로 구성되며, 각 단계별로 사용하는 도구(예를 들어, solidworks, excel, AutoCAD 등)와 데이터 포맷이 매우 다양하다. 하지만 그동안 여러 엔지니어링 단계 간에 일관된 데이터 교환을 지원하는 공통 데이터 모델은 없었다. AutomationML은 이와 같이 여러 엔지니어링 단계에서 발생되는 이기종 형태의 데이터를 일관되게 교환하고자 고안된 개방형 데이터 표준 포맷이며, XML기반으로 데이터의 구문과 의미를 정의한다.AutomationML is a standard (IEC 62714) proposed to increase the efficiency of information transfer and improve interoperability by consistently exchanging data in the production system engineering stage. The engineering stage of a production system is largely composed of factory design, construction, commissioning, and maintenance, and the tools used in each stage (for example, solidworks, excel, AutoCAD, etc.) and data formats are very diverse. However, there has not been a common data model that supports consistent data exchange between different engineering stages. AutomationML is an open data standard format designed to consistently exchange heterogeneous data generated in various engineering stages, and defines the syntax and meaning of data based on XML.

OPC UA는 서로 다른 산업용 네트워크 혹은 다른 공급업체의 장비 간의 수평적인 정보전달을 가능하게 하고, 필드 레벨부터 엔터프라이즈 레벨까지의 수직적인 구조에서의 정보전달을 통해 공장 내·외부의 다양한 사물 및 서비스와 상호호환을 가능하도록 하는 통신 기술 표준(IEC 62541)이다.OPC UA enables horizontal information transfer between different industrial networks or equipments of different suppliers, and communicates with various objects and services inside and outside the factory through information transfer in a vertical structure from the field level to the enterprise level. It is a communication technology standard (IEC 62541) that enables compatibility.

그리고 최근 두 표준을 통합하여 활용하는 사례가 급격히 증가함에 따라 OPC Foundation과 AutomationML e.V 그룹에서는 조인트 워킹 그룹을 만들어 AutomationML 데이터 모델을 OPC UA 정보 모델로 표현하는 방법을 정의한 문서인 “OPC Unified Architecture Information Model for AutomationML”을 발표하였다. 이는 AutomationML 과 OPC UA가 정의하는 정보 모델의 유사성을 기반으로 두 표준 데이터 모델 간의 상호 호환을 가능하게 하는 기준이 된다.In addition, as the number of cases in which the two standards are integrated and utilized rapidly increases, the OPC Foundation and the AutomationML eV group created a joint working group to express the AutomationML data model as an OPC UA information model. AutomationML” was released. This is a criterion for enabling mutual compatibility between the two standard data models based on the similarity of the information models defined by AutomationML and OPC UA.

다만, 여기서 해결해야 할 문제는 OPC UA 서버를 구성하기 위해 AutomationML 데이터 모델을 OPC UA 정보 모델로 변환해야 한다는 것이다. 기존에는 “OPC Unified Architecture Information Model for AutomationML” 표준 문서에서 제시한 변환 방법론에 따라 수동으로 AutomationML의 데이터 모델을 분석하고 수동으로 정보 모델로 변환했기 때문에, 변환 과정에서의 오류가 발생하기 쉽고, 정보의 양이 많아질수록 변환 작업에 많은 시간과 노력이 필요했다. 더불어 지속적인 버전 업그레이드를 통해 AutomationML이 기술하는 데이터의 종류가 증가하면서 수동 변환 방식은 한계에 다다랐다.However, the problem to be solved here is that in order to configure the OPC UA server, the AutomationML data model must be converted to the OPC UA information model. In the past, because the data model of AutomationML was manually analyzed and converted into an information model according to the conversion methodology suggested in the standard document of “OPC Unified Architecture Information Model for AutomationML”, errors in the conversion process are easy to occur and the information The larger the amount, the more time and effort was required for the conversion work. In addition, as the types of data described by AutomationML increase through continuous version upgrades, the manual conversion method has reached its limit.

본 발명이 해결하고자 하는 기술적 과제는, 생산 시스템의 각종 정보를 기술하는 AutomationML 데이터 모델을 OPC UA 정보 모델로 변환하는 데이터 모델 변환 방법 및 데이터 모델 변환 장치를 제공하는 것이다.The technical problem to be solved by the present invention is to provide a data model conversion method and a data model conversion apparatus for converting an AutomationML data model describing various information of a production system into an OPC UA information model.

상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 데이터 모델 변환 방법은 AutomationML 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 단계; 상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계; 상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성하는 단계를 포함한다.In order to solve the above technical problem, a data model conversion method according to an embodiment of the present invention receives an AutomationML file created according to an AutomationML model, and parses the AutomationML element and data on the AutomationML element from the received AutomationML file. Creating a data structure; Converting the AutomationML element into an OPC UA node using a mapping rule for mapping an AutomationML element to an OPC UA node based on the generated data structure; And generating an OPC UA file according to the OPC UA model by using the converted OPC UA node.

또한, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 단계는, 상기 수신한 AutomationML 파일의 스키마 버전을 독출하는 단계; 상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부에서 독출하거나, 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하는 단계; 및 상기 저장부에서 독출된 스키마 파일 또는 상기 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하는 단계를 포함할 수 있다.In addition, the step of generating a data structure by parsing the AutomationML element and the data on the AutomationML element from the received AutomationML file may include reading a schema version of the received AutomationML file; Reading a schema file corresponding to the read schema version from a storage unit or receiving a schema file corresponding to the read schema version from outside; And parsing the AutomationML element and data on the AutomationML element from the received AutomationML file using the schema file read from the storage unit or the received schema file.

또한, 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계는, 상기 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성하는 단계를 포함할 수 있다.In addition, the step of converting the AutomationML element to an OPC UA node may include generating an OPC UA node tree corresponding to the element tree structure of the AutomationML file.

또한, 상기 OPC UA 파일을 생성하는 단계는, 상기 생성된 OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성하는 단계; 및 상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성하는 단계를 포함할 수 있다.In addition, generating the OPC UA file may include generating a data structure according to an OPC UA model based on a root node among the generated OPC UA node trees; And generating an XML-based OPC UA file by using the data structure according to the generated OPC UA model.

또한, 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계는, 상기 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑하는 단계; 및 상기 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성하는 단계를 포함할 수 있다.In addition, the step of converting the AutomationML element to an OPC UA node may include mapping the AutomationML element to a UAObject, UAObjectType, UAVariable, or other node; And generating an OPC UA node tree according to the relationship between the mapped AutomationML elements.

또한, 상기 기타 노드는, 해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드일 수 있다.In addition, the other node may be a node that refers to an AutomationML element, and may be a node that is mapped when there is no UA node type mapped to the AutomationML element.

상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 데이터 모델 변환 장치는 하나 이상의 메모리 및 하나 이상의 프로세서를 포함하고, 상기 프로세서는, AutomationML 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 읽기부; 상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 변환부; 및 상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성하는 쓰기부를 포함한다.In order to solve the above technical problem, a data model conversion apparatus according to an embodiment of the present invention includes at least one memory and at least one processor, and the processor receives an AutomationML file created according to the AutomationML model, and the received A reading unit for generating a data structure by parsing the AutomationML element and data on the AutomationML element from the AutomationML file; A conversion unit for converting the AutomationML element into an OPC UA node using a mapping rule for mapping an AutomationML element to an OPC UA node based on the generated data structure; And a writing unit for generating an OPC UA file according to the OPC UA model by using the converted OPC UA node.

또한, 상기 읽기부는, 상기 수신한 AutomationML 파일의 스키마 버전을 독출하고, 상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부에서 독출하거나, 통신부를 통해 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하고, 상기 저장부에서 독출된 스키마 파일 또는 상기 통신부를 통해 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱할 수 있다.In addition, the reading unit reads the schema version of the received AutomationML file, and reads the schema file corresponding to the read schema version from the storage unit, or a schema file corresponding to the schema version read from the outside through the communication unit. And parsing the AutomationML element and data for the AutomationML element from the received AutomationML file using the schema file read from the storage unit or the schema file received through the communication unit.

또한, 상기 변환부는, 상기 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성할 수 있다.In addition, the conversion unit may generate an OPC UA node tree corresponding to the element tree structure of the AutomationML file.

또한, 상기 변환부는, 상기 생성된 OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성하고, 상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성할 수 있다.In addition, the conversion unit generates a data structure according to the OPC UA model based on a root node of the generated OPC UA node tree, and generates an XML-based OPC UA file using a data structure according to the generated OPC UA model. Can be generated.

또한, 상기 변환부는, 상기 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑하고, 상기 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성할 수 있다.In addition, the conversion unit may map the AutomationML element to a UAObject, UAObjectType, UAVariable, or other node, and generate an OPC UA node tree according to the relationship between the mapped AutomationML elements.

또한, 상기 기타 노드는, 해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드일 수 있다.In addition, the other node may be a node that refers to an AutomationML element, and may be a node that is mapped when there is no UA node type mapped to the AutomationML element.

본 발명의 실시예들에 따르면, AutomationML 데이터 모델을 정보의 유실이나 오류없이 OPC UA 정보 모델로 자동 변환할 수 있다. According to embodiments of the present invention, it is possible to automatically convert the AutomationML data model to the OPC UA information model without loss or error of information.

또한, 변환된 OPC UA 정보 모델을 사용하면 대부분의 OPC UA SDK에서 제공하는 도구나 방법을 통해 쉽게 OPC UA 서버를 생성할 수 있으며, 생성된 OPC UA 서버를 통해 생산 시스템들과 연결하고 데이터를 전달할 수 있다.In addition, if you use the converted OPC UA information model, you can easily create an OPC UA server through tools or methods provided by most OPC UA SDKs, and connect with production systems and transmit data through the created OPC UA server. I can.

또한, AutomationML 스키마를 변환하여 데이터 모델 자료구조를 생성함으로써, AutomationML 표준의 수정이나 버전 업그레이드에 쉽게 대응할 수 있다.In addition, by converting the AutomationML schema to create a data model data structure, it is possible to easily respond to revision or version upgrade of the AutomationML standard.

또한, 생산 관련 OT 및 IT 시스템이 사용하는 이기종의 데이터 포맷과 프로토콜을 OPC UA 표준 기반으로 통합하고 상호운용성을 향상시킬 수 있다.In addition, it is possible to integrate heterogeneous data formats and protocols used by production-related OT and IT systems based on OPC UA standards and improve interoperability.

도 1은 본 발명의 일 실시예에 따른 데이터 모델 변환 장치의 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 데이터 모델 변환 장치의 블록도이다.
도 3 내지 도 7은 본 발명의 실시예에 따른 데이터 모델 변환 장치에서 데이터 모델을 변환하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 데이터 모델 변환 방법의 흐름도이다.
도 9 내지 도 12는 본 발명의 다른 실시예에 따른 데이터 모델 변환 방법의 흐름도이다.
1 is a block diagram of an apparatus for converting a data model according to an embodiment of the present invention.
2 is a block diagram of an apparatus for converting a data model according to another embodiment of the present invention.
3 to 7 are diagrams for explaining a process of converting a data model in a data model conversion apparatus according to an embodiment of the present invention.
8 is a flowchart of a data model conversion method according to an embodiment of the present invention.
9 to 12 are flowcharts of a data model conversion method according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합 또는 치환하여 사용할 수 있다.However, the technical idea of the present invention is not limited to some embodiments to be described, but may be implemented in various different forms, and within the scope of the technical idea of the present invention, one or more of the constituent elements may be selectively selected between the embodiments. It can be used by combining or replacing with

또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.In addition, terms (including technical and scientific terms) used in the embodiments of the present invention are generally understood by those of ordinary skill in the art, unless explicitly defined and described. It can be interpreted as a meaning, and terms generally used, such as terms defined in a dictionary, may be interpreted in consideration of the meaning in the context of the related technology.

또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. In addition, terms used in the embodiments of the present invention are for describing the embodiments and are not intended to limit the present invention.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.In the present specification, the singular form may also include the plural form unless specifically stated in the phrase, and when described as "at least one (or more than one) of A and (and) B and C", it is combined with A, B, and C. It may contain one or more of all possible combinations.

또한, 본 발명의 실시 예의 구성 요소를 설명하는데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.In addition, in describing the constituent elements of the exemplary embodiment of the present invention, terms such as first, second, A, B, (a), (b) may be used. These terms are only for distinguishing the constituent element from other constituent elements, and are not limited to the nature, order, or order of the constituent element by the term.

그리고, 어떤 구성 요소가 다른 구성 요소에 '연결', '결합', 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 '연결', '결합', 또는 '접속'되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합', 또는 '접속'되는 경우도 포함할 수 있다.And, when a component is described as being'connected','coupled', or'connected' to another component, the component is directly'connected','coupled', or'connected' to the other component. In addition to the case, it may include a case in which the component is'connected','coupled', or'connected' due to another component between the component and the other component.

또한, 각 구성 요소의 "상(위)" 또는 "하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, "상(위)" 또는 "하(아래)"는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라, 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위)" 또는 "하(아래)"로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함될 수 있다. In addition, when described as being formed or disposed in the "top (top)" or "bottom (bottom)" of each component, "top (top)" or "bottom (bottom)" means that the two components are directly It includes not only the case of contact, but also the case where one or more other components are formed or disposed between the two components. In addition, when expressed as "upper (upper)" or "lower (lower)", the meaning of not only an upward direction but also a downward direction based on one component may be included.

도 1은 본 발명의 일 실시예에 따른 데이터 모델 변환 장치의 블록도이다. 본 발명의 일 실시예에 따른 데이터 모델 변환 장치(100)는 하나 이상의 메모리 및 하나 이상의 프로세서를 포함하고, 상기 프로세서는 읽기부(110), 변환부(120), 및 쓰기부(130)로 구성된다. 또한, 도 2와 같이, 저장부(140) 또는 통신부(150)를 더 포함할 수 있다. 읽기부(110), 변환부(120), 및 쓰기부(130)는 하나의 프로세서에 포함되거나 하나 이상이 다른 프로세서에 포함될 수 있다. 1 is a block diagram of an apparatus for converting a data model according to an embodiment of the present invention. The data model conversion apparatus 100 according to an embodiment of the present invention includes at least one memory and at least one processor, and the processor includes a read unit 110, a conversion unit 120, and a write unit 130. do. In addition, as shown in FIG. 2, a storage unit 140 or a communication unit 150 may be further included. The read unit 110, the conversion unit 120, and the write unit 130 may be included in one processor, or one or more may be included in another processor.

읽기부(110)는 AutomationML(AML) 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성한다.The reading unit 110 receives the AutomationML file created according to the AutomationML (AML) model, and generates a data structure by parsing the AutomationML element and data on the AutomationML element from the received AutomationML file.

보다 구체적으로, 읽기부(Reader, 110)는 AutomationML 모델에 따라 작성된 AutomationML 파일을 수신한다. AutomationML 파일을 수신한 후, OPC UA 모델로 변환하기에 앞서 AutomationML 파일로부터 AutomationML 엘리먼트(Element)와 AutomationML 엘리먼트에 대한 데이터를 파싱한다. 파싱된 데이터들을 자료 구조를 생성하여 저장한다.More specifically, the reader 110 receives the AutomationML file created according to the AutomationML model. After receiving the AutomationML file, the AutomationML element and data about the AutomationML element are parsed from the AutomationML file before conversion to the OPC UA model. The parsed data is saved by creating a data structure.

AutomationML은 IEC 62424 표준으로 정의된 CAEX(Computer Aided Engineering Exchange) 클래스 모델을 기반으로 데이터 모델을 표현한다.AutomationML expresses the data model based on the Computer Aided Engineering Exchange (CAEX) class model defined in the IEC 62424 standard.

여기서, CAEX는 공장의 계층 구조와 같이, 계층적 객체 정보를 저장하는 데이터 포맷이다. 특정 추상화 레벨에서, 공장은 서로 연결된 모듈 또는 구성 요소로 구성되는데, CAEX를 이용하면 객체를 통해 해당 모듈 또는 구성 요소를 저장할 수 있다. 캡슐화, 클래스, 클래스 라이브러리, 인스턴스, 인스턴스 계층, 상속, 관계, 속성 및 인터페이스와 같은 객체 지향 개념이 명시적으로 지원된다. CAEX는 XML을 기반으로 하며 XML 스키마 (xsd 파일)로 정의된다. CAEX 개발의 원래 의도는 프로세스 엔지니어링 툴과 프로세스 제어 엔지니어링 툴 간의 공통적이고 확립된 데이터 교환을 위한 것이나, CAEX는 모든 유형의 정적 객체 정보에 적용될 수 있다. 예를 들어 공장 토폴로지, 문서 토폴로지, 제품 토폴로지, 페트리 네트등에 적용될 수 있다. Here, CAEX is a data format that stores hierarchical object information, such as a hierarchical structure of a factory. At a certain level of abstraction, factories are made up of modules or components connected to each other, and CAEX allows the module or component to be stored through objects. Object-oriented concepts such as encapsulation, classes, class libraries, instances, instance hierarchies, inheritance, relationships, properties, and interfaces are explicitly supported. CAEX is based on XML and is defined as an XML schema (xsd file). The original intent of CAEX development is for the common and established data exchange between process engineering tools and process control engineering tools, but CAEX can be applied to any type of static object information. For example, it can be applied to factory topology, document topology, product topology, petri net, etc.

AutomationML은 도 3과 같이 크게 4가지 영역으로 나뉘어 각 영역에 맞는 엘리먼트를 정의한다.AutomationML is largely divided into 4 areas as shown in FIG. 3 to define elements suitable for each area.

Interface Class Library(340)는 포트(Port)나 External Data Connector와 같이 내, 외부의 컴포넌트와 연결하기 위한 여러 가지 Interface Class들을 정의하는 부분이다.The Interface Class Library 340 is a part that defines various interface classes for connecting with internal and external components such as a port or an external data connector.

Role Class Library(330)는 컴포넌트에 Group, Resource, Product, Process와 같은 의미를 부여하기 위해 사용할 Role Class들을 정의하는 부분이다.The Role Class Library 330 is a part defining role classes to be used to give a component the same meaning as Group, Resource, Product, and Process.

System Unit Library(320)는 장비나 사물의 특성을 포함한 System Unit Class(SUC)를 정의할 수 있고, 해당 클래스는 기존 정의된 Role Class와 Interface Class를 참조하여 역할과 인터페이스를 연결할 수 있다. The System Unit Library 320 may define a System Unit Class (SUC) including characteristics of equipment or objects, and the corresponding class may connect roles and interfaces with reference to the previously defined Role Class and Interface Class.

InstanceHierarchy(IH, 310)에서는 SUC를 기반으로 하는 Internal Element(IE) 인스턴스를 정의할 수 있으며, Role Class와 Interface Class를 참조하여 역할과 인터페이스를 할당하거나, Internal Link를 사용하여 인스턴스 간 연결 관계를 정의할 수 있다. 각 Class 엘리먼트들은 External Interface를 사용하여 외부 데이터를 참조할 수 있고, Attribute를 통해 속성값을 가질 수 있다.In InstanceHierarchy (IH, 310), you can define an internal element (IE) instance based on SUC, assign roles and interfaces by referring to Role Class and Interface Class, or define connection relationships between instances using Internal Link. can do. Each class element can refer to external data using an external interface, and can have attribute values through Attribute.

AutomationML 파일을 변환하고자 하는 OPC UA는 OPC UA 서버에서 관리하고자 하는 노드들의 집합을 기술하는 XML 포맷의 표준(IEC 62541-5)이다. OPC UA 노드 모델은 도 4와 같이, 각 노드(410)에 대한 아이디, 이름, 설명 등의 정보를 Attribute(411)로 기술할 수 있고, 노드의 타입이나 다른 노드(420)와의 노드 간 관계 등은 Reference(412)로 추가할 수 있는 유연하고 확장적인 구조를 가지고 있다.OPC UA to convert AutomationML files is an XML format standard (IEC 62541-5) that describes the set of nodes to be managed by the OPC UA server. In the OPC UA node model, information such as ID, name, and description for each node 410 can be described as an Attribute 411, as shown in FIG. 4, and the type of node or the relationship between nodes with other nodes 420, etc. Has a flexible and extensible structure that can be added as Reference (412).

읽기부(110)는 OPC UA로 변환하기 위해 변환이 적용되는 엘리먼트들과 엘리먼트들이 어떤 데이터들을 가지고 있는지를 AutomationML 파일을 파싱하여 자료 구조로 생성한다.The reading unit 110 parses the AutomationML file and generates a data structure of the elements to which the transformation is applied and what data the elements have in order to convert into OPC UA.

읽기부(110)는 AutomationML 데이터 모델을 파싱함에 있어서, 스키마 파일을 이용한다. 여기서 스키마 파일은 데이터 모델의 구조와 조건에 대한 파일로, 데이터 모델을 구성하는 개체, 속성, 관계 및 데이터 조작시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의하고 있는 파일이다. 스키마 파일은 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정될 수 있다. 스키마 파일은 해당 파일이 유효한 것으로 여겨지기 위해 반드시 지켜야 하는 규칙들의 집합에 해당한다.The reading unit 110 uses a schema file in parsing the AutomationML data model. Here, the schema file is a file for the structure and conditions of the data model, and it is a file that generally defines the objects, properties, relationships, and constraints of data values when manipulating the data. Schema files refer to the structural characteristics of data and can be defined by instances. A schema file is a set of rules that must be followed in order for the file to be considered valid.

스키마(Schema)는 요소 선언(Element declarations) 및 속성 선언(Attribute declarations)을 포함할 수 있다.Schema may contain element declarations and attribute declarations.

요소 선언, 요소의 속성(properties)을 정의한다. 요소 이름과 대상 네임스페이스를 포함한다. 요소의 종류(type)가 중요한 속성으로, 요소가 어떤 속성과 자식(children)을 가질 수 있는 지를 제한한다. 요소 종류는 그 특성 값에 따라 달라질 수 있다. 요소는 대체 그룹(substitution group)에 속할 수 있다. 만약 요소 E가 요소 H의 대체 그룹에 속하면, 스키마가 H를 허용하는 곳 어디에나 E가 나타날 수 있다. 요소는 무결성 조건(integrity constraints)을 가질 수 있다. 요소 선언은 전역(global)이거나 지역(local)일 수 있다. 따라서 인스턴스 문서(instance document)의 서로 다른 부분에서, 서로 관련이 없는 요소들을 가리키는 데 같은 이름을 쓸 수 있다.Element declaration and element properties are defined. Contains the element name and target namespace. The type of an element is an important attribute, and it limits what attributes and children an element can have. The type of element can vary depending on the value of its characteristic. Elements can belong to a substitution group. If element E belongs to element H's substitution group, E can appear anywhere the schema allows H. Elements can have integrity constraints. Element declarations can be global or local. Thus, you can use the same name to refer to elements that are not related to each other in different parts of the instance document.

속성 선언은, 속성의 속성을 정의한다. 여기서도 속성 이름과 대상 네임스페이스를 포함한다. 속성의 타입은 속성이 가질 수 있는 값을 제한한다. 속성 선언에 기본 값을 지정하거나, 값을 고정할 수 있다.The property declaration defines the property of the property. Again, include the attribute name and target namespace. The type of attribute limits the values that the attribute can have. The default value can be specified in the property declaration or the value can be fixed.

스키마는 외부 스키마, 개념 스키마, 내부 스키마로 나뉠 수 있다. 외부 스키마(External Schema)는 서브 스키마 또는 사용자 뷰(View)로 표현될 수 있으며, 외부 스키마는 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. 외부 스키마는 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다. 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수도 있다. 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다. 일반 사용자는 질의어(SQL)를 이용하여 DB를 쉽게 사용할 수 있고, 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근할 수 있다.Schema can be divided into external schema, conceptual schema, and internal schema. The external schema can be expressed as a sub-schema or a user view, and the external schema is the definition of the logical structure of the database that the user or application programmer needs from the standpoint of each individual. External schemas can be viewed as a logical part of the entire database, so they are also referred to as sub schemas. Several external schemas can exist in one database system, and multiple applications or users can share one external schema. It allows you to define different views for the same database. General users can easily use the DB by using a query language (SQL), and application programmers can access the DB by using languages such as COBOL and C.

개념 스키마(Coneptual Schema)는 전체적인 뷰(View)에 해당하고, 개념 스키마는 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다. 개념 스키마는 개체 간의 관계나 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다. 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다. 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다. 데이터베이스 관리자(DBA)에 의해서 구성된다.The conceptual schema corresponds to the overall view, and the conceptual schema is the overall logical structure of the database, and there is only one database for the entire organization that aggregates the data required by all applications or users. The conceptual schema represents the relationships or constraints between entities and defines the specification of database access rights, security and integrity rules. It represents the type of data stored in the database file, and simply schema means a conceptual schema. It defines a database from the perspective of an organization or organization. It is configured by the database administrator (DBA).

내부 스키마(Internal Schema)는 저장 스키마(Storage Schema)로 표현될 수 있다. 내부 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다. 내부 스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다. 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.The internal schema can be expressed as a storage schema. The internal schema is a database structure viewed from the point of view of a physical storage device, and is a layer closely related to the physical storage device. The internal schema defines the physical structure of the records to be actually stored in the database, and indicates how the stored data items are expressed, and the physical order of the internal records. It is a schema from the perspective of a system programmer or system designer.

읽기부(110)는 CAEX 스키마 파일인 XSD (XML Schema Definition)를 이용하여 AutomationML 파일을 파싱하여 자료 구조를 생성한다. The reading unit 110 generates a data structure by parsing the AutomationML file using XSD (XML Schema Definition), which is a CAEX schema file.

이때, 읽기부(110)는 상기 수신한 AutomationML 파일의 스키마 버전을 독출하고, 상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부(140)에서 독출하거나, 통신부(150)를 통해 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하고, 저장부(140)에서 독출된 스키마 파일 또는 통신부(150)를 통해 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱할 수 있다.At this time, the reading unit 110 reads the schema version of the received AutomationML file, and reads the schema file corresponding to the read schema version from the storage unit 140, or reads the schema file from the outside through the communication unit 150 Receiving a schema file corresponding to the schema version, and using the schema file read from the storage unit 140 or the schema file received through the communication unit 150 to the AutomationML element and the AutomationML element from the received AutomationML file You can parse the data for it.

스키마 파일을 이용하여 AutomationML 파일을 파싱하기 위해선, AutomationML 파일의 스키마 버전에 해당하는 스키마 파일을 이용하여야 한다. 스키마 버전이 상이한 경우, 규칙이 상이할 수 있기 때문에, 정확한 파싱이 어려워질 수 있다.To parse an AutomationML file using a schema file, a schema file corresponding to the schema version of the AutomationML file must be used. If the schema versions are different, the rules may be different, making accurate parsing difficult.

따라서, 읽기부(110)는 먼저 파싱할 AutomationML 파일의 스키마 버전을 독출한다. 상기 독출된 스키마 버전에 대응하는 스키마 파일이 저장부(140)에 저장되어 있는 경우, 해당 스키마 파일을 저장부(140)에서 독출하여 이용할 수 있다. 하지만, 저장부(140)에 해당 스키마 파일이 저장되어 있지 않은 경우, 통신부(150)를 통해 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하여 이용한다. 저장부(140)에 저장된 스키마 파일이 존재하지 않는 초기 상태에서도 통신부(150)를 통해 외부로부터 스키마 파일을 수신할 수 있다. 해당 스키마 파일은 AutomationML 사이트에서 제공되는 스키마 파일일 수 있다. 수신한 스키마 파일은 저장부(140)에 저장할 수 있다. 스키마 파일이 업데이트 되는 경우, 통신부(150)는 업데이트된 스키마 파일을 수신하여, 저장부(140)에 저장할 수 있다. 이를 통해 AutomationML 모델의 버전 업데이트 시에도 변환 규칙만 추가 개발하여 빠른 대응이 가능하다.Therefore, the reading unit 110 first reads the schema version of the AutomationML file to be parsed. When a schema file corresponding to the read schema version is stored in the storage unit 140, the schema file may be read from the storage unit 140 and used. However, when the schema file is not stored in the storage unit 140, the schema file corresponding to the read schema version is received from the outside through the communication unit 150 and used. Even in an initial state in which the schema file stored in the storage unit 140 does not exist, the schema file may be received from the outside through the communication unit 150. The schema file may be a schema file provided by the AutomationML site. The received schema file may be stored in the storage unit 140. When the schema file is updated, the communication unit 150 may receive the updated schema file and store it in the storage unit 140. Through this, even when the version of the AutomationML model is updated, only the conversion rule is additionally developed, enabling a quick response.

파싱할 AutomationML 파일의 스키마 버전에 대응하는 스키마 파일을 저장부(140) 또는 통신부(150)를 통해 수신한 이후, 해당 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱한다. 파싱된 엘리먼트 및 데이터는 자료 구조로 생성되어 저장된다. 이때, 생성된 자료 구조는 저장부(140)에 저장될 수 있다.After receiving the schema file corresponding to the schema version of the AutomationML file to be parsed through the storage unit 140 or the communication unit 150, the AutomationML element and the AutomationML element are retrieved from the received AutomationML file using the corresponding schema file. Parse the data. The parsed elements and data are created and stored in a data structure. In this case, the generated data structure may be stored in the storage unit 140.

읽기부(110)에서 AutomationML 파일을 파싱하여 자료 구조를 생성하는 과정은 도 5와 같이 수행될 수 있다. 읽기부(110)는 AutomationML 파일(510)을 수신하고, AutomationML Library Manager(520)는 아래 예시와 같이 AutomationML 파일 내에 정의된 External Reference 엘리먼트들을 탐색하여 다른 AutomationML 파일에 기록된 외부 AutomationML 데이터 모델을 읽고 위와 동일한 과정을 거쳐 참조를 위한 자료 구조를 생성할 수 있다.The process of generating a data structure by parsing the AutomationML file in the reading unit 110 may be performed as shown in FIG. 5. The reading unit 110 receives the AutomationML file 510, and the AutomationML Library Manager 520 searches the External Reference elements defined in the AutomationML file as shown in the example below to read the external AutomationML data model recorded in another AutomationML file, and You can create a data structure for reference through the same process.

<ExternalReference Path="Libs/RoleClass Libraries/AutomationMLBaseRoleClassLib.AutomationML" Alias="BaseRoleClassLib"/><ExternalReference Path="Libs/RoleClass Libraries/AutomationMLBaseRoleClassLib.AutomationML" Alias="BaseRoleClassLib"/>

<ExternalReference Path="Libs/InterfaceClass Libraries/AutomationMLInterfaceClassLib.AutomationML" Alias="BaseInterfaceClassLib"/> <ExternalReference Path="Libs/InterfaceClass Libraries/AutomationMLInterfaceClassLib.AutomationML" Alias="BaseInterfaceClassLib"/>

변환부(120)는 상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환한다. The conversion unit 120 converts the AutomationML element into an OPC UA node using a mapping rule for mapping an AutomationML element to an OPC UA node based on the generated data structure.

보다 구체적으로, 변환부(120)는 읽기부(110)에서 생성된 자료 구조를 순차적으로 탐색하며, AutomationML 엘리먼트를 OPC UA 노드로 재구성한다. 이때, AutomationML 엘리먼트와 OPC UA 노드는 1 대 1 맵핑 관계가 아닌바, AutomationML 엘리먼트가 가진 데이터를 이용하여 해당 데이터와 관계가 동일한 의미의 OPC UA 노드로 재구성한다. AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙은 맵핑 테이블로 저장할 수 있다. 맵핑 규칙은 AutomationML 스키마 파일 또는 OPC UA 버전이 업데이트되거나, 규칙이 달라지는 경우, 업데이트될 수 있다.More specifically, the conversion unit 120 sequentially searches the data structure generated by the reading unit 110, and reconstructs the AutomationML element into an OPC UA node. At this time, since the AutomationML element and the OPC UA node are not in a one-to-one mapping relationship, the data of the AutomationML element is used to reconstruct the data into an OPC UA node with the same meaning. Mapping rules that map AutomationML elements to OPC UA nodes can be saved as a mapping table. Mapping rules can be updated if the AutomationML schema file or OPC UA version is updated, or if the rules are different.

변환부(120)는 읽기부(110)에서 생성된 자료 구조를 순차적으로 탐색하며, 각 AutomationML 엘리먼트에 해당하는 UA 노드(Node) 타입, UA 참조(Reference) 타입, UA 참조 노드를 도출한다.The conversion unit 120 sequentially searches the data structure generated by the reading unit 110, and derives a UA node type, a UA reference type, and a UA reference node corresponding to each AutomationML element.

UA 노드 타입은 AutomationML 엘리먼트가 UA 노드 중 어떤 종류의 노드인지에 따라 나누어 지는 것으로, UA 노드 타입은 도 6과 같이, UAObject, UAObjectType, UAVariable 등으로 나누어 질 수 있다. 이때, 변환부(120)는 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑한다. 여기서, 상기 기타 노드는, 해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드일 수 있다. AutomationML 엘리먼트와 UA 노드 타입의 종류가 정확히 일치하지 않기 때문에, AutomationML 엘리먼트에 대응하는 UA 노드 타입이 존재하지 않는 경우, 해당 AutomationML 엘리먼트는 기타 노드로 맵핑할 수 있다. 도 6과 같이, AutomationML 엘리먼트 중 SupportedRoleClass 또는 RoleRequirement 는 대응되는 UA 노드 타입이 존재하지 않기 때문에, 해당 UA 노드 타입을 비워두거나 기타 노드 타입으로 맵핑할 수 있다.The UA node type is divided according to what kind of node the AutomationML element is among UA nodes, and the UA node type can be divided into UAObject, UAObjectType, UAVariable, and the like, as shown in FIG. 6. At this time, the conversion unit 120 maps the AutomationML element to UAObject, UAObjectType, UAVariable, or other nodes. Here, the other node may be a node that refers to an AutomationML element, and may be a node that is mapped when there is no UA node type mapped to the AutomationML element. Since the types of the AutomationML element and the UA node type do not exactly match, if the UA node type corresponding to the AutomationML element does not exist, the AutomationML element can be mapped to other nodes. As shown in FIG. 6, since a corresponding UA node type does not exist for SupportedRoleClass or RoleRequirement among AutomationML elements, the corresponding UA node type may be left blank or may be mapped to other node types.

UA 참조 타입은 해당 노드가 참조하는 노드가 있는 경우, 어떤 노드를 어떤 의미로 참조하는지에 따라 나누어 지는 것으로, UA 참조 타입은 HasTypeDefinition, HasSubType 등으로 나누어질 수 있다. 앞서 설명한 바와 같이, AutomationML 엘리먼트 중 대응되는 UA 노드 타입이 존재하지 않지만, 참조가 존재하는 경우, 도 6과 같이, SupportedRoleClass는 UA 참조 타입으로 1:HasAutomationMLSupportedPoleClass를 맵핑하고, RoleRequirement는 1:HasAutomationMLRoleRequirement를 맵핑할 수 있다.The UA reference type is divided according to which node refers to what meaning when there is a node referenced by the corresponding node, and the UA reference type can be divided into HasTypeDefinition, HasSubType, etc. As described above, if a corresponding UA node type does not exist among AutomationML elements, but there is a reference, as shown in FIG. 6, SupportedRoleClass maps 1:HasAutomationMLSupportedPoleClass as UA reference type, and RoleRequirement maps 1:HasAutomationMLRoleRequirement. I can.

UA 참조 노드는 해당 노드가 참조하는 노드가 있는 경우, 참조하는 노드를 맵핑하는 것이다. 도 6과 같이, 1:CAEXFileType, FolderType, PropertyType, *RefSystemUnitClassPath, *RefRoleClassPath, *RefBaseRoleClassPath 등으로 맵핑될 수 있다.The UA reference node maps the reference node if there is a node referenced by the node. As shown in FIG. 6, it may be mapped to 1:CAEXFileType, FolderType, PropertyType, *RefSystemUnitClassPath, *RefRoleClassPath, *RefBaseRoleClassPath, and the like.

변환부(120)는 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성할 수 있다. 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성할 수 있다. The conversion unit 120 may generate an OPC UA node tree corresponding to the element tree structure of the AutomationML file. OPC UA node tree can be created according to the relationship of the mapped AutomationML elements.

도 6을 참조하면, InterfaceClassLib, RoleClassLib, SystemUnitClassLib 엘리먼트 하위에서 정의된 InterfaceClass, RoleClass, SystemUnitClass 엘리먼트들은 다른 노드에서 참조할 UAObjectType 노드로 맵핑된다. InstanceHierarchy 엘리먼트 하위의 InternalElement 엘리먼트 등의 노드는 UAObject 노드로 맵핑되며 SupportedRoleClass, RoleRequirements 엘리먼트 등이 포함된 경우, Reference로써 상기 기술한 UAObjectType 노드들을 참조한다. Attribute 엘리먼트는 UAVariable 노드로 맵핑되고, 해당 엘리먼트를 소유한 부모 엘리먼트가 맵핑된 노드의 자식으로 추가된다. 최종적으로 변환된 OPC UA 서버는 도 7과 같이 InstanceHierarchy에서 기술된 엘리먼트 트리 구조와 동일한 노드 트리를 가지게 된다.Referring to FIG. 6, InterfaceClass, RoleClass, and SystemUnitClass elements defined under InterfaceClassLib, RoleClassLib, and SystemUnitClassLib elements are mapped to UAObjectType nodes to be referenced by other nodes. Nodes such as the InternalElement element under the InstanceHierarchy element are mapped to UAObject nodes, and when SupportedRoleClass and RoleRequirements elements are included, refer to the UAObjectType nodes described above as Reference. The Attribute element is mapped to a UAVariable node, and the parent element that owns the element is added as a child of the mapped node. Finally, the converted OPC UA server has the same node tree as the element tree structure described in InstanceHierarchy as shown in FIG. 7.

각 맵핑된 노드 및 참조 관계들을 이용하여 각 노드들을 노드 트리로 구성하여 OPC UA 노드 트리를 생성할 수 있다. 이를 통해, OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성할 수 있다. 도 7과 같이, AutomationML 파일의 InstanceHierarchy에서 기술된 엘리먼트 트리 구조에 대응되도록 UA 노드들을 트리 구조로 배치하여 OPC UA 노드 트리 구조를 생성할 수 있다.The OPC UA node tree can be created by configuring each node into a node tree using each mapped node and reference relationships. Through this, a data structure according to the OPC UA model can be created based on the root node of the OPC UA node tree. As shown in FIG. 7, the OPC UA node tree structure may be generated by arranging UA nodes in a tree structure so as to correspond to the element tree structure described in InstanceHierarchy of the AutomationML file.

AutomationML의 IH(InstanceHierarchy)가 맵핑된 노드를 루트 노드로 하여 노드 트리를 생성한다. 예를 들어, IH에는 도 7과 같이, IE로 'Conveyor'와 'MyRobot'이 있고, 'IE:Conveyor'의 SUC(SystemUnitClass)는 'Conveyor1'이고, RC(RoleClass)는 'beltConveyor'일 수 있다. 'IE:MyRobot'의 Attribute는 'Number0'이고, IE로 'Servo Motor'를 포함할 수 있다. 'IE:Servo Motor'의 RC(RoleClass)는 'Actuator'일 수 있다. Create a node tree with the node mapped with AutomationML's InstanceHierarchy (IH) as the root node. For example, as shown in FIG. 7, the IH may have'Conveyor' and'MyRobot' as IE, the SUC (SystemUnitClass) of'IE:Conveyor' is'Conveyor1', and RC (RoleClass) may be'beltConveyor'. . The attribute of'IE:MyRobot' is'Number0' and may include'Servo Motor' as IE. RC (RoleClass) of'IE: Servo Motor' may be'Actuator'.

이러한 AutomationML 트리구조에 대응되도록 OPA UA 노드 트리를 생성한다.OPA UA node tree is created to correspond to this AutomationML tree structure.

예를 들어 도 7과 같이, AutomationML IH에 대응되는 루트 노드인 Object(710)을 기준으로, 해당 Object(710)의 자식관계인 Object(720, 730)들을 HasComponent를 통해 연결한다. 여기서, Object(720, 730)은 AutomationML의 'IE:Conveyor' 및 'IE:MyRobot'이 맵핑된 UA 노드이다. Object(720)의 ObjectType(740)은 'IE:Conveyor'의 SUC 및 RC가 맵핑된 UA 노드로 HasTypeDefinition을 통해 연결한다. For example, as shown in FIG. 7, objects 720 and 730 that are child relationships of the object 710 are connected through HasComponent based on the object 710 which is the root node corresponding to the AutomationML IH. Here, Objects 720 and 730 are UA nodes to which'IE:Conveyor' and'IE:MyRobot' of AutomationML are mapped. ObjectType 740 of Object 720 is a UA node to which SUC and RC of'IE:Conveyor' are mapped, and is connected through HasTypeDefinition.

Object(730)에 연결된 Variable(750) 및 Object(760)는 각각 'IE:MyRobot'의 Attribue 및 IE:Servo Motor'이 맵핑된 UA 노드로, HasComponent를 통해 연결한다. ObjectType(770)은 'IE:Servo Motor'의 RC가 맵핑된 UA 노드로 HasTypeDefinition을 통해 연결한다. Variable 750 and Object 760 connected to Object 730 are UA nodes to which Attribue and IE: Servo Motor of'IE:MyRobot' are mapped, respectively, and are connected through HasComponent. ObjectType 770 is a UA node to which RC of'IE:Servo Motor' is mapped and is connected through HasTypeDefinition.

상기와 같이, AutomationML 엘리먼트들이 맵핑된 UA 노드들을 노드 트리 구조로 생성하고, 이를 자료 구조로 저장한다. 생성된 자료 구조는 저장부(140)에 저장될 수 있다.As described above, UA nodes to which AutomationML elements are mapped are created in a node tree structure and stored as a data structure. The generated data structure may be stored in the storage unit 140.

쓰기부(130)는 상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성한다.The writing unit 130 generates an OPC UA file according to the OPC UA model by using the converted OPC UA node.

보다 구체적으로, 변환부(120)에서 AutomationML 엘리먼트들을 OPC UA 노드로 맵핑하여 생성한 노드 트리 구조를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성한다. 쓰기부(130)는 상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성할 수 있다.More specifically, the conversion unit 120 generates an OPC UA file according to the OPC UA model by using the node tree structure generated by mapping AutomationML elements to OPC UA nodes. The writing unit 130 may generate an XML-based OPC UA file using a data structure according to the generated OPC UA model.

쓰기부(130)는 UANodeSet 엘리먼트를 루트로 하여 OPC UA 정보 모델이 가져야하는 기본적인 XML 문서의 구조를 생성하고 OPC UA 정보 모델을 위한 네임 스페이스와 AutomationML 데이터 모델을 위한 네임 스페이스를 아래와 같이 추가한다.The writing unit 130 creates a basic XML document structure that the OPC UA information model should have by using the UANodeSet element as a root, and adds a namespace for the OPC UA information model and a namespace for the AutomationML data model as follows.

<NamespaceUris> <NamespaceUris>

<Uri>http://opcfoundation.org/UA/AutomationML/</Uri> <Uri>http://opcfoundation.org/UA/AutomationML/</Uri>

<Uri>http://smic.kr/Topology.xml</Uri> <Uri>http://smic.kr/Topology.xml</Uri>

</NamespaceUris> </NamespaceUris>

이후, 변환 과정 중에 사용된 다양한 DataType의 BrowseName과 NodeId를 기반으로 Alias 엘리먼트들을 생성하여 추가한다. 마지막으로 AutomationML 데이터 모델로부터 변환된 UAObject, UAVariable, UAObjectType 등의 노드들을 추가하고 사용자가 지정한 이름의 파일로 저장한다.Then, based on the BrowseName and NodeId of various DataTypes used during the conversion process, Alias elements are created and added. Finally, add nodes such as UAObject, UAVariable, and UAObjectType converted from the AutomationML data model, and save them as a file with the name specified by the user.

이와 같이, AutimationML 파일을 OPC UA 파일로 생성한 이후, 통합하고자 하는 OPC UA 파일과 함께, OPC UA 서버를 구축할 수 있다. 이를 통해, AutomationML 파일에 따른 정보 및 OPC UA 파일에 따른 정보들을 통합 관리가 가능해진다. 이와 같이 OPC UA 통신 기술을 통해 AutomationML 데이터 모델을 연결하면, 생산 계획, 구조 및 토폴로지, 연결 정보와 같은 정적 데이터는 AutomationML(*AutomationML)로부터 가져오고, 운영 데이터, 프로세스와 같은 동적 데이터는 OPC UA로부터 가져올 수 있어, 앞서 설명한 전체 생산 시스템의 유연한 변경이 가능하고 시스템 관리가 용이해진다. 예를 들어, 공장 생산 시스템에 변경 사항이 발생했을 경우, AutomationML을 사용하여 공장을 구성하는 컴포넌트의 속성 및 기능을 수정하고, 이를 제어 시스템용 OPC UA 정보 모델로 변환하면, 시스템 변경 사항을 바로 OPC UA 서버에 반영할 수 있고, 변경된 속성이나 기능을 빠르게 적용할 수 있다.In this way, after the AutimationML file is generated as an OPC UA file, an OPC UA server can be built together with the OPC UA file to be integrated. Through this, integrated management of information according to AutomationML file and information according to OPC UA file becomes possible. In this way, when AutomationML data model is connected through OPC UA communication technology, static data such as production plan, structure and topology, and connection information are imported from AutomationML (*AutomationML), and dynamic data such as operation data and process are obtained from OPC UA. As a result, flexible changes to the entire production system described above are possible and system management is facilitated. For example, if a change occurs in the factory production system, you can use AutomationML to modify the properties and functions of the components that make up the factory, and convert it to the OPC UA information model for the control system. It can be reflected in the UA server, and changed properties or functions can be applied quickly.

도 8은 본 발명의 일 실시예에 따른 데이터 모델 변환 방법의 흐름도이고, 도 9 내지 도 12는 본 발명의 다른 실시예에 따른 데이터 모델 변환 방법의 흐름도이다. 도 8 내지 도 12의 각 단계에 대한 상세한 설명은 도 1 내지 도 7의 데이터 모델 변환 장치에 대한 상세한 설명에 대응되는바, 이하, 중복되는 설명은 생략하도록 한다8 is a flowchart of a data model conversion method according to an embodiment of the present invention, and FIGS. 9 to 12 are flow charts of a data model conversion method according to another embodiment of the present invention. A detailed description of each step of FIGS. 8 to 12 corresponds to a detailed description of the data model conversion apparatus of FIGS. 1 to 7, and redundant descriptions will be omitted below.

본 발명의 일 실시예에 따른 이미지 처리 방법은 하나 이상의 프로세서를 포함하는 데이터 모델 변환 장치 또는 데이터 모델을 변환하는 프로세서를 포함하는 다른 장치에서 데이터 모델을 변환하는 방법에 관한 것이다. 프로세서는 AutomationML 파일을 OPC UA 파일로 변환하는 프로그램을 처리할 수 있고, AutomationML 파일을 OPC UA 파일로 변환하는 프로그램은 메모리 상에 저장되어 있을 수 있다.An image processing method according to an embodiment of the present invention relates to a method for converting a data model in a data model conversion apparatus including one or more processors or another apparatus including a processor for converting data models. The processor can process a program that converts an AutomationML file to an OPC UA file, and a program that converts an AutomationML file to an OPC UA file may be stored in memory.

본 발명의 일 실시예에 따른 데이터 모델 변환 방법은 S11 단계에서 AutomationML(이하, AML) 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성한다.The data model conversion method according to an embodiment of the present invention receives an AutomationML file created according to an AutomationML (hereinafter, AML) model in step S11, and parses the AutomationML element and the data for the AutomationML element from the received AutomationML file. Create a data structure.

이때, S11 단계는 S21 단계 내지 S24 단계를 통해 수행될 수 있다. S21 단계에서 상기 수신한 AutomationML 파일의 스키마 버전을 독출하고, S22 단계에서 상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부에서 독출하거나, 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하고, S23 단계에서 상기 저장부에서 독출된 스키마 파일 또는 상기 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱할 수 있다. 이와 같이, 파싱된 정보들로 구성된 자료 구조를 생성할 수 있다.In this case, step S11 may be performed through steps S21 to S24. In step S21, the schema version of the received AutomationML file is read, and in step S22, the schema file corresponding to the read schema version is read from the storage unit, or a schema file corresponding to the read schema version is received from the outside. In step S23, the AutomationML element and data for the AutomationML element may be parsed from the received AutomationML file using the schema file read from the storage unit or the received schema file. In this way, a data structure composed of parsed information can be created.

S11 단계 이후, S12 단계에서 상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하고, S13 단계에서 상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성한다.After step S11, based on the data structure created in step S12, the AutomationML element is converted to an OPC UA node using a mapping rule for mapping an AutomationML element to an OPC UA node, and the converted OPC UA node in step S13 Create an OPC UA file according to the OPC UA model by using.

S12 단계 이후, S31 단계에서 상기 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성하는 단계를 더 포함할 수 있다.After step S12, the step of generating the OPC UA node tree corresponding to the element tree structure of the AutomationML file in step S31 may be further included.

S31 단계 이후, S41 단계에서 상기 생성된 OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성하고, S42 단계에서 상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성할 수 있다.After step S31, the data structure according to the OPC UA model is created based on the root node among the generated OPC UA node tree in step S41, and the data structure according to the generated OPC UA model is used in step S42. OPC UA files can be created.

S12 단계는 S51 단계 및 S52 단계를 통해 수행될 수 있다. S51 단계에서 상기 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑하고, S52 단계에서 상기 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성할 수 있다. 여기서, 상기 기타 노드는, 해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드일 수 있다.Step S12 may be performed through steps S51 and S52. In step S51, the AutomationML element may be mapped to UAObject, UAObjectType, UAVariable, or other nodes, and in step S52, an OPC UA node tree may be generated according to the relationship between the mapped AutomationML elements. Here, the other node may be a node that refers to an AutomationML element, and may be a node that is mapped when there is no UA node type mapped to the AutomationML element.

한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. Meanwhile, the embodiments of the present invention can be implemented as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system.

컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tapes, floppy disks, and optical data storage devices. In addition, computer-readable recording media are distributed across networked computer systems. , Computer-readable code can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the technical field to which the present invention belongs.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , If a person of ordinary skill in the field to which the present invention belongs, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention is limited to the described embodiments and should not be defined, and all things that are equivalent or equivalent to the claims as well as the claims to be described later fall within the scope of the inventive concept. .

100: 데이터 모델 변환 장치
110: 읽기부
120: 변환부
130: 쓰기부
140: 저장부
150: 통신부
100: data model conversion device
110: reading section
120: conversion unit
130: writing unit
140: storage unit
150: communication department

Claims (12)

AutomationML 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 단계;
상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계; 및
상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성하는 단계를 포함하는 데이터 모델 변환 방법.
Receiving an AutomationML file created according to the AutomationML model, and generating a data structure by parsing the AutomationML element and data on the AutomationML element from the received AutomationML file;
Converting the AutomationML element into an OPC UA node using a mapping rule for mapping an AutomationML element to an OPC UA node based on the generated data structure; And
And generating an OPC UA file according to an OPC UA model by using the converted OPC UA node.
제1항에 있어서,
상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 단계는,
상기 수신한 AutomationML 파일의 스키마 버전을 독출하는 단계;
상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부에서 독출하거나, 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하는 단계; 및
상기 저장부에서 독출된 스키마 파일 또는 상기 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하는 단계를 포함하는 데이터 모델 변환 방법.
The method of claim 1,
Parsing the AutomationML element and data on the AutomationML element from the received AutomationML file to create a data structure,
Reading the schema version of the received AutomationML file;
Reading a schema file corresponding to the read schema version from a storage unit or receiving a schema file corresponding to the read schema version from outside; And
And parsing data for the AutomationML element and the AutomationML element from the received AutomationML file using the schema file read from the storage unit or the received schema file.
제1항에 있어서,
상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계는,
상기 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성하는 단계를 포함하는 데이터 모델 변환 방법.
The method of claim 1,
Converting the AutomationML element to an OPC UA node,
And generating an OPC UA node tree corresponding to the element tree structure of the AutomationML file.
제3항에 있어서,
상기 OPC UA 파일을 생성하는 단계는,
상기 생성된 OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성하는 단계; 및
상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성하는 단계를 포함하는 데이터 모델 변환 방법.
The method of claim 3,
The step of generating the OPC UA file,
Generating a data structure according to an OPC UA model based on a root node of the generated OPC UA node tree; And
And generating an XML-based OPC UA file using the data structure according to the generated OPC UA model.
제1항에 있어서,
상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 단계는,
상기 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑하는 단계; 및
상기 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성하는 단계를 포함하는 데이터 모델 변환 방법.
The method of claim 1,
Converting the AutomationML element to an OPC UA node,
Mapping the AutomationML element to a UAObject, UAObjectType, UAVariable, or other node; And
And generating an OPC UA node tree according to the relationship of the mapped AutomationML elements.
제5항에 있어서,
상기 기타 노드는,
해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드인 것을 특징으로 하는 데이터 모델 변환 방법.
The method of claim 5,
The other node,
The corresponding element is a node that refers to the AutomationML element, and is a node that is mapped when a UA node type mapped to the AutomationML element does not exist.
하나 이상의 메모리 및 하나 이상의 프로세서를 포함하고,
상기 프로세서는,
AutomationML 모델에 따라 작성된 AutomationML 파일을 수신하고, 상기 수신한 AutomationML 파일로부터 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하여 자료 구조를 생성하는 읽기부;
상기 생성된 자료 구조를 기초로, AutomationML 엘리먼트를 OPC UA 노드로 맵핑하는 맵핑 규칙을 이용하여 상기 AutomationML 엘리먼트를 OPC UA 노드로 변환하는 변환부; 및
상기 변환된 OPC UA 노드를 이용하여 OPC UA 모델에 따른 OPC UA 파일을 생성하는 쓰기부를 포함하는 데이터 모델 변환 장치.
One or more memories and one or more processors,
The processor,
A reading unit that receives the AutomationML file created according to the AutomationML model, and generates a data structure by parsing the AutomationML element and data on the AutomationML element from the received AutomationML file;
A conversion unit for converting the AutomationML element into an OPC UA node using a mapping rule for mapping AutomationML elements to OPC UA nodes based on the generated data structure; And
Data model conversion device comprising a writing unit for generating an OPC UA file according to the OPC UA model by using the converted OPC UA node.
제7항에 있어서,
상기 읽기부는,
상기 수신한 AutomationML 파일의 스키마 버전을 독출하고,
상기 독출된 스키마 버전에 대응하는 스키마 파일을 저장부에서 독출하거나, 통신부를 통해 외부로부터 상기 독출된 스키마 버전에 대응하는 스키마 파일을 수신하고,
상기 저장부에서 독출된 스키마 파일 또는 상기 통신부를 통해 수신한 스키마 파일을 이용하여 상기 수신한 AutomationML 파일로부터 상기 AutomationML 엘리먼트와 상기 AutomationML 엘리먼트에 대한 데이터를 파싱하는 것을 특징으로 하는 데이터 모델 변환 장치.
The method of claim 7,
The reading unit,
Read the schema version of the AutomationML file received above,
The schema file corresponding to the read schema version is read from a storage unit or a schema file corresponding to the read schema version is received from the outside through a communication unit,
And parsing the AutomationML element and data on the AutomationML element from the received AutomationML file using a schema file read from the storage unit or a schema file received through the communication unit.
제7항에 있어서,
상기 변환부는,
상기 AutomationML 파일의 엘리먼트 트리 구조에 대응되는 OPC UA 노드 트리를 생성하는 것을 특징으로 하는 데이터 모델 변환 장치.
The method of claim 7,
The conversion unit,
A data model conversion apparatus, characterized in that for generating an OPC UA node tree corresponding to the element tree structure of the AutomationML file.
제9항에 있어서,
상기 변환부는,
상기 생성된 OPC UA 노드 트리 중 루트 노드를 기준으로 OPC UA 모델에 따른 자료 구조를 생성하고,
상기 쓰기부는,
상기 생성된 OPC UA 모델에 따른 자료 구조를 이용하여 XML 기반의 OPC UA 파일을 생성하는 것을 특징으로 하는 데이터 모델 변환 장치.
The method of claim 9,
The conversion unit,
A data structure according to the OPC UA model is created based on the root node of the generated OPC UA node tree,
The writing unit,
A data model conversion device, characterized in that generating an XML-based OPC UA file by using the data structure according to the generated OPC UA model.
제7항에 있어서,
상기 변환부는,
상기 AutomationML 엘리먼트를 UAObject, UAObjectType, UAVariable, 또는 기타 노드로 맵핑하고,
상기 맵핑된 AutomationML 엘리먼트의 관계에 따라 OPC UA 노드 트리를 생성하는 것을 특징으로 하는 데이터 모델 변환 장치.
The method of claim 7,
The conversion unit,
Map the AutomationML element to UAObject, UAObjectType, UAVariable, or other nodes,
A data model conversion device, characterized in that generating an OPC UA node tree according to the relationship between the mapped AutomationML elements.
제11항에 있어서,
상기 기타 노드는,
해당 엘리먼트는 AutomationML 엘리먼트를 참조하는 노드이고, 상기 AutomationML 엘리먼트에 맵핑되는 UA 노드 타입이 존재하지 않는 경우 맵핑되는 노드인 것을 특징으로 하는 데이터 모델 변환 장치.
The method of claim 11,
The other node,
The corresponding element is a node that refers to the AutomationML element, and is a node that is mapped when a UA node type mapped to the AutomationML element does not exist.
KR1020190144390A 2019-11-12 2019-11-12 Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof KR102295100B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190144390A KR102295100B1 (en) 2019-11-12 2019-11-12 Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof
PCT/KR2019/015441 WO2021095915A1 (en) 2019-11-12 2019-11-13 Method for converting automationml data model into opc ua information model and device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144390A KR102295100B1 (en) 2019-11-12 2019-11-12 Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof

Publications (2)

Publication Number Publication Date
KR20210057533A true KR20210057533A (en) 2021-05-21
KR102295100B1 KR102295100B1 (en) 2021-08-31

Family

ID=75912423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144390A KR102295100B1 (en) 2019-11-12 2019-11-12 Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof

Country Status (2)

Country Link
KR (1) KR102295100B1 (en)
WO (1) WO2021095915A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113630452B (en) * 2021-07-28 2023-10-31 三峡大学 Remote visual monitoring system for tower construction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050114947A (en) * 2004-06-02 2005-12-07 인하대학교 산학협력단 Apparatus and methd for constructing ontology of product data using resource description framework
KR20110026973A (en) * 2009-09-09 2011-03-16 주식회사 지노스 Method for exchange data among heterogeneous systems, and data exchange system therefor
KR20110081945A (en) * 2008-09-12 2011-07-15 마이크로소프트 코포레이션 Data schema transformation using declarative transformations
US20180224821A1 (en) * 2015-08-11 2018-08-09 Siemens Aktiengesellschaft Rich contextualization of automation data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3256993B1 (en) * 2015-04-16 2021-06-16 Siemens Aktiengesellschaft Method and apparatus for operating an automation system
KR101940747B1 (en) * 2016-06-24 2019-01-22 전자부품연구원 Apparatus for managing factories in internet of things
KR101803919B1 (en) * 2017-05-19 2017-12-04 주식회사 에스알에너지 Appratus and method for monitoring energy

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050114947A (en) * 2004-06-02 2005-12-07 인하대학교 산학협력단 Apparatus and methd for constructing ontology of product data using resource description framework
KR20110081945A (en) * 2008-09-12 2011-07-15 마이크로소프트 코포레이션 Data schema transformation using declarative transformations
KR20110026973A (en) * 2009-09-09 2011-03-16 주식회사 지노스 Method for exchange data among heterogeneous systems, and data exchange system therefor
US20180224821A1 (en) * 2015-08-11 2018-08-09 Siemens Aktiengesellschaft Rich contextualization of automation data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Robert Henßen 외 1명, 'Interoperability between OPC UA and AutomationML', Procedia CIRP Volume 25, 2014년, pp. 297-304. 1부.* *

Also Published As

Publication number Publication date
WO2021095915A1 (en) 2021-05-20
KR102295100B1 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
US6732095B1 (en) Method and apparatus for mapping between XML and relational representations
US7979455B2 (en) RDF store database design for faster triplet access
US7818352B2 (en) Converting SPARQL queries to SQL queries
US7877397B2 (en) Extensible command execution for entity data model platform
US20040199905A1 (en) System and method for translating data from a source schema to a target schema
Jirkovský et al. Toward plug&play cyber-physical system components
Dimou et al. Mapping hierarchical sources into RDF using the RML mapping language
Strassner et al. A semantic interoperability architecture for Internet of Things data sharing and computing
CN103425726A (en) Processing queries in a computer network using business intelligence tools
CN107491476B (en) Data model conversion and query analysis method suitable for various big data management systems
Persson et al. A knowledge integration framework for robotics
KR102662252B1 (en) Method for converting a data model into a target ontology for automation purposes
CN101794223B (en) Design method of WADE service message architecture
US9129035B2 (en) Systems, methods, and apparatus for accessing object representations of data sets
Na et al. A method for building domain ontologies based on the transformation of UML models
KR102295100B1 (en) Method for converting AutomationML data model to OPC UA information model, and Apparatus thereof
Busboom Automated generation of OPC UA information models—A review and outlook
US20100088685A1 (en) System and method for mapping a domain modeling language to a relational store
Nam et al. A metadata integration assistant generator for heterogeneous distributed databases
US8812452B1 (en) Context-driven model transformation for query processing
Spieldenner et al. ECA2LD: From entity-component-attribute runtimes to linked data applications
Wang et al. Leveraging relational database for fast construction of OPC UA information model
Papazoglou Knowledge-driven distributed information systems
Fan et al. Data transformation of ESB based on the data model for integration
US20220121716A1 (en) Negotiation of information contracts between information providers and consumers

Legal Events

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