KR102492443B1 - 스카다 시스템을 위한 hmi 제작 방법 및 그 장치 - Google Patents

스카다 시스템을 위한 hmi 제작 방법 및 그 장치 Download PDF

Info

Publication number
KR102492443B1
KR102492443B1 KR1020220111201A KR20220111201A KR102492443B1 KR 102492443 B1 KR102492443 B1 KR 102492443B1 KR 1020220111201 A KR1020220111201 A KR 1020220111201A KR 20220111201 A KR20220111201 A KR 20220111201A KR 102492443 B1 KR102492443 B1 KR 102492443B1
Authority
KR
South Korea
Prior art keywords
information
hmi
document
scada
user terminal
Prior art date
Application number
KR1020220111201A
Other languages
English (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 KR1020220111201A priority Critical patent/KR102492443B1/ko
Application granted granted Critical
Publication of KR102492443B1 publication Critical patent/KR102492443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0216Human interface functionality, e.g. monitoring system providing help to the user in the selection of tests or in its configuration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0221Preprocessing measurements, e.g. data collection rate adjustment; Standardization of measurements; Time series or signal analysis, e.g. frequency analysis or wavelets; Trustworthiness of measurements; Indexes therefor; Measurements using easily measured parameters to estimate parameters difficult to measure; Virtual sensor creation; De-noising; Sensor fusion; Unconventional preprocessing inherently present in specific fault detection methods like PCA-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/321Display for diagnostics, e.g. diagnostic result display, self-test user interface
    • 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/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24215Scada supervisory control and data acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

스카다(SCADA) 시스템을 위한 HMI 제작 방법 및 그 장치가 제공된다. 본 개시의 몇몇 실시예들에 따른 HMI 제작 방법은, 스카다 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 단계, 입력된 정보 중 제1 정보에 기초하여 HMI 화면을 위한 HTML 문서를 생성하는 단계, 입력된 정보 중 제2 정보에 기초하여 HMI 화면을 위한 CSS 문서를 생성하는 단계 및 입력된 정보 중 제3 정보에 기초하여 HMI 화면을 위한 JSON 문서를 생성하는 단계를 포함할 수 있다. 이러한 방법에 따르면, 사용자의 의해 제작된 HMI 화면으로부터 웹 문서들이 자동으로 생성될 수 있으며, 생성된 웹 문서들을 이용하여 웹 기반으로 스카다 서비스가 제공될 수 있다.

Description

스카다 시스템을 위한 HMI 제작 방법 및 그 장치{METHOD FOR BUILDING HUMAN-MACHINE INTERFACE FOR SCADA SYSTEM AND APPARATUS THEREOF}
본 개시는 스카다 시스템을 위한 HMI 제작 방법 및 그 장치에 관한 것이다.
스카다(SCADA, Supervisory Control And Data Acquisition) 시스템은 설비 또는 공정을 감시하고 제어하기 위한 컴퓨팅 시스템을 의미한다. 스카다 시스템은 통상적으로 사용자(e.g., 관리자, 운영자)에게 편리한 감시 제어 기능을 제공하는 HMI(Human-Machine Interface) 모듈을 포함하며, 사용자는 HMI 모듈이 제공하는 화면을 통해 설비 또는 공정의 상태를 신속하게 파악하고 적절한 제어를 수행할 수 있다.
한편, 대부분의 스카다 시스템에서 HMI 모듈은 어플리케이션 또는 앱의 형태로 구현되고, 이렇게 구현된 HMI 모듈은 특정 플랫폼(e.g., 하드웨어, 운영체제 등)에 대한 종속성을 갖게 된다. 그런데, 이러한 플랫폼 종속성은 사용자의 플랫폼 선택권을 제한하고 개발 과정의 비효율성을 심화시키는 등의 문제를 야기한다. 예를 들어, 사용자 측면에서는 스카다 시스템에 따라 HMI를 위한 플랫폼을 선택하여야 하는 불합리성과 유동적으로 플랫폼을 변경해가며 감시 제어를 수행할 수 없다는 불편함이 야기된다. 또한, 스카다 시스템의 개발자 측면에서도 플랫폼 별로 HMI 모듈을 구현하거나, 새로운 플랫폼이 추가될 때마다 동일한 기능을 갖는 HMI 모듈을 새로 구현하여야 하는 등의 비효율성이 야기된다.
한국공개특허 제10-2018-0109566호 (18.10.08. 공개)
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, HMI 모듈의 플랫폼 종속성 문제를 해결할 수 있는 HMI 제작 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 사용자 단말의 디스플레이 해상도에 따른 HMI 화면 깨짐 현상을 방지할 수 있는 HMI 제작 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 스카다 시스템의 HMI 화면에 적용될 수 있는 다양한 사용자 이벤트들과 그들의 구현 방법을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, HMI 화면의 시인성을 향상시킬 수 있는 방법을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 방법은, 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서, 스카다(SCADA) 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 단계 - 상기 객체는 상기 스카다 시스템을 통해 관리되는 설비의 감시 포인트 또는 제어 포인트에 대응됨 - , 상기 입력된 정보 중 제1 정보에 기초하여 상기 HMI 화면을 위한 HTML 문서를 생성하는 단계, 상기 입력된 정보 중 제2 정보에 기초하여 상기 HMI 화면을 위한 CSS 문서를 생성하는 단계 및 상기 입력된 정보 중 제3 정보에 기초하여 상기 HMI 화면을 위한 JSON 문서를 생성하는 단계를 포함할 수 있다. 이때, 상기 제1 정보는 상기 객체의 유형에 관한 정보를 포함하고, 상기 제2 정보는 상기 객체의 디스플레이 속성에 관한 정보를 포함하며, 상기 제3 정보는 상기 디스플레이 속성을 변화시키는 사용자 이벤트에 관한 정보를 포함할 수 있다.
몇몇 실시예들에서, 상기 HTML 문서는 상기 객체의 그래픽을 표현하기 위한 SVG(Scalable Vector Graphics) 요소를 포함할 수 있다.
몇몇 실시예들에서, 상기 생성된 HTML 문서, 상기 생성된 CSS 문서 및 상기 생성된 JSON 문서를 이용하여 웹 기반의 스카다 서비스를 제공하는 단계를 더 포함할 수 있고, 상기 제공하는 단계는, 사용자 단말과 연결된 웹소켓을 통해 상기 객체에 대한 제어 요청을 수신하고, 상기 웹소켓을 통해 상기 제어 요청에 대한 처리 결과를 전송하는 단계 및 상기 사용자 단말로부터 상기 객체 또는 다른 객체의 과거 데이터 조회를 요구하는 HTTP 요청 메시지를 수신하고, 상기 과거 데이터 조회의 결과를 포함하는 HTTP 응답 메시지를 상기 사용자 단말로 전송하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 JSON 문서는 제1 JSON 문서이고, 상기 입력된 정보에 기초하여 상기 객체의 감시 또는 제어를 위한 필드 정보가 정의된 제2 JSON 문서를 생성하는 단계 - 상기 제2 JSON 문서는 버전 정보를 포함함 - 및 상기 생성된 HTML 문서, 상기 생성된 CSS 문서, 상기 제1 JSON 문서 및 상기 제2 JSON 문서를 이용하여 웹 기반의 스카다 서비스를 제공하는 단계를 더 포함하고, 상기 제공하는 단계는, 사용자 단말의 요청에 응답하여 상기 제2 JSON 문서를 전송하는 단계를 포함하며, 상기 사용자 단말은, 기 존재하는 제3 JSON 문서의 버전 정보가 IndexedDB의 버전 정보와 일치하지 않는다는 판단에 응답하여 상기 제2 JSON 문서를 요청하고 - 상기 제3 JSON 문서도 상기 필드 정보가 정의된 문서임 - , 상기 제2 JSON 문서에 기초하여 상기 IndexedDB를 재구성하며, 상기 재구성된 IndexedDB를 활성화할 수 있다.
일부 실시예들에서, 상기 생성된 HTML 문서 및 상기 생성된 CSS 문서는 제1 HMI 화면에 관한 것이고, HMI 화면 이미지를 입력 받아 시인성 점수를 평가하도록 학습된 모델을 획득하는 단계; 상기 제1 HMI 화면의 이미지를 상기 학습된 모델에 입력하여 상기 제1 HMI 화면의 시인성 점수를 평가하는 단계; 상기 제1 HMI 화면의 시인성 점수가 기준치 이하라는 판단에 응답하여, 상기 생성된 HTML 문서 및 상기 생성된 CSS 문서 중 적어도 하나를 수정하는 단계; 상기 수정된 문서에 기초하여 제2 HMI 화면의 이미지를 생성하는 단계; 상기 제2 HMI 화면의 이미지를 상기 학습된 모델에 입력하여 상기 제2 HMI 화면의 시인성 점수를 평가하는 단계; 및 상기 제2 HMI 화면의 시인성 점수가 기준치 이상이라는 판단에 응답하여, 상기 제2 HMI 화면에 대한 문서들을 출력하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 장치는, 하나 이상의 프로세서 및 하나 이상의 인스트럭션들을 저장하는 메모리를 포함하고, 상기 하나 이상의 프로세서는, 상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써, 스카다(SCADA) 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 동작 - 상기 객체는 상기 스카다 시스템을 통해 관리되는 설비의 감시 포인트 또는 제어 포인트에 대응됨 - , 상기 입력된 정보 중 제1 정보에 기초하여 상기 HMI 화면을 위한 HTML 문서를 생성하는 동작, 상기 입력된 정보 중 제2 정보에 기초하여 상기 HMI 화면을 위한 CSS 문서를 생성하는 동작 및 상기 입력된 정보 중 제3 정보에 기초하여 상기 HMI 화면을 위한 JSON 문서를 생성하는 동작을 수행할 수 있다. 이때, 상기 제1 정보는 상기 객체의 유형에 관한 정보를 포함하고, 상기 제2 정보는 상기 객체의 디스플레이 속성에 관한 정보를 포함하며, 상기 제3 정보는 상기 디스플레이 속성을 변화시키는 사용자 이벤트에 관한 정보를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 스카다(SCADA) 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 단계 - 상기 객체는 상기 스카다 시스템을 통해 관리되는 설비의 감시 포인트 또는 제어 포인트에 대응됨 - , 상기 입력된 정보 중 제1 정보에 기초하여 상기 HMI 화면을 위한 HTML 문서를 생성하는 단계, 상기 입력된 정보 중 제2 정보에 기초하여 상기 HMI 화면을 위한 CSS 문서를 생성하는 단계 및 상기 입력된 정보 중 제3 정보에 기초하여 상기 HMI 화면을 위한 JSON 문서를 생성하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다. 이때, 상기 제1 정보는 상기 객체의 유형에 관한 정보를 포함하고, 상기 제2 정보는 상기 객체의 디스플레이 속성에 관한 정보를 포함하며, 상기 제3 정보는 상기 디스플레이 속성을 변화시키는 사용자 이벤트에 관한 정보를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 스카다 시스템은, 제1항에 기재된 방법에 의해 제작된 HMI의 화면에 관한 문서들을 획득하고, 상기 획득된 문서들을 이용하여 상기 HMI의 화면에 표시되는 객체들에 대한 스카다(SCADA) 서비스를 웹 기반으로 제공하는 HMI 서버 - 상기 객체는 관리 대상 설비의 감시 포인트 또는 제어 포인트에 대응되고, 상기 문서들은 HTML 문서, CSS 문서 및 JSON 문서를 포함함 - 및 상기 관리 대상 설비에 관한 데이터를 수집하는 통신 장치를 포함할 수 있다.
본 개시의 몇몇 실시예들에 따르면, 애플리케이션 또는 앱 형태의 구현 방식에서 탈피하여 웹(Web) 기반으로 HMI 기능이 구현될 수 있다. 이에 따라, 기존 HMI 모듈의 플랫폼 종속성에서 기인하는 다양한 문제들(e.g., 사용자의 플랫폼 선택권 제한, 운영 환경 제약, HMI 개발 과정의 비효율성)이 용이하게 해결될 수 있다. 가령, 사용자는 플랫폼에 관계없이 인터넷 통신이 가능한 임의의 단말을 통해 감시/제어를 수행할 수 있게 되므로, 운영 환경의 제약으로부터 자유로워질 수 있다. 또한, 스카다 시스템의 개발자는 플랫폼별로 HMI 모듈을 구현할 필요가 없어지므로, 개발 과정의 비효율성 문제도 해결될 수 있다.
또한, SVG(Scalable Vector Graphics) 요소를 이용하여 HMI 화면을 위한 웹 문서들을 생성함으로써, 사용자 단말의 디스플레이 해상도에 따라 HMI 화면 깨짐 현상이 발생하는 문제가 해결될 수 있다. 나아가, 사용자 단말의 디스플레이 해상도에 관계없이 고품질의 HMI 화면이 제공될 수 있다.
본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 환경을 설명하기 위한 예시적인 도면이다.
도 2는 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 나타내는 예시적인 구성도이다.
도 3은 본 개시의 몇몇 실시예들에서 참조될 수 있는 HMI 화면을 예시한다.
도 4는 본 개시의 몇몇 실시예들에 따른 HMI 서버를 나타내는 예시적인 구성도이다.
도 5는 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 방법을 나타내는 예시적인 흐름도이다.
도 6 내지 도 8은 본 개시의 몇몇 실시예들에서 참조될 수 있는 HMI 제작 인터페이스를 예시한다.
도 9는 본 개시의 몇몇 실시예들에 따른 웹 문서 생성 방법을 설명하기 위한 예시적인 도면이다.
도 10 내지 도 12는 본 개시의 몇몇 실시예들에 따른 웹 문서 생성 방법을 부연 설명하기 위한 예시적인 도면이다.
도 13 및 도 14는 본 개시의 몇몇 실시예들에 따른 HMI 화면 자동 보정 프로세스를 설명하기 위한 예시적인 도면이다.
도 15 및 도 16은 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 방법을 나타내는 예시적인 흐름도이다.
도 17은 본 개시의 몇몇 실시예들에 따른 장치/시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성요소 사이에 또 다른 구성요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 개시의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 환경을 설명하기 위한 예시적인 도면이다.
도 1에 도시된 바와 같이, 실시예들에 따른 스카다(SCADA, Supervisory Control And Data Acquisition) 서비스 제공 환경에서는 HMI 제작 장치(10), 스카다 시스템(11), 사용자 단말(12) 등이 존재할 수 있다.
HMI 제작 장치(10)는 스카다 시스템(11)을 위한 HMI(Human-Machine Interface) 제작 기능을 제공하는 컴퓨팅 장치를 의미할 수 있다. 가령, HMI 제작 장치(10)에는 HMI 설계, 편집, 제작 등의 기능을 지원하는 빌더 소프트웨어(또는 툴)가 설치되어 있고, HMI 제작 장치(10)는 빌더 소프트웨어를 통해 HMI 제작 기능을 제공할 수 있다. 이하에서는, 설명의 편의상, HMI 제작 장치(10)를 '제작 장치(10)'로 약칭하도록 한다.
제작 장치(10)는 HMI 화면(15)에 대한 설계/편집/제작 등의 기능을 제공할 수 있고, 사용자 이벤트, 감시 및 제어를 위한 데이터 등을 정의/설정하는 기능도 제공할 수 있다. 또한, HMI 제작 장치(10)는 웹 기반으로 스카다(또는 HMI) 서비스를 제공하기 위해 이용되는 HTML(HyperText Markup Language), CSS(Cascading Style Sheets) 문서, JSON(JavaScript Object Notation) 문서 등을 생성하고 배포하는 기능도 제공할 수 있다.
제작 장치(10)의 세부 기능 및 동작에 관하여서는 추후 도 5 이하의 도면을 참조하여 보다 상세하게 설명하도록 한다.
제작 장치(10)는 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 제작 장치(10)의 모든 기능이 하나의 컴퓨팅 장치로 구현될 수도 있고, 제작 장치(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 또는, 제작 장치(10)의 특정 기능이 복수의 컴퓨팅 장치들에서 구현될 수도 있다.
컴퓨팅 장치는 컴퓨팅(프로세싱) 기능을 구비한 임의의 장치를 모두 포함할 수 있으며, 이러한 장치의 일 예시에 관하여서는 도 17을 참조하도록 한다. 참고로, 컴퓨팅 장치는 복수의 구성요소들(e.g. 프로세서, 메모리 등)이 상호작용하는 하나의 집합체이므로, 경우에 따라 '컴퓨팅 시스템'으로 명명될 수도 있다. 또한, 경우에 따라 컴퓨팅 시스템은 복수의 컴퓨팅 장치들이 동일한 목적을 위해 상호작용하는 집합체를 의미하는 것일 수도 있다.
다음으로, 스카다 시스템(11)은 관리 대상 설비에 대한 감시 및 제어 기능(즉, 스카다 기능)을 제공하는 컴퓨팅 장치/시스템을 의미할 수 있다. 가령, 스카다 시스템(11)은 관리 대상 설비와 연관된 감시/제어 포인트들(e.g., 13, 14)로부터 해당 설비에 관한 데이터를 실시간으로 획득하고, 획득된 데이터에 기초하여 해당 설비의 상태를 감시하거나 해당 설비를 제어할 수 있다. 여기서, 감시/제어 포인트는 예를 들어 관리 대상 설비와 연관된 PLC(13, Programmable Logic Controller), RTU(14, Remote Terminal Unit), 센서 등이 될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.
또한, 스카다 시스템(11)은 웹 기반으로 스카다(또는 HMI) 서비스(또는 기능)을 제공할 수 있다. 이러한 경우, 사용자는 별도의 HMI 애플리케이션(또는 앱)을 설치하지 않고도 웹을 통해 감시 및 제어를 수행할 수 있게 되기 때문에, 사용자의 편의성이 향상될 뿐만 아니라 HMI 애플리케이션의 플랫폼 종속성으로부터 기인하는 다양한 문제들(e.g., 사용자의 플랫폼 선택권 제한, 운영 환경 제약, HMI 개발 과정의 비효율성 등)이 용이하게 해결될 수 있다. 이와 관련하여서는 추후 도 5 이하의 도면을 참조하여 보다 상세하게 설명하도록 한다.
도 2에 도시된 바와 같이, 몇몇 실시예들에 따른 스카다 시스템(10)은 통신 장치(21)와 HMI 서버(22)를 포함하도록 구성될 수 있다.
통신 장치(21)는 감시/제어 포인트들(e.g., 13, 14)과 HMI 서버(22) 간의 통신 중계 기능을 제공할 수 있다. 가령, 통신 장치(21)는 감시/제어 포인트들(e.g., 13, 14)로부터 관리 대상 설비에 관한 데이터를 수집하여 HMI 서버(22)로 전달할 수 있다. 또한, 통신 장치(21)는 HMI 서버(22)로부터 수신된 제어 데이터(즉, 제어 명령)를 제어 포인트들(e.g., 13, 14)로 전달할 수도 있다.
HMI 서버(22)는 웹 기반의 감시 및 제어 기능(즉, 스카다 기능)을 제공할 수 있다. 예를 들어, HMI 서버(22)는 제작 장치(10)를 통해 생성된 웹 문서들(e.g., HTML 문서, CSS 문서, JSON 문서)을 이용하여 웹 기반으로 도 3에 예시된 바와 같은 HMI 화면(31)을 제공할 수 있다. 도 3은 사용자 단말(12)의 웹 브라우저에 표시될 수 있는 HMI 화면(31)을 예시하고 있다. 또한, HMI 서버(22)는 사용자 단말(12)로부터 수신된 제어 요청에 따른 적절한 처리(e.g., 제어 명령을 제어 포인트로 전송하는 등)를 수행할 수도 있다. HMI 서버(22)가 웹 기반으로 스카다 기능(또는 서비스)을 제공하는 방법에 관하여서는 추후 도 15 이하의 도면을 참조하여 보다 상세하게 설명하도록 한다.
도 4에 도시된 바와 같이, 몇몇 실시예들에 따른 HMI 서버(22)는 DB 서버(41), 웹 어플리케이션 서버(42) 및 웹 서버(43)를 포함하도록 구성될 수 있다. DB 서버(41)는 감시 및 제어 데이터를 관리할 수 있고, 웹 어플리케이션 서버(42)는 DB 서버(41)와 연동하여 DB 트랜잭션을 처리하는 등의 동적인 처리를 수행할 수 있다. 그리고, 웹 서버(43)는 HTTP(HyperText Transfer Protocol) 요청에 따른 응답을 제공(e.g., HTML 문서 제공)하는 등의 정적인 처리를 수행할 수 있다. 당해 기술 분야의 종사자라면, DB 서버(41), 웹 서버(43) 및 웹 어플리케이션 서버(42)의 기능과 동작 방식을 이미 숙지하고 있을 것인 바, 이들에 대한 자세한 설명은 생략하도록 한다.
다시 도 1을 참조하여 설명한다.
스카다 시스템(11)도 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 상술한 바와 같이, 컴퓨팅 장치는 컴퓨팅(프로세싱) 기능을 구비한 임의의 장치를 모두 포함할 수 있으며, 이러한 장치의 일 예시에 관하여서도 도 17을 참조하도록 한다.
다음으로, 사용자 단말(12)은 스카다 시스템(11)이 제공하는 감시 및 제어 기능(즉, 스카다 기능)을 이용하여 관리 대상 설비들을 관리하는 사용자(e.g., 관리자, 운영자 등)측의 장치를 의미할 수 있다. 가령, 사용자는 사용자 단말(12)에 설치된 웹 브라우저를 통해 스카다 시스템(11)에 접속함으로써 HMI 화면(15, 도 3의 31 참조)을 제공받고, HMI 화면(15)을 통해 관리 대상 설비들의 상태를 감시하거나 이들을 제어할 수 있다. 이와 관련하여서는 추후 도 15 이하의 도면을 참조하여 보다 상세하게 설명하도록 한다.
사용자 단말(12)은 모바일 단말(e.g., 스마트폰, 노트북, 태블릿), 고정형 단말(e.g., 데스크탑) 등과 같이 다양한 유형의 컴퓨팅 장치로 구현될 수 있으며, 어떠한 장치로 구현되더라도 무방하다.
지금까지 도 1 내지 도 4를 참조하여 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 환경에 대하여 설명하였다. 이하에서는, 도 5 이하의 도면을 참조하여 제작 장치(10), 스카다 시스템(11) 및 사용자 단말(12)에서 수행될 수 있는 다양한 방법들에 대하여 설명하도록 한다.
먼저, 도 5 내지 도 14를 참조하여 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 방법에 대하여 설명하도록 한다.
이하에서는, 이해의 편의를 제공하기 위해, 후술될 HMI 제작 방법의 모든 단계/동작들이 도 1에 예시된 환경의 제작 장치(10)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 특정 단계(동작)의 주어가 생략된 경우, 제작 장치(10)에 의해 수행되는 것으로 이해될 수 있다. 물론, 실제 환경에서는 후술될 방법의 일부 단계가 다른 컴퓨팅 장치에서 수행될 수도 있다.
도 5는 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 5에 도시된 바와 같이, 실시예들에 따른 방법은 HMI 관련 정보를 입력받는 단계 S51에서 시작될 수 있다. 가령, 제작 장치(10)는 HMI 제작을 지원하는 인터페이스(e.g., 빌더 소프트웨어의 GUI)를 제공할 수 있고, 사용자는 해당 GUI를 통해 HMI 제작에 요구되는 다양한 정보를 입력할 수 있다.
HMI 제작 인터페이스는 예를 들어 HMI 화면 편집 기능을 지원하는 인터페이스(e.g., 관리 대상 설비의 감시/제어 포인트에 대응되는 객체를 배치하는 등의 화면 편집 기능을 지원하는 인터페이스), 객체 그래픽(e.g., 도형 등)에 대한 편집 기능을 지원하는 인터페이스, 객체 정보에 대한 정의/설정 기능을 지원하는 인터페이스, 사용자 이벤트에 대한 정의/설정 기능을 지원하는 인터페이스, 객체와 연관된 감시/제어 데이터에 대한 정의/설정 기능을 지원하는 인터페이스 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다. HMI 제작 인터페이스의 몇몇 예시들에 관하여서는 도 6 내지 도 8을 참고하도록 한다. 도 6 내지 도 8은 각각 HMI 화면 편집 기능, 도형 편집 기능 및 사용자 이벤트 정의 기능을 지원하는 인터페이스를 예시하고 있다.
HMI 관련 정보는 예를 들어 객체 정보, 사용자 이벤트 정보, 감시/제어 데이터에 관한 정보 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.
객체 정보는 객체의 식별자, 유형, 대응되는 감시/제어 포인트 정보(e.g., 주소 등), 디스플레이 속성(e.g., 색상, 크기, 모양, 위치 등), 설명(description) 등에 관한 정보를 포함할 수 있다.
또한, 사용자 이벤트 정보는 예를 들어 이벤트의 식별자, 유형, 이벤트의 발생 조건, 이벤트에 따른 액션(e.g., 특정 객체의 디스플레이 속성을 변화시키는 등) 등에 관한 정보를 포함할 수 있다. 사용자 이벤트에 관한 몇몇 예시들에 관하여서는 표 1 내지 표 7을 참조하도록 한다.
또한, 감시/제어 데이터에 관한 정보는 예를 들어 데이터의 식별자, 데이터의 형식, 데이터를 구성하는 필드(속성)들, 연관된 감시/제어 포인트(e.g., 식별자, 주소 등), 설명 등에 관한 정보를 포함할 수 있다.
단계 S52에서, 입력된 정보에 기초하여 HMI 기능을 제공하는 웹 문서들이 생성될 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 사용자가 HMI 화면(91)을 제작하고 객체, 사용자 이벤트, 감시/제어 데이터 등에 관한 정보를 입력했다고 가정하자. 이러한 경우, 제작 장치(10)는 입력된 정보를 토대로 HMI 화면(91)과 관련 기능을 제공하는 웹 문서들(92 내지 94)을 자동으로 생성할 수 있다. 구체적으로, 제작 장치(10)는 객체의 위치, 크기, 유형 등에 관한 정보에 기초하여 HTML 문서(92)를 생성하고, 객체의 디스플레이 속성에 관한 정보에 기초하여 CSS 문서(93)를 생성하며, 사용자 이벤트와 감시/제어 데이터에 관한 정보를 기초로 JSON 문서(94)를 생성할 수 있다.
보다 이해의 편의를 제공하기 위해, 도 10 내지 도 12를 참조하여 웹 문서 생성 단계 S52에 대하여 부연 설명하도록 한다.
도 10은 본 개시의 몇몇 실시예에 따른 HTML 문서 생성 방법을 설명하기 위한 예시적인 도면이다.
도 10에 도시된 바와 같이, 제작 장치(10)는 사용자가 제작한 HMI 화면의 상단 영역(101)의 정보를 토대로 HTML 문서(105)의 바디를 구성하는 다양한 요소들 중 'header' 요소를 생성(정의)하고, HMI 화면의 좌측 영역(101, e.g., 메뉴 관련 영역)의 정보를 토대로 'nav' 요소를 생성할 수 있다. 그리고, 제작 장치(10)는 HMI 화면의 객체 관련 영역(103, 즉 메인 감시 화면 영역)의 정보를 토대로 'article' 요소를 생성하고, HMI 화면의 하단 영역(104)의 정보를 토대로 'footer' 요소를 생성할 수 있다. 그렇게 함으로써, 사용자가 제작한 HMI 화면의 레이아웃이 웹 브라우저를 통해 표시되더라도 동일하게 유지될 수 있다.
도 11은 HMI 화면의 특정 영역에 대응되는 HTML 문서를 예시하고 있다.
도 11에 도시된 바와 같이, 제작 장치(10)는 HMI 화면 상의 객체들의 그래픽 정보를 토대로 SVG(Scalable Vector Graphics) 요소를 생성하여 HTML 문서에 삽입할 수 있다. 즉, 제작 장치(10)는 각 객체들의 그래픽이 SVG 요소를 이용하여 표현되도록 할 수 있다. 이러한 경우, 사용자 단말(12)의 디스플레이 해상도에 따라 화면 깨짐 현상이 발생하는 문제가 해결될 수 있으며, 사용자 단말(12)의 디스플레이 해상도에 관계없이 고품질의 HMI 화면이 제공될 수 있다. 부연 설명하면, 객체들의 그래픽을 HTML의 'canvas' 요소를 이용하여 표현하는 경우, 픽셀(래스터) 방식의 한계로 인해 화면 깨짐 현상이 발생될 수 있다. 그러나, SVG와 같은 벡터 방식을 이용하면, 화면을 확대하더라도 객체들의 그래픽 깨짐 현상이 발생하지 않기 때문에, 사용자 단말(12)의 디스플레이 해상도에 관계없이 고품질의 HMI 화면이 제공될 수 있다.
이하에서는, SVG 요소를 생성하는 방법에 관하여 부연 설명하도록 한다.
SVG는 사각형(rect), 원(circle), 타원(ellipse), 직선(line), 폴리 라인(polyline), 다각형(polygon)과 같은 기본 도형을 표현하는 요소 세트를 제공한다. 따라서, 특정 객체의 그래픽이 SVG가 제공하는 기본 도형 요소들을 통해 표시 가능한 경우(e.g., 객체의 그래픽이 기본 도형들의 조합으로 구성될 수 있는 경우), 제작 장치(10)는 SVG의 기본 도형 요소들에 기초하여 해당 객체의 SVG 요소를 생성(정의)할 수 있다.
위와 달리, 해당 객체의 그래픽이 테이블 또는 독특한 심볼(e.g., 교반기, 펌프, 송풍기, 램프 등의 형태를 나타내는 심볼)의 형태를 갖는 경우 등과 같이, SVG의 기본 도형 요소들을 통해서는 표시가 불가능한 경우도 있을 수 있다. 이러한 경우, 제작 장치(10)는 SVG의 'foreignObject' 요소를 이용하여 해당 객체의 그래픽을 정의하는 SVG 요소를 생성할 수 있다. 가령, 제작 장치(10)는 'foreignObject' 요소를 이용하여 미리 제작된 SVG 심볼(symbol)에 관한 정보를 정의함으로써, 특정 객체의 그래픽이 미리 제작된 SVG 심볼을 통해 표현되도록 할 수 있다.
한편, 몇몇 실시예들에서, SVG 심볼은 내장된 애니메이션 기능을 이용하여 객체의 상태에 따라 적절한 그래픽을 자동으로 표시하도록 제작된 것일 수 있다. 즉, SVG 표준에서 제공하는 애니메이션 기능을 이용하여 객체의 상태에 따라 그래픽이 자동으로 변경되도록 SVG 심볼이 제작될 수 있다. 예를 들어, SVG 심볼은 소정의 식별자와 해당 식별자에 대응되는 그래픽 정보를 포함하도록 제작될 수 있다. 이를테면, SVG 심볼은 객체의 상태에 관계없이 항상 표시되는 그래픽에 대응되는 제1 식별자(e.g., STATIC), 객체가 가동 상태에 있을 때 표시되는 그래픽에 대응되는 제2 식별자(e.g., ON), 객체가 비-가동 상태에 있을 때 표시되는 그래픽에 대응되는 제3 식별자(e.g., OFF) 및 객체가 고장 상태에 있을 때 표시되는 그래픽에 대응되는 제4 식별자(e.g., FAULT)와 관련 그래픽 정보를 포함하도록 제작될 수 있다. 이러한 SVG 심볼을 이용하면, 객체의 상태에 따라 적합한 그래픽이 자동으로 표시될 수 있다.
도 12는 제작 장치(10)에 의해 생성된 웹 문서의 실례를 도시하고 있다.
도 12에 도시된 바와 같이, 제작 장치(10)는 객체의 유형, HMI 화면 상의 객체의 위치, 해당 객체의 그래픽 요소 등을 정의하는 HTML 문서를 생성하고, 객체의 디스플레이 속성을 정의하는 CSS 문서를 별도로 생성하며, 사용자 이벤트를 정의하는 JSON 문서를 별도로 생성할 수 있다. 또한, 제작 장치(10)는 감시/제어 데이터의 필드 정보를 정의하는 JSON 문서도 별도로 생성할 수 있다.
이하에서는, 보다 이해의 편의를 제공하기 위해, 표 1 내지 표 7을 참조하여 사용자 이벤트들의 몇몇 예시들과 이들의 JSON 형식에 대해 소개하도록 한다. 참고로, 사용자가 제작 장치(10)를 통해 사용자 이벤트에 관한 정보를 입력하면, 아래와 같은 형식의 JSON 문서가 생성되고, 생성된 JSON 문서는 자바스크립트(e.g., 웹 브라우저의 자바스크립트 엔진)에 의해 처리될 수 있다.
먼저, 하기의 표 1은 출몰 이벤트를 예시하고 있다. 출몰 이벤트는 설정된 조건을 만족하는 객체의 그래픽을 HMI 화면에 나타나게 하거나 사라지게 하는 이벤트를 의미한다.
출몰 객체를 나타나게 하거나 사라지게 하는 기능
속성명 하위 json
개체
하위 json
개체
eid 효과ID
type 효과유형
object 대상객체 ID
condition type 조건 조건유형
source 조건태그
comparator 비교연산자
value 비교값
예시 {"eid": "Rect_1_1","type":1, "object":"Rect_1", "condition":{"type":1, "source":"DI_10001", "comparator": 1, "value":0}}
표 1에 예시된 출몰 이벤트가 설정되면, 사용자 단말(12)은 HMI 서버(22)로부터 수신된 객체들에 관한 감시 데이터와 'condition' 필드를 비교하여(즉, 'source' 필드에 정의된 감시 데이터와 'value' 필드의 값을 비교함) 조건 만족 여부를 판단하고, 판단 결과에 따라 이벤트 처리를 수행할 수 있다. 가령, 사용자 단말(12)은 'object' 필드에 정의된 객체가 'condition' 필드에 정의된 조건을 만족한다는 판단에 응답하여, 웹 문서(e.g., HTML 문서, CSS 문서)에서 해당 객체의 디스플레이 속성에 관한 요소들을 'none'으로 설정하거나 삭제할 수 있다. 그 결과, 사용자 단말(12)의 HMI 화면에서 해당 객체의 그래픽이 사라지게 된다.하기의 표 2는 깜박임 이벤트를 예시하고 있다. 깜박임 이벤트는 설정된 조건이 만족되는 동안 객체의 그래픽을 깜박거리게 하는 이벤트를 의미한다.
깜박임 객체를 지정된 시간 주기로 깜박이게 하는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
interval 깜박임 주기
lf width 외곽선 굵기
color
dasharray 점선형식
ff fill 배경
condition type 조건 조건유형
source 조건태그
comparator 비교연산자
value 비교값
예시 {"eid": "Rect_1_1","type":1, "object":"Rect_1", "interval": 1000, "lf":{"width":1, "color":"#999999", "dasharray":"0"}, "ff":{"fill":"#333333"}, "condition":{"type":1, "source":"DI_10001", "comparator": 1, "value":0}}
표 2에 예시된 깜박임 이벤트가 설정되면, 사용자 단말(12)은 HMI 서버(22)로부터 수신된 객체들에 관한 감시 데이터와 'condition' 필드를 비교하여 조건 만족 여부를 판단하고, 판단 결과에 따라 이벤트 처리를 수행할 수 있다. 가령, 사용자 단말(12)은 'object' 필드에 정의된 객체가 'condition' 필드에 정의된 조건을 만족한다는 판단에 응답하여, 웹 문서(e.g., HTML 문서, CSS 문서)에서 fill 속성 및 stroke 속성을 'interval' 필드 값에 따라 주기적으로 변경(e.g., 'lf' 및 'ff' 필드에 정의된 색상 및 선 형태로 변경함, 디스플레이 속성에 관한 요소들을 삭제함) 및 복원할 수 있다. 그 결과, 사용자 단말(12)의 HMI 화면에서 해당 객체의 그래픽이 깜박이게 된다.다음으로, 하기의 표 3은 색변화 이벤트를 예시하고 있다. 색변화 이벤트는 설정된 조건을 만족하는 객체의 그래픽(e.g., 외곽선, 배경 등)의 색상을 변경시키는 이벤트를 의미한다.
색변화 객체의 외곽선 및 배경색을 변화시키는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
change lf width 변경 외곽선 굵기
color
dasharray 점선형식
ff fill 배경
condition type 조건 조건유형
source 조건태그
comparator 비교연산자
예시 [{"eid":"Rect_14_64", "type":64, "object":"Rect_14", "change":[{"lf":{"width":1, "color":"#000000", "dasharray":"0"},"ff":{"fill":"#FF0000"}, "condition":{"type":1, "source":"DI.10002", "comparator":1, "value":0.000000}},{"lf":{"width":1, "color":"#000000", "dasharray":"0"},"ff":{"fill":"#FF6600"}, "condition":{"type":1, "source":"DI.10003", "comparator":1, "value":0.000000}},{"lf":{"width":1, "color":"#000000", "dasharray":"0"},"ff":{"fill":"#FFFF00"}, "condition":{"type":1, "source":"DI.10004", "comparator":1, "value":0.000000}},{"lf":{"width":1, "color":"#000000", "dasharray":"0"},"ff":{"fill":"#00FF00"}, "condition":{"type":1, "source":"DI.10005", "comparator":1, "value":0.000000}}]}]
표 3에 예시된 색변화 이벤트가 설정되면, 상술한 깜박임 이벤트와 유사한 방식으로 객체의 그래픽이 변경될 수 있다. 참고로, 2개 이상의'change' 필드들이 정의된 경우에는, 먼저 정의된 필드가 우선적으로 적용될 수 있다(즉, 정의된 순서에 따라 적용 우선순위가 결정됨).다음으로, 하기의 표 4는 도형 채우기 이벤트를 예시하고 있다. 도형 채우기 이벤트는 설정된 조건을 만족하는 도형의 색상을 변경시키는 이벤트를 의미한다.
채우기 도형의 일정 부분을 지정된 색상으로 변경하는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
clipPath 채우기 도형
html요소
clipArea 채우기 도형
영역
direction 채우기 방향
(수평,수직)
attr tag 속성 조건태그
min 최소값
max 최대값
lf width 외곽선 굵기
color
dasharray 점선형식
ff fill 배경
alwaysE 항상비움영역
alwaysF 항상채움영역
x 객체위치 x
y 객체위치 y
w 객체너비
h 객체높이
예시 [{"eid":"Rect_38_8", "type":8, "object":"Rect_38", "clipPath":"#Rect_38_clipPath", "clipArea":"#Rect_38_clipArea", "direction":8, "attr":{"tag":"AI.30002", "min":0.000000, "max":500.000000, "lf":{"width":1, "color":"#00FF00", "dasharray":"0"},"ff":{"fill":"#FF0000"}, "alwaysE":0, "alwaysF":5,"x":561,"y":686,"w":181,"h":40}}]
표 4에 예시된 도형 채우기 이벤트가 설정되면, 사용자 단말(12)은 'attr' 필드에 정의된 감시 데이터(즉, 동일한 태그의 감시 데이터)를 이용하여 'min' 및 'max' 필드를 'alwaysE' 및 'alwaysF' 필드와 비교하고, 비교 결과에 기초하여 채우기 영역을 계산할 수 있다. 그리고, 사용자 단말(12)은 계산된 채우기 영역을 'lf' 및 'ff' 필드에 정의된 외곽선 및 배경색으로 채우는 요소(e.g., HTML 요소, CSS 요소)를 웹 문서에 추가할 수 있다.하기의 표 5는 위치 이동 이벤트를 예시하고 있다. 위치 이동 이벤트는 데이터의 값에 따라 객체의 그래픽이 표시되는 위치를 변경시키는 이벤트를 의미한다.
이동 객체의 위치를 변경하는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
direction 이동방향
horizontal tag 수평 조건태그
min 최소값
max 최대값
distance 이동거리
vertical tag 수직 조건태그
min 최소값
max 최대값
distance 이동거리
예시 [{"eid":"Rect_24_4", "type":4, "object":"Rect_24", "direction":2, "horizontal":{"tag":"AI.30000", "tagMin":0.000000, "tagMax":1000.000000, "distance":140.000000}}]
표 5에 예시된 도형 채우기 이벤트가 설정되면, 사용자 단말(12)은 'horizontal' 필드에 정의된 내용에 따라 수평 방향으로 'object' 필드에 정의된 객체의 위치를 이동시키고, 'vertical' 필드에 정의된 내용에 따라 수직 방향으로 해당 객체의 위치를 이동시킬 수 있다. 가령, 사용자 단말(12)은 해당 객체와 연관된 객체 요소(e.g., HTML 요소, CSS 요소)의 'transform' 속성을 이용하여 객체의 위치를 이동시킬 수 있다.다음으로, 하기의 표 6은 태그 표시 이벤트를 예시하고 있다. 태그 표시 이벤트는 데이터의 값을 숫자/문자 형태로 표시하는 이벤트를 의미한다.
태그표시 문자열 객체에 지정된 값을 표시하는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
tag 표시태그
isField 속성표시여부
field 속성
format 표시형식
예시 [{"eid":"Text_69_128", "type":128, "object":"Text_69", "tag":"AIO.40000", "isField":false, "field":0, "format":"####0"}]
표 6에 예시된 태그 표시 이벤트가 설정되면, 사용자 단말(12)은 'tag' 필드에 정의된 감시 데이터를 'format' 필드에 설정된 형식으로 표시할 수 있다. 다음으로, 하기의 표 7은 선택 이벤트를 예시하고 있다. 선택 이벤트는 HMI 화면에 표시된 객체가 선택(e.g., 마우스 클릭, 터치 등)된 경우 특정 액션을 수행하는 이벤트를 의미한다.
선택 객체의 선택에 응답하여 정의된 액션을 수행하는 기능
eid 효과ID
type 효과유형
object 대상객체 ID
mode 터치동작모드
openWindow mouse 화면열기 마우스동작
pages 화면목록
closeWindow mouse 화면닫기 마우스동작
pages 화면목록
control mouse 제어 마우스동작
id 제어태그
isField 속성제어여부
field 속성
type 제어유형
interval 펄스시간
script mouse 동작 마우스동작
code 코드
예시 [{"eid":"Text_64_512", "type":512, "object":"Text_64", "mode":4, "control":{"mouse":500, "id":"AIO.40000", "isField":false, "field":0, "type":2, "interval":3000}}]
표 7에 예시된 선택 이벤트가 설정되면, 사용자 단말(12)은 자바스크립트를 이용하여'object' 필드에 정의된 객체의 상태를 선택 입력(e.g., 터치, 마우스 클릭 등)을 받을 수 있는 상태로 변경할 수 있다(e.g., 해당 객체와 연관된 HTML 요소를 변경함). 그리고, 'openWindow', 'closeWindow', 'control', 'script' 필드에 정의된 방식으로 객체가 선택된 경우, 사용자 단말(12)은 'openWindow' 필드 내의 'pages' 필드에 정의된 HMI 화면(즉, 웹페이지)을 표시하거나, 'closeWindow' 필드 내의 'pages' 필드에 정의된 HMI 화면을 종료시키거나, 'script' 필드 내의 'code' 필드에 정의된 스크립트를 실행시킬 수 있다. 또는, 사용자 단말(12)은 'control' 필드 내의 'id', 'isField', 'field', 'type', 'interval' 필드를 기초로 JSON 형식의 제어 요청 메시지 생성하여 HMI 서버(22)로 전송할 수도 있다.다시 도 5를 참조하여 설명한다.
단계 S53에서, 웹 문서들이 배포될 수 있다. 가령, 제작 장치(10)는 생성된 HTML 문서, CSS 문서 및 JSON 문서를 스카다 시스템(10)으로 배포할 수 있다. 그러면, 스카다 시스템(10)은 배포받은 웹 문서들을 이용하여 사용자에게 스카다 서비스를 제공할 수 있다.
한편, 본 개시의 몇몇 실시예들에 따르면, HMI 화면의 시인성 향상을 위해 사용자가 제작한 HMI 화면을 자동 보정하는 프로세스가 수행될 수도 있다. 이러한 자동 보정 프로세스는 딥러닝 기반의 평가 모델을 이용하여 수행될 수 있는데, 이하 본 실시예에 대하여 도 13 및 도 14를 참조하여 설명하도록 한다.
도 13은 평가 모델(134) 구축 방법을 설명하기 위한 예시적인 도면이다.
도 13에 도시된 바와 같이, 평가 모델(134)은 딥러닝 기반의 모델로서, HMI 화면에 대한 레이블 이미지셋(131, labeled image set)을 학습함으로써 구축될 수 있다. 즉, 제작 장치(10)는 시인성 점수를 레이블(133)로 갖는 HMI 화면 이미지(132)를 이용하여 평가 모델(134)을 학습시킬 수 있다. 도시된 바와 같이, 제작 장치(10)는 평가 모델(134)을 통해 HMI 화면 이미지(132)의 시인성 점수를 예측하고, 예측된 점수와 정답(즉, 레이블 133에 기록된 시인성 점수)과의 차이에 기초하여 평가 모델(134)의 가중치 파라미터를 업데이트할 수 있다. 이러한 과정이 레이블 이미지셋(131)에 포함된 다수의 HMI 화면 이미지들에 대해 반복적으로 수행됨으로써, 평가 모델(134)이 HMI 화면의 시인성을 정확하게 평가하는 능력을 구비하게 된다.
평가 모델(134)은 예를 들어 CNN(Convolutional Neural Network)에 기반하여 구현될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 가령, 평가 모델(134)은 ANN(Artificial Neural Network)에 기반하여 구현될 수도 있고, 트랜스포머(transformer)에 기반하여 구현될 수도 있다. 평가 모델(134)이 트랜스포머 기반으로 구현되는 경우에는, HMI 화면 이미지(132)는 복수의 패치(patch)들로 분할되어 평가 모델(134)로 입력될 수도 있다(즉, 패치의 시퀀스가 평가 모델 134로 입력됨).
도 14는 구축된 평가 모델(134)을 이용하여 자동 보정을 수행하는 방법을 설명하기 위한 예시적인 도면이다.
도 14에 도시된 바와 같이, 제작 장치(10)는 평가 모델(134)을 이용하여 사용자가 제작한 HMI 화면 이미지(141)의 시인성 점수를 평가할 수 있다. HMI 화면 이미지(141)는 제작 장치(10)의 빌더 소프트웨어에 표시된 HMI 화면을 캡처하거나 제작 장치(10)가 생성한 웹 문서들을 웹 브라우저를 통해 렌더링(rendering)하고 렌더링된 화면을 캡쳐(또는 이미지로 변환)함으로써 생성될 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.
다음으로, 제작 장치(10)는 HMI 화면 이미지(141)의 시인성 점수가 기준치 이하라는 판단에 응답하여 자동 보정 프로세스를 개시할 수 있다. 경우에 따라서는, HMI 화면 이미지(141)의 시인성 점수에 관계없이 자동 보정 프로세스가 개시될 수도 있다.
자동 보정 프로세스에서는 HMI 화면의 다양한 디자인 요소들을 변경하고, 변경된 HMI 화면의 이미지(142)의 시인성 점수를 평가 모델(134)을 통해 다시 평가하는 과정이 반복적으로 수행될 수 있다. 가령, 제작 장치(10)는 변경된 HMI 화면 이미지(142)의 시인성 점수가 기준치 이상이 될 때까지, 변경된 HMI 화면 이미지(142)의 시인성 점수가 기준치 이상 증가될 때까지 또는 미리 정해진 반복횟수에 도달할 때까지 상술한 과정을 반복 수행할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다. 자동 보정 프로세스가 완료되면, 제작 장치(10)는 보정된 HMI 화면에 대한 웹 문서들을 출력(또는 배포)할 수 있다.
보다 구체적으로, 제작 장치(10)는 사용자가 제작한 HMI 화면 이미지(141)의 웹 문서들 중에서 HTML 문서와 CSS 문서를 수정하는 방식으로 HMI 화면의 디자인 요소들을 변경할 수 있다. 가령, 제작 장치(10)는 HTML 문서와 CSS 문서에서 객체의 디스플레이 속성(e.g., 위치, 색상, 크기, 모양 등), 배경 색상 등에 관한 값을 수정함으로써 HMI 화면의 디자인 요소들(e.g., 객체 간의 간격, 객체의 색상, 객체의 크기, 배경의 색상, 객체의 정렬 상태 등)을 변경할 수 있다. 그리고, 제작 장치(10)는 웹 브라우저를 통해 수정된 HTML 문서와 CSS 문서로부터 디자인 요소가 변경된 HMI 화면 이미지(142)를 생성할 수 있다.
몇몇 실시예들에서는, 제작 장치(10)가 HMI 화면의 디자인 요소들을 각각 독립적으로 변경하여 다수의 임시 HMI 화면 이미지들을 생성하고, 임시 HMI 화면 이미지들(e.g., 142) 각각에 대한 시인성 점수의 증감폭을 산출할 수 있다. 그리고, 제작 장치(10)는 시인성 점수를 감소시킨 디자인 요소를 제외하고 나머지 디자인 요소들만을 변경하여 HMI 화면 이미지(e.g., 142)를 생성할 수 있다. 이때, 제작 장치(10)는 시인성 점수의 증가폭이 가장 큰 디자인 요소부터 순차적으로 변경해가며 HMI 화면 이미지(e.g., 142)를 생성할 수도 있다. 이러한 경우, 자동 보정 프로세스가 보다 빠르게 수행될 수 있다.
딥러닝 기반의 평가 모델을 이용하여 사용자가 제작한 HMI 화면에 대한 자동 보정 프로세스가 수행될 수 있다. 이에 따라, 제작된 HMI 화면의 시인성이 향상될 수 있으며, 사용자의 제작 경험에 관계없이 일정 수준 이상의 시인성(품질)을 갖는 HMI 화면이 제작될 수 있다.
지금까지 도 5 내지 도 14를 참조하여 본 개시의 몇몇 실시예들에 따른 스카다 시스템을 위한 HMI 제작 방법에 대하여 설명하였다. 상술한 바에 따르면, 애플리케이션 또는 앱 형태의 구현 방식에서 탈피하여 웹(Web) 기반으로 HMI 기능이 구현될 수 있다. 이에 따라, 기존 HMI 모듈의 플랫폼 종속성에서 기인하는 다양한 문제들(e.g., 사용자의 플랫폼 선택권 제한, 운영 환경 제약, HMI 개발 과정의 비효율성)이 용이하게 해결될 수 있다. 가령, 사용자는 플랫폼에 관계없이 인터넷 통신이 가능한 임의의 단말을 통해 감시/제어를 수행할 수 있게 되므로, 운영 환경의 제약으로부터 자유로워질 수 있다. 또한, 스카다 시스템의 개발자는 플랫폼별로 HMI 모듈을 구현할 필요가 없어지므로, 개발 과정의 비효율성 문제도 해결될 수 있다.
또한, SVG 요소를 이용하여 HMI 화면을 위한 웹 문서들을 생성함으로써, 사용자 단말(12)의 디스플레이 해상도에 따라 화면 깨짐 현상이 발생하는 문제가 해결될 수 있다. 나아가, 사용자 단말의 디스플레이 해상도에 관계없이 고품질의 HMI 화면이 제공될 수 있다.
이하에서는, 도 15 및 도 16을 참조하여 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 방법에 대하여 설명하도록 한다.
도 15는 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 15에 도시된 바와 같이, 실시예들에 따른 스카다 서비스 제공 방법은 HMI 서버(22)(또는 스카다 시스템 11)가 제작 장치(10)를 통해 생성된 웹 문서들을 이용하여 스카다 서비스(즉, 감시 및 제어 서비스)를 제공하는 방법에 관한 것이다.
도시된 바와 같이, 실시예들에 따른 방법은 사용자 단말(12)이 HMI 서버(22)에 접속하여 로그인을 수행하는 단계 S151에서 시작될 수 있다. 가령, 사용자는 사용자 단말(12)에 설치된 웹 브라우저를 실행시키고, 웹 브라우저의 주소창에 HMI 서버(22)의 URL을 입력함으로써 HMI 서버(22)에 접속할 수 있다. 그리고, 사용자는 HMI 서버(22)가 제공하는 로그인 화면에 로그인 정보(e.g., ID와 패스워드)를 입력함으로써 HMI 서버(22)에 로그인할 수 있다.
단계 S152에서, HMI 서버(22)는 사용자 단말(12)에게 HMI 관련 웹 문서들을 제공할 수 있다. 가령, HMI 서버(22)는 제작 장치(10)를 통해 생성된 HTML 문서, CSS 문서, JSON 문서 등을 사용자 단말(12)로 전송할 수 있다. 그러면, 사용자 단말(12)의 웹 브라우저가 수신된 웹 문서들로부터 HMI 화면을 렌더링하여 표시할 수 있다.
단계 S153에서, 사용자 단말(12)은 indexedDB를 활성화시킬 수 있다. indexedDB는 웹 브라우저에 내장된 로컬 데이터베이스인데, 당해 기술 분야의 종사자라면 indexedDB에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다. 본 단계의 세부 과정은 도 16에 도시되어 있다.
도 16에 도시된 바와 같이, 사용자 단말(12)은 indexedDB의 버전 정보와 기 저장된 JSON 문서에 기록된 버전 정보가 일치한다는 판단에 응답하여 indexedDB를 곧바로 활성화시킬 수 있다(S164). 이때, 기 저장된 JSON 문서는 감시/제어 데이터의 필드 정보가 정의되어 있는 문서를 의미할 수 있다.
두 버전 정보가 일치하지 않는 경우, 사용자 단말(12)은 HMI 서버(22)에게 요청하여 JSON 문서를 업데이트할 수 있다(S162). 즉, 사용자 단말(12)은 HMI 서버(22)에게 최신 JSON 문서를 요청하여 수신하고, 기 저장된 JSON 문서를 수신된 문서로 대체할 수 있다. 그리고, 사용자 단말(12)은 최신 JSON 문서를 이용하여 indexedDB를 재구성할 수 있다(S163).
다시 도 15를 참조하여 설명한다.
단계 S154에서, HMI 서버(22)는 사용자 단말(12)과 웹소켓 연결을 수립할 수 있다. 웹소켓을 이용하는 이유는 웹소켓 통신은 HTTP 통신과 달리 양방향 통신을 지원하기 때문이다. 부연 설명하면, 스카다 서비스를 원활하게 제공하기 위해서는, HMI 서버(22)가 여러가지 데이터(e.g., 실시간으로 획득되는 감시 데이터, 제어 요청에 대한 처리 결과 등)를 사용자 단말(12)에게 즉각적으로 전송할 필요가 있다. 그런데, HTTP 통신을 이용하면, 사용자 단말(12)로부터 HTTP 요청(즉, HTTP 요청 메시지)이 수신된 경우에만 HMI 서버(22)가 데이터를 전송할 수 있기 때문에, 스카다 서비스가 원활하게 제공될 수 없다. 이러한 이유로, HMI 서버(22)와 사용자 단말(12) 간에 웹소켓 연결을 수립하는 것으로 이해될 수 있다.
한편, 몇몇 실시예들에서, 과거 데이터(e.g., 감시/제어 데이터 등) 조회와 같은 일부 기능은 HTTP 통신을 통해서 제공될 수도 있다. 과거 데이터 조회는 사용자의 요청에 의해 트리거되는 기능이므로, HTTP 통신을 통해 제공하더라도 문제될 것이 없기 때문이다. 가령, 사용자가 HMI 화면에서 특정 객체의 과거 데이터를 조회하는 메뉴를 선택하면, 사용자 단말(12)이 과거 데이터 조회를 요구하는 HTTP 요청 메시지(e.g., HTTP GET/POST 메서드)를 HMI 서버(22)로 전송할 수 있다. 그러면, HMI 서버(22)가 해당 객체의 과거 데이터를 조회하고 조회 결과(e.g., JSON 형식의 조회 결과)를 포함하는 HTTP 응답 메시지를 생성하여 사용자 단말(12)에게 전송할 수 있다.
단계 S155에서, 사용자 단말(12)이 HMI 서버(22)로 제어 요청을 전송할 수 있다. 가령, 사용자가 HMI 화면 상에서 특정 객체를 제어하는 메뉴를 선택하거나 제어 명령을 입력하면(e.g., 객체의 가동 상태를 on/off 하는 등), 사용자 단말(12)이 제어 요청(e.g., JSON 형식의 제어 요청 메시지)을 HMI 서버(22)로 전송할 수 있다.
단계 S156 및 S157에서, HMI 서버(22)는 제어 요청에 따른 처리를 수행하고, 처리 결과(e.g., JSON 형식의 처리 결과 메시지)를 사용자 단말(12)에게 제공할 수 있다. 가령, HMI 서버(22)는 제어 요청에 따른 처리 결과를 연결된 웹 소켓을 통해 사용자 단말(12)로 전송할 수 있다.
지금까지 본 개시의 몇몇 실시예들에 따른 스카다 서비스 제공 방법에 대하여 설명하였다. 상술한 바에 따르면, 웹 기반으로 스카다 서비스가 제공됨으로써, 사용자는 플랫폼에 관계없이 인터넷 통신이 가능한 임의의 단말을 통해 감시/제어를 수행할 수 있게 된다.
이하에서는, 도 17을 참조하여 본 개시의 몇몇 실시예들에 따른 장치/시스템(e.g., 제작 장치 10, 스카다 시스템 11)을 구현할 수 있는 예시적인 컴퓨팅 장치(170)에 대하여 설명하도록 한다.
도 17은 컴퓨팅 장치(170)를 나타내는 예시적인 하드웨어 구성도이다.
도 17에 도시된 바와 같이, 컴퓨팅 장치(170)는 하나 이상의 프로세서(171), 버스(173), 통신 인터페이스(174), 프로세서(171)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(172)와, 컴퓨터 프로그램(176)을 저장하는 스토리지(175)를 포함할 수 있다. 다만, 도 17에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 17에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(170)에는, 도 17에 도시된 구성요소 이외에도 다양한 구성요소가 더 포함될 수 있다. 또한, 경우에 따라, 도 17에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(170)가 구성될 수도 있다. 이하, 컴퓨팅 장치(170)의 각 구성요소에 대하여 설명한다.
프로세서(171)는 컴퓨팅 장치(170)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(171)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(171)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(170)는 하나 이상의 프로세서를 구비할 수 있다.
다음으로, 메모리(172)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(172)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(175)로부터 컴퓨터 프로그램(176)을 로드할 수 있다. 메모리(172)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
다음으로, 버스(173)는 컴퓨팅 장치(170)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(173)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
다음으로, 통신 인터페이스(174)는 컴퓨팅 장치(170)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(174)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(174)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
다음으로, 스토리지(175)는 하나 이상의 컴퓨터 프로그램(176)을 비임시적으로 저장할 수 있다. 스토리지(175)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
다음으로, 컴퓨터 프로그램(176)은 메모리(172)에 로드될 때 프로세서(171)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(171)는 로드된 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예들에 따른 동작/방법을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(176)은 스카다 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 동작, 입력된 정보 중 제1 정보에 기초하여 HMI 화면을 위한 HTML 문서를 생성하는 동작, 입력된 정보 중 제2 정보에 기초하여 HMI 화면을 위한 CSS 문서를 생성하는 동작 및 입력된 정보 중 제3 정보에 기초하여 HMI 화면을 위한 JSON 문서를 생성하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(170)를 통해 본 개시의 몇몇 실시예들에 따른 제작 장치(10)가 구현될 수 있다.
다른 예로서, 컴퓨터 프로그램(176)은 HMI 관련 웹 문서를 사용자 단말(12)에게 제공하는 동작, 사용자 단말(12)로부터 제어 요청을 수신하는 동작, 제어 요청에 따른 처리를 수행하는 동작 및 처리 결과를 제공하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(170)를 통해 본 개시의 몇몇 실시예들에 따른 스카다 시스템(11) 또는 HMI 서버(22)가 구현될 수 있다.
지금까지 도 17을 참조하여 본 개시의 몇몇 실시예들에 따른 장치/시스템(e.g., 제작 장치 10, 스카다 시스템 11)을 구현할 수 있는 예시적인 컴퓨팅 장치(170)에 대하여 설명하였다.
지금까지 도 1 내지 도 17을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (9)

  1. 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서,
    스카다(SCADA) 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 단계 - 상기 객체는 상기 스카다 시스템을 통해 관리되는 설비의 감시 포인트 또는 제어 포인트에 대응됨 - ;
    상기 입력된 정보 중 제1 정보에 기초하여 상기 HMI 화면을 위한 HTML 문서를 생성하는 단계;
    상기 입력된 정보 중 제2 정보에 기초하여 상기 HMI 화면을 위한 CSS 문서를 생성하는 단계;
    상기 입력된 정보 중 제3 정보에 기초하여 상기 HMI 화면을 위한 JSON 문서를 생성하는 단계; 및
    상기 생성된 HTML 문서, 상기 생성된 CSS 문서 및 상기 생성된 JSON 문서를 이용하여 웹 기반의 스카다 서비스를 제공하는 단계;를 포함하되,
    상기 제1 정보는 상기 객체의 유형에 관한 정보를 포함하고,
    상기 제2 정보는 상기 객체의 디스플레이 속성에 관한 정보를 포함하며,
    상기 제3 정보는 상기 디스플레이 속성을 변화시키는 사용자 이벤트에 관한 정보를 포함하고,
    상기 웹 기반의 스카다 서비스를 제공하는 단계는,
    사용자 단말과 연결된 웹소켓을 통해 상기 객체에 대한 제어 요청을 수신하고, 상기 웹소켓을 통해 상기 제어 요청에 대한 처리 결과를 전송하는 단계; 및
    상기 사용자 단말로부터 상기 객체 또는 다른 객체의 과거 데이터 조회를 요구하는 HTTP 요청 메시지를 수신하고, 상기 과거 데이터 조회의 결과를 포함하는 HTTP 응답 메시지를 상기 사용자 단말로 전송하는 단계;를 포함하는 것을 특징으로 하는, 스카다 시스템을 위한 HMI 제작 방법.
  2. 제1항에 있어서,
    상기 HTML 문서는 상기 객체의 그래픽을 표현하기 위한 SVG(Scalable Vector Graphics) 요소를 포함하는, 스카다 시스템을 위한 HMI 제작 방법.
  3. 제2항에 있어서,
    상기 객체는 제1 객체 및 제2 객체를 포함하고,
    상기 HTML 문서를 생성하는 단계는,
    상기 제1 객체의 그래픽이 SVG의 기본 도형 요소들을 통해 표시 가능하다는 판단에 응답하여, 상기 기본 도형 요소들을 포함하는 제1 SVG 요소를 상기 HTML 문서에 삽입하는 단계; 및
    상기 제2 객체의 그래픽이 상기 SVG의 기본 도형 요소들을 통해 표시 불가능하다는 판단에 응답하여, foreignObject 요소를 이용하여 상기 제2 객체의 그래픽이 정의된 제2 SVG 요소를 상기 HTML 문서에 삽입하는 단계를 포함하는, 스카다 시스템을 위한 HMI 제작 방법.
  4. 제2항에 있어서,
    상기 SVG 요소는 미리 제작된 SVG 심볼에 관한 것이고, 상기 SVG 심볼에는 상기 객체의 상태에 따라 그래픽을 변경하여 표시하기 위해 복수의 식별자들과 상기 식별자들에 대응되는 그래픽들이 정의되어 있는, 스카다 시스템을 위한 HMI 제작 방법.
  5. 제4항에 있어서,
    상기 복수의 식별자들은, 상기 객체의 상태에 관계없이 표시되는 그래픽에 대응되는 제1 식별자, 상기 객체가 가동 상태에 있을 때 표시되는 그래픽에 대응되는 제2 식별자, 상기 객체가 비-가동 상태에 있을 때 표시되는 그래픽에 대응되는 제3 식별자 및 상기 객체가 고장 상태에 있을 때 표시되는 그래픽에 대응되는 제4 식별자를 포함하는, 스카다 시스템을 위한 HMI 제작 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 JSON 문서는 제1 JSON 문서이고,
    상기 입력된 정보에 기초하여 상기 객체의 감시 또는 제어를 위한 필드 정보가 정의된 제2 JSON 문서를 생성하는 단계 - 상기 제2 JSON 문서는 버전 정보를 포함함 - ; 및
    상기 생성된 HTML 문서, 상기 생성된 CSS 문서, 상기 제1 JSON 문서 및 상기 제2 JSON 문서를 이용하여 웹 기반의 스카다 서비스를 제공하는 단계를 더 포함하며,
    상기 웹 기반의 스카다 서비스를 제공하는 단계는, 사용자 단말의 요청에 응답하여 상기 제2 JSON 문서를 전송하는 단계;를 포함하고,
    상기 사용자 단말은,
    기 저장된 제3 JSON 문서의 버전 정보가 IndexedDB의 버전 정보와 일치하지 않는다는 판단에 응답하여 상기 제2 JSON 문서를 요청하고 - 상기 제3 JSON 문서도 상기 필드 정보가 정의된 문서임 - ,
    상기 제2 JSON 문서에 기초하여 상기 IndexedDB를 재구성하며, 상기 재구성된 IndexedDB를 활성화하는, 스카다 시스템을 위한 HMI 제작 방법.
  8. 하나 이상의 프로세서; 및
    하나 이상의 인스트럭션들을 저장하는 메모리를 포함하고,
    상기 하나 이상의 프로세서는,
    상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써,
    스카다(SCADA) 시스템의 HMI 화면에 표시되는 객체에 관한 정보를 입력받는 동작 - 상기 객체는 상기 스카다 시스템을 통해 관리되는 설비의 감시 포인트 또는 제어 포인트에 대응됨 - ;
    상기 입력된 정보 중 제1 정보에 기초하여 상기 HMI 화면을 위한 HTML 문서를 생성하는 동작,
    상기 입력된 정보 중 제2 정보에 기초하여 상기 HMI 화면을 위한 CSS 문서를 생성하는 동작,
    상기 입력된 정보 중 제3 정보에 기초하여 상기 HMI 화면을 위한 JSON 문서를 생성하는 동작, 및
    상기 생성된 HTML 문서, 상기 생성된 CSS 문서 및 상기 생성된 JSON 문서를 이용하여 웹 기반의 스카다 서비스를 제공하는 동작을 수행하되,
    상기 제1 정보는 상기 객체의 유형에 관한 정보를 포함하고,
    상기 제2 정보는 상기 객체의 디스플레이 속성에 관한 정보를 포함하며,
    상기 제3 정보는 상기 디스플레이 속성을 변화시키는 사용자 이벤트에 관한 정보를 포함하고,
    상기 웹 기반의 스카다 서비스를 제공하는 동작은,
    사용자 단말과 연결된 웹소켓을 통해 상기 객체에 대한 제어 요청을 수신하고, 상기 웹소켓을 통해 상기 제어 요청에 대한 처리 결과를 전송하는 동작, 및
    상기 사용자 단말로부터 상기 객체 또는 다른 객체의 과거 데이터 조회를 요구하는 HTTP 요청 메시지를 수신하고, 상기 과거 데이터 조회의 결과를 포함하는 HTTP 응답 메시지를 상기 사용자 단말로 전송하는 동작을 포함하는 것을 특징으로 하는, 스카다 시스템을 위한 HMI 제작 장치.

  9. 삭제
KR1020220111201A 2022-09-02 2022-09-02 스카다 시스템을 위한 hmi 제작 방법 및 그 장치 KR102492443B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220111201A KR102492443B1 (ko) 2022-09-02 2022-09-02 스카다 시스템을 위한 hmi 제작 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220111201A KR102492443B1 (ko) 2022-09-02 2022-09-02 스카다 시스템을 위한 hmi 제작 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102492443B1 true KR102492443B1 (ko) 2023-01-30

Family

ID=85106074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220111201A KR102492443B1 (ko) 2022-09-02 2022-09-02 스카다 시스템을 위한 hmi 제작 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102492443B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015200953A (ja) * 2014-04-04 2015-11-12 株式会社東芝 画像表示装置
KR101649822B1 (ko) * 2015-02-13 2016-08-19 김효환 웹페이지 구축 장치 및 방법
KR20180109566A (ko) 2017-03-28 2018-10-08 엘에스산전 주식회사 스카다(scada) 시스템의 데이터 전송 중계 장치
KR20190102819A (ko) * 2018-02-27 2019-09-04 엘에스산전 주식회사 Hmi화면 작화 방법
KR102409378B1 (ko) * 2021-05-21 2022-06-15 주식회사 샤인소프트 스마트 팩토리 통합 모니터링 서비스 제공방법, 서버 및 컴퓨터프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015200953A (ja) * 2014-04-04 2015-11-12 株式会社東芝 画像表示装置
KR101649822B1 (ko) * 2015-02-13 2016-08-19 김효환 웹페이지 구축 장치 및 방법
KR20180109566A (ko) 2017-03-28 2018-10-08 엘에스산전 주식회사 스카다(scada) 시스템의 데이터 전송 중계 장치
KR20190102819A (ko) * 2018-02-27 2019-09-04 엘에스산전 주식회사 Hmi화면 작화 방법
KR102409378B1 (ko) * 2021-05-21 2022-06-15 주식회사 샤인소프트 스마트 팩토리 통합 모니터링 서비스 제공방법, 서버 및 컴퓨터프로그램

Similar Documents

Publication Publication Date Title
TWI682645B (zh) 混合顯現hmi終端裝置
CN112214210A (zh) 后勤业务规则引擎及其配置方法、装置、设备和存储介质
JP2000507731A (ja) 視覚表示オブジェクト・ファイルを変換するシステムおよびその動作方法
CN110046072A (zh) 页面的监控方法、装置、终端及可读存储介质
US20220405647A1 (en) Automatically controlling modifications to typeface designs with machine-learning models
US10339680B2 (en) Graphics control data for performing skeleton-based modifications of a typeface design
US10983679B2 (en) Selectively enabling trackpad functionality in graphical interfaces
US20150339277A1 (en) Systems and methods for programming behavior of a website to respond to capabilities of different devices
KR102492443B1 (ko) 스카다 시스템을 위한 hmi 제작 방법 및 그 장치
CN112905944A (zh) 页面在线动态生成方法、装置、电子设备和可读存储介质
US20210334076A1 (en) System for providing software development environment, method for providing software development environment, and non-transitory computer readable medium
EP3933571A1 (en) System for providing software development environment, method for providing software development environment, and non-transitory computer readable medium
US11803179B2 (en) SCADA web HMI system
JP7115506B2 (ja) ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
EP3905028A1 (en) System for providing software development environment, method for providing software development environment, and non-transitory computer readable medium
CN110018769A (zh) 一种基于Android的父控件设置方法和父控件
AU2018206708A1 (en) Project faces
KR102203677B1 (ko) 배전분야 통합 그래픽 편집기 및 뷰어 시스템
JP2022012394A (ja) ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
CN115729655A (zh) 一种数据渲染方法、装置、电子设备及介质
JP6025588B2 (ja) 監視制御システム
CN112817683A (zh) 拓扑结构配置界面的控制方法、控制设备及介质
CN116991371A (zh) 一种基于HTML文本对象模型的DaaS方法

Legal Events

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