KR-102961874-B1 - Method and system for automatically generating PLC logic based on natural language using artificial intelligence
Abstract
본 발명의 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법에 있어서, 서비스제공서버가 복수의 입력 및 출력 컴포넌트가 포함된 로직 자동생성 프로그램의 사용자 인터페이스 및 기능을 사용자단말에 제공하는 단계와, 사용자단말이 상기 로직 자동생성 프로그램의 사용자 인터페이스를 통해 복수의 입력 및 출력 컴포넌트 중 적어도 하나의 컴포넌트를 선택하고, 선택한 컴포넌트 정보를 서비스제공서버에 전달하는 단계와, 서비스제공서버가 사용자단말로부터 수신한 컴포넌트 정보를 기반으로 결선도를 생성하여 사용자단말에 전달하는 단계와, 사용자단말이 상기 결선도를 기반으로 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 자연어로 입력하여 서비스제공서버에 전달하는 단계와, 서비스제공서버가 사용자단말로부터 수신한 자연어 입력을 분석하여 결선도에 포함된 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 매핑하고 로직데이터를 생성하는 단계와, 사용자단말이 결선된 입력 및 출력 컴포넌트들을 대상으로 수행할 로직의 동작 조건을 자연어로 입력하여 서비스제공서버에 전달하는 단계와, 서비스제공서버가 사용자단말로부터 수신한 로직의 동작 조건에 대한 자연어 입력을 분석하여 결선도 및 로직데이터를 기반으로 제어 로직을 완성하는 단계 및 서비스제공서버가 완성된 제어 로직을 기반으로 PLC 프로그램 코드를 자동으로 생성하고 사용자단말에 전달하는 단계를 포함한다.
Inventors
- 안영태
Dates
- Publication Date
- 20260506
- Application Date
- 20250709
Claims (8)
- 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법에 있어서, 서비스제공서버가 복수의 입력 및 출력 컴포넌트가 포함된 로직 자동생성 프로그램의 사용자 인터페이스 및 기능을 사용자단말에 제공하는 단계; 사용자단말이 상기 로직 자동생성 프로그램의 사용자 인터페이스를 통해 복수의 입력 및 출력 컴포넌트 중 적어도 하나의 컴포넌트를 선택하고, 선택한 컴포넌트 정보를 서비스제공서버에 전달하는 단계; 서비스제공서버가 사용자단말로부터 수신한 컴포넌트 정보를 기반으로 결선도를 생성하여 사용자단말에 전달하는 단계; 사용자단말이 상기 결선도를 기반으로 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 자연어로 입력하여 서비스제공서버에 전달하는 단계; 서비스제공서버가 사용자단말로부터 수신한 자연어 입력을 분석하여 결선도에 포함된 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 매핑하고 로직데이터를 생성하는 단계; 사용자단말이 결선된 입력 및 출력 컴포넌트들을 대상으로 수행할 로직의 동작 조건을 자연어로 입력하여 서비스제공서버에 전달하는 단계; 서비스제공서버가 사용자단말로부터 수신한 로직의 동작 조건에 대한 자연어 입력을 분석하여 결선도 및 로직데이터를 기반으로 제어 로직을 완성하는 단계 및 서비스제공서버가 완성된 제어 로직을 기반으로 PLC 프로그램 코드를 자동으로 생성하고 사용자단말에 전달하는 단계를 포함하고, 서비스제공서버는 자연어 입력을 분석할 때, 산업 자동화 도메인에 특화된 용어 사전 또는 문맥 분석 알고리즘 중 적어도 하나를 기반으로 트리거, 액션, 조건 및 시간 정보를 구분하여 추출하고, 상기 컴포넌트 정보는, 각 입력 및 출력 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보 중 적어도 하나를 포함하고, 상기 서비스제공서버는 각 입력 및 출력 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보를 기준으로 컴포넌트 간 연결 관계를 정의하고, 생성된 결선도 데이터를 기반으로 핀 번호, 신호 종류, 연결 대상을 자동으로 매핑하여 이후 로직 생성 단계에서 참조할 수 있도록 결선도 데이터를 생성하고, 상기 서비스제공서버는 수신된 자연어 입력을 상기 결선도 데이터와 연계하여 컴포넌트별로 어떤 동작을 수행해야 하는지를 매핑하고, 이를 통해 컴포넌트 간의 동작 시퀀스를 정의하고, 상기 서비스제공서버는 자연어 해석 과정에서 모호한 입력이 존재하거나 다의어로 인한 해석 충돌이 발생하는 경우, 우선 순위 규칙, 도메인 기반 규칙, 사전 등록된 유사 사례 기반 추천을 통해 해석 정확도를 향상시키는 것을 특징으로 하는 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법.
- 제1항에 있어서, 사용자단말이 서비스제공서버에 PLC 프로그램 코드의 동작에 대한 시뮬레이션을 요청하고, 서비스제공서버가 생성된 PLC 프로그램 코드의 동작을 가상 시뮬레이션 환경에서 실행 및 검증하는 단계; 및 서비스제공서버가 시뮬레이션 실행 및 검증 결과를 사용자단말에 제공하는 단계를 더 포함하는 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법.
- 삭제
- 삭제
- 로직 자동생성 프로그램의 사용자 인터페이스를 통해 복수의 입력 및 출력 컴포넌트 중 적어도 하나의 컴포넌트를 선택하고, 선택한 컴포넌트 정보를 서비스제공서버에 전달하고, 결선도를 기반으로 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 자연어로 입력하여 서비스제공서버에 전달하고, 결선된 입력 및 출력 컴포넌트들을 대상으로 수행할 로직의 동작 조건을 자연어로 입력하여 서비스제공서버에 전달하는 사용자단말; 및 복수의 입력 및 출력 컴포넌트가 포함된 로직 자동생성 프로그램의 사용자 인터페이스 및 기능을 사용자단말에 제공하고, 사용자단말로부터 수신한 컴포넌트 정보를 기반으로 결선도를 생성하여 사용자단말에 전달하고, 사용자단말로부터 수신한 자연어 입력을 분석하여 결선도에 포함된 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 매핑하고 로직데이터를 생성하고, 사용자단말로부터 수신한 로직의 동작 조건에 대한 자연어 입력을 분석하여 결선도 및 로직데이터를 기반으로 제어 로직을 완성하고, 완성된 제어 로직을 기반으로 PLC 프로그램 코드를 자동으로 생성하여 사용자단말에 전달하는 서비스제공서버를 포함하고, 상기 서비스제공서버는 자연어 입력을 분석할 때, 산업 자동화 도메인에 특화된 용어 사전 또는 문맥 분석 알고리즘 중 적어도 하나를 기반으로 트리거, 액션, 조건 및 시간 정보를 구분하여 추출하고, 상기 컴포넌트 정보는, 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보 중 적어도 하나를 포함하고, 상기 서비스제공서버는 각 입력 및 출력 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보를 기준으로 컴포넌트 간 연결 관계를 정의하고, 생성된 결선도 데이터를 기반으로 핀 번호, 신호 종류, 연결 대상을 자동으로 매핑하여 이후 로직 생성 단계에서 참조할 수 있도록 결선도 데이터를 생성하고, 상기 서비스제공서버는 수신된 자연어 입력을 상기 결선도 데이터와 연계하여 컴포넌트별로 어떤 동작을 수행해야 하는지를 매핑하고, 이를 통해 컴포넌트 간의 동작 시퀀스를 정의하고, 상기 서비스제공서버는 자연어 해석 과정에서 모호한 입력이 존재하거나 다의어로 인한 해석 충돌이 발생하는 경우, 우선 순위 규칙, 도메인 기반 규칙, 사전 등록된 유사 사례 기반 추천을 통해 해석 정확도를 향상시키는 것을 특징으로 하는 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템.
- 제5항에 있어서, 상기 서비스제공서버는, 생성된 PLC 프로그램 코드의 동작을 가상 시뮬레이션 환경에서 실행 및 검증하고, 시뮬레이션 실행 및 검증 결과를 사용자단말에 제공하는 것을 특징으로 하는 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템.
- 삭제
- 삭제
Description
인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법 및 시스템{Method and system for automatically generating PLC logic based on natural language using artificial intelligence} 본 발명은 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법 및 시스템에 관한 것으로, 사용자가 자연어로 입력한 설명을 기반으로 PLC(Programmable Logic Controller) 로직을 자동으로 생성하고, 생성된 로직의 동작을 가상 시뮬레이션을 통해 검증할 수 있는 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법 및 시스템에 관한 것이다. 산업 현장에서는 생산 설비 및 공정 자동화를 위하여 PLC(Programmable Logic Controller)가 널리 사용되고 있다. PLC는 공장의 센서, 엑추에이터 등 다양한 입출력 장치의 상태를 감지하고, 미리 설정된 로직에 따라 장치들을 제어하는 역할을 수행한다. 종래의 PLC 프로그래밍은 래더 다이어그램(LD), 펑션 블록 다이어그램(FBD) 등 전용 프로그래밍 언어를 사용하여 로직을 작성해야 하므로, 사용자는 해당 프로그래밍 언어와 하드웨어 구성을 충분히 숙지해야만 원하는 제어 로직을 구현할 수 있었다. 이에 따라 PLC 로직 작성에는 전문적인 기술 지식과 충분한 경험이 요구되며, 비전문가가 접근하기 어렵다는 한계가 있다. 또한, PLC 프로그래밍 과정에서 입출력 컴포넌트의 결선도를 수기로 작성하거나 전용 프로그램을 이용하여 수동으로 구성해야 하며, 완성된 로직의 동작을 확인하기 위해 실제 장비에 설치하여 디버깅을 반복 수행해야 하므로 개발 및 유지보수 과정에서 많은 시간과 비용이 소요되는 문제가 있었다. 최근에는 인공지능 및 자연어 처리 기술의 발전에 따라 사용자의 자연어 명령을 인식하여 다양한 작업을 자동 수행하는 기술들이 개발되고 있으나, 대부분 일반적인 소프트웨어 코드 생성이나 간단한 명령 실행에 한정되어 있어 산업 자동화 및 PLC 로직 생성에 특화된 자연어 기반 로직 자동 생성 기술은 아직 미흡한 실정이다. 선행특허로는 국내공개특허 제10-2011-0012342호(PLC 래더 로직 설계 및 래더 코드 생성방법)가 있으나, UML(Unified Modeling Language) 활동 다이어그램을 통해 제조 시스템의 제어 로직을 설계하는 단계; 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성하는 단계; 및 상기 생성된 상기 래더 코드의 특정 입력 접점의 상태 변화에 따른 출력 코일의 상태 변화를 시뮬레이션하여 상기 래더 코드의 로직 오류를 검증하는 단계를 포함하고 있을 뿐이다. 도 1은 본 발명의 실시예에 따른 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법을 설명하는 흐름도이다. 도 2는 본 발명의 실시예에 따른 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템의 구성도이다. 도 3 내지 도 8은 본 발명의 실시예에 따른 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템의 사용실태도이다. 본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시 된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다. 본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 또는 대체물을 포함한다. 본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 도 1은 본 발명의 실시예에 따른 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 방법을 설명하는 흐름도이다. 도 1을 참조하면, 서비스제공서버(200)가 복수의 입력 및 출력 컴포넌트가 포함된 로직 자동생성 프로그램의 사용자 인터페이스 및 기능을 사용자단말(100)에 제공한다(S101). 상기 로직 자동생성 프로그램은 사용자가 컴포넌트를 직관적으로 선택하고 배치할 수 있도록 컴포넌트 라이브러리, 드래그 앤 드롭 기반 배치 화면, 연결선 생성 기능 중 적어도 하나를 포함할 수 있다. 또한 GUI 화면을 통해 배치된 컴포넌트의 위치 조정 및 배열 변경이 가능하도록 구성될 수 있다. 사용자단말(100)이 상기 로직 자동생성 프로그램의 사용자 인터페이스를 통해 복수의 입력 및 출력 컴포넌트 중 적어도 하나의 컴포넌트를 선택하고, 선택한 컴포넌트 정보를 서비스제공서버(200)에 전달한다(S103). 상기 컴포넌트 정보는 입력 컴포넌트 및 출력 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보 중 적어도 하나를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다. 서비스제공서버(200)가 사용자단말(100)로부터 수신한 컴포넌트 정보를 기반으로 결선도를 생성하여 사용자단말(100)에 전달한다(S105). 서비스제공서버(200)는 각 입력 및 출력 컴포넌트의 종류, 속성 정보, 위치 및 배치 정보를 기준으로 컴포넌트 간 연결 관계를 정의하고, 생성된 결선도 데이터를 기반으로 핀 번호, 신호 종류, 연결 대상을 자동으로 매핑하여 이후 로직 생성 단계에서 참조할 수 있도록 결선도 데이터를 제공할 수 있다. 사용자단말(100)이 상기 결선도를 기반으로 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 자연어로 입력하여 서비스제공서버(200)에 전달한다(S107). 상기 결선도는 서비스제공서버(200)에서 생성되어 사용자단말(100)에 제공된 결선도 데이터를 포함하는 것으로, 결선도 및 결선도 데이터는 동일한 의미로 사용될 수 있다. 서비스제공서버(200)가 사용자단말(100)로부터 수신한 자연어 입력을 분석하여 결선도에 포함된 각 입력 및 출력 컴포넌트의 동작 조건 및 역할을 매핑하고 로직데이터를 생성한다(S109). 서비스제공서버(200)는 사용자단말(100)로부터 수신한 자연어 입력을 형태소 단위로 분해하고 품사 태깅, 개체명 인식, 구문 분석 및 의존 구문 분석을 포함하여 문법적 구조를 파악할 수 있다. 자연어해석부(220)는 분석된 문법 구조를 기반으로 문장에서 트리거(trigger), 액션(action), 조건(condition), 시간(duration)과 관련된 키워드(정보)를 식별하고, 각 키워드를 컴포넌트의 동작 조건 및 역할과 연계할 수 있도록 분류할 수 있다. 사용자단말(100)이 결선된 입력 및 출력 컴포넌트들을 대상으로 수행할 로직의 동작 조건을 자연어로 입력하여 서비스제공서버(200)에 전달한다(S111). 서비스제공서버(200)가 사용자단말(100)로부터 수신한 로직의 동작 조건에 대한 자연어 입력을 분석하여 결선도 및 로직데이터를 기반으로 제어 로직 완성한다(S113). 서비스제공서버(200)는 추출된 트리거, 액션, 조건, 시간 정보와 매핑된 컴포넌트별 I/O(Input/Output) 주소 데이터를 기반으로, 입력 컴포넌트와 출력 컴포넌트 간의 제어 흐름을 정의하고 상태 전이, 조건 분기, 타이머 조건, 반복 조건을 포함하는 제어 시퀀스를 자동으로 생성할 수 있다. 서비스제공서버(200)가 완성된 제어 로직을 기반으로 PLC 프로그램 코드를 자동으로 생성하고 사용자단말(100)에 전달한다(S115). 서비스제공서버(200)는 로직 데이터의 시퀀스, 조건문, 타이머 설정, 상태 전이 정보 및 안전 로직 데이터 중 적어도 하나 이상을 분석하여, 각 PLC 벤더의 프로그래밍 규격에 맞는 코드 구조로 변환하여 PLC 프로그램 코드를 자동으로 생성할 수 있다. 서비스제공서버(200)는 로직 데이터의 제어 흐름과 핀 매핑 정보를 기반으로 래더 다이어그램(Ladder Diagram, LD), 펑션 블록 다이어그램(Function Block Diagram, FBD), 구조적 텍스트(Structured Text, ST) 등의 PLC 언어로 코드를 생성하며, 사용자가 선택한 PLC 벤더의 사양에 따라 자동으로 대응하는 코드를 생성할 수 있다. 사용자단말(100)이 서비스제공서버(200)에 PLC 프로그램 코드의 동작에 대한 시뮬레이션을 요청하고, 서비스제공서버(200)가 생성된 PLC 프로그램 코드의 동작을 가상 시뮬레이션 환경에서 실행 및 검증한다(S117). 서비스제공서버(200)는 PLC 프로그램 코드의 제어 시퀀스, 조건문, 타이머 설정, 출력 동작 중 적어도 하나의 논리적 흐름을 시뮬레이션 엔진 상에서 구동하여 코드의 정상 작동 여부를 확인할 수 있다. 서비스제공서버(200)는 각 입력 컴포넌트의 가상 신호를 발생시켜 다양한 시나리오 하에서 시뮬레이션을 수행하며, 가상 신호 입력에 따른 출력 컴포넌트의 동작 상태 및 신호 흐름을 실시간으로 모니터링하여 로직의 조건 충족 여부, 타이머 동작의 정확성, 조건 분기 충돌, 신호 충돌, 시퀀스 동작 순서 등의 검증을 수행할 수 있다. 서비스제공서버(200)가 시뮬레이션 실행 및 검증 결과를 사용자단말(100)에 제공한다(S119). 도 2는 본 발명의 실시예에 따른 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템의 구성도이다. 도 2를 참조하면, 인공지능을 활용한 자연어 기반 PLC 로직 자동 생성 시스템(10)은 사용자단말(100)과 서비스제공서버(200)로 구성된다. 사용자단말(100)은 서비스제공서버(200)로부터