KR20180083948A - Plc 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템 - Google Patents

Plc 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템 Download PDF

Info

Publication number
KR20180083948A
KR20180083948A KR1020187019479A KR20187019479A KR20180083948A KR 20180083948 A KR20180083948 A KR 20180083948A KR 1020187019479 A KR1020187019479 A KR 1020187019479A KR 20187019479 A KR20187019479 A KR 20187019479A KR 20180083948 A KR20180083948 A KR 20180083948A
Authority
KR
South Korea
Prior art keywords
data
programmable logic
logic controller
intelligent programmable
industrial production
Prior art date
Application number
KR1020187019479A
Other languages
English (en)
Other versions
KR101923100B1 (ko
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 지멘스 악티엔게젤샤프트
Publication of KR20180083948A publication Critical patent/KR20180083948A/ko
Application granted granted Critical
Publication of KR101923100B1 publication Critical patent/KR101923100B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14055Make log, journal, history file of state changes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

산업 생산 환경에서 데이터를 저장하기 위한 시스템이 개시되며, 이 시스템은, 복수의 지능형 프로그램가능 논리 제어기 디바이스들 상에 저장된 분산 데이터 관리 시스템을 포함한다. 각각의 지능형 프로그램가능 논리 제어기 디바이스는, 프로세스 이미지 영역을 포함하는 휘발성 컴퓨터-판독가능 스토리지 매체, 비-휘발성 컴퓨터-판독가능 스토리지 매체; 동작 명령들을 생산 유닛에 제공하도록 구성된 제어 프로그램; 생산 유닛과 연관된 데이터를 이용하여, 각각의 스캔 주기 동안 프로세스 이미지 영역을 업데이팅하도록 구성된 입력/출력 컴포넌트; 분산 데이터 관리 시스템의 인스턴스를 포함하는 분산 데이터 관리 컴포넌트; 콘텍스트화 컴포넌트; 히스토리언 컴포넌트; 및 데이터 분석 컴포넌트를 포함한다.

Description

PLC 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템
[1] 본 개시내용은, 지능형 PLC들을 위한 분산 데이터 관리 시스템(distributed data management system)에 관한 것이다. 다양한 시스템들 및 방법들이 산업 자동화 애플리케이션(application)들 뿐만 아니라 지능형 PLC들이 사용되는 다양한 다른 애플리케이션들에 적용될 수 있다.
[2] 프로그램가능 논리 제어기(PLC; programmable logic controller)는, 계속해서 입력 디바이스(device)들의 상태에 관한 데이터를 모아서 출력 디바이스들의 상태를 제어하는 소프트웨어(software)를 실행하도록 구성된 전문화된 컴퓨터(computer) 제어 시스템이다. PLC는 통상적으로, 3 개의 주요 컴포넌트(component)들: 프로세서(processor)(휘발성 메모리(memory)를 포함할 수 있음), 애플리케이션 프로그램(program)을 포함하는 휘발성 메모리, 및 자동화 시스템의 다른 디바이스들에 연결되기 위한 하나 또는 그 초과의 입력/출력(I/O; input/output) 포트(port)들을 포함한다.
[3] 종래의 자동화 시스템들은 피라미드(pyramid) 구조를 따르며, 이러한 피라미드 구조는 PLC들로부터 상위 계층(예컨대, SCADA 또는 MES 레벨(level))의 히스토리언(historian)으로의 모든 미가공 데이터(수백만의 샘플(sample) 지점들)의 전송을 필요로 한다. 상위 레벨로의 데이터의 푸싱(pushing)은 데이터의 분해능 및 준비성을 감소시키며, 이는 결국, PLC 거동으로부터 통찰력들을 추출하기 위한 분석의 효과성을 제한하며, 제어 최적화를 위해 제어 프로세스(process)에 개입하기 위한 레이턴시(latency)를 증가시킨다. 프로세스 데이터에 대한 각자의 특권화된 액세스(access) 및 제어기 로직(logic)에 기반하여 데이터 분석을 심도있게 지원하는 PLC들의 능력은, 종래의 시스템들에서 충분히 활용되지 않는다. 후자는 정적 제어기 로직/구성에 기인하며, 이러한 정적 제어기 로직/구성은, 제어 로직의 동적 적응식 변화들 또는 시운전 단계 후 변화(post commissioning phase change)들을 현재 지원하지 않으며, 또한 다른 PLC의 데이터 및 콘텍스트(context)에 대한 의식을, 이것이 요구될 때 지원하지 않는다.
[4] 종래의 자동화 시스템들의 부가적인 결점은, 필드(field) 레벨 제어기들이 지식 베이스(base)들을 유지 및 관리하지 않는다는 점이다. 예컨대, 대부분의 종래의 이더넷-기반(Ethernet-based) 제어기들은, 각자의 피어(peer)들 데이터, 지식, 및 거동을 의식하지 않으면서, 미가공 데이터를 감독 레벨 시스템들에 전송하기 위해 본질적으로 각자의 마스터(master)들에 연결되며, 이는 의사 결정 프로세스를 상위 계층들에 푸싱한다(push). 제어기의 콘텍스트는, 더 깊은 분석 통찰력들을 획득하기 위해 사용되지 않는다. 분석 데이터 모델(model)들은 현재, 제어기의 콘텍스트 정보(예컨대, 데이터 리버스 엔지니어링(reverse engineering)에 사용될 수 있는 기능 블록(block)들 메타데이터(metadata)의 표현)가 이용가능하지 않은 상위 레벨들에서 형성되어 있다. 비효율적인 의사 결정. 하위 레벨에서 로컬로(locally) 저장된 이력 입력/출력 데이터 및 지식 그리고 분석 데이터 모델들의 이용가능하지 않음은, 로컬(local) 디바이스를 제어하기 위한 효율적인 의사 결정에 영향을 끼친다.
[5] 종래의 자동화 시스템들은 또한, PLC들 상에 로컬로 유지되는 히스토리언 지식의 양에서 극도로 제한된다. 결국, 이는 PLC의 기능성을 제한한다. 예컨대, 최신 이력 정보(즉, 단기(short term) 데이터)가 요구되면, 인-사이클 프로세싱(in-cycle processing)은 현재 수행될 수 없다. 이는, 계산들이 외부적으로 수행되고 다시 PLC에 푸싱되게 한다. 게다가, PLC의 로컬 히스토리언의 결여는, 시스템 동작들을 최적화하는 것을 목표로 하는 제어 매개변수들의 동적 적응을 지원하는 실시간 데이터 분석을 수행할 가능성을 제한한다.
[6] 부가적으로, PLC 및 다른 제어 계층 디바이스들에서의 로컬 정보 없이, 종래의 자동화 시스템들에서 효과적인 그리고 강건한 인-필드 분석 솔루션(in-field analytics solution)들을 구현하는 것은, 불가능하지는 않더라도, 난제이다. 인-필드 분석을 위한 종래의 솔루션들은 현재, 생산 후(예컨대, 배치(batch)들 후)의 소급 분석을 지원하는 배치 프로세스들로서 구현되어 있다. 온라인(online) 생산 분석은 약간의 지연으로만 가능하다. 그러므로, 분석에 기반하는, 제어에 대한 직접적인 개입은 시간-임계 프로세스들에 종종 비현실적이다.
[7] 본 발명의 실시예들은, 제어 계층 디바이스들, 이를테면 지능형 PLC들에 의해 제공되는 분산 스토리지(storage) 시스템에 관련된 방법들, 시스템들, 및 장치들을 제공함으로써, 위의 단점들 및 결점들 중 하나 또는 그 초과를 해결하여 극복한다. 예컨대, 본원에서 설명된 기법들은, 데이터 및 분석이 분산 시스템으로부터 인-사이클 분석 프로세싱 엔진(engine)으로 분산될 수 있게 함으로써, 로컬 히스토리언 데이터 및 콘텍스트화(contextualization) 지식을 분산 데이터 인프라스트럭처(infrastructure)에서 이용가능하게 하는 문제를 해결한다. 본원에서 설명된 기술은 특히, 다양한 산업 자동화 애플리케이션들(그러나, 이들에 제한되지 않음)에 적합하다.
[8] 본 발명의 일부 실시예들에 따라, 산업 생산 환경에서 데이터를 저장하기 위한 시스템이 개시되며, 이 시스템은, 복수의 지능형 프로그램가능 논리 제어기 디바이스들 상에 저장된 분산 데이터 관리 시스템을 포함한다. 각각의 지능형 프로그램가능 논리 제어기 디바이스는, 프로세스 이미지(image) 영역을 포함하는 휘발성 컴퓨터-판독가능(computer-readable) 스토리지 매체, 비-휘발성 컴퓨터-판독가능 스토리지 매체; 동작 명령들을 생산 유닛(unit)에 제공하도록 구성된 제어 프로그램; 생산 유닛과 연관된 데이터를 이용하여, 각각의 스캔(scan) 주기 동안 프로세스 이미지 영역을 업데이팅하도록(update) 구성된 입력/출력 컴포넌트; 분산 데이터 관리 시스템의 인스턴스(instance)를 포함하는 분산 데이터 관리 컴포넌트; 콘텍스트화 컴포넌트, 히스토리언 컴포넌트, 및 데이터 분석 컴포넌트를 포함한다. 콘텍스트화 컴포넌트는, 자동화 시스템 콘텍스트(context) 정보를 이용하여 프로세스 이미지 영역의 콘텐츠(content)들에 주석을 닮으로써, 콘텍스트화된(contextualized) 데이터를 생성하도록 구성된다. 히스토리언 컴포넌트는, 프로세스 이미지 영역의 콘텐츠들 및 콘텍스트화된 데이터를 로컬로(locally) 저장하도록 구성되며, 이러한 히스토리언 컴포넌트는, 분산 데이터 관리 컴포넌트를 통해 분산 데이터 관리 시스템에 걸쳐 콘텐츠들을 이용가능하게 한다. 데이터 분석 컴포넌트는, 분산 데이터 관리 컴포넌트를 사용하여 분산 데이터 관리 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘(algorithm)들을 실행하도록 구성된다.
[9] 일부 실시예들에서, 전술된 시스템은, 하나 또는 그 초과의 선언적 지식 모델(model)들에 기반하여, 제어 프로그램의 런타임(runtime) 동안 하나 또는 그 초과의 추론 알고리즘들을 동적으로 수정하도록 구성된 지식 관리자 컴포넌트를 더 포함한다. 이들 선언적 지식 모델들은, 예컨대, 웹 온톨로지 언어(OWL; Web Ontology Language)를 사용하여 표현된 온톨로지들, 예측 모델 마크업 언어(PMML; Predictive Model Markup Language) 표준을 사용하여 표현된 예측 모델, 및/또는 규칙 상호교환 포맷(RIF; Rule Interchange Format) 표준을 사용하여 표현된 하나 또는 그 초과의 규칙들을 포함할 수 있다.
[10] 전술된 시스템의 일부 실시예들에서, 각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스의 데이터 분석 컴포넌트에 의해 사용되는 추론 알고리즘들은 하나 또는 그 초과의 벤더-특정된(vendor-specified) 지식 모델들에 기반하여 구성된다. 이들 벤더-특정된 지식 모델들은, 예컨대, 복수의 지능형 프로그램가능 논리 제어기 디바이스들의 하나 또는 그 초과의 능력들에 관련된 정보, 복수의 지능형 프로그램가능 논리 제어기 디바이스들에서 이용가능한 진단 지식, 및/또는 복수의 지능형 프로그램가능 논리 제어기 디바이스들에 의해 사용되는 데이터 레이아웃(layout) 정보를 포함할 수 있다.
[11] 전술된 시스템의 다양한 특징들은 호스트 하드웨어(host hardware)의 프로세싱 능력들에 기반하여 적응되거나, 향상되거나, 또는 정제될 수 있다. 예컨대, 일부 실시예들에서, 각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스는, 제어 프로그램을 실행하며, 제어 프로그램의 실행과 병렬로 하나 또는 그 초과의 추론 알고리즘들을, 제어 프로그램의 실행과 병렬로 수정하도록 구성된 하나 또는 그 초과의 프로세서들을 더 포함한다.
[12] 본 발명의 다른 실시예들에 따라, 산업 생산 환경에서 데이터를 저장하기 위한 방법은, 제1 지능형 프로그램가능 논리 제어기가, 복수의 스캔 주기들에 걸쳐, 동작 명령들을 생산 유닛에 제공하도록 구성된 제어 프로그램을 실행하는 단계, 및 생산 유닛과 연관된 데이터를 이용하여, 복수의 스캔 주기들 각각 동안 프로세스 이미지 영역을 업데이팅(updating)하는 단계를 포함한다. 방법은, 제1 지능형 프로그램가능 논리 제어기가, 자동화 시스템 콘텍스트 정보를 이용하여 프로세스 이미지 영역의 콘텐츠들에 주석을 닮으로써, 콘텍스트화된 데이터를 생성하는 단계, 및 프로세스 이미지 영역의 콘텐츠들 및 콘텍스트화된 데이터를 제1 지능형 프로그램가능 논리 제어기 상의 로컬 비-휘발성 컴퓨터 판독가능 매체에 삽입하는 단계를 더 포함한다. 이 로컬 비-휘발성 컴퓨터 판독가능 매체는, 제1 지능형 프로그램가능 논리 제어기 및 복수의 제2 지능형 프로그램가능 논리 제어기들에 걸쳐 저장된 분산 스토리지 시스템의 일부이다. 로컬 비-휘발성 컴퓨터 판독가능 매체로의, 생산 유닛과 연관된 데이터의 삽입은, 예컨대, 생산 유닛과 연관된 데이터 및 동작 명령들에 대한 변화들에 기반하여 트리거링될(triggered) 수 있다. 제1 지능형 프로그램가능 논리 제어기는, 분산 스토리지 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘들을 실행한다.
[13] 전술된 방법은 본 발명의 상이한 실시예들에서 부가적인 특징들, 정제들 또는 다른 변형들을 가질 수 있다. 예컨대, 일부 실시예들에서, 방법은, 제1 지능형 프로그램가능 논리 제어기가, 하나 또는 그 초과의 선언적 지식 모델들에 기반하여, 제어 프로그램의 런타임 동안 하나 또는 그 초과의 추론 알고리즘들을 동적으로 수정하는 단계를 더 포함한다. 전술된 방법의 일부 실시예들에서, 로컬 비-휘발성 컴퓨터 판독가능 매체는 테이블 동등 뷰(table equivalent view)를 갖는 NoSQL 데이터베이스(database)를 포함한다.
[14] 전술된 방법에서 사용된 추론 알고리즘들은, 예컨대, 하나 또는 그 초과의 벤더-특정된 지식 모델들에 기반하여 구성될 수 있다. 예컨대, 이들 벤더-특정된 지식 모델들은, 제1 지능형 프로그램가능 논리 제어기의 하나 또는 그 초과의 능력들에 관련된 정보, 제1 지능형 프로그램가능 논리 제어기에서 이용가능한 진단 지식, 및/또는 제1 지능형 프로그램가능 논리 제어기에 의해 사용되는 데이터 레이아웃 정보를 포함할 수 있다.
[15] 일부 실시예들에서, 전술된 방법은 병렬 컴퓨팅(computing) 환경에서 실행될 수 있다. 예컨대, 일 실시예에서, 제1 지능형 프로그램가능 논리 제어기는, 제1 지능형 프로그램가능 논리 제어기에 포함된 프로세서의 제1 코어(core)를 사용하여 제어 프로그램을 실행한다. 추론 알고리즘들은, 제1 지능형 프로그램가능 논리 제어기에 포함된 이러한 프로세서의 제2 코어를 사용하여 동적으로 수정될 수 있다.
[16] 본 발명의 다른 실시예들에 따라, 산업 생산 환경에서 데이터를 저장하기 위한 제조 아티클(article of manufacture)은, 위에서 논의된 부가적인 특징들과 함께 또는 이러한 부가적인 특징들 없이, 전술된 방법을 수행하기 위한 컴퓨터-실행가능 명령들을 유지하는 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함한다.
[17] 본 발명의 부가적인 특징들 및 장점들은, 첨부된 도면들을 참조하여 진행되는 예시적인 실시예들의 다음의 상세한 설명으로부터 자명해질 것이다.
[18] 본 발명의 전술된 그리고 다른 양상들은, 첨부된 도면들과 관련하여 읽을 때, 다음의 상세한 설명으로부터 최선으로 이해된다. 본 발명을 예시하는 목적을 위해, 현재 바람직한 실시예들이 도면들에서 도시되지만, 본 발명이 개시된 특정 수단들로 제한되지 않는다는 것이 이해된다. 다음의 도면들이 도면들에 포함된다:
[19] 도 1은 일부 실시예들에 따른, 지능형 디바이스들이 자동화 시스템 데이터에 대한 분산 데이터 관리 시스템(DDMS; distributed data management system)을 형성하는 산업 자동화 시스템을 예시하는 아키텍처 다이어그램(architecture diagram)을 제공하고;
[20] 도 2는 일부 실시예들에 따른, 지능형 PLC의 개념 뷰(conceptual view)를 제공하고;
[21] 도 3은 일부 실시예들에 따른, 분산 데이터 및 지식 관리 뿐만 아니라 분산 분석을 위한 DDMS 아키텍처의 예시를 제공하고;
[22] 도 4는 일부 실시예들에 따른, 정보가 DDMS 노드(node) 안으로 그리고 밖으로 어떻게 전송될 수 있는지에 대한 개념 뷰를 제공하고;
[23] 도 5는 일부 실시예들에 따른, DDMS 노드 인스턴스가 분산 데이터 인프라스트럭처로의/분산 데이터 인프라스트럭처로부터의 대량 데이터 전송을 어떻게 지원하는지에 대한 부가적인 예시를 제공하고;
[24] 도 6은 일부 실시예들에 따른, 외부 디바이스 또는 애플리케이션에 의해 트리거링되는 지능형 PLC 논리 규칙 업데이트(update)의 예를 제공하고;
[25] 도 7은 일부 실시예들에 따른, 샤딩된(sharded) 데이터 액세스가 DDMS 인프라스트럭처에 걸쳐 어떻게 구현될 수 있는지에 대한 예시를 제공하며; 그리고
[26] 도 8은 본 발명의 일부 실시예들에 따른, 분산 데이터 관리 시스템 내에서 데이터를 리트리빙(retrieving) 및 프로세싱(processing)하기 위한 3-단계 프로세스를 도시한다.
[27] 일반적으로 "지능형 PLC들"로 본원에서 지칭된 복수의 지능형 프로그램가능 논리 제어기들에 걸쳐 구현된 분산 스토리지 시스템에 관한 시스템들, 방법들, 및 장치들이 본원에서 설명된다. 본원에서 설명된 다양한 실시예들에 따라, 지능형 PLC는, 다수의 역할들(예컨대, 제어, 고대역폭 데이터 획득 등) 중 하나를 구현하며, 종래의 MES 시스템들에서는 가능하지 않은 레벨에서 임베디드(embedded) 분석을 수행하기 위해 필요할 때 다른 노드들로부터 데이터를 풀링하는(pull), 비-균질 노드들의 클러스터(cluster) 내의 노드이다. 부가적으로, 지능형 PLC는 로컬 지식 또는 다른 노드들로부터의 지식을 리트리빙할(retrieve) 수 있다. 이 능력이, 로컬 히스토리언 및 지식 모델들 그리고 추론 능력들 뿐만 아니라 인-필드 분석과 함께, 클러스터 상에서 강력한 지식-주도의 분산 분석을 위한 기회를 주어서, 그러므로, 지능형 PLC 클러스터가 전체 자동화 프로세스에 대한 강력한 실시간 데이터 저장, 지식 저장, 분석 및 인터페이스(interface) 엔진이 되게 한다. 지능형 PLC는, (1) 진정한 인-필드 분석에 기반하는 증가된 기능성, (2) 컴포넌트들을 구성, 추가, 맞춤화, 변화 및 제거할 때의 증가된 유연성, 및 (3) 기존의 기능들 및 개발 능력들의 신속한 설치, 확장을 갖는 제어 시스템들을 정의하기 위하여, 분산 데이터 및 분석 기술들을 레버리징할(leverage) 수 있다. 이들 전부는 설치, 동작, 최적화, 감시, 진단하기 위해 요구되는 사람들의 수 및 이러한 사람들 중의 전문가의 수, 그리고 또한 이들 기능들을 수행하기 위해 요구되는 트레이닝(training)을 급격히 감소시킨다. 본원에서 설명된 기법들은, 예컨대, 산업 자동화 시스템에 걸쳐 시간, 데이터(예컨대, 시계열 데이터), 데이터 조직, 및 데이터 이름들의 코히어런트(coherent)한 이미지를 제공하며, 데이터가 생성될 때 즉시 이러한 데이터를 이용가능하게 하기 위해 사용될 수 있다.
[28] 도 1은 일부 실시예들에 따른, 지능형 디바이스들이 자동화 시스템 데이터에 대한 분산 데이터 관리 시스템(DDMS; distributed data management system)을 형성하는 산업 자동화 시스템(100)을 예시하는 아키텍처 다이어그램을 제공한다. DDMS는 프로세스 정보를 포함하는 분산 데이터 및 지식 베이스(base)로서 정의될 수 있으며, 이러한 분산 데이터 및 지식 베이스는 그 위에 데이터 분석 계층을 갖는다. 분산은 노드들의 클러스터에 걸쳐 존재한다. DDMS의 각각의 인스턴스는 클라이언트(client) 역할 및 서버(server) 역할을 호스팅하며(host), 이들 중 하나는 소정의 시간에 DDMS 인스턴스의 역할에 따라 활성화될 수 있다. 보통, 프로세스를 시작하는 노드가 클라이언트로서의 역할을 하고 있으며, 데이터를 프로세싱하거나(process) 또는 저장하는 나머지 노드들이 서버들로서의 역할을 하고 있다. 그러나, 노드가 클라이언트 및 서버로서의 역할을 동시에 하고 있으며, 현재 프로세싱 수요들 및 작업부하에 따라 변할 수 있는 하나 또는 그 초과의 프로세스들을 한 번에 실행할 수 있다.
[29] 도 1의 예에서, 각각의 DDMS 노드는 지능형 PLC이다. 간략히, 지능형 PLC는, 상이한 실시예들에 따라, 다양한 결합들로 존재할 수 있는 몇몇 기술적 특징들을 제공한다. 예컨대, 지능형 PLC는, 높은 분해능의 타임-스탬핑된(time-stamped) 데이터의 단기/중기 아카이빙(short/mid-term archiving)을 허용하는, 시계열 데이터에 대한 효율적인 스토리지 메커니즘(mechanism)(즉, "히스토리언" 기능)을 포함한다. 높은 충실도의 데이터에 따라, 손실되는 이벤트(event)들은, 있더라도, 거의 없다. 스토리지(storage) 및 통신 수요들을 감소시키기 위해 효율적인 압축 알고리즘들(예컨대, 스윙 도어(swinging door)의 변형)이 사용될 수 있다. 지능형 PLC는 도 2에 관련하여 아래에서 더욱 상세히 논의된다. 도 1이, 본원에서 설명된 기법들과 함께 사용될 수 있는 아키텍처의 높은 레벨의 단순화된 개요를 표현한다는 것이 주목되어야 한다. 이 아키텍처는, 실세계 구현들, 이를테면, 예컨대, 라우팅(routing) 디바이스들, 부가적인 데이터 네트워크(network)들에 대한 연결들 등에서 존재할 수 있는 부가적인 디바이스들을 포함하도록 수정될 수 있다.
[30] 도 1의 DDMS 노드들이 지능형 PLC들이지만, 본 발명이 그에 따라 제한되지 않는다는 것이 주목되어야 한다. DDMS의 다른 실시예들은, DDMS의 인스턴스를 호스팅(hosting)하기 위한 일부 최소 컴퓨팅 요건들(예컨대, 호환가능한 운영체제, 메모리, 및 디스크(disk))을 충족시키는 다른 지능형 디바이스들인 노드들을 포함할 수 있다. 부가적으로, 도 1에서 제시된 아키텍처가 어떤 마스터(master) 또는 중앙 노드도 포함하지 않는다는 것이 주목되어야 한다.
[31] 상이한 실시예들에서 상이한 기법들을 사용하여 산업 자동화 시스템(100)에 걸쳐 분산 데이터 관리가 구현될 수 있다. 일부 실시예들에서, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)에 의해 생성되는 디바이스들에 걸친 데이터의 스토리지를 위해 분산 파일 시스템(DFS; distributed file system)이 사용된다. DFS는 매우 낮은 비교할 만한 비용으로 프로세싱 파워(power) 및 스토리지(storage) 측면에서 신속하게 스케일링하는(scale) 능력을 분산 데이터베이스 시스템에 제공한다. 따라서, 많은 병렬가능한 프로세싱 동작들을 포함하는 애플리케이션들의 경우, DFS는 데이터의 분산 스토리지를 위한 더욱 효율적인 솔루션을 제공할 수 있다. 다른 실시예들에서, 지능형 PLC들은, 확장성(scalability) 및 프로세싱 능력들과 함께 사용될 수 있는 원자성, 일관성, 아이솔레이션(Isolation) 및 내구성과 같은 특성들을 제공하는 강건한 분산 데이터베이스 관리 시스템을 구현하기 위해 사용된다. 이러한 강건한 분산 데이터베이스 관리 시스템은, 많은 노드들 상에서의 파티셔닝된(partitioned) 데이터 액세스의 추상(abstraction)으로서 SQL 유사 방식으로 질의를 지원하며, 또한 데이터가 상주하는 노드들 상에서 로컬로 이루어지는 데이터 프로세싱의 장점(즉, 데이터 로컬성(locality))을 취할 수 있는 기능들을 지원하는 데이터 관리 계층을 제공할 수 있다.
[32] 도 1의 예에서, 산업 자동화 시스템(100)에 의해 사용되는 분산 데이터 관리 시스템의 노드들은 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)을 포함한다. 도 1이 6 개의 지능형 PLC들만을 도시하지만, 본원에서 설명된 기법들과 함께 임의의 개수의 지능형 PLC들이 사용될 수 있다는 것이 이해되어야 한다. 따라서, 도 1에서 제공된 아키텍처에 의해 지원되는 분산 데이터 관리 시스템은, 시스템 필요들에 따라 컴퓨팅 자원들을 추가하거나 또는 제거함으로써 동적으로 확장 및 축소될 수 있다. 게다가, 분산 데이터 관리 시스템의 스토리지 용량은, 전용 또는 상품 하드웨어(commodity hardware) 자원들(예컨대, 서버 랙(rack)들, 부가적인 제어기들)을 추가함으로써 증가될 수 있다. 예컨대, 아래에서 더욱 상세히 설명된 바와 같이, 일부 실시예들에서, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 상에 저장된 데이터의 장기(long-term) 스토리지를 제공하기 위한, 분산 데이터 관리 시스템의 노드로서 분산 데이터베이스(115) 서버가 추가된다. 노드들은, 기술분야에서 일반적으로 알려진 임의의 기법을 사용하여 분산 데이터 관리 시스템에 추가될 수 있다. 예컨대, 일부 실시예들에서, 분산 데이터 관리 시스템과 통신하기 위한 기능성을 갖는 새로운 디바이스들이 배치될 수 있다. 다른 실시예들에서, 그러한 기능성은, 예컨대 스크립트(script) 실행을 통한 푸시(push) 기법을 사용하여, 새로운 또는 기존의 디바이스에 원격으로 업로딩될(uploaded) 수 있다.
[33] 각각의 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C)는 분산 데이터 관리 컴포넌트를 포함한다. 일부 실시예들에서, 각각의 지능형 PLC에 포함된 분산 데이터 관리 컴포넌트는, 제어기로부터 비롯된 데이터를 동일한 인터페이스를 통해 공유 메모리에 또는 파일 시스템 상에 저장할 수 있다. 예컨대, 도 3에 관련하여 아래에서 더욱 상세히 논의된 바와 같이, 각각의 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C)는 임베디드 프로세스 히스토리언을 포함하며, 이러한 임베디드 프로세스 히스토리언은 로컬로 이력화된 데이터의 이름들, 의미, 및 조직의 로컬 뷰를 갖는다. 분산 데이터 관리 컴포넌트를 사용하여, 각각의 개개의 히스토리언에 의해 생성된 데이터가 시스템(100)에 걸쳐 공유될 수 있다.
[34] 각각의 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C)에 저장된 데이터는, 제어기들 내부에서 또는 도 1에서 도시된 시스템(100)에 의해 제공되는 분산 데이터 관리 시스템에 대한 액세스를 갖는 임의의 디바이스 상에서 실행되는 클라이언트 애플리케이션들에 의해 소비될 수 있다. 스토리지 외에도, 각각의 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C)는 또한, 클러스터 관리 서비스(service)들 및 프로세싱 엔진(engine)을 포함할 수 있으며, 이는 태스크(task)들, 이를테면, 분산 스토리지 및 통신, 뿐만 아니라 분산 프로세싱 및 조정을 허용한다.
[35] 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C)에 걸쳐 데이터를 위치결정(locate) 및 관리하기 위해 사용되는 기법은, 분산 스토리지가 어떻게 구현되는지에 따라 변할 수 있다. 예컨대, 분산 스토리지를 위해 DFS, 이를테면, Hadoop DFS가 사용되는 실시예들에서, 지능형 PLC(105A, 105B, 105C, 110A, 110B, 및 110C) 중 하나 또는 그 초과는 "이름 노드"로서의 역할을 한다. 각각의 이름 노드는 DFS 내의 모든 파일들의 디렉토리 트리(directory tree)를 관리하며, 시스템(100)에 걸쳐 파일 데이터가 어디에 저장되는지를 추적한다. 클라이언트 애플리케이션들은 파일을 위치결정하거나 또는 이 파일에 대한 동작들(추가, 복사, 이동, 삭제 등)을 수행하기 위해 이름 노드와 통신할 수 있다. 이름 노드는, 데이터가 저장되는 관련 디바이스들의 목록을 리턴함으로써(returning), 성공적 요청들에 응답한다. 이름 노드가 DFS에 대한 단일 장애 지점이라는 것이 주목되어야 한다. 따라서, 일부 실시예들에서, 중복성을 제공하기 위해 다수의 이름 노드들이 사용될 수 있다.
[36] 분산 스토리지를 구현하기 위해 분산 데이터베이스 관리 시스템이 사용되는 실시예들에서, 샤딩(sharding) 기법들을 사용하여 지능형 PLC(105A, 105B, 105C, 110A, 110B 및 110C) 상에 데이터가 저장될 수 있다. 기술분야에서 잘 이해되는 바와 같이, 샤딩은, 분산 데이터베이스가 이러한 분산 데이터베이스의 파티셔닝된 데이터를 위치결정하기 위해 사용하는 전략이다. 이 메커니즘은 종종, 분산 및 높은 스루풋(throughput) 동작들을 요구하는 데이터 세트(set)들에 대한 배치들을 지원하기 위해 사용된다. 이는 샤딩 키(key) 정의를 통해 수행되며, 이러한 샤딩 키 정의는, 제어기들 사이에서 데이터를 분리하기 위해 사용되는 기준이다. 샤딩 매핑(mapping)은 특정 서버 인스턴스에 의해 또는 각각의 제어기 내부에 저장될 수 있다. 이 경우들 둘 모두에서, 모든 디바이스들이 샤딩 정보에 액세스가능하다(accessible). 각각의 샤딩 키 홀더(holder) 디바이스는 다른 피어(peer)들과 데이터 전송 프로세스를 조정할 수 있는데, 그 이유는 샤딩 메타데이터(metadata)가 데이터/제어기 위치 매핑을 유지하기 때문이다. 따라서, 분산 데이터 관리 시스템(이를테면, 지능형 PLC(105A, 105B, 105C, 110A, 110B 및 110C)를 사용하여 구현된 분산 데이터 관리 시스템)은 네트워크(network)에 걸쳐 병렬화 및 낮은 데이터 트래픽(traffic)을 제공할 수 있다.
[37] 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)은 표준 네트워킹 프로토콜(networking protocol)들(예컨대, TCP, RPC 등)을 사용하여 네트워크 연결을 통해 서로 통신할 수 있다. 그러한 통신은, 예컨대, 분산 데이터 페칭(fetching) 및 분산 프로세싱 태스크들을 구현하기 위해 사용될 수 있다. 이 경우들 둘 모두에서, 프로세스는 임의의 제어기로부터 개시될 수 있으며, 이러한 임의의 제어기는 필요한 데이터를 저장하는 다른 제어기들에 대한 새로운 연결들을 트리거링할(trigger) 것이다. 요청된 데이터를 갖는 제어기들만이 조정기(예컨대, 데이터 페칭 또는 분산 프로세싱 태스크/맵 리듀스 잡(Map Reduce job)을 시작했던 제어기)에 의해 타겟이 되어서(targeted), 불필요한 네트워크 트래픽이 제거되기 때문에, 브로드캐스트 메시지(broadcast message)들이 다양한 네트워크들에 걸쳐 전송될 필요가 없다는 것에 주목하라. 더욱이, 프로세싱이 분산 프로세싱 태스크이면, 프로세싱의 결과들을 제외하고, 어떤 데이터도 네트워크를 통해 전달되지 않을 것이다. 이는, 컴퓨테이션 코드(computation code)를 전송함으로써 그리고 관심대상 데이터를 유지하는 제어기 상에서 이러한 컴퓨테이션 코드를 실행함으로써 달성된다.
[38] 서로 통신하는 것 외에도, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)은 또한, 임의의 다른 TCP, 개방 데이터베이스 연결성(ODBC; Open Database Connectivity), 및/또는 OPC 통합 아키텍처(UA; Unified Architecture) 클라이언트들, 이를테면, 분산 데이터베이스(115), 데이터 분석/시각화 스테이션(Station)(120), 하나 또는 그 초과의 인간-머신 인터페이스(HMI; Human-machine Interface)들(125), SCADA 서버(130), 히스토리언/PIMs 서버(140), 그리고 제조 실행 시스템(MES; Manufacturing Execution System)들 및/또는 실험실 정보 관리 시스템(LIMS; Laboratory Information Management System)들과 연관된 서버들(145)과 통신할 수 있다. 아키텍처의 각각의 컴포넌트는, 로컬 인트라넷(intranet)(예컨대, 이더넷(Ethernet)을 통해 구현됨) 그리고 하나 또는 그 초과의 인터넷(internet)들(150, 155, 160)을 사용하여 연결될 수 있다.
[39] 분산 데이터베이스(115)는, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 상에서 더 이상 이용가능하지 않은 데이터를 저장하는 고용량 스토리지 서버이다. 이 데이터는 분산 데이터 관리 시스템에 계속해서 이용가능하며, 마치 시스템의 다른 분산 노드처럼 행동한다. 분산 데이터베이스(115)는 예컨대, NoSQL, 즉, 실시간 분산 장기 데이터 액세스를 제공할 수 있는, 확장가능하며 그리고 고속의 데이터 스토리지를 사용하여 구현될 수 있다. 이러한 분산 데이터베이스(115)는 다른 관계형 데이터베이스 구성들과 유사하게 ODBC 연결기를 포함할 수 있다.
[40] 산업 자동화 시스템(100)의 임의의 클라이언트 스테이션은, 알고리즘들 스토어(Store)로부터의 알고리즘들을 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 중 하나 또는 그 초과에 주입할 수 있다. 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)은 분산 방식으로(다수의 제어기들 상에서) 알고리즘을 실행하며, 이후, 결과들을 애그리게이팅하여(aggregate) 클라이언트 스테이션에 전송할 수 있다. 도 1의 예에서, 데이터 분석/시각화 스테이션(120)은 또한, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 상에 업로딩(uploaded) 및 실행될 수 있는 애플리케이션/알고리즘들 스토어를 보유한다. 부가적으로, 일부 실시예들에서, 직접적으로 또는 데이터 분석/시각화 스테이션(120)을 통해, 분산 데이터 관리 시스템에 액세스하기(access) 위해, 생산 설비 전체에 걸쳐 위치된 인간-머신 인터페이스(HMI; human-machine interface)들(125)이 사용될 수 있다. 일부 실시예들에서, 데이터 분석/시각화 스테이션(120)은, 예컨대, 분산 데이터 관리 시스템 애플리케이션들에 저장된 데이터에 대한 요청들을 수신하고 그리고/또는 분산 데이터베이스 시스템에 걸쳐 저장된 데이터에 관련된 시각화들을 디스플레이하도록(display) 구성된 그래픽 사용자 인터페이스(GUI; graphical user interface)를 포함할 수 있다. 유사한 기능성이 또한, HMI들(125) 또는 시스템의 다른 컴포넌트들에서 이용가능할 수 있다.
[41] 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C)에 의해 제공되는 분산 데이터 관리 시스템은 기존의 자동화 인프라스트럭처 컴포넌트들과 상호운용가능하다. 예컨대, 감독 제어 및 데이터 획득(SCADA; Supervisory Control and Data Acquisition) 서버(130)는 OPC UA 및/또는 ODBC 클라이언트들을 사용하여 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 뿐만 아니라 시스템의 다른 컴포넌트들(예컨대, 분산 데이터베이스(115))에 연결되어 이들로부터 분산 데이터를 풀링할 수 있다. 유사하게, 히스토리언/PIMs 서버(140), 그리고 MES/LIMS(145)와 연관된 서버들은, 그들의 기존의 동작들에 대해 거의 수정 없이 또는 어떤 수정도 없이, 분산 데이터 관리 시스템에 걸쳐 데이터에 액세스할 수 있다. 시간 및 자원들이 허용하는 한, 이들 상위-계층 컴포넌트들은, 지능형 PLC들(105A, 105B, 105C, 110A, 110B, 및 110C) 각각에 포함된 분산 데이터 관리 컴포넌트와 더욱 효율적으로 동작하도록 수정될 수 있다.
[42] 도 1에서 도시된 DDMS 아키텍처는 많은 수의 지능형 PLC들을 지원할 수 있다. 위에서 논의된 바와 같이, 각각의 지능형 PLC(또는 더욱 일반적으로, 노드)는 DDMS의 인스턴스를 호스팅한다. 이 인스턴스는 분산 스토리지 및 프로세싱 능력들을 제어기들에 가져오며, 이러한 제어기들은, 예컨대, 데이터 및 지식의 전체 코히어런시(coherency)를 유지하고 무엇이 어디에 있는지를 알기 위해 로컬 데이터 및 지식을 조직화 및 인덱싱하고(index); 각각의 PLC의 로컬 히스토리언에 기반하여 분석 태스크 결과들을 이력화하고; 캐싱(caching)을 위해 분산 장기 스토리지 또는 로컬 스토리지를 업데이팅하고(update); 지능형 PLC 지식 및 구성들(규칙들, 매개변수들, 클러스터 셋업(setup)들, 임계치들 등)을 업데이팅하고; 로컬 계산들 또는 분산 계산들인 데이터 분석 태스크들을 실행하며; 그리고 분산 또는 로컬 데이터를 페칭하고(fetch), 질의들에 답변하는 데 필요한 결과들을 리트리빙하기(retrieve) 위하여, 서로 그리고 클라이언트 또는 엔지니어링 스테이션들과 통신할 수 있다.
[43] 도 2는 일부 실시예들에 따른, 지능형 PLC(200)의 개념 뷰를 제공한다. 프로세스 이미지 컴포넌트(225)는, 생산 디바이스들과 연관된 데이터(예컨대, 연결된 I/O들의 입력들 및 출력들)에 기반하여 각각의 프로세싱/스캔 주기에서 업데이팅되는, 제어기의 CPU 휘발성 시스템 메모리 내의 메모리 영역이다. 각각의 프로세싱 단계에서, 제어 애플리케이션(230)은 프로세스 이미지 컴포넌트(225)를 판독하고, 배치된 애플리케이션 로직을 실행하며, 그리고 결과들을 다시 프로세스 이미지 컴포넌트(225)에 기록한다.
[44] 계속해서 도 2를 참조하면, 각각의 주기의 프로세스 이미지는 히스토리언 컴포넌트(220)에 의해 판독되어 비-휘발성 물리적 스토리지 매체 상에 로컬로 영구적으로 저장된다. 그 외에도, 히스토리언 컴포넌트(220)는 부가적으로, (콘텍스트화 컴포넌트(215)에 관련하여 아래에서 설명되는) 프로세스 이미지 데이터에 관련된 콘텍스트적(contextual) 정보를 저장할 수 있다. 히스토리언 컴포넌트(220)는, 데이터 압축 알고리즘들을 배치하여 데이터 볼륨(volume)을 감소시키고 과거 프로세스 이미지들에 대한 액세스를 애플리케이션들에 제공하도록 구성될 수 있다. 데이터는 고정된 시간 윈도우(window) 동안 저장될 수 있거나, 또는 동적 캐싱 휴리스틱(caching heuristics)을 구현하기 위해 온라인(online) 알고리즘들이 사용된다. 히스토리언 컴포넌트(220)의 일부로서, 지능형 데이터 생성 알고리즘들은, 연결된 I/O들의 데이터 생성 매개변수들(예컨대, 샘플링 레이트(sampling rate))을 조절하기 위해, 프로세스 이미지 및 콘텍스트를 계속해서 분석할 수 있다. 예컨대, 빠르게 변화하는 센서(sensor) 신호들을 위해서는, 높은 샘플링 레이트가 선택될 수 있는 반면에, 느리게 변화하는 센서 신호들을 위해서는, 더 낮은 샘플링 레이트가 충분하다.
[45] 분산 데이터 관리 컴포넌트(212)는, 지능형 PLC(200)가 분산 데이터 관리 시스템 또는 분산 파일 시스템(예컨대, 도 1 참조)의 인스턴스로서 동작할 수 있게 한다. 분산 데이터 관리 컴포넌트(212)를 사용하여, 지능형 PLC는 히스토리언 컴포넌트(220)에 의해 생성된 데이터를, 산업 자동화 시스템에서 동작하는 다른 디바이스들과 공유할 수 있다. 이러한 방식으로, 시스템에 대한, 지능형 PLC(200)의 이력적, 콘텍스트적, 및 분석적 뷰는, 병렬 분산 프로세싱 알고리즘을 사용하여 제어기들 및 다른 디바이스들과 공유될 수 있다. 예컨대, 히스토리언 컴포넌트(220)는 지능형 PLC(200)에 의해 로컬로 이력화된 데이터의 이름들, 의미, 및 조직의 로컬 뷰를 갖는다. 분산 데이터 관리 컴포넌트(212)를 사용하여, 자동화 시스템의 이 뷰가 공유될 수 있다.
[46] 스토리지를 위해 DFS가 사용되는 실시예들의 경우, 분산 데이터 관리 컴포넌트(212)는 적절한 DFS 기능성을 제공하는 임베디드 프로세스일 것이다. 예컨대, 앞서 언급된 Hadoop DFS를 사용하는 실시예들에서, 분산 데이터 관리 컴포넌트(212)는, 지능형 PLC(200)가 클러스터에서 데이터 노드로서 동작할 수 있게 하는 소프트웨어(software)일 수 있다. 따라서, 분산 데이터 관리 컴포넌트(212)는, 히스토리언 데이터의 블록들을, 클러스터 전체에 걸쳐 전송, 복제, 및 프로세싱될(processed) 수 있는 데이터 청크(chunk)들로 포맷팅(format) 및 조직화하기 위해 사용될 수 있다. 일부 실시예들에서, 분산 데이터 관리 컴포넌트(212)는 또한, 스토리지 또는 컴퓨테이션을 위한 변환 없이, 새롭게 생성된 데이터 청크가 복제되어야 하는 다른 데이터 노드들의 어드레스(address)들을 이름 노드들로부터 획득하기 위해 사용될 수 있다. 다른 실시예들에서, 분산 데이터 관리 컴포넌트(212)는, 지능형 PLC(200)가 클러스터에 대한 이름 노드로서 기능하며 어드레스들이 로컬로 저장되도록, 구성될 수 있다. 일단 어드레스들이 획득되면, 분산 데이터 관리 컴포넌트(212)는 클러스터의 다른 노드들로의 히스토리언 데이터의 청크의 데이터 전송을 자율적으로 관리하기 위해 사용될 수 있다. 분산 데이터 관리 컴포넌트(212)를 사용하여, 지능형 PLC(200) 및 자동화 환경의 다른 유사한 디바이스들은 히스토리언 스택(stack)을 병렬 분산 프로세싱 알고리즘으로서 구현할 수 있으며, 여기서, 노드 상의 각각의 임베디드 프로세스 히스토리언은 위의 기능성을 갖는다.
[47] 시스템에 걸쳐 스토리지를 분산시키기 위해 분산 데이터 관리 시스템이 사용되는 실시예들에서, 분산 데이터 관리 컴포넌트(212)는, 기술분야에서 일반적으로 알려진 다양한 데이터베이스 시스템들을 사용하여 구현될 수 있다. 예컨대, 일부 실시예들에서, 각각의 제어기에 저장된 데이터는, 테이블 동등 구조를 갖는 NoSQL 데이터베이스에 저장된다. 기술분야에서 이해되는 바와 같이, "NoSQL"이란 용어는, 각자의 설계가 비-관계형인 데이터 스토어들의 부류를 정의하기 위해 사용된다. 일반적으로 각자의 기본 데이터 모델에 따라 그룹핑될(grouped) 수 있는 다양한 타입(type)들의 NoSQL 데이터베이스들이 있다. 이들 그룹핑(grouping)들은, 열-기반(column-based) 데이터 모델들(예컨대, Cassandra), 문서-기반 데이터 모델들(예컨대, MongoDB), 키-값(key-value) 기반 데이터 모델들(예컨대, Redis), 및/또는 그래프-기반(graph-based) 데이터 모델들(예컨대, Allego)을 사용하는 데이터베이스들을 포함할 수 있다. 본원에서 설명된 다양한 실시예들을 구현하기 위해 임의의 타입의 NoSQL 데이터베이스가 사용될 수 있다. 일부 실시예들에서, 히스토리언 데이터는, 분산 데이터 패브릭(fabric)에 대해 최적화되는 데이터 특정 데이터베이스 포맷(format) 및 조직의 블록으로, 분산 데이터 관리 시스템에 걸쳐 저장된다. 각각의 블록의 크기는, 예컨대, 데이터의 원하는 시간 단위(granularity) 또는 추적될 변수들의 최대 개수에 기반하여 특정될 수 있다.
[48] 계속해서 도 2를 참조하면, 데이터 분석 컴포넌트(205)는, 분산 데이터 관리 컴포넌트(212)를 사용하여 분산 데이터 관리 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘들을 실행하도록 구성된다. 다양한 데이터 추론 알고리즘들이 데이터 분석 컴포넌트(205)에 포함될 수 있다. 예컨대, 일부 실시예들에서, 이들 알고리즘들은 클러스터링(clustering), 분류, 논리-기반 추론, 및 통계적 분석 알고리즘들 중 하나 또는 그 초과를 포함한다. 게다가, 알고리즘들은, 디바이스 상에서 런타임 동안 배치될 수 있는 모델을 통해 특정될 수 있다. 데이터 분석 컴포넌트(205)는 또한, 다양한 분석 모델들 및 이들 모델들을 해석하기 위한 전용 알고리즘들을 포함할 수 있다. 데이터 분석 컴포넌트(205)에 의해 생성된 결과들은 히스토리언 컴포넌트(220)에 저장되고, 다시 프로세스 이미지 컴포넌트(225)에 기록되며, 그리고/또는 데이터 연결기 컴포넌트(210)를 통해 외부 컴포넌트들에 제공될 수 있다. 따라서, 지능형 PLC는, 자동화 시스템의 다른 디바이스들에 분산 분석을 제공하기 위한 디바이스로서 보일 수 있다.
[49] 데이터 분석 컴포넌트(205)는 지식 관리자 컴포넌트(235)를 포함하며, 이러한 지식 관리자 컴포넌트(235)는, 하나 또는 그 초과의 선언적 지식 모델들에 기반하여 제어 애플리케이션(230)의 런타임 동안 데이터 분석 컴포넌트(205)에 의해 사용되는 추론 알고리즘들을 동적으로 수정하도록 구성된다. 일부 실시예들에서, 지능형 PLC(200)는, 제어 애플리케이션(230)을 실행하며, 제어 애플리케이션(230)의 실행과 병렬로, 하나 또는 그 초과의 추론 알고리즘들을 수정하도록 구성되는 하나 또는 그 초과의 프로세서들(도 2에는 미도시)을 포함한다. 병렬화는, 우선순위 정보에 기반하여 다수의 프로세서들(또는 프로세서 코어(core)들)에 걸쳐 태스크들을 분산시킴으로써 구현될 수 있다. 예컨대, 하나 또는 그 초과의 프로세서들이 높은 우선순위의 프로세스들, 이를테면, 제어 애플리케이션(230)의 실행에 전용될 수 있는 반면에, 다른 프로세서들은 추론 알고리즘 수정들을 포함하는 더 낮은 우선순위의 프로세스들에 전용된다.
[50] 기술분야에서 일반적으로 알려진 다양한 타입들의 선언적 지식 모델들이 지식 관리자 컴포넌트(235)와 함께 사용될 수 있다. 예컨대, 일부 실시예들에서, 선언적 지식 모델들은 웹 온톨로지 언어(OWL; Web Ontology Language)를 사용하여 표현된 온톨로지들을 포함한다. 모델들은, 예컨대, 예측 모델 마크업 언어(PMML; Predictive Model Markup Language) 표준을 사용하여 그리고/또는 규칙 상호교환 포맷(RIF; Rule Interchange Format) 표준을 사용하여 표현될 수 있다. 개별적인 지식 모델들은 성질이 일반적이거나, 사유이거나, 벤더-특정이거나, 또는 이들의 임의의 결합일 수 있다.
[51] 위에서 주목된 바와 같이, 지능형 PLC(200)는, 지능형 PLC(200)가 분산 데이터 관리 시스템의 인스턴스로서 동작할 수 있게 하는 분산 데이터 관리 컴포넌트(212)를 포함한다. 시스템의 집합적(collective) 지식을 레버리징하기 위하여, 일부 실시예들에서, 지식 관리자 컴포넌트(235)와 함께 사용되는 더 많은 지식 모델들은 정보, 이를테면, 분산 데이터 관리 시스템에서 동작하는 디바이스들의 능력들, 분산 데이터 관리 시스템의 각각의 디바이스에서 이용가능한 진단 지식, 및/또는 분산 데이터 관리 시스템에 의해 사용되는 데이터 레이아웃 정보를 포함할 수 있다.
[52] 일부 실시예들에서, 지식 관리자 컴포넌트(235)에 의해 사용되는 추론 알고리즘들은 하나 또는 그 초과의 벤더-특정된 지식 모델들에 기반하여 구성된다. 각각의 벤더-특정된 지식 모델들은, 예컨대, 지능형 PLC(200)의 능력들에 관련된 정보, 지능형 PLC(200)에서 이용가능한 진단 지식, 및/또는 지능형 PLC(200)에 의해 사용되는 데이터 레이아웃 정보를 포함할 수 있다.
[53] 콘텍스트화 컴포넌트(215)는, 자동화 시스템 콘텍스트 정보를 이용하여 프로세스 이미지 컴포넌트(225)의 콘텐츠들에, 이 콘텐츠들의 추후 해석을 용이하게 하기 위해 주석을 닮으로써, 콘텍스트화된 데이터를 생성하도록 구성된다. 본원에서 사용된 콘텍스트 정보는, 데이터의 의미를 설명하는 임의의 정보를 포함할 수 있다. 예컨대, 자동화 시스템들에서의 데이터의 콘텍스트는, 데이터를 생성했던 디바이스(예컨대, 센서)에 관한, 자동화 시스템의 구조(예컨대, 플랜트(plant)의 토폴로지(topology))에 관한, 시스템의 작업 모드(mode)(예컨대, 다운타임 이벤트(downtime event))에 관한, 자동화 소프트웨어 및 데이터가 생성되었던 동안의 이러한 자동화 소프트웨어의 상태에 관한, 그리고/또는 데이터가 생성되었던 동안 생산되었던 제품/배치(batch)에 관한 정보를 포함할 수 있다. 콘텍스트화 컴포넌트(215)는, 더욱 특정한 프로세싱 필요들에 대해, 다른 컴포넌트들 중 임의의 컴포넌트에 데이터를 제공하도록 구성된다. 콘텍스트화 컴포넌트(215)에 의해 생성된 콘텍스트 정보는, 자산 구조로 제한되는 것이 아니라, 제어 지식, 제품-특정 정보, 프로세스 정보, 이벤트 정보, 및 잠재적으로 다른 양상들, 이를테면 날씨 정보와 같은 외부 이벤트들을 또한 포함할 수 있다. 어떤 콘텍스트 정보는 엔지니어링 툴(tool)들(예컨대, 지멘스 완전 통합 자동화(Siemens Totally Integrated Automation) 툴들)로부터 들여올 수 있다. 부가적으로, 일부 실시예들에서, 콘텍스트화 컴포넌트(215)는 의미론적 콘텍스트화를 제공한다. 콘텍스트는, 표준 모델링(modeling) 언어(예컨대, 웹 온톨로지 언어, 자원 설명 프레임워크(Framework))에 의해 표현될 수 있으며, 여기서, 언어 구문(construct)들의 의미는 형식적으로 정의된다. 이들 의미론적 모델링 표준들을 이용하는 데이터의 콘텍스트화는, 수동 구성 노력 없이, 비즈니스(business) 분석 애플리케이션들이, 자동화 시스템으로부터 제공된 데이터를 자동적으로 이해하여 해석하는 것을 가능하게 한다.
[54] 지능형 PLC(200)의 컴포넌트들에 의해 포착되거나 또는 생성된 임의의 데이터는 데이터 연결기 컴포넌트(210)를 통해 외부 컴포넌트들에 제공될 수 있다. 따라서, 예컨대, 지능형 PLC는, 스토리지 또는 컴퓨테이션을 위한 변환 없이, 히스토리언 데이터의 새롭게 생성된 블록이 복제될 수 있는 다른 데이터 노드들의 어드레스들을 획득하기 위해 이름 노드들과 통신할 수 있다. 게다가, 패브릭의 기본 기술을 사용하여, 디바이스는 자신의 데이터 전송을 자율적으로 관리할 수 있다. 일부 실시예들에서, 데이터 연결기 컴포넌트(210)는 푸시 방법론(즉, 데이터를 외부 컴포넌트에 능동적으로 전송함)을 통해 데이터를 전달한다. 다른 실시예들에서, 외부 컴포넌트에 의해 데이터가 질의되는 경우, 풀(pull) 방법론이 사용될 수 있다. 부가적으로, 지능형 PLC가 데이터 전송 형태들 둘 모두를 처리하도록 구성되도록, 일부 실시예들에서 푸시 방법론과 풀 방법론이 결합될 수 있다.
[55] 일부 실시예들에서, 지능형 PLC(200)는, 분산 데이터 관리 컴포넌트(212)를 사용하여 분산 데이터베이스에 프로세스 및 제어기 정보를 저장하기 위한 감시 기능성을 포함할 수 있다. 부가적으로, 더 깊은 분석 통찰력들을 획득하기 위하여, 콘텍스트화 컴포넌트(215)로부터의 콘텍스트 정보가 감시 및 사용될 수 있다. 이는, 지능형 PLC(200) 로직에 관한 메타-정보(meta-information)를 노출시키는 루틴(routine)들을 통해 프로세스 거동들의 변화들을 검출함으로써 수행될 수 있으며, 이러한 메타-정보는, 논리 향상들을 추가로 제어하기 위한 입력으로서 사용될 수 있다. 지능형 PLC(200)의 로직 및 더 낮은 레벨의 데이터 흐름들의 감시에 대한 액세스는 제어기의 잘못된 구성들의 초기 단계 검출을 돕는다.
[56] 상이한 실시예들과 함께 사용될 수 있는 지능형 PLC 특징들의 부가적인 예들은, "INTELLIGENT PROGRAMMABLE LOGIC CONTROLLER"란 명칭으로 2014년 8월 25일자로 출원된 미국 특허 출원 번호 14/467,125; "USING SOFT-SENSORS IN A PROGRAMMABLE LOGIC CONTROLLER"란 명칭으로 2014년 10월 30일자로 출원된 PCT 특허 출원 번호 PCT/US14/63105; "SYSTEM AND METHOD FOR AUTOMATIC COMPRESSION ALGORITHM SELECTION AND PARAMETER TUNING BASED ON CONTROL KNOWLEDGE"란 명칭으로 2014년 10월 29일자로 출원된 PCT 특허 출원 번호 PCT/US14/62796에서 제공된다. 전술된 출원들 각각의 전체는 인용에 의해 본원에 통합된다.
[57] 도 3은 일부 실시예들에 따른, 분산 데이터 및 지식 관리 뿐만 아니라 분산 분석을 위한 DDMS 아키텍처(300)의 예시를 제공한다. DDMS 아키텍처는 기능성을 3 개의 개념적 계층들: 데이터 관리 계층(305), 분산 데이터 프로세싱 계층(310), 및 서비스 계층(315)으로 파티셔닝한다(partition). 도 3에서 제시된 기능성은, 예컨대, 도 2에서 도시된 지능형 PLC(200)의 다양한 컴포넌트들에 의해 제공될 수 있다.
[58] 데이터 관리 계층(305)은 데이터 및 지식 조직 그리고 인덱싱(indexing), 캐싱, 및 샤딩을 위한 기능들을 제공하는, 데이터 및 지식 주위의 스토리지 및 동작 능력들을 다룬다. 히스토리언(320) 및 이벤트 데이터베이스들(325)로부터의 데이터는 실시간으로 관련되며, DDMS 스토리지를 위한 캐시(cache)로서 보일 수 있다. 로컬 데이터의 포맷이 DDMS 노드에 등록되어서, 로컬 데이터에 대한 데이터 액세스 및 프로세싱이 가능하게 된다. 지식 모델들(자산, 제품, 프로세스, 제어 등)이 각각의 DDMS 노드 상에서 업데이팅되어서, 로컬 지식 액세스가 가능하게 된다. 관련 진단 지식(규칙 및 분석 설명들)이 또한, DDMS 노드들 상에 업로딩될 것이다. DDMS의 버저닝(versioning) 능력들 및 분산 스토리지를 사용하여, 변화들이 클러스터의 모든 지능형 PLC들에 자동적으로 전파될 것이다. 동작 능력들이 또한, DDMS의 일부로서 제공될 수 있는데, 예컨대, 데이터의 다수의 버전(version)들이 동일한 데이터베이스 인스턴스에서 공존할 수 있다.
[59] 데이터 관리 계층(305)은, 로컬 분석 프로시저(Procedure)들(335)로부터 DDMS 시스템의 로컬 노드들을 향해 인-사이클 분석 결과들의 전송을 허용하는 방식으로, 로컬 히스토리언(320)에 단단히 연결된다. 동시에, 분석 프로시저들(335)의 밖(심지어 PLC의 밖)에서 생성되는 정보가 분석 프로시저들(335)에 이용가능해질 수 있어서, 그에 따라 PLC 레벨 상에서 풍부한 콘텍스트화가 가능하게 된다. 그보다 더, 분석 프로시저들(335)은 인근의 제어기들에 대한 콘텍스트 매핑을 이해할 수 있을 수 있다. 분석 프로시저들(335), 및 자동화 환경을 위한 다른 프로세스들을 맞춤화하기 위해, 로컬 규칙들(330) 및 온톨로지들(340)이 사용될 수 있다.
[60] 분산 데이터 프로세싱 계층(310)은, 분석 엔진들, 이를테면, 예컨대, R 및/또는 자바스크립트(JavaScript)의 사용을 포함하여, 분산 데이터에 대해 실행될 수 있는 인-필드 분석 및 질의 툴들을 제공한다. 일부 실시예들에서, 이들 툴들이 서비스 계층(315)을 통해 외부적으로 액세스되며(accessed), 로컬(단일 지능형 PLC) 또는 분산(다수의 지능형 PLC들) 데이터에 대해 실행되어서, 바람직하지 않은 네트워크 트래픽을 방지하며 더욱 확장가능한 인프라스트럭처에 기여하는 로컬 프로세싱이 허용될 수 있다.
[61] 서비스 계층(315)이 연결성, 접근성, 및 보안을 DDMS 플랫폼(platform)에 제공하도록 구성되어서, 그에 따라 외부 애플리케이션들 및 디바이스들은 이러한 플랫폼의 프로세싱 및 데이터 관리 능력들을 이용할 수 있다. 플랫폼에 대한 액세스는, SQL/SPARQL과 같은 표준 질의 언어들에 의해 직접적으로, 또는 지능형 PLC들 상에서의 상호운용성을 레버리징하고 외부 디바이스들 및 애플리케이션들로부터의 분산 데이터 액세스를 허락하는(empower) 클라이언트 툴들, 이를테면 ODBC, OPC UA, Mongo API들을 사용하여 이루어질 수 있다. DDMS에 상주하는 임의의 타입의 데이터가 암호화된 포맷으로 저장될 수 있다. 이 전략은 하나 초과의 보안 계층을 DDMS 플랫폼에 추가하여서, 허가되지 않은 액세스로부터 기밀 데이터가 적절하게 보호될 것임을 보장한다. 그 외에도, 성능 목적들을 위해, 스토리지 압축이 또한, 스토리지 활용을 최적화하기 위해 인에이블될(enabled) 수 있다.
[62] 위에서 주목된 바와 같이, 도 3에서 도시된 DDMS 아키텍처(300)는 로컬 히스토리언(320)과 DDMS 사이의 연결을 도입하며, 이러한 연결은 결국, 실시간 분석에 가까운 능력이 인-사이클 환경의 밖에서 수행되는 것을 가능하게 한다. 이러한 연결은, 히스토리언과 DDMS 사이의 일 방향 채널(channel)로서 구현될 수 있다. 이 채널을 통해, 히스토리언(320)은 DDMS에 의해 결정된 로직에 기반하여 데이터를 DDMS에(예컨대, 다른 노드들에) 푸싱할(push) 수 있다. 이러한 로직은, 예컨대, 시한(timed) 이벤트들, 용량 한도(quota)들, 또는 인-사이클 분석 엔진으로부터의 이력화된 결과들을 포함할 수 있다. DDMS와 인필드(infield) 분석 엔진 사이의 연결은 또한, 일부 실시예들에서 단향성이며, DDMS로부터 인-사이클 분석 엔진으로 분석 및 콘텍스트 정보를 이동시키는 목적에 서빙할(serve) 수 있다. 부가적으로, DDMS는 새로운 또는 업데이팅된 지식 모델들에 푸싱할 수 있다.
[63] 지능형 PLC 인프라스트럭처(즉, DDMS 클러스터)를 동적으로 재구성함으로써, 새로운 DDMS 노드들이 추가될 수 있다. 결과적으로, 지능형 PLC들은, 기존의 필드 레벨 자동화 베이스라인(baseline)에 영향을 끼치지 않으면서, 도입되거나, 교체되거나, 또는 제거될 수 있다. 또한, DDMS 아키텍처(300)가 한 개부터 수천 개의 제어기들의 범위에 이르는 다수의 지능형 PLC들에 적용가능하기 때문에, 이러한 DDMS 아키텍처(300)가 수평으로 확장가능하다는 것이 주목되어야 한다. 분산 데이터베이스 스키마(schema)에 노드들을 추가하는 것은, 공통의 파티셔닝된 테이블에 더 많은 데이터를 추가하는 것과 동등하다. 새롭게 추가된 데이터는, 이러한 데이터가 자신만의 (제어기) 데이터베이스에 로딩되자마자(loaded), 네트워크 상의 다른 제어기들에 이용가능해진다.
[64] 도 4는 일부 실시예들에 따른, 정보가 DDMS 노드 안으로 그리고 밖으로 어떻게 전송될 수 있는지에 대한 개념 뷰(400)를 제공한다. 도 4에서 도시된 엘리먼트(element)들 중 많은 엘리먼트들이 도 2의 지능형 PLC(200)와 함께 제시된 엘리먼트들과 유사하다는 것에 주목하라. 도 4에서, 이들 엘리먼트들은, 데이터를 지능형 PLC 안으로 그리고 밖으로 전송하는 것에 수반되는, DDMS 노드의 주요 특징들을 강조하기 위해 기능적으로 조직화된다. DDMS(405)는, 분산 데이터 스토리지에 대한 데이터 및 지식 인덱싱/버저닝을 담당하며, 정보(로컬 및 글로벌(global)) 전부를 지능형 PLC마다 다수의 집합(collection)들, 이를테면, 시계열 데이터 집합, 각각의 모델에 대한 지식 집합(예컨대, 자산들, 제품, 이벤트들, 제어 등), 및 다른 데이터 집합들로 조직화한다. 집합 구조 및 콘텐츠는 시간에 걸쳐 수정되는데, 예컨대, 데이터가 어떻게 사용되는지에 기반하여 동적으로 팽창하거나, 또는 어떤 데이터를 저장하기 위한 요건을 포기함으로써 축소될 수 있다. 가장 단순한 예는 센서 데이터(I/O 모듈(Module)들에 의해 포착됨)로부터 DDMS로의 데이터 흐름이다. 처음에는, PLC에 의해 입력들 및 출력들이 프로세싱된다. 이후, 시계열 데이터가 로컬 노드 데이터베이스 인스턴스에 등록되며, 따라서 이러한 시계열 데이터는 분산 방식으로 외부적으로 액세스될 수 있다. 가능하게는, 데이터의 서브세트(subset)들이 동일한 클러스터로부터의 다른 PLC들의 집합들에 샤딩된다. 샤딩은 도 7 및 도 8에 관련하여 아래에서 더욱 상세히 논의된다.
[65] 도 4에서, DDMS(405)는, 로컬의 미가공 또는 프로세싱된 데이터, 이벤트들, 캐싱된(cached) 데이터, 지식, 및 허브(hub)에 대한 데이터 노드 인터페이스인데, 분산 시스템에서 존재하는 유사한 그러한 엘리먼트들과 함께 이들 엘리먼트들 외에도 유연한 분석을 정의한다. 이러한 DDMS(405)의 코어 기능들은, 분산 시스템 내의 임베디드 데이터 및 지식을 인덱싱하며 일관성 및 코히어런시를 보장하기 위해 데이터 및 지식을 버저닝하면서, 통상적인 유스 케이스(use case)들, 이를테면, 노드 안으로의 그리고 밖으로의 데이터 또는 결과 전송, 질의들, 및 지식 전송(이들에 제한되지 않음)을 효율적으로 해결하도록 정의된다.
[66] 도 4는 분산 시스템에 걸쳐 저장된 데이터를 레버리징하는 부가적인 기능성을 도시한다. 분산 시스템에 걸쳐 저장된 지식을 사용하여 로컬 데이터를 콘텍스트화하기 위해, 콘텍스트화 기능성(410)이 사용된다. 유사하게, 분산 시스템에 걸쳐 저장된 데이터에 추론 알고리즘들을 적용하기 위해, 인-필드 분석 추론 기능성(420)이 사용될 수 있다.
[67] 히스토리언 기능성(415)이 데이터의 내부 소스(source)로서 사용되는 반면에, 데이터 및 지식의 외부 소스들은 DDMS 클러스터 노드들이다. 히스토리언 기능성(415)은 단기 및 중기 프로세스 데이터를 위해 로컬 스토리지 용량을 활용한다. (예컨대, 아카이빙, 다년 데이터 분석, 및/또는 규제 목적들을 위해) 데이터의 장기 스토리지를 지원하기 위하여, 대량의 데이터를 지원하는 전용 DDMS 인스턴스(도 4에는 미도시)가 제공되며, 아직도, 마치 DDMS의 다른 인스턴스처럼 분산 데이터 인프라스트럭처의 일부일 수 있다.
[68] 도 4에서 도시된 바와 같이, 인-필드 분석 추론 기능성(420)에 의해 생성된 분석 결과들은 또한, 히스토리언 기능성(415)에 의해 이력화될 수 있다. 데이터에 대한 히스토리언 로컬 단기/중기 스토리지는, DDMS 노드 인스턴스에 의해 글로벌적으로(globally) 분산 데이터 스토리지에 대해 조직화, 인덱싱, 및 샤딩된다. 인필드 분석(예컨대, 소프트(soft) 센서들) 결과들이 또한, 시계열 데이터를 표현할 수 있다. 대응하는 집합 구조 및 콘텐츠는 시간에 걸쳐 수정될 수 있으며; 그럼에도 불구하고, DDMS(405)로의 데이터의 등록은, 일단 데이터가 이력화되면, 자동적으로 수행된다. 예컨대, 매초 계산들(예컨대, 전력 소비)을 수행하는 인필드 분석 태스크의 결과들이 DDMS 인스턴스에 주기적으로(예컨대, 매시 또는 매일) 이동될 수 있어서, 다른 지능형 PLC들 그리고 또한 외부 자동화 툴들(예컨대, SCADA, 엔지니어링 툴들, MES)이 결과들에 액세스가능하도록 허용된다. 인-필드 분석 추론 기능성(420)에 의해 이벤트들이 생성되면, 지능형 PLC 상의 이벤트 스토리지 기능성(425)은 이벤트들을 로컬 데이터베이스에 저장하도록 구성될 수 있다. 마치 히스토리언 데이터처럼, 일단 이벤트들이 저장되면, 이러한 이벤트들은, 추가적인 분석을 위해(예컨대, 근본-원인 분석을 수행하기 위해) 인-필드 분석 추론 기능성(420)에 의해 (예컨대, DDMS(405)를 통해) 외부 컴포넌트들에 의해 질의될 수 있다.
[69] 도 5는 일부 실시예들에 따른, DDMS 노드 인스턴스(예컨대, 장기 스토리지 DDMS 인스턴스)가 분산 데이터 인프라스트럭처로의/분산 데이터 인프라스트럭처로부터의 대량 데이터 전송을 어떻게 지원하는지에 대한 부가적인 예시(500)를 제공한다. DDMS 노드들 사이의 통신은 본질적으로, 데이터 페칭 및 분산 프로세싱 태스크들을 위해 발생할 수 있다. 이 경우들 둘 모두에서, 프로세스는 임의의 노드로부터 개시될 수 있으며, 이러한 임의의 노드는 페칭된(fetched) 데이터를 저장하는 다른 노드들에 대한 새로운 연결들을 트리거링할 것이다. 일부 실시예들에서, 데이터를 제공하도록 요청되는 노드들만이 조정기(즉, 데이터 페칭 또는 분산 프로세싱 태스크를 시작했던 제어기)에 의해 트리거링되어서, 그에 따라 불필요한 네트워크 트래픽이 제거된다.
[70] 도 6은 일부 실시예들에 따른, 외부 디바이스 또는 애플리케이션에 의해 트리거링되는 지능형 PLC 논리 규칙 업데이트의 예(600)를 제공한다. 단계(605)에서 시작하면, 프로세스 전문가에 의해 시작된 규칙 업데이트가 수신된다. 데이터는 또한, 외부 소스들, 이를테면, 지능형 PLC 클러스터에 연결되도록 지원하며 승인되는 임의의 디바이스 상에서 실행되는 클라이언트 애플리케이션들 및 제어기들로부터 비롯될 수 있다. 단계(610)에서, 하나 또는 그 초과의 데이터 관리 인터페이스들을 통해 콘텍스트 지식 베이스에 규칙들이 업데이팅된다. 다음으로, 단계(615)에서, 규칙들은 임베디드 분석에 의해 인-사이클로 사용된다. 이후, 단계(620)에서, PLC 로직에 따라, 새롭게 생성된/업데이팅된 규칙들이 지능형 PLC I/O에 적용된다. 도 6에서 도시된 예(600)는 지능형 PLC에 대한 변화들을 최소화하도록 적응될 수 있다. 예컨대, 일 실시예에서, 외부 애플리케이션은 PLC 인필드 분석에 의해 참조되는 매개변수들 및 규칙들의 업데이트를 시작하며, 그 결과들은, PLC 로직을 변화시킬 필요 없이, PLC 제어 거동을 변화시키는 것을 허용한다.
[71] 도 7은 일부 실시예들에 따른, 샤딩된 데이터 액세스가 DDMS 인프라스트럭처에 걸쳐 어떻게 구현될 수 있는지에 대한 예시(700)를 제공한다. 샤딩 또는 수평 파티셔닝(partitioning)은, 분산 및 높은 스루풋 동작들을 요구하는 데이터 세트들에 대한 배치들을 지원하기 위해 종종 사용되는 메커니즘이다. 예컨대, 도 7에서, 데이터 서브세트들(705B, 710B, 715B 및 720B)을 각각 저장하는 4 개의 제어기들(705A, 710A, 715A 및 720A)이 있다. 제어기(710A)는, 다른 제어기들(705A, 715A 및 720A)이 그들의 개개의 데이터 서브세트들을 전송할 것을 요구하는 액션(action)을 개시했다. 수신된 정보를 사용하여, 제어기(710A)는 본래 데이터 서브세트를 재생성하고, 데이터 동작을 수행할 수 있다.
[72] 파티셔닝은, 제어기들(705A, 710A, 715A 및 720A) 사이에서 데이터를 분리하기 위해 사용된 기준인 샤딩 키 정의를 사용하여 수행된다. 샤딩 매핑은 특정 서버 인스턴스에 의해 또는 제어기들(705A, 710A, 715A 및 720A)의 각각의 제어기 내부에 저장될 수 있다. 이 경우들 둘 모두에서, 샤딩 정보에 제어기들(705A, 710A, 715A 및 720A) 각각이 동일하게 액세스가능하다. 각각의 샤딩 키 홀더(holder) 디바이스는 다른 피어(peer)들과 데이터 전송 프로세스를 조정할 수 있는데, 그 이유는 샤딩 메타데이터(metadata)가 데이터/제어기 위치 매핑을 보유하기 때문이다. 샤딩은 제어 레벨에서의 분산화된 의사 결정을 가능하게 한다.
[73] DDMS는 어떤 데이터가 로컬로 저장되는지 또는 원격으로 클러스터에 저장되는지를 명시적으로 특정하는 것을 담당하는데, 그 이유는 분산 데이터 소스들이 본 발명의 제어기 경계의 내부 또는 외부에 있을 수 있기 때문이다. 글로벌적으로 액세스될 필요가 있는 각각의 집합에 대해, 샤딩 인덱스(index)가 특정되며, 이러한 샤딩 인덱스는 클러스터 내의 샤딩된 데이터의 위치를 제공할 것이다. 분산 데이터에 액세스하기 위해 사용되는 샤딩된 메타데이터는 각각의 지능형 PLC 상에 로컬로 저장되며, 따라서 각각의 PLC는 샤딩된 정보를 효율적으로 위치결정할 수 있다. 샤딩 인덱스들 외에도, 각각의 데이터베이스에 대한 스토리지 파일 시스템은, 특정하게 시계열에 대해, 질의들에 답변하기 위한 스캐닝(scanning) 프로세싱을 가속시키는 인덱싱의 내부 메커니즘들을 제공할 수 있다. 일관성 메커니즘으로서, 데이터베이스는 고유 키들을 강제할 수 있으며, 또한 레지스터(register)가 기존의 제어기, 태그(tag), 및 타임스탬프(timestamp) 값들에 매칭하는(match) 경우, 이전의 값들을 오버라이딩할(override) 수 있다.
[74] 도 8은 본 발명의 일부 실시예들에 따른, 분산 데이터 관리 시스템 내에서 데이터를 리트리빙 및 프로세싱하기 위한 3-단계 프로세스(800)를 도시한다. 프로세스(800)는, 임의적인 제어기 상에서 커맨드(command)를 실행하는 질의들 또는 맵/리듀스 잡(Map/Reduce job)들(805)로서 시작한다. 데이터에 대한 질의들은 임의의 제어기들에 의해 발행될 수 있어서, 애드-혹(ad-hoc) 질의 실행, 미리-정의된 질의들, 그리고 또한 제어기 태그들에 기반하는 공식 계산을 허용한다. 관계형 데이터베이스에서의 맵/리듀스 잡들은 샤딩된 데이터를 포함할 수 있는 분산 데이터베이스 내에서 실행된다. 이들 잡들이 노드들 사이에 태스크들을 분산시켜서, 그러므로, 이러한 방식으로, 병렬 프로세싱이 지원된다. 이후, 애그리게이팅된(aggregated) 결과들이 추가적인 조사를 위해 리턴(returned) 및 저장된다. 그 외에도, 다른 프로세싱(예컨대, 노드들의 범위로부터 추출된 최종 결과들의 애그리게이션(aggregation))이 또한, 클라이언트 측에서 발생할 수 있다. 모든 잡들 및 질의 결과들은, 이해하기 쉬운 사용할 준비가 된 포맷, 이를테면, 표 형식, csv, 또는 이미지로 클라이언트에 이용가능할 것이다.
[75] 도 8의 예에서, 이러한 제1 단계는 "1"로서 도시되며, 임의적인 제어기는 제어기(810A)이다. 질의들 또는 커맨드를 실행하는 맵/리듀스 잡들(805)은, 예컨대, 클라이언트 머신 또는 시스템의 임의의 다른 제어기에 의해 시작될 수 있다. 제2 단계(도 8에서 "2"로서 도시됨)에서, 제어기(810A)는 (로컬 데이터를 사용하여 또는 샤딩 정보를 저장하는 서버와의 통신을 통해) 데이터 위치에 대한 룩-업(look-up)을 수행한다. 이 룩업(lookup)의 결과들에 기반하여, 제3 단계(도 8에서 "3"으로서 도시됨)에서, 제어기(810A)는 각각, 제어기들(815A 및 820A)과 통신하여 이러한 제어기들(815A 및 820A)의 데이터 서브세트들(815B 및 820B)을 수집한다. 부가적으로, 이 예에서, 제어기(810A)는 자신만의 데이터 서브세트(805B) 내에서, 요청된 데이터의 일부분을 발견하고, 그에 따라서, 그 데이터를 리트리빙한다. 제어기(810A)에 저장된 데이터 서브세트(810B)가 본래 요청들에 응답하는 데 요구되지 않기 때문에, 제어기(805A)가 제어기(810A)로부터의 임의의 데이터를 요청할 필요가 없다는 것에 주목하라. 일단 제어기(810A)가 자신만의 데이터 스토어 및 다른 제어기들(815A 및 820A)로부터 데이터를 페칭하면, 제어기(810A)는, 프로세스(800)의 제1 단계에서 본래 수신된 커맨드를 실행하기 위해, 수집된 데이터를 프로세싱한다.
[76] 도 8에서 도시된 바와 같이, 위에서 언급된 프로세싱 능력들에 기인하여 데이터에 더 가까이 질의들을 가져와 잡들을 프로세싱함으로써, 데이터 레이턴시(latency)가 자동적으로 감소될 수 있다. 이 예에서, 결과들 또는 프로세싱된 데이터만이 네트워크를 통해 전송된다. 미가공 데이터의 전송은, 일부 제한된 상황들, 이를테면, 데이터 상관 분석 하에서만 필요하다.
[77] 본원에서 설명된 분산 시스템의 값을 예시하기 위해, 자동화 OEM 동작 환경의 맥락에서 이러한 분산 시스템의 구현을 고려하라. 이 환경은, 작업 현장(factory floor)의 규모로, 고대역폭의 확장가능한 감지(진동 센서(sensor)들을 사용함), 데이터 스토리지, 스핀들(spindle) 분석, 및 스핀들 보고를 제공하는 통합 시스템을 통해 최적화될 수 있다. 새로운 진동 측정들을 포착하기 위해, 센서들과 통신하는 지능형 PLC가 시스템에 추가될 수 있으며, 이러한 지능형 PLC의 데이터는 로컬로 또는 다른 지능형 PLC에 의해 관리될 수 있다. 데이터 및 프로세싱 관리 관점에서 볼 때, 이는 결함 머신을 이미 제어 및 감시하는 제어기의 확장인 것으로 보인다. 새로운 센서들에 의해 생성된 출력들을 분석하기 위하여, 시스템의 밖으로 데이터를 추출할 필요가 없다. 대신에, 지능형 PLC 상에 임베딩되고(embedded), 프로세스, 자산들, 및 제품에 관한 지식에 의해 주도되는(driven) 프로세스 전문가 알고리즘이, 동일한 플랫폼 상에서, 기존의 프로세스를 이용하여, 새롭게 수집된 센서 측정들을 분석할 수 있다. 진단 결과들은, 임의의 데이터 시각화 또는 분석 툴의 도움으로 보일 수 있다. 결과적으로, 외부 프로세서들 상에서 결함 분석을 수행하기 위해 PLC들로부터 MES/SCADA 레벨로 프로세스 데이터를 추출할 필요가 없는데, 그 이유는 새롭게 감시되는 데이터가 분산 멀티-PLC(multi-PLC) 시스템에 자동적으로 이용가능할 것이기 때문이다.
[78] 임베디드 제어기들에 의해 사용된, 본원에서 설명된 프로세서들은 하나 또는 그 초과의 중앙 프로세싱 유닛(CPU; central processing unit)들, 그래픽 프로세싱 유닛(GPU; graphical processing unit)들, 또는 기술분야에서 알려진 임의의 다른 프로세서를 포함할 수 있다. 더욱 일반적으로, 본원에서 사용된 프로세서는, 태스크들을 수행하기 위해 컴퓨터 판독가능 매체 상에 저장된 머신-판독가능 명령들을 실행하기 위한 디바이스이며, 하드웨어 및 펌웨어(firmware) 중 임의의 하나, 또는 이 둘의 결합을 포함할 수 있다. 프로세서는 또한, 태스크들을 수행하기 위해 실행가능한 머신-판독가능 명령들을 저장하는 메모리(memory)를 포함할 수 있다. 프로세서는, 실행가능한 프로시저 또는 정보 디바이스에 의한 사용을 위한 정보를 조작, 분석, 수정, 변환 또는 송신함으로써, 그리고/또는 정보를 출력 디바이스로 라우팅(routing)함으로써, 정보에 따라 동작한다. 프로세서는 예컨대 컴퓨터, 제어기 또는 마이크로프로세서(microprocessor)의 능력들을 사용하거나 또는 포함하며, 범용 컴퓨터에 의해 수행되지 않는 특수 목적 기능들을 수행하기 위해, 실행가능한 명령들을 사용하여 컨디셔닝될(conditioned) 수 있다. 프로세서는 임의의 다른 프로세서와 (전기적으로, 그리고/또는 실행가능한 컴포넌트(component)들을 포함하여) 커플링될(coupled) 수 있으며, 이는 그 사이의 상호작용 및/또는 통신을 가능하게 한다. 사용자 인터페이스 프로세서 또는 생성기는, 디스플레이 이미지(display image)들 또는 디스플레이 이미지들의 일부분들을 생성하기 위한 전자 회로소자 또는 소프트웨어(software) 또는 이 둘의 결합을 포함하는 알려진 엘리먼트(element)이다. 사용자 인터페이스는, 프로세서 또는 다른 디바이스와의 사용자 상호작용을 가능하게 하는 하나 또는 그 초과의 디스플레이 이미지들을 포함한다.
[79] 임베디드 제어기들 및 관련 컴퓨팅 인프라스트럭처(이들에 제한되지 않음)를 포함하는, 본원에서 설명된 다양한 디바이스들은, 본 발명의 실시예들에 따라 프로그래밍된(programmed) 명령들을 보유하고, 본원에서 설명된 데이터 구조들, 테이블들, 레코드(record)들, 또는 다른 데이터를 포함하기 위한 적어도 하나의 컴퓨터 판독가능 매체 또는 메모리를 포함할 수 있다. 본원에서 사용된 "컴퓨터 판독가능 매체"란 용어는, 실행을 위해 하나 또는 그 초과의 프로세서들에 명령들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체는, 비-일시적, 비-휘발성 매체, 휘발성 매체, 및 송신 매체(그러나, 이들에 제한되지 않음)를 포함하는 많은 형태들을 취할 수 있다. 비-휘발성 매체의 비-제한적인 예들은 광학 디스크(disk)들, 고체 상태 드라이브(drive)들, 자기 디스크들, 및 광자기 디스크들을 포함한다. 휘발성 매체의 비-제한적인 예들은 동적 메모리를 포함한다. 송신 매체의 비-제한적인 예들은 시스템 버스(bus)를 형성하는 와이어(wire)들을 포함하는 동축 케이블(cable)들, 구리 와이어, 및 광섬유들을 포함한다. 송신 매체는 또한, 음향 파 또는 광 파, 이를테면, 라디오(radio) 파 및 적외선 데이터 통신들 동안 생성된 파들의 형태를 취할 수 있다.
[80] 본원에서 사용된 실행가능한 애플리케이션(application)은, 예컨대 사용자 커맨드(command) 또는 입력에 대한 응답으로, 미리 결정된 기능들, 이를테면, 운영체제, 콘텍스트(context) 데이터 획득 시스템 또는 다른 정보 프로세싱 시스템의 기능들을 구현하도록 프로세서를 컨디셔닝(conditioning)하기 위한 코드(code) 또는 머신 판독가능 명령들을 포함한다. 실행가능한 프로시저는, 하나 또는 그 초과의 특정 프로세스들을 수행하기 위한, 코드 또는 머신 판독가능 명령의 세그먼트(segment), 서브-루틴(sub-routine), 또는 실행가능한 애플리케이션의 일부분 또는 코드의 다른 별도의 섹션(section)이다. 이들 프로세스들은 입력 데이터 및/또는 매개변수들을 수신하는 것, 수신된 입력 데이터에 대해 동작들을 수행하는 것, 그리고/또는 수신된 입력 매개변수들에 대한 응답으로 기능들을 수행하는 것 및 결과적 출력 데이터 및/또는 매개변수들을 제공하는 것을 포함할 수 있다.
[81] 본원에서 사용된 그래픽 사용자 인터페이스(GUI; graphical user interface)는, 디스플레이 프로세서에 의해 생성되며 프로세서 또는 다른 디바이스와의 사용자 상호작용 그리고 연관된 데이터 획득 및 프로세싱 기능들을 가능하게 하는 하나 또는 그 초과의 디스플레이 이미지들을 포함한다. GUI는 또한, 실행가능한 프로시저 또는 실행가능한 애플리케이션을 포함한다. 실행가능한 프로시저 또는 실행가능한 애플리케이션은, GUI 디스플레이 이미지들을 표현하는 신호들을 생성하도록 디스플레이 프로세서를 컨디셔닝한다. 이들 신호들은, 사용자에 의한 보기를 위한 이미지를 디스플레이(display)하는 디스플레이 디바이스에 공급된다. 프로세서는, 실행가능한 프로시저 또는 실행가능한 애플리케이션의 제어 하에서, 입력 디바이스들로부터 수신된 신호들에 대한 응답으로 GUI 디스플레이 이미지들을 조작한다. 이러한 방식으로, 사용자가 입력 디바이스들을 사용하여 디스플레이 이미지와 상호작용하여서, 프로세서 또는 다른 디바이스와의 사용자 상호작용이 가능하게 될 수 있다.
[82] 본원의 기능들 및 프로세스 단계들은 사용자 커맨드에 대한 응답으로 자동적으로, 완전히 또는 부분적으로 수행될 수 있다. 자동적으로 수행되는 활동(단계를 포함함)은, 이 활동의 사용자 직접 개시 없이, 하나 또는 그 초과의 실행가능한 명령들 또는 디바이스 동작에 대한 응답으로 수행된다.
[83] 도면들의 시스템 및 프로세스들은 배타적이지 않다. 동일한 목표들을 달성하기 위해 본 발명의 원리들에 따라 다른 시스템들, 프로세스들 및 메뉴(menu)들이 도출될 수 있다. 본 발명이 특정 실시예들에 관련하여 설명되었지만, 본원에서 도시 및 설명된 실시예들 및 변형들이 단지 예시 목적들을 위한 것임이 이해되어야 한다. 본 발명의 범위를 벗어나지 않으면서, 현재 설계에 대한 수정들이 당업자들에 의해 구현될 수 있다. 본원에서 설명된 바와 같이, 다양한 시스템들, 서브시스템(subsystem)들, 에이전트(agent)들, 관리자들 및 프로세스들은, 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 및/또는 이들의 결합들을 사용하여 구현될 수 있다. 본원의 어떤 청구항 엘리먼트도, 그 엘리먼트가 "하기 위한 수단"이라는 어구를 사용하여 명시적으로 언급되지 않는 한, 35 U.S.C. 112의 6번째 단락의 규정들 하에서 해석되지 않아야 한다.

Claims (20)

  1. 산업 생산 환경에서 데이터(data)를 저장하기 위한 시스템(system)으로서, 상기 시스템은,
    복수의 지능형 프로그램가능 논리 제어기 디바이스(programmable logic controller device)들 상에 저장된 분산 데이터 관리 시스템을 포함하며,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스는,
    프로세스 이미지(process image) 영역을 포함하는 휘발성 컴퓨터-판독가능 스토리지(computer-readable storage) 매체;
    비-휘발성 컴퓨터-판독가능 스토리지 매체;
    동작 명령들을 생산 유닛(unit)에 제공하도록 구성된 제어 프로그램(program);
    상기 생산 유닛과 연관된 데이터를 이용하여, 각각의 스캔(scan) 주기 동안 상기 프로세스 이미지 영역을 업데이팅하도록(update) 구성된 입력/출력 컴포넌트(component);
    상기 분산 데이터 관리 시스템의 인스턴스(instance)를 포함하는 분산 데이터 관리 컴포넌트;
    자동화 시스템 콘텍스트(context) 정보를 이용하여 상기 프로세스 이미지 영역의 콘텐츠(content)들에 주석을 닮으로써, 콘텍스트화된(contextualized) 데이터를 생성하도록 구성된 콘텍스트화(contextualization) 컴포넌트,
    상기 프로세스 이미지 영역의 콘텐츠들 및 상기 콘텍스트화된 데이터를 로컬로(locally) 저장하도록 구성된 히스토리언(historian) 컴포넌트 ― 상기 히스토리언 컴포넌트는, 상기 분산 데이터 관리 컴포넌트를 통해 상기 분산 데이터 관리 시스템에 걸쳐 상기 콘텐츠들을 이용가능하게 함 ―, 및
    상기 분산 데이터 관리 컴포넌트를 사용하여 상기 분산 데이터 관리 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘(algorithm)들을 실행하도록 구성된 데이터 분석 컴포넌트
    를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  2. 제1 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스는,
    하나 또는 그 초과의 선언적 지식 모델(model)들에 기반하여, 상기 제어 프로그램의 런타임(runtime) 동안 상기 하나 또는 그 초과의 추론 알고리즘들을 동적으로 수정하도록 구성된 지식 관리자 컴포넌트
    를 더 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  3. 제2 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스의 콘텍스트화 컴포넌트에 의해 사용되는 상기 하나 또는 그 초과의 선언적 지식 모델들은 웹 온톨로지 언어(OWL; Web Ontology Language)를 사용하여 표현된 온톨로지들을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  4. 제2 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스의 콘텍스트화 컴포넌트에 의해 사용되는 상기 하나 또는 그 초과의 선언적 지식 모델들은 예측 모델 마크업 언어(PMML; Predictive Model Markup Language) 표준을 사용하여 표현된 예측 모델을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  5. 제2 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스의 콘텍스트화 컴포넌트에 의해 사용되는 상기 하나 또는 그 초과의 선언적 지식 모델들은 규칙 상호교환 포맷(RIF; Rule Interchange Format) 표준을 사용하여 표현된 하나 또는 그 초과의 규칙들을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  6. 제1 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스의 데이터 분석 컴포넌트에 의해 사용되는 상기 하나 또는 그 초과의 추론 알고리즘들은 하나 또는 그 초과의 벤더-특정된(vendor-specified) 지식 모델들에 기반하여 구성되는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  7. 제6 항에 있어서,
    상기 하나 또는 그 초과의 벤더-특정된 지식 모델들은 상기 복수의 지능형 프로그램가능 논리 제어기 디바이스들의 하나 또는 그 초과의 능력들에 관련된 정보, 상기 복수의 지능형 프로그램가능 논리 제어기 디바이스들에서 이용가능한 진단 지식, 및/또는 상기 복수의 지능형 프로그램가능 논리 제어기 디바이스들에 의해 사용되는 데이터 레이아웃(layout) 정보를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  8. 제1 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스는,
    상기 제어 프로그램을 실행하며, 상기 제어 프로그램의 실행과 병렬로 상기 하나 또는 그 초과의 추론 알고리즘들을, 상기 제어 프로그램의 실행과 병렬로 수정하도록 구성된 하나 또는 그 초과의 프로세서(processor)들
    을 더 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  9. 제1 항에 있어서,
    각각의 개개의 지능형 프로그램가능 논리 제어기 디바이스에 포함된 비-휘발성 컴퓨터-판독가능 스토리지 매체는 테이블 동등 뷰(table equivalent view)를 갖는 NoSQL 데이터베이스(database)를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 시스템.
  10. 산업 생산 환경에서 데이터를 저장하기 위한 방법으로서, 상기 방법은,
    제1 지능형 프로그램가능 논리 제어기가, 복수의 스캔 주기들에 걸쳐, 동작 명령들을 생산 유닛에 제공하도록 구성된 제어 프로그램을 실행하는 단계;
    상기 제1 지능형 프로그램가능 논리 제어기가, 상기 생산 유닛과 연관된 데이터를 이용하여, 상기 복수의 스캔 주기들 각각 동안 프로세스 이미지 영역을 업데이팅(updating)하는 단계;
    상기 제1 지능형 프로그램가능 논리 제어기가, 자동화 시스템 콘텍스트 정보를 이용하여 상기 프로세스 이미지 영역의 콘텐츠들에 주석을 닮으로써, 콘텍스트화된 데이터를 생성하는 단계;
    상기 제1 지능형 프로그램가능 논리 제어기가, 상기 프로세스 이미지 영역의 콘텐츠들 및 상기 콘텍스트화된 데이터를 상기 제1 지능형 프로그램가능 논리 제어기 상의 로컬(local) 비-휘발성 컴퓨터(computer) 판독가능 매체에 삽입하는 단계 ― 상기 로컬 비-휘발성 컴퓨터 판독가능 매체는, 상기 제1 지능형 프로그램가능 논리 제어기 및 복수의 제2 지능형 프로그램가능 논리 제어기들에 걸쳐 저장된 분산 스토리지 시스템의 일부임 ―; 및
    상기 제1 지능형 프로그램가능 논리 제어기가, 상기 분산 스토리지 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘들을 실행하는 단계
    를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  11. 제10 항에 있어서,
    상기 제1 지능형 프로그램가능 논리 제어기가, 하나 또는 그 초과의 선언적 지식 모델들에 기반하여, 상기 제어 프로그램의 런타임 동안 상기 하나 또는 그 초과의 추론 알고리즘들을 동적으로 수정하는 단계
    를 더 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  12. 제11 항에 있어서,
    상기 하나 또는 그 초과의 선언적 지식 모델들은 웹 온톨로지 언어(OWL; Web Ontology Language)를 사용하여 표현된 온톨로지들을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  13. 제11 항에 있어서,
    상기 하나 또는 그 초과의 선언적 지식 모델들은 예측 모델 마크업 언어(PMML; Predictive Model Markup Language) 표준을 사용하여 표현된 예측 모델을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  14. 제11 항에 있어서,
    상기 하나 또는 그 초과의 선언적 지식 모델들은 규칙 상호교환 포맷(RIF; Rule Interchange Format) 표준을 사용하여 표현된 하나 또는 그 초과의 규칙들을 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  15. 제10 항에 있어서,
    상기 로컬 비-휘발성 컴퓨터 판독가능 매체는 테이블 동등 뷰를 갖는 NoSQL 데이터베이스를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  16. 제15 항에 있어서,
    상기 로컬 비-휘발성 컴퓨터 판독가능 매체로의, 상기 생산 유닛과 연관된 데이터의 삽입은, 상기 생산 유닛과 연관된 데이터 및 상기 동작 명령들에 대한 변화들에 기반하여 트리거링되는(triggered),
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  17. 제10 항에 있어서,
    상기 하나 또는 그 초과의 추론 알고리즘들은, 하나 또는 그 초과의 벤더-특정된 지식 모델들에 기반하여 구성되는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  18. 제17 항에 있어서,
    상기 하나 또는 그 초과의 벤더-특정된 지식 모델들은 상기 제1 지능형 프로그램가능 논리 제어기의 하나 또는 그 초과의 능력들에 관련된 정보, 상기 제1 지능형 프로그램가능 논리 제어기에서 이용가능한 진단 지식, 및/또는 상기 제1 지능형 프로그램가능 논리 제어기에 의해 사용되는 데이터 레이아웃 정보를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  19. 제10 항에 있어서,
    상기 제1 지능형 프로그램가능 논리 제어기가, 상기 제1 지능형 프로그램가능 논리 제어기에 포함된 프로세서의 제1 코어(core)를 사용하여 상기 제어 프로그램을 실행하는 단계
    를 더 포함하며,
    상기 하나 또는 그 초과의 추론 알고리즘들은, 상기 제1 지능형 프로그램가능 논리 제어기에 포함된 상기 프로세서의 제2 코어를 사용하여 동적으로 수정되는,
    산업 생산 환경에서 데이터를 저장하기 위한 방법.
  20. 산업 생산 환경에서 데이터를 저장하기 위한 제조 아티클(article of manufacture)로서,
    상기 제조 아티클은, 방법을 수행하기 위한 컴퓨터-실행가능 명령들을 보유하는 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함하며,
    상기 방법은,
    복수의 스캔 주기들에 걸쳐, 동작 명령들을 생산 유닛에 제공하도록 구성된 제어 프로그램을 실행하는 단계;
    상기 생산 유닛과 연관된 데이터를 이용하여, 상기 복수의 스캔 주기들 각각 동안 프로세스 이미지 영역을 업데이팅하는 단계;
    자동화 시스템 콘텍스트 정보를 이용하여 상기 프로세스 이미지 영역의 콘텐츠들에 주석을 닮으로써, 콘텍스트화된 데이터를 생성하는 단계;
    상기 프로세스 이미지 영역의 콘텐츠들 및 상기 콘텍스트화된 데이터를 로컬 비-휘발성 컴퓨터 판독가능 매체에 삽입하는 단계 ― 상기 로컬 비-휘발성 컴퓨터 판독가능 매체는 분산 스토리지 시스템의 일부임 ―; 및
    상기 분산 스토리지 시스템에 걸쳐 저장된 데이터를 분석하기 위한 하나 또는 그 초과의 추론 알고리즘들을 실행하는 단계
    를 포함하는,
    산업 생산 환경에서 데이터를 저장하기 위한 제조 아티클.
KR1020187019479A 2015-12-10 2015-12-10 Plc 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템 KR101923100B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/064863 WO2017099772A1 (en) 2015-12-10 2015-12-10 Distributed embedded data and knowledge management system integrated with plc historian

Publications (2)

Publication Number Publication Date
KR20180083948A true KR20180083948A (ko) 2018-07-23
KR101923100B1 KR101923100B1 (ko) 2018-11-28

Family

ID=55071159

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187019479A KR101923100B1 (ko) 2015-12-10 2015-12-10 Plc 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템

Country Status (8)

Country Link
US (1) US20200089182A1 (ko)
EP (1) EP3371665B1 (ko)
JP (1) JP6461435B1 (ko)
KR (1) KR101923100B1 (ko)
CN (1) CN108369404B (ko)
BR (1) BR112018011370B1 (ko)
RU (1) RU2701845C1 (ko)
WO (1) WO2017099772A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6528807B2 (ja) * 2017-06-28 2019-06-12 オムロン株式会社 制御システム、制御装置、結合方法およびプログラム
US11240306B2 (en) * 2017-11-06 2022-02-01 Vast Data Ltd. Scalable storage system
JP6814518B2 (ja) * 2018-03-29 2021-01-20 三菱電機エンジニアリング株式会社 機器制御装置、及び機器制御方法
WO2019236582A2 (en) * 2018-06-04 2019-12-12 Nordson Corporation Systems and methods for liquid dispensing system communications
US10699419B2 (en) * 2018-09-10 2020-06-30 Siemens Aktiengesellschaft Tracking and traceability of parts of a product
EP3908893A1 (en) * 2019-02-18 2021-11-17 Siemens Aktiengesellschaft Automation code generator for interoperability across industrial ecosystems
WO2021054954A1 (en) * 2019-09-19 2021-03-25 Siemens Aktiengesellschaft Queue blocks for flexible automation engineering programs
EP3812985A1 (en) * 2019-10-22 2021-04-28 Siemens Aktiengesellschaft Automation component and method of operating the same based on an enhanced information model
US11216477B2 (en) * 2020-01-21 2022-01-04 General Electric Company System and method for performing semantically-informed federated queries across a polystore
CN112363695B (zh) * 2020-11-10 2023-09-08 杭州和利时自动化有限公司 Pmml文件及其运行时环境与工业软件的集成方法
CN114637249A (zh) * 2020-12-15 2022-06-17 东莞市华科环境科技有限公司 一种空压机站集中远程管理系统
CN112698622B (zh) * 2021-03-23 2021-06-18 中国信息通信研究院 自动控制方法、装置及机器可读存储介质
WO2022254643A1 (ja) * 2021-06-03 2022-12-08 三菱電機株式会社 プログラマブルロジックコントローラ及びプログラマブルロジックコントローラの動作方法
DE102021123762A1 (de) * 2021-09-14 2023-03-16 Pilz Gmbh & Co. Kg Steuervorrichtung zur Maschinensteuerung und Sensordatenauswertung

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676281B2 (en) * 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
EP1895740B2 (en) * 2006-08-28 2023-07-26 Rockwell Automation Technologies, Inc. Structured data support using metadata and a type library in a control system
US7809656B2 (en) 2007-09-27 2010-10-05 Rockwell Automation Technologies, Inc. Microhistorians as proxies for data transfer
US8190990B2 (en) 2008-06-27 2012-05-29 Google Inc. Annotating webpage content
JP5604510B2 (ja) * 2009-04-30 2014-10-08 ジーイー・インフラストラクチャー・サウスアフリカ(プロプライアトリー)・リミテッド プロセス決定支援システム及び、プロセス決定支援システムを設ける方法
JP2010271758A (ja) * 2009-05-19 2010-12-02 Toppan Printing Co Ltd データ集約型plc
BR112013008053B1 (pt) * 2011-04-01 2021-01-26 Siemens Aktiengesellschaft controlador lógico programável e método para operar um controlador lógico programável
US20140358865A1 (en) * 2011-12-28 2014-12-04 Hans-Gerd Brummel Processing a technical system
DE112013001521T9 (de) * 2012-03-18 2015-03-19 Manufacturing System Insights (India) Pvt. Ltd. System und Vorrichtung, die überliefertes Wissen, das für jede Bedienungsperson in einer halbautomatischen Fertigungsanordnung eindeutig ist, identifiziert, erfasst, klassifiziert und einsetzt, um automatische technische Beaufsichtigungsoperationen auszuführen, um die Leistung des Fertigungssystems zu verbessern, und das/die Verfahren dafür
DE102012207437B3 (de) * 2012-05-04 2013-05-29 Siemens Aktiengesellschaft Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung
US10223327B2 (en) * 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
US9804588B2 (en) * 2014-03-14 2017-10-31 Fisher-Rosemount Systems, Inc. Determining associations and alignments of process elements and measurements in a process
US9396012B2 (en) * 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
CN104049575B (zh) * 2013-03-14 2018-10-26 费希尔-罗斯蒙特系统公司 在过程控制系统中收集并且向大数据机器递送数据
JP5991948B2 (ja) * 2013-06-19 2016-09-14 三菱電機株式会社 製造実行システム
JP6273732B2 (ja) * 2013-09-20 2018-02-07 日本電気株式会社 情報処理引き継ぎ制御装置、情報処理引き継ぎ制御方法、及び、情報処理引き継ぎ制御プログラム
KR102205836B1 (ko) * 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
WO2016080964A1 (en) * 2014-11-18 2016-05-26 Siemens Aktiengesellschaft Semantic contextualization in a programmable logic controller
WO2017007479A1 (en) * 2015-07-09 2017-01-12 Siemens Aktiengesellschaft Generating events using contextual information on an intelligent programmable logic controller
US10409254B2 (en) * 2015-07-16 2019-09-10 Siemens Aktiengesellschaft Knowledge-based programmable logic controller with flexible in-field knowledge management and analytics
EP3335083B1 (en) * 2015-08-11 2024-02-14 Siemens Aktiengesellschaft Rich contextualization of automation data
US10643181B2 (en) * 2015-08-18 2020-05-05 Satish Ayyaswami System and method for a big data analytics enterprise framework
CN105530092B (zh) * 2015-12-09 2018-05-08 中国航空工业集团公司西安航空计算技术研究所 一种ima处理机系统信息安全管理方法

Also Published As

Publication number Publication date
EP3371665B1 (en) 2019-03-20
US20200089182A1 (en) 2020-03-19
BR112018011370B1 (pt) 2023-01-24
WO2017099772A1 (en) 2017-06-15
CN108369404A (zh) 2018-08-03
BR112018011370A2 (pt) 2018-12-04
RU2701845C1 (ru) 2019-10-01
JP6461435B1 (ja) 2019-01-30
EP3371665A1 (en) 2018-09-12
CN108369404B (zh) 2019-05-17
KR101923100B1 (ko) 2018-11-28
JP2019505886A (ja) 2019-02-28

Similar Documents

Publication Publication Date Title
KR101923100B1 (ko) Plc 히스토리언과 통합된 분산 임베디드 데이터 및 지식 관리 시스템
US10496067B2 (en) Automation and control distributed data management systems
US12013842B2 (en) Web services platform with integration and interface of smart entities with enterprise applications
Nasar et al. Suitability of influxdb database for iot applications
CN106354082B (zh) 一种基于知识的可编程逻辑控制器
CN107250932B (zh) 可编程逻辑控制器及其中的语义情境化方法
CN110430260B (zh) 一种基于大数据云计算支撑的机器人云平台及工作方法
EP3262818B1 (en) Distributed data management system and associated method for embedded controllers
US20210288887A1 (en) Systems and methods for contextual transformation of analytical model of iot edge devices
US20190095517A1 (en) Web services platform with integration of data into smart entities
US20200334253A1 (en) Semantic search method for a distributed data system with numerical time series data
CN107850893A (zh) 使用上下文信息在智能可编程逻辑控制器上生成事件
CN110678848B (zh) 跨装置的通用数据访问
US11586176B2 (en) High performance UI for customer edge IIoT applications
Sedlar et al. Big Data Analysis and Cyber-Physical Systems
Tila A Semantic IoT System for Indoor Environment Control based on Sensor and Actuator Support Toolbox
Μωράκος Design and Implementation of a Knowledge Generation and Visualization tool over the SAP HANA Platform in the

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant