KR102587509B1 - System for developing application for ship by using simulation - Google Patents

System for developing application for ship by using simulation Download PDF

Info

Publication number
KR102587509B1
KR102587509B1 KR1020180096626A KR20180096626A KR102587509B1 KR 102587509 B1 KR102587509 B1 KR 102587509B1 KR 1020180096626 A KR1020180096626 A KR 1020180096626A KR 20180096626 A KR20180096626 A KR 20180096626A KR 102587509 B1 KR102587509 B1 KR 102587509B1
Authority
KR
South Korea
Prior art keywords
marine application
unit
developed
signal
simulation
Prior art date
Application number
KR1020180096626A
Other languages
Korean (ko)
Other versions
KR20200021191A (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 KR1020180096626A priority Critical patent/KR102587509B1/en
Publication of KR20200021191A publication Critical patent/KR20200021191A/en
Application granted granted Critical
Publication of KR102587509B1 publication Critical patent/KR102587509B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템은, 선박의 재원, 운항정보 및 환경정보를 설정하는 시나리오 설정부; 상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및/또는 기관 장비로부터 발생되는 신호를 생성하는 신호 생성부; 상기 신호의 입/출력 방식을 설정하는 인터페이스 설정부; 상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 통합개발 환경부; 상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 에뮬레이터부; 및 상기 에뮬레이터부를 통해 실행된 상기 개발된 선박용 어플리케이션의 구동 상황을 시각적으로 표현하는 결과 보고부를 포함하는 것을 특징으로 한다.A marine application development system using simulation according to an embodiment of the present invention includes a scenario setting unit for setting the vessel's financial resources, operation information, and environmental information; A signal generator that generates a signal generated from navigation equipment and/or a signal generated from engine equipment according to the set scenario; an interface setting unit that sets an input/output method of the signal; An integrated development environment department that automatically generates a communication module to enable communication according to the input/output method of the signal and inserts the generated communication module as a source into the developed marine application; An emulator unit providing an environment in which the developed marine application can be executed and debugged; and a result reporting unit that visually expresses the driving situation of the developed marine application executed through the emulator unit.

Description

시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템{SYSTEM FOR DEVELOPING APPLICATION FOR SHIP BY USING SIMULATION}Marine application development system using simulation {SYSTEM FOR DEVELOPING APPLICATION FOR SHIP BY USING SIMULATION}

본 발명은 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템 및 방법에 관한 것으로, 특히 시뮬레이션 및 디지털 트윈 기술을 개발을 접목한 통합 어플리케이션 개발 시스템 및 방법에 관한 것이다. The present invention relates to a marine application development system and method using simulation, and particularly to an integrated application development system and method that combines development with simulation and digital twin technology.

선박은 각종 장비나 구조물들이 총 망라되어 있는 복합 구조 건조물이다. 일반적으로 선박에 탑재되어 있는 장비와 연동하여 장비 개발 시 시간적 경제적으로 어려움이 발생한다A ship is a complex structure that includes various equipment and structures. In general, time and economic difficulties arise when developing equipment in conjunction with equipment mounted on ships.

ECDIS, RADAR, GPS, COMPASS, SPEED LOG 등의 장비들은 작게는 수백만 원에서 많게는 수천만 원을 호가하는 장비들이다. 그리고 장비의 특성상 선박에 설치되어 선박 운행시에 출력되는 데이터들을 이용하여 각종 장비들의 개발이 이루어져야 한다. 따라서 장비들의 개발에 많은 시간과 경제적인 어려움이 있다. Equipment such as ECDIS, RADAR, GPS, COMPASS, SPEED LOG, etc. cost anywhere from several million won to tens of millions of won. Additionally, due to the nature of the equipment, various types of equipment must be developed using data installed on ships and output during ship operation. Therefore, there is a lot of time and economic difficulties in developing equipment.

또한, 현재에는 전체적인 선박용 소프트웨어나 임베디드 소프트웨어 개발과 테스트를 도와주는 툴이 없다. 선박 장비들에 대한 종류와 지식을 알지 못하면 개발이 어려우며, 개발과정 중 관련장비와 도구 없이 개발이 용이하지 않을 뿐만 아니라, 실제 선박이나 혹은 장비를 보유하지 못한 인력이 관련 소프트웨어나 하드웨어를 개발하고 시험하기 어려운 문제가 있다. Additionally, there are currently no tools to help with overall marine or embedded software development and testing. Development is difficult without knowing the type and knowledge of ship equipment, and development is not easy without related equipment and tools during the development process. In addition, personnel who do not own actual ships or equipment develop and test related software or hardware. There is a problem that is difficult to solve.

이에 따라 선박에 탑재되는 소프트웨어는 항통 장비 제작사나, 기관 제작사들이 제공하는 소프트웨어에 국한되고, 다양한 분야의 아이디어가 적용된 소프트웨어와 하드웨어가 개발되기 어려운 상황이다. 또한, 실제 장비, 혹은 일부 항해 장비의 신호를 생성해주는 신호생성 시뮬레이터 존재하기는 하나, 이러한 기능을 제공하는 소프트웨어의 수가 매우 적을 뿐만 아니라, 일반적인 JAVA나 C 기반의 개발도구가 활용되고 있다. Accordingly, software installed on ships is limited to software provided by navigation equipment manufacturers or engine manufacturers, and it is difficult to develop software and hardware that incorporates ideas from various fields. In addition, although there are signal generation simulators that generate signals from actual equipment or some navigation equipment, the number of software that provides this function is very small, and general JAVA or C-based development tools are used.

따라서 프로그래밍 언어 개발사에서 제공하는 개발도구를 사용하여 실제 장비를 이용하므로 개발된 소프트웨어의 현장 적용은 용이한 반면에, 다양한 케이스에 대한 실험을 진행하기 어려우며, 실제 장비 및 이에 관련 지식 없이는 테스트에 어려움이 많다.Therefore, while it is easy to apply the developed software in the field by using actual equipment using development tools provided by programming language developers, it is difficult to conduct experiments on various cases, and testing is difficult without actual equipment and related knowledge. many.

따라서 본 발명은 상기와 같은 배경하에서 안출 된 것으로, 본 발명의 일 목적은 현장으로부터 발생한 신호를 이용하여 프로그램을 개발하고, 그 개발된 프로그램을 평가할 수 있는 선박용 어플리케이션 개발 시스템 및 방법을 제공하는데 있다. Therefore, the present invention was conceived under the above background, and one purpose of the present invention is to provide a marine application development system and method that can develop a program using signals generated from the field and evaluate the developed program.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템은, 선박의 재원, 운항정보 및 환경정보를 설정하는 시나리오 설정부; 상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및/또는 기관 장비로부터 발생되는 신호를 생성하는 신호 생성부; 상기 신호의 입/출력 방식을 설정하는 인터페이스 설정부; 상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 통합개발 환경부; 상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 에뮬레이터부; 및 상기 에뮬레이터부를 통해 실행된 상기 개발된 선박용 어플리케이션의 구동 상황을 시각적으로 표현하는 결과 보고부를 포함하는 것을 특징으로 한다.A marine application development system using simulation according to an embodiment of the present invention to achieve the above object includes a scenario setting unit that sets the vessel's financial resources, operation information, and environmental information; A signal generator that generates a signal generated from navigation equipment and/or a signal generated from engine equipment according to the set scenario; an interface setting unit that sets an input/output method of the signal; An integrated development environment department that automatically generates a communication module to enable communication according to the input/output method of the signal and inserts the generated communication module as a source into the developed marine application; An emulator unit providing an environment in which the developed marine application can be executed and debugged; and a result reporting unit that visually expresses the driving situation of the developed marine application executed through the emulator unit.

또한, 상기 시나리오 설정부는, 선박의 재원, 운항정보 및 환경정보를 유저가 직접 입력하거나, 또는 공개된 AIS 정보로부터 자동 입력되어 시나리오가 설정될 수 있다.In addition, in the scenario setting unit, a scenario may be set by directly inputting the ship's resources, operation information, and environmental information by the user, or automatically inputting them from public AIS information.

또한, 상기 신호 생성부는, 내장된 시뮬레이션 프로그램에 의해 신호를 생성하거나, 또는 외부 장치나 외부 시뮬레이션 프로그램으로부터 발생되는 신호를 사용할 수 있다. Additionally, the signal generator may generate a signal using a built-in simulation program, or may use a signal generated from an external device or an external simulation program.

또한, 상기 개발된 선박용 어플리케이션은 C, C++, C# 또는 JAVA의 환경에서 개발된 것일 수 있다.Additionally, the developed marine application may be developed in a C, C++, C#, or JAVA environment.

또한, 상기 통합개발 환경부는, C, C++, C# 또는 JAVA의 환경에서 개발된 선박용 어플리케이션과 상기 인터페이스 설정부로부터 설정된 상기 신호의 입/출력 방식이 통신이 가능하도록 통신 모듈을 자동으로 생성하여, 소스에 삽입하여 줄 수 있다. In addition, the integrated development environment unit automatically creates a communication module to enable communication between a marine application developed in a C, C++, C# or JAVA environment and the input/output method of the signal set from the interface setting unit, It can be inserted into .

또한, 상기 에뮬레이터부는, 상기 개발된 선박용 어플리케이션의 실행 중, 선박의 재원, 운항정보 및 환경정보를 수정할 수 있다.Additionally, the emulator unit can modify the ship's financial resources, operation information, and environmental information while the developed ship application is running.

또한, 상기 결과 보고부는, 상기 에뮬레이터부가 실행될 때마다 케이스번호가 부여되고, 실행 결과를 로그로 남길 수 있다.In addition, the result reporting unit is assigned a case number each time the emulator unit is executed, and can log the execution results.

또한, 상기 결과 보고부는, 상기 개발된 선박용 어플리케이션의 구동 상황을 차트와 그래프로 표현할 수 있다.In addition, the result reporting unit can express the operating status of the developed marine application in charts and graphs.

또한, 상기 결과 보고부는, 상기 개발된 선박용 어플리케이션의 이전 버전이 존재하는 경우, 이전 버전과 달라진 점을 레포팅할 수 있다.Additionally, if a previous version of the developed marine application exists, the result reporting unit may report differences from the previous version.

또한, 상기 각 부들을 제어하는 제어부를 더 포함할 수 있다.In addition, it may further include a control unit that controls each of the above units.

또한, 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 방법은, 선박의 재원, 운항정보 및 환경정보를 통해 시나리오를 설정하는 단계; 상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및/또는 기관 장비로부터 발생되는 신호를 생성하는 단계; 상기 신호의 입/출력 방식을 설정하는 단계; 상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 단계; 상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 단계; 및 상기 개발된 선박용 어플리케이션이 실행되고 구동되는 상황을 시각적으로 표현하는 단계를 포함하는 것을 특징으로 한다.In addition, a method of developing a ship application using simulation according to an embodiment of the present invention to achieve the purpose of the present invention includes the steps of setting a scenario through the ship's financial resources, operation information, and environmental information; Generating signals generated from navigation equipment and/or signals generated from engine equipment according to the set scenario; Setting an input/output method of the signal; Automatically generating a communication module to enable communication according to the input/output method of the signal, and inserting the generated communication module as a source into the developed marine application; Providing an environment in which the developed marine application can be executed and debugged; and a step of visually expressing a situation in which the developed marine application is executed and driven.

본 발명에 의하면, 장비 제조사 뿐만 아니라 다양한 분야의 인력이 선박용 어플리케이션을 개발할 수 있게 되면서 여러 새로운 아이디어가 적용될 수 있는 환경을 구축할 수 있다.According to the present invention, not only equipment manufacturers but also personnel in various fields can develop marine applications, creating an environment in which various new ideas can be applied.

또한, 프로그램 개발과 장비 인터페이스가 용이하며, 결과를 시뮬레이션 하고 디버깅을 진행할 수 있는 효과를 얻을 수 있다.In addition, program development and equipment interface are easy, and you can achieve the effect of simulating results and performing debugging.

도 1은 본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템의 개략 블록도를 도시한다.
도 2는 도 1의 신호 생성부의 구체적인 구성의 개략 블록도를 도시한다.
도 3은 본 발명의 일 실시예에 따른 선박용 어플리케이션 개발 방법의 흐름도를 도시한다.
Figure 1 shows a schematic block diagram of a marine application development system using simulation according to an embodiment of the present invention.
FIG. 2 shows a schematic block diagram of the specific configuration of the signal generating unit of FIG. 1.
Figure 3 shows a flowchart of a method for developing a marine application according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. While describing each drawing, similar reference numerals are used for similar components.

및/또는 이라는 용어가 등장하는 경우 이는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.When the term and/or appears, it includes a combination of a plurality of related description items or any of the plurality of related description items.

어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is said to be “connected” or “connected” to another component, it is understood that it may be directly connected or connected to the other component, but that other components may exist in between. It should be. On the other hand, when a component is said to be “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “포함하다” 또는 “가지다” 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, component parts, or combinations thereof described in the specification, but are not intended to include one or more other features or It should be understood that this does not exclude in advance the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless clearly defined in the present application, should not be interpreted in an ideal or excessively formal sense. No.

도 1은 본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템의 개략 블록도를 도시하고, 도 2는 도 1의 신호 생성부의 구체적인 구성의 개략 블록도를 도시한다. FIG. 1 shows a schematic block diagram of a marine application development system using simulation according to an embodiment of the present invention, and FIG. 2 shows a schematic block diagram of the specific configuration of the signal generator of FIG. 1.

도 1 및 도 2를 참조하면, 본 발명의 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템은, 제어부(10), 시나리오 설정부(20), 신호 생성부(30), 인터페이스 설정부(40), 통합 개발환경부(50), 에뮬레이터부(60) 및 결과 보고부(70)를 포함한다. Referring to Figures 1 and 2, the marine application development system using simulation of the present invention includes a control unit 10, a scenario setting unit 20, a signal generating unit 30, an interface setting unit 40, and an integrated development environment unit. (50), emulator unit 60, and result reporting unit 70.

구체적으로, 본 발명의 일 실시예에 따른 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템은, 선박의 재원, 운항정보 및 환경정보를 설정하는 시나리오 설정부(20), 상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및/또는 기관 장비로부터 발생되는 신호를 생성하는 신호 생성부(30), 상기 신호의 입/출력 방식을 설정하는 인터페이스 설정부(40), 상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 통합개발 환경부(50), 상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 에뮬레이터부(60), 상기 에뮬레이터부를 통해 실행된 상기 개발된 선박용 어플리케이션의 구동 상황을 시각적으로 표현하는 결과 보고부(70)와, 상기 각 부들을 제어하는 제어부(10)를 포함한다.Specifically, the marine application development system using simulation according to an embodiment of the present invention includes a scenario setting unit 20 that sets the ship's financial resources, operation information, and environmental information, and signals generated from navigation equipment according to the set scenario. and/or a signal generator 30 that generates a signal generated from engine equipment, an interface setting unit 40 that sets an input/output method of the signal, and communication to enable communication according to the input/output method of the signal. An integrated development environment unit 50 that automatically generates modules and inserts the created communication module as a source into the developed marine application, and an emulator unit 60 that provides an environment in which the developed marine application can be executed and debugged. , a result reporting unit 70 that visually expresses the driving situation of the developed marine application executed through the emulator unit, and a control unit 10 that controls each of the units.

제어부(10)는 본 발명의 선박용 어플리케이션 개발 시스템의 각 부를 제어할 수 있다.The control unit 10 can control each part of the marine application development system of the present invention.

시나리오 설정부(20)는 선박의 재원, 운항정보와 환경정보를 통해 선박의 운항 시나리오를 설정하는 역할을 수행한다. The scenario setting unit 20 serves to set the ship's operation scenario through the ship's financial resources, operation information, and environmental information.

선박의 재원이란 선명, MMSI, 선박 사이즈, 선박 중량, 선박 종류, 화물 종류, 흘수, 최대 선속, 목적지, 인원, IMO 번호, 호출 부호 등 일 수 있고, 선박의 운항정보란, 선박의 항해 관련 정보 즉, 선박을 운항할 항로와 운항 선속 등 일 수 있다. 또한, 환경정보는 선박의 운항과 관련된 기상상태 또는 해당 지역의 장애물 여부 등 일 수 있다. 이러한 선박의 재원, 운항정보 및 환경정보는 유저가 직접 입력하거나 또는 공개된 AIS 정보로부터 운항 사례를 그대로 받아와 시나리오가 설정될 수 있다. The ship's financial resources may include name, MMSI, ship size, ship weight, ship type, cargo type, draft, maximum ship speed, destination, personnel, IMO number, call sign, etc. The ship's operation information refers to information related to the ship's voyage. In other words, it may be the route on which the ship will operate and the speed of the ship. Additionally, environmental information may include weather conditions related to the operation of a ship or whether there are obstacles in the area. The ship's financial resources, operation information, and environmental information can be entered directly by the user, or a scenario can be set by receiving operation cases from publicly available AIS information.

신호 생성부(30)는 앞서 시나리오 설정부(20)에 의해 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및/또는 기관 장비로부터 발생되는 신호를 생성할 수 있다.The signal generation unit 30 may generate a signal generated from navigation equipment and/or a signal generated from engine equipment according to a scenario previously set by the scenario setting unit 20.

신호 생성부(30)는 신호를 발생시킬 각종 장비를 설정하는 것으로 기본적으로 제공되는 항해용 장비 중 일부 혹은 전체를 선택가능 하도록 할 수 있다. 항해 장비는 ECDIS, GPS, RADAR (L, X), AIS, SOUNDER, MRU, HEADING, SPEED METER, VDR, WIND, Water Temp 등일 수 있다. 또한, 추가로 기관 장비 중 일부 혹은 전체를 선택가능 하도록 할 수 있으며, 기관 장비는 엔진이나 기타 보조기기일 수 있다.The signal generator 30 sets various equipment to generate signals, allowing some or all of the basic navigation equipment to be selected. Navigation equipment may be ECDIS, GPS, RADAR (L, X), AIS, SOUNDER, MRU, HEADING, SPEED METER, VDR, WIND, Water Temp, etc. Additionally, some or all of the engine equipment can be selected, and the engine equipment may be an engine or other auxiliary equipment.

선택된 시나리오에 따라 신호를 생성할 장비와 외부에서 개발된 모델로부터 신호 받을 장비를 선택하고, 항해 관련된 장비 뿐만 아니라 기관 장비를 추가할 수 있으며, 상기 외부 개발 모델은 별도 개발한 다이나믹 모델(디지털 트윈; 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델)과 인터페이스 할 수 있다. Depending on the selected scenario, equipment to generate signals and equipment to receive signals from an externally developed model can be selected, and not only navigation-related equipment but also engine equipment can be added, and the externally developed model can be used as a separately developed dynamic model (digital twin; It can interface with physical objects and virtual models that are expressed identically on computers.

상기 신호 생성부(30)는 신호를 생성시킬 각종 장비를 설정하는데, 기본 제공하는 항해용 장비 중에서 사용할 것을 선택하고, AIS의 경우 위성 AIS 신호를 받아서 사용할 수 있다. 그 밖의 장비 추가 기능으로서 FMU/FMI를 지원하는 시뮬레이션 모델을 연결하거나(옵션 1), 외부 선박 장치로부터 입력되는 신호를 사용할 수도 있다(옵션 2). The signal generator 30 sets various equipment to generate signals, selecting which one to use among the basic navigation equipment, and in the case of AIS, can receive and use satellite AIS signals. As additional equipment features, you can connect a simulation model that supports FMU/FMI (option 1) or use signals input from external ship devices (option 2).

또한, 신호 생성부(30)는 소스 신호 선택부(30-1)를 포함하고, 이 소스 신호 선택부(30-1)는 선박 각종 장비의 소스 신호를 선택하는데, 내장된 시뮬레이션 엔진에 의한 신호를 발생할 수 있다(옵션 1). 또한 소스 신호 선택부(30-1)는 외부 장치로부터 입력된 신호를 사용할 수도 있다(옵션 2). 또한, 소스 신호 선택부(3O-1)는 FMU/FMI 시뮬레이션 사용시 외부에서 입력 받을 데이터포인트를 선택할 수 있다(옵션 3).In addition, the signal generator 30 includes a source signal selector 30-1, which selects source signals from various ship equipment, and the signal generated by the built-in simulation engine may occur (option 1). Additionally, the source signal selection unit 30-1 may use a signal input from an external device (option 2). Additionally, the source signal selection unit 3O-1 can select data points to be input from the outside when using FMU/FMI simulation (option 3).

또한, 신호 생성부(30)는 입/출력 인터페이스 선택부(30-2)를 포함하는데, 이 입/출력 인터페이스 선택부(30-2)는 필요에 따라 입력 인터페이스를 선택하는데, 선박 외부 장비나 외부 시뮬레이터가 연동되는 경우 즉, 상기 입/출력 인터페이스 선택부(30-2)가 다른 곳으로부터 신호를 받아 사용할 경우만 입력 인터페이스를 선택하며, 디지털 트윈과 같이 내장 시뮬레이터의 경우는 상호 신호가 공유되므로 입력 인터페이스를 선택할 필요가 없다. 이에 의해 외부 선박 장비와 연동되어 상기 인터페이스 설정부(40)에서 설정된 인터페이스 중에서 선택할 수 있다. In addition, the signal generation unit 30 includes an input/output interface selection unit 30-2, which selects an input interface as needed, such as equipment external to the ship or When an external simulator is linked, that is, the input/output interface selection unit 30-2 selects an input interface only when receiving and using signals from another source, and in the case of a built-in simulator such as a digital twin, mutual signals are shared. There is no need to select an input interface. As a result, it is possible to select from among the interfaces set in the interface setting unit 40 in conjunction with external ship equipment.

또한, 신호 생성부(30)는 출력 데이터 포맷 선택부(30-3)를 포함하고, 이 출력 데이터 포맷 선택부(30-3)는 출력 데이터 포맷을 선택하는데, NMEA0813, XML, JSON, SOAP 등의 출력되는 데이터 포맷을 설정한다. 기본적으로는 출력 데이터 포맷 선택부(30-3)는 선박 장비의 고유 포맷을 사용하도록 되어 있으며, 필요에 따라서 다른 포맷으로 변경하여 출력할 수 있다. In addition, the signal generation unit 30 includes an output data format selection unit 30-3, which selects an output data format, such as NMEA0813, XML, JSON, SOAP, etc. Set the output data format. Basically, the output data format selection unit 30-3 is designed to use the unique format of the ship equipment, and can be changed to another format and output as needed.

또한, 신호 생성부(30)는 상기 입/출력 인터페이스 선택부(30-2)에 의해 출력 인터페이스를 선택하는데, 외부 선박 장비마다 출력될 인터페이스를 선택하는데 일반적으로는 상기 인터페이스 설정부(40)에서 사전에 설정된 인터페이스 중 하나를 선택할 수 있다. In addition, the signal generation unit 30 selects an output interface by the input/output interface selection unit 30-2, and selects an interface to be output for each external ship equipment. In general, the interface setting unit 40 selects the output interface. You can choose one of the preset interfaces.

인터페이스 설정부(40)는 상기 신호 생성부(30)로부터 생성된 신호의 입/출력 방식을 설정하는 역할을 수행한다.The interface setting unit 40 serves to set the input/output method of the signal generated from the signal generating unit 30.

즉, 상기 인터페이스 설정부(40)는 장비의 신호를 어떠한 프로토콜로 어떻게 보낼 것인지 또는 받을 것인지 설정할 수 있다.In other words, the interface setting unit 40 can set how to send or receive signals from the equipment and by what protocol.

구체적으로 상기 인터페이스 설정부(40)는 신호의 입/출력을 위한 포트를 설정하는데, 일반적으로 사용되는 시리얼(UART) 포트번호, TCP/UDP 포트번호, MODBUS RTU, TCP/UDP PORT, OPC UA, OPC DA 등을 설정할 수 있다.Specifically, the interface setting unit 40 sets ports for signal input/output, including commonly used serial (UART) port numbers, TCP/UDP port numbers, MODBUS RTU, TCP/UDP PORT, OPC UA, OPC DA, etc. can be set.

통합개발 환경부(50)는 상기 인터페이스 설정부(40)에 의해 설정된 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 역할을 수행한다.The integrated development environment unit 50 automatically creates a communication module to enable communication according to the input/output method of the signal set by the interface setting unit 40, and uses the generated communication module as a source in the developed marine application. It performs the role of insertion.

즉, 통합개발 환경부(50)는 상기 인터페이스 설정부(40)에서 설정된 포트와 용이하게 통신 가능한 소프트웨어 품질 기준을 만족하는 코드를 제공할 수 있다.That is, the integrated development environment unit 50 can provide code that satisfies software quality standards that can easily communicate with the port set in the interface setting unit 40.

개발된 선박용 어플리케이션은 C/C++/C#, JAVA 등의 개발환경에서 개발될 수 있고 이러한 환경에서 개발된 선박용 어플리케이션과 상기 인터페이스 설정부(40)로부터 설정된 상기 신호의 입/출력 방식이 통신이 가능하도록 통신 모듈을 자동으로 생성하여, 소스에 삽입해 줄 수 있다.The developed marine application can be developed in a development environment such as C/C++/C#, JAVA, etc., and the input/output method of the signal set from the interface setting unit 40 can be communicated with the marine application developed in this environment. Communication modules can be automatically created and inserted into the source.

에뮬레이터부(60)는 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 역할을 수행한다.The emulator unit 60 serves to provide an environment in which the developed marine application can be executed and debugged.

또한, 개발된 선박용 어플리케이션의 실행 중에, 시뮬레이터로부터 생성되는 다양한 기능을 제공할 수 있다. 예를 들면, 기상, 장애물, 선박의 속도, 변침, 항로, 선수 등의 정보를 수정할 수 있다.Additionally, during execution of the developed marine application, various functions generated from the simulator can be provided. For example, information such as weather, obstacles, ship speed, change of course, course, bow, etc. can be modified.

또한, 개발된 선박용 어플리케이션이 실행되고 조작되는 조건과 수정된 정보를 저장하였다가 차후 사용 시 용이하게 동일한 조건과 정보를 불러올 수 있는 기능을 가질 수 있고, 이를 통해 이전 적용 조건과 정보를 용이하게 적용할 수 있다.In addition, the developed marine application can have a function to store the conditions and modified information under which it is executed and manipulated, and then easily retrieve the same conditions and information for future use. This makes it easy to apply previous application conditions and information. can do.

결과 보고부(70)는 상기 에뮬레이터부(60)를 통해 실행된 상기 개발된 선박용 어플리케이션의 구동 상황을 시작적으로 표현하는 역할을 수행한다.The result reporting unit 70 serves to initially express the driving situation of the developed marine application executed through the emulator unit 60.

즉, 결과 보고부(70)는 전체적인 구동 상황들을 차트와 그래프 등 시각적으로 표현할 수 있으며, 해당 어플리케이션의 이전 버전이 존재하거나 유사한 구동패턴을 보이는 어플리케이션에 존재하는 경우, 이전 버전 또는 타 어플리케이션과 달라진 사항들을 레포팅 할 수 있다.In other words, the result reporting unit 70 can visually express the overall driving situation, such as charts and graphs, and if a previous version of the application exists or an application with a similar driving pattern exists, changes from the previous version or other applications are reported. You can report them.

또한, 결과 보고부(70)는 상기 에뮬레이터부(60)가 실행될 때마다 케이스번호를 부여하고, 그 실행 결과를 로그로 기록할 수 있다. 또한, 다수의 케이스의 결과를 한 차트에서 확인할 수 있도록 다양한 그래프를 제공할 수 있다. Additionally, the result reporting unit 70 can assign a case number each time the emulator unit 60 is executed and record the execution results in a log. Additionally, various graphs can be provided so that the results of multiple cases can be checked in one chart.

도 3은 본 발명의 일 실시예에 따른 선박용 어플리케이션 개발 방법의 흐름도를 도시한다. Figure 3 shows a flowchart of a method for developing a marine application according to an embodiment of the present invention.

도 3을 참조하면, 도 1과 2를 참조로 하여 설명한 바와 같이, 선박의 재원, 운항정보 및 환경정보를 통해 시나리오를 설정한다(S10). 이어서, 상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 및 기관 장비로부터 발생되는 신호를 생성한다(S20). 그리고 상기 신호의 입/출력 방식을 설정한다(S30). 이어서, 상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입한다(S40). 그 다음, 상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공한다(S50). 그리고 상기 개발된 선박용 어플리케이션이 실행되고 구동되는 상황을 시각적으로 표현한다(S60).Referring to Figure 3, as explained with reference to Figures 1 and 2, a scenario is set through the ship's financial resources, operation information, and environmental information (S10). Next, signals generated from navigation equipment and signals generated from engine equipment are generated according to the set scenario (S20). Then, set the input/output method of the signal (S30). Next, a communication module is automatically created to enable communication according to the input/output method of the signal, and the created communication module is inserted as a source into the developed marine application (S40). Next, an environment in which the developed marine application can be executed and debugged is provided (S50). And the situation in which the developed marine application is executed and driven is visually expressed (S60).

이상 기술한 본 발명에 의하면, 장비 제조사 뿐만 아니라 다양한 분야의 인력이 선박용 어플리케이션을 개발할 수 있게 되면서 여러 새로운 아이디어가 적용될 수 있는 환경을 구축할 수 있으며, 프로그램 개발과 장비 인터페이스가 용이하며, 결과를 시뮬레이션하고 디버깅을 진행할 수 있는 효과를 얻을 수 있다.According to the present invention described above, not only equipment manufacturers but also personnel in various fields can develop marine applications, creating an environment in which various new ideas can be applied, program development and equipment interface are easy, and the results can be simulated. You can achieve the effect of being able to proceed with debugging.

지금까지 본 발명의 시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템 및 방법을 도면을 참조로 하여 상세히 기술하였지만, 이것은 예시 목적이지 이것으로 본 발명을 한정하고자 함은 아니며, 본 발명의 범위는 상세한 설명보다는 이하의 부속청구범위에 의해 정해지며, 본 발명의 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형 형태는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.So far, the marine application development system and method using simulation of the present invention have been described in detail with reference to the drawings, but this is for illustrative purposes only and is not intended to limit the present invention, and the scope of the present invention is limited to the following parts rather than the detailed description. It is determined by the claims, and all changes or modifications derived from the meaning and scope of the claims of the present invention and their equivalent concepts should be construed as being included in the scope of the present invention.

10: 제어부
20: 시나리오 설정부
30: 신호 생성부
30-1: 소스 신호 선택부
30-2: 입/출력 인터페이스 선택부
30-3: 출력 데이터 포맷 선택부
40: 인터페이스 설정부
50: 통합개발 환경부
60: 에뮬레이터부
70: 결과 보고부
10: control unit
20: Scenario setting section
30: signal generation unit
30-1: Source signal selection unit
30-2: Input/output interface selection unit
30-3: Output data format selection unit
40: Interface setting unit
50: Ministry of Integrated Development and Environment
60: Emulator section
70: Results reporting section

Claims (11)

선박의 재원, 운항정보 및 환경정보를 설정하는 시나리오 설정부;
상기 설정된 시나리오에 따라 항해 장비로부터 발생되는 신호 또는 기관 장비로부터 발생되는 신호를 생성하는 신호 생성부;
상기 신호의 입/출력 방식을 설정하는 인터페이스 설정부;
상기 신호의 입/출력 방식에 따라 통신이 가능하도록 통신 모듈을 자동으로 생성하며, 개발된 선박용 어플리케이션에 상기 생성된 통신 모듈을 소스로서 삽입하는 통합개발 환경부;
상기 개발된 선박용 어플리케이션이 실행되고 디버깅할 수 있는 환경을 제공하는 에뮬레이터부; 및
상기 에뮬레이터부를 통해 실행된 상기 개발된 선박용 어플리케이션의 구동 상황을 시각적으로 표현하는 결과 보고부;를 포함하고
상기 시나리오 설정부는,
선박의 재원, 운항정보 및 환경정보가 공개된 AIS 정보 및 기상 정보로부터 자동 입력되어 시나리오가 설정되며,
상기 신호 생성부는,
외부의 상기 항해 장비 또는 외부의 상기 기관 장비로부터의 신호를 소스 신호로 선택하고, 상기 인터페이스 설정부에 의해 기 설정된 인터페이스를 통해 입력받아, 상기 항해 장비 또는 상기 기관 장비의 고유 포맷을 사용하여 출력하며,
상기 개발된 선박용 어플리케이션은
C, C++, C# 또는 JAVA의 환경에서 개발된 것이고,
상기 통합개발 환경부는,
상기 C, C++, C# 또는 JAVA의 환경에서 개발된 선박용 어플리케이션과 상기 인터페이스 설정부로부터 설정된 상기 신호의 입/출력 방식이 통신이 가능하도록 통신 모듈을 자동으로 생성하여, 상기 선박용 어플리케이션의 소스에 삽입하여 주는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
A scenario setting unit that sets the ship's financial resources, operation information, and environmental information;
a signal generator that generates a signal generated from navigation equipment or a signal generated from engine equipment according to the set scenario;
an interface setting unit that sets an input/output method of the signal;
An integrated development environment department that automatically generates a communication module to enable communication according to the input/output method of the signal and inserts the generated communication module as a source into the developed marine application;
An emulator unit providing an environment in which the developed marine application can be executed and debugged; and
It includes a result reporting unit that visually expresses the driving situation of the developed marine application executed through the emulator unit;
The scenario setting unit,
A scenario is set by automatically inputting the ship's financial resources, operation information, and environmental information from publicly available AIS information and weather information.
The signal generator,
Select a signal from the external navigation equipment or the external engine equipment as a source signal, receive it as an input through an interface preset by the interface setting unit, and output it using a unique format of the navigation equipment or the engine equipment. ,
The marine application developed above is
Developed in a C, C++, C# or JAVA environment,
The Ministry of Integrated Development and Environment,
A communication module is automatically created to enable communication between the marine application developed in the C, C++, C# or JAVA environment and the signal input/output method set from the interface setting unit, and inserted into the source of the marine application. Characterized by giving,
Marine application development system using simulation.
삭제delete 삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 에뮬레이터부는,
상기 개발된 선박용 어플리케이션의 실행 중, 선박의 재원, 운항정보 및 환경정보를 수정할 수 있는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
According to claim 1,
The emulator part is,
Characterized in that the ship's financial resources, operation information, and environmental information can be modified while running the developed ship application.
Marine application development system using simulation.
제 1 항에 있어서,
상기 결과 보고부는,
상기 에뮬레이터부가 실행될 때마다 케이스번호가 부여되고, 실행 결과를 로그로 남기는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
According to claim 1,
The result reporting department said,
Characterized in that each time the emulator unit is executed, a case number is assigned and the execution results are logged.
Marine application development system using simulation.
제 1 항에 있어서,
상기 결과 보고부는,
상기 개발된 선박용 어플리케이션의 구동 상황을 차트와 그래프로 표현하는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
According to claim 1,
The result reporting department said,
Characterized in that the operating status of the developed marine application is expressed in charts and graphs,
Marine application development system using simulation.
제 8 항에 있어서,
상기 결과 보고부는,
상기 개발된 선박용 어플리케이션의 이전 버전이 존재하는 경우, 이전 버전과 달라진 점을 레포팅하는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
According to claim 8,
The result reporting department said,
If a previous version of the developed marine application exists, the differences from the previous version are reported,
Marine application development system using simulation.
제 1 항에 있어서,
상기 시나리오 설정부, 상기 신호 생성부, 상기 인터페이스 설정부, 상기 통합개발 환경부, 상기 에뮬레이터부 및 상기 결과 보고부를 제어하는 제어부를 더 포함하는 것을 특징으로 하는,
시뮬레이션을 이용한 선박용 어플리케이션 개발 시스템.
According to claim 1,
Characterized in that it further comprises a control unit that controls the scenario setting unit, the signal generating unit, the interface setting unit, the integrated development environment unit, the emulator unit, and the result reporting unit,
Marine application development system using simulation.
삭제delete
KR1020180096626A 2018-08-20 2018-08-20 System for developing application for ship by using simulation KR102587509B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180096626A KR102587509B1 (en) 2018-08-20 2018-08-20 System for developing application for ship by using simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180096626A KR102587509B1 (en) 2018-08-20 2018-08-20 System for developing application for ship by using simulation

Publications (2)

Publication Number Publication Date
KR20200021191A KR20200021191A (en) 2020-02-28
KR102587509B1 true KR102587509B1 (en) 2023-10-11

Family

ID=69638392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180096626A KR102587509B1 (en) 2018-08-20 2018-08-20 System for developing application for ship by using simulation

Country Status (1)

Country Link
KR (1) KR102587509B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102293238B1 (en) * 2020-03-09 2021-08-24 한국조선해양 주식회사 Simulator system for ship operation
KR102365367B1 (en) * 2020-07-30 2022-02-22 한국해양대학교 산학협력단 Performance estimation and controlling method for ship air lubrication system using digital twin
KR102529530B1 (en) * 2021-06-30 2023-05-04 재단법인 중소조선연구원 Test method for development of safe navigation support service applications based on ship simulator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101683458B1 (en) * 2016-04-06 2016-12-07 주식회사 에그 Ship-based simulation system based on field data
JP2017173309A (en) * 2016-03-18 2017-09-28 トヨタ自動車株式会社 Vehicle simulation device utilizing cloud source

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101728603B1 (en) * 2015-05-28 2017-04-19 한국해양대학교 산학협력단 Three dimension ship maneuvering simulator available on the pc using google map and enc
KR20180083531A (en) * 2017-01-13 2018-07-23 한국전자통신연구원 Test automation system and test automation method for satellite control software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017173309A (en) * 2016-03-18 2017-09-28 トヨタ自動車株式会社 Vehicle simulation device utilizing cloud source
KR101683458B1 (en) * 2016-04-06 2016-12-07 주식회사 에그 Ship-based simulation system based on field data

Also Published As

Publication number Publication date
KR20200021191A (en) 2020-02-28

Similar Documents

Publication Publication Date Title
KR102587509B1 (en) System for developing application for ship by using simulation
US9940222B2 (en) System and method for safety-critical software automated requirements-based test case generation
US8812284B2 (en) Highly representative real-time simulation of an avionics system
CN109948228A (en) A kind of confronting simulation and Effectiveness Evaluation System based on equipment parametrization
JP2009283004A (en) Model-based diagnostic interface
AU2019246793B2 (en) Generalized virtualization platform for systems using hardware abstraction software layers
KR102637132B1 (en) Simulation system and method for intergrated interlocking with combat system
Perrotin et al. TASTE: An open-source tool-chain for embedded system and software development
Hinrichs et al. A Scaleable Online Programming Platform for Software Engineering Education.
Rash et al. Experiences with a requirements-based programming approach to the development of a NASA autonomous ground control system
KR101025956B1 (en) Method for avionic simulation model of avionics integration laboratory system, and media that can record program for method the same
Parasch et al. Development and application of a designer oriented cyclic simulator
KR20140060075A (en) Multi-function display operational flight device of mission computer using a java virtual machine and controlling method for the same
Monperrus et al. Model-driven simulation of a maritime surveillance system
Garratt et al. Achieving Interoperability Between Gaming Engines by Utilizing Open Simulation Standards
Kostadinov et al. LCP: FPGA based processors for education
Alpers et al. Semi-real evaluation environments for mobile applications
Stepien et al. Visualizing Execution Models and Testing Results
Ferguson et al. System software framework for system of systems avionics
Kranzlmüller et al. Parallel program visualization with MUCH
Voas Thoughts on Complexity, Trust, and Truth.
KR102555537B1 (en) The plotting table simulation apparatus for naval vessel system simulation
Triebig et al. Simulating automatic high bay warehouses using agents
Rzepka Using SREM to specify command and control software requirements
Gang et al. A simulation technique service training method of guidance radar equipment based on visual simulation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant