KR20200006939A - 자동화 애플리케이션들을 위한 추상화 계층들 - Google Patents

자동화 애플리케이션들을 위한 추상화 계층들 Download PDF

Info

Publication number
KR20200006939A
KR20200006939A KR1020190083392A KR20190083392A KR20200006939A KR 20200006939 A KR20200006939 A KR 20200006939A KR 1020190083392 A KR1020190083392 A KR 1020190083392A KR 20190083392 A KR20190083392 A KR 20190083392A KR 20200006939 A KR20200006939 A KR 20200006939A
Authority
KR
South Korea
Prior art keywords
automation
equipment
abstraction
instructions
specific
Prior art date
Application number
KR1020190083392A
Other languages
English (en)
Other versions
KR102233353B1 (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 KR20200006939A publication Critical patent/KR20200006939A/ko
Application granted granted Critical
Publication of KR102233353B1 publication Critical patent/KR102233353B1/ko

Links

Images

Classifications

    • 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
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/4186Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31082NDDS network data delivery service, producers and consumers model
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31368MAP manufacturing automation protocol
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31369Translation, conversion of protocol between two layers, networks
    • 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/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32339Object oriented modeling, design, analysis, implementation, simulation language
    • 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/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34263OLE object linking and embedding, OPC ole for process control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • General Factory Administration (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

추상화 계층들을 통해 자동화 기능들을 구현하기 위한 시스템은 런타임 환경에서 실행가능한 자동화 장비 추상화 프레임워크 및 제어 애플리케이션을 포함한다. 제어 애플리케이션은 하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된다. 각각의 자동화 기능은 하나 이상의 장비-애그노스틱 명령(equipment-agnostic instruction)들을 포함한다. 제어 애플리케이션의 실행 동안, 자동화 장비 추상화 프레임워크는 장비-애그노스틱 명령들, 및 자동화 기능의 특정 유닛의 표시를 수신한다. 자동화 장비 추상화 프레임워크는 장비-애그노스틱 명령들을 자동화 장비의 특정 유닛 상에서 실행가능한 장비-특정 자동화 명령들로 변환한다. 이어서, 이러한 장비-특정 자동화 명령들은 자동화 장비의 특정 유닛에 전송될 수 있다.

Description

자동화 애플리케이션들을 위한 추상화 계층들{ABSTRACTION LAYERS FOR AUTOMATION APPLICATIONS}
[0001] 본 출원은 2018년 7월 11일자로 출원된 미국 가출원 일련 번호 제62/696,470호를 우선권으로 주장하며, 이 미국 가출원은 인용에 의해 그 전체 내용이 본원에 포함된다.
[0002] 본 발명은 일반적으로, 플랫폼 애그노스틱(platform agnostic) 방식으로 자동화 기능들의 실행을 가능하게 하기 위해 추상화 계층(abstraction layer)들을 활용하는 시스템(system)들, 방법들, 및 장치들에 관한 것이다. 개시된 기술은, 예컨대 상이한 자동화 시나리오(automation scenario)들에 대한 제어기의 유연성을 향상시키기 위해 적용될 수 있다.
[0003] 자동화 시스템들은 체계적 방식(systematic manner)으로 머신(machine)들 및 다른 컴포넌트(component)들의 동작을 제어하는 데 사용된다. 통상적인 자동화 시스템들은 일반적으로 다수의 벤더(vendor)들로부터의 장비를 포함한다. 각각의 장비는 벤더-특정 프로그래밍 언어(programming language)들, 런타임 환경(runtime environment)들, 및 프로토콜(protocol)들을 사용할 수 있다. 이는 장비를 통합하는 작업을 까다롭게 만든다. 예컨대, 특정 벤더로부터의 장비 상에서 실행되도록 설계된 자동화 기능은 다른 벤더들로부터의 장비 상에서는 실행가능하지 않을 수 있다. 시스템 설계 및 통합을 더 복잡하게 하기 위해, 장비가 자동화 시스템의 다른 컴포넌트들과 인터페이싱(interfacing)하기 위하여 통신들 또는 다른 활동들에 사용할 수 있는 다수의 프로토콜들이 있다. 종래의 시스템들을 이용 시에, 이러한 프로토콜들에 대한 지원은 자동화 기능들 그 자체 내에 "하드코딩되어야(hardcoded)" 하며; 따라서, 자동화 기능들을 특정 시스템 구현에 훨씬 더 종속적이게 만든다.
[0004] 자동화 기능들을 개발 및 배치하는 데 필요한 시간을 감소시키기 위해, 근본적인 자동화 시스템 및 장비의 구현 세부사항들을 추상화(abstract)하는 프레임워크(framework)를 제공하는 것이 바람직하다.
[0005] 본 발명의 실시예들은, 소프트-와이어드 자동화 기능(soft-wired automation function)들을 이용하여 도메인(domain)들에 걸쳐 자동화 장비 및 생산 레벨(level) 세부사항들을 추상화하는 프레임워크와 관련된 방법들, 시스템들, 및 장치들을 제공함으로써, 위의 단점들 및 결점들 중 하나 이상을 해결 및 극복한다.
[0006] 일부 실시예들에 따르면, 추상화 계층들을 통해 자동화 기능들을 구현하기 위한 시스템은 런타임 환경에서 실행가능한 자동화 장비 추상화 프레임워크(automation equipment abstraction framework) 및 제어 애플리케이션(control application)을 포함한다. 제어 애플리케이션은 하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된다. 각각의 자동화 기능은 하나 이상의 장비-애그노스틱 명령(equipment-agnostic instruction)들을 포함한다. 제어 애플리케이션의 실행 동안, 자동화 장비 추상화 프레임워크는 장비-애그노스틱 명령들, 및 자동화 장비의 특정 유닛(unit)의 표시를 수신한다. 자동화 장비 추상화 프레임워크는 장비-애그노스틱 명령들을 자동화 장비의 특정 유닛 상에서 실행가능한 장비-특정 자동화 명령들로 트랜슬레이팅(translate)한다. 그런 다음, 이러한 장비-특정 자동화 명령들은 자동화 장비의 특정 유닛에 전송될 수 있다.
[0007] 다른 실시예들에 따르면, 추상화 계층들을 통해 자동화 기능들을 구현하기 위한 시스템은 런타임 환경에서 실행가능한 생산 추상화 프레임워크(production abstraction framework) 및 제어 애플리케이션을 포함한다. 제어 애플리케이션은 하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된다. 각각의 자동화 기능은 하나 이상의 생산 환경-애그노스틱 명령(production environment-agnostic instruction)들을 포함한다. 제어 애플리케이션의 실행 동안, 생산 추상화 프레임워크는 생산 환경-애그노스틱 명령들, 및 목표 생산 환경(target production environment)의 표시를 수신한다. 생산 추상화 프레임워크는 생산 환경-애그노스틱 명령들을 목표 생산 환경 내의 자동화 장비의 특정 유닛 상에서 실행가능한 생산 환경-특정 자동화 명령들로 트랜슬레이팅한다. 그런 다음, 생산 환경-특정 자동화 명령들은 자동화 장비의 특정 유닛에 전송될 수 있다.
[0008] 다른 실시예들에 따르면, 추상화 계층들을 통해 자동화 기능들을 구현하기 위한 시스템은 제어 애플리케이션 및 런타임 환경을 포함한다. 제어 애플리케이션은 하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된다. 각각의 자동화 기능은, 자동화 장비 및 생산 환경에 대해 애그노스틱(agnostic)인 명령들을 포함한다. 런타임 환경은, 명령들 중 적어도 일부를 자동화 장비의 특정 유닛 상에서 실행가능한 장비-특정 자동화 명령들로 트랜슬레이팅하는 자동화 장비 추상화 계층을 포함한다. 런타임 환경은, 명령들 중 적어도 일부를 목표 생산 환경 내의 자동화 장비의 특정 유닛에 의해 실행가능한 생산 환경-특정 자동화 명령들로 트랜슬레이팅하는 생산 추상화 계층을 더 포함한다.
[0009] 본 발명의 추가의 특징들 및 장점들은, 첨부 도면들을 참조하여 진행되는 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
[0010] 본 발명의 전술한 양상들 및 다른 양상들은, 첨부 도면들과 관련하여 읽혀질 때, 다음의 상세한 설명으로부터 최상으로 이해된다. 본 발명을 예시하는 목적을 위해, 현재 바람직한 실시예들이 도면들에 도시되지만, 본 발명은 개시된 특정 수단들로 제한되지 않는다는 것이 이해된다. 도면들에는 다음의 도면들이 포함된다:
[0011] 도 1은 본 발명의 일부 실시예들이 구현될 수 있는 자동화 시스템의 예시를 제공하고;
[0012] 도 2는 일부 실시예들에서 구현될 수 있는 자동화 시스템 추상화를 위한 프레임워크를 예시한다.
[0013] 다음의 개시내용은, 자동화 장비를 추상화하기 위한 프레임워크와 관련된 방법들, 시스템들, 및 장치들에 관한 몇몇 실시예들에 따라 본 발명을 설명한다. 아래에서 더 상세하게 설명되는 바와 같이, 위에서 언급된 프레임워크는 "자동화 기능들"의 개발을 가능하게 한다. 각각의 자동화 기능은 일반적인(즉, 장비-특정적이지 않은) 방식으로 자동화 작업을 수행하기 위한 명령들의 세트(set)를 포함한다. 본원에서 설명되는 프레임워크의 목적들 중 하나는 상이한 컴퓨팅 시스템(computing system)들의 요건들을 대체하는 것이 아니라 추상화하는 것이다. 예컨대, 자동화 장비는 산업 표준 프로토콜들, 이를테면, DDS, OPC UA 또는 MTConnect를 구현할 수 있다. 본원에서 설명되는 프레임워크는 이러한 프로토콜들의 세부사항들을, 코드(code)가 실행되는 근본적인 하드웨어(hardware)에 의해 사용되는 프로토콜에 대해 애그노스틱인 자동화 기능을 개발하는 데 개발자가 사용할 수 있는 인터페이스(interface)로 추상화한다.
[0014] 도 1은 본 발명의 일부 실시예들이 구현될 수 있는 자동화 시스템(100)의 예시를 제공한다. 이러한 예는 산업 환경을 생산 계층(105), 제어 계층(110), 및 IT 계층(115)으로 개념적으로 분할(partition)한다. 간략하게, 생산 유닛들(예컨대, 유닛들(105A, 105B, 105C, 및 105D))로부터 수신된 데이터(data)는 제어 계층 디바이스(Control Layer Device)들에 의해 IT 계층(115)에 전달된다. IT 계층(115)은 다양한 사후-프로세싱(post-processing) 및 저장 작업들을 수행하는 시스템들을 포함한다. 도 1의 예는 감시 제어 및 데이터 수집(SCADA; Supervisory Control and Data Acquisition) 서버(Server)(또는 게이트웨이(Gateway)) 컴포넌트(115A)를 포함한다. 이러한 컴포넌트(115A)는, 오퍼레이터(operator)가 제어 계층(110) 및 생산 계층(105)의 디바이스들을 원격으로 모니터링(monitor)하고 제어하는 것을 가능하게 한다. 부가적으로, SCADA 서버 컴포넌트(115A)는 하위 계층들(105, 110)로부터 데이터를 수집하고, 정보를 프로세싱(process)하여, 이를 통합 플랜트 지식 저장소(Unified Plant Knowledge Warehouse)(115B)에 이용가능하게 만든다. 통합 플랜트 지식 저장소(115B)는 하위 계층들(105, 110)로부터 수신된 데이터의 추가의 프로세싱 및 저장을 제공한다. 통합 플랜트 지식 저장소(115B)는 본 발명의 상이한 실시예들에서 다양한 기능들을 수행할 수 있다. 예컨대, 일부 실시예들에서, 통합 플랜트 지식 저장소(115B)는 하위 계층들(105, 110)에 의해 생성된 데이터에 기반하여 비즈니스 분석(Business Analytics)(115C)을 지원하기 위한 기능성을 포함한다.
[0015] 종래의 시스템들에서, 각각의 계층의 자동화 장비는 특정 컴퓨팅 아키텍처(computing architecture)에 기반하여 고도로 커스터마이징되었다(customized). 예컨대, 도 1에서, 제어기 계층(110)의 자동화 장비는 2개의 제어기들(110E, 110F) 및 8개의 필드 디바이스(Field Device)들(110A, 110B, 110C, 110D, 110G, 110H, 110I, 및 110J)을 포함한다. 자동화 장비의 각각의 유닛은 잠재적으로, 상이한 컴퓨팅 아키텍처(예컨대, 오퍼레이팅 시스템(operating system), 네트워킹 프로토콜(networking protocol)들의 사용 및 지원, 정보 모델(information model) 등)를 갖는다. 각각의 유닛 상에서 실행가능한 소프트웨어(software)는 컴퓨팅 아키텍처의 요건들을 특정하게 고려하는 방식으로 개발되어야 한다. 예로서, 제어기(110E)가 특정 오퍼레이팅 시스템, 및 네트워킹 프로토콜들의 세트를 실행하는 경우, 개발자는 이러한 아이템(item)들 각각을 사용하기 위해 소프트웨어를 커스터마이징(customize)해야 한다. 소프트웨어가 제어기(110E)에 대해 커스터마이징되기 때문에, 제어기들 둘 모두가 동일한 컴퓨팅 아키텍처를 갖지 않는 한, 그 소프트웨어는 제어기(110F) 상에서 용이하게 재사용될 수 없다.
[0016] 본원에서 설명되는 기법들을 이용 시에, 근본적인 자동화 장비의 컴퓨팅 아키텍처에 대한 추상화를 가능하게 하기 위해, 제어 계층(110)의 자동화 장비의 각각의 유닛에 사전-통합 플러그-인(pre-integration plug-in)이 설치될 수 있다. 각각의 플러그-인은 자동화 시스템 추상화 프레임워크를 구현한다(아래에서 더 상세하게 설명됨). 간략하게, 프레임워크는, 개발자들이 복수의 자동화 기능들을 연결시킴으로써 자동화 프로그램(automation program)들을 생성하는 것을 가능하게 한다. 프레임워크는 이러한 자동화 기능들을, 그 자동화 기능들이 실행되거나 또는 우리가 상호작용하는 자동화 장비로부터 디커플링(decouple)시킨다. 각각의 자동화 기능은, 예컨대 실제 자동화 장비 하드웨어(예컨대, PLC 또는 IPC); 근본적인 통신 프로토콜들(예컨대, DDS 또는 OPC UA); 및 필드버스 프로토콜(Fieldbus protocol)(예컨대, 프로피넷(Profinet) 또는 이더넷(Ethernet))에 대해 애그노스틱이다. 각각의 자동화 기능은 또한, 산업 실행 환경(예컨대, IEC 61131 또는 IEC 61499)에 대해 애그노스틱이다. 추상화 계층들은 프레임워크의 각각의 계층에 구축되어, 자동화 기능들과 자동화 장비의 디커플링(decoupling)을 용이하게 한다.
[0017] 도 2는 일부 실시예들에서 구현될 수 있는 자동화 시스템 추상화를 위한 프레임워크(200)를 예시한다. 프레임워크(200)의 핵심은 런타임 환경에서 실행되는 2개의 추상화 계층들(215, 220)이다. 일단 추상화 계층들(215, 220)이 구축되면, 자동화 기능들을 위해 기록된 제어 애플리케이션 코드는 어디든 모든 곳에서 실행될 수 있다. 추상화 계층들(215, 220)은, 예컨대 PC 상에, 클라우드-기반 컴퓨팅 환경(cloud-based computing environment) 내에, 또는 임의의 벤더 특정 런타임 플랫폼 환경 상에 배치될 수 있다. 추상화 계층들(215, 220)이 자동화 기능(들)에 대한 공통 인터페이스들을 제공하기 때문에, 동일한 제어 코드가 자동화 장비의 임의의 유닛 상에서 실행될 수 있다.
[0018] 자동화 장비 추상화 계층(215)은 자동화 장비(225A, 225B, 225C, 225D, 225E, 225F)의 상이한 기능적 특징들을 추상화하는 컴포넌트들(215A, 215B, 215C)을 포함한다. 간략하게, 오퍼레이팅 시스템 추상화 컴포넌트(215A)는 오퍼레이팅 시스템-종속적 기능성을 추상화한다. 간단한 예로서, 제어기(225A)가 윈도우즈-기반 오퍼레이팅 시스템(Windows-based operating system)을 사용하는 한편 제어기(225B)는 유닉스 기반 오퍼레이팅 시스템(UNIX based operating system)을 사용하는 것을 가정한다. 기본 오퍼레이션(basic operation)들 및 시스템 프리미티브(system primitive)들은 이러한 2개의 오퍼레이팅 시스템들 사이에서 상이하다. 오퍼레이팅 시스템 추상화 컴포넌트(215A)는 자동화 기능으로부터 일반 기능 호출(generic functional call)을 수신하고, 그 기능 호출을 목표 자동화 장비에 적합한 오퍼레이팅 시스템-특정 기능 호출로 트랜슬레이팅한다. 통신 추상화 컴포넌트(215B)는 유사한 방식으로, 그러나 통신 프로토콜들, 이를테면, DDS, OPC, TCP, MQTT 등에 대해 동작하는 한편, 정보 추상화 컴포넌트(215C)는 사용될 수 있는 상이한 정보 모델들 사이에서 정보를 트랜슬레이팅한다.
[0019] 각각의 경우에서, 추상화 컴포넌트(215A, 215B, 215C)는, 오퍼레이팅 시스템, 통신 프로토콜 등의 기능성을 구현하는 것이 아니라; 오히려 추상화 컴포넌트(215A, 215B, 215C)는 이전의 이미 존재하는 특정사항들을 숨긴다는 것이 주목되어야 한다. 따라서, 자동화 장비 추상화 계층(215)은 자동화 기능들에 의해 요구되는 실제 기능성을 구현하는 것이 아니라; 오히려, 자동화 장비 추상화 계층(215)은 기존의 솔루션(solution)들 및 표준들을 사전-통합한다. 추상화에 의해, 커뮤낼러티(communality)가 모델링되고(modelled), 이는 근본적인 솔루션들/표준들을 교환가능하게 만든다. 이러한 통신 프로토콜들 각각이 사전-통합되기 때문에, 개발자는, 어떤 프로그래밍 노력도 하지 않고 그리고 구성 노력을 거의 또는 전혀 하지 않고서, 동시에 모든 또는 일부의 혼합을 사용할 수 있다.
[0020] 자동화 장비 추상화 계층(215)은 플랫폼과 상이하다. 플랫폼은 바닥에서부터 위로(from ground up) 구축되고, 그리고 표준들 또는 사유 기술에 기반하며; 플랫폼은 단지 위로 성장할 수 있다. 반대로, 자동화 장비 추상화 계층(215)은 자동화 기능들과 그러한 기능들에 의해 사용되는 자동화 장비 사이에 놓인다. 자동화 장비 추상화 계층(215)은 사물(thing)들이 자동화 기능들과 장비 사이에서 교환가능하게 되는 것을 가능하게 한다. 플랫폼과 마찬가지로 자동화 장비 추상화 계층(215)은 위아래로 성장할 수 있지만, 플랫폼과 달리 자동화 장비 추상화 계층(215)은 또한, 새로운 자동화 기능들 및/또는 자동화 장비를 지원하기 위해 좌우로 성장할 수 있다.
[0021] 생산 추상화 계층(220)은 자동화 장비 추상화 계층(215)과 유사한 방식으로 동작하지만, 생산 환경의 세부사항들의 맥락에서 동작한다. 스테이션 추상화 컴포넌트(Station Abstraction Component)(220A)는, 스테이션 추상화 컴포넌트(220A)가 스테이션의 어셈블리 프로세스(assembly process) 및 다른 활동들의 세부사항들을 추상화한다는 점에서 오퍼레이팅 시스템 추상화 컴포넌트(215A)와 유사하다. 위치 추상화 컴포넌트(220B)는 생산 환경에 관한 임의의 위치-특정 세부사항들을 추상화하고, 제품 추상화 컴포넌트(Product Abstraction Component)(220C)는 생산되는 제품에 관한 세부사항들을 추상화한다.
[0022] 개발자들은 개발 환경 선택(Development Environment of Choice)(205)을 통해 엔지니어링 계층(Engineering Layer)(210)에서 작업한다. 일반적으로, 개발 환경 선택(205)은 당해 기술분야에 알려진 임의의 개발 환경(예컨대, C, 자바(Java), 매트랩(Matlab), 파이썬(Python) 등을 지원함)일 수 있다. 예컨대, 일 실시예에서, 개발 환경 선택(205)은 Siemens 총 통합 자동화(TIA; Totally Integrated Automation) 포털(Portal)이다. 엔지니어링 계층(210)은 자동화 장비 추상화 계층(215) 및 생산 추상화 계층(220)의 능력들을 활용하는 프로그램들의 생성을 용이하게 하는 컴포넌트들(210A, 210B, 210C)을 포함한다.
[0023] 생산 구성자 컴포넌트(Production Composer Component)(210A)는 하나 이상의 자동화 기능들을 사용한 프로그램들의 생성을 가능하게 한다. 제어 애플리케이션 또는 다른 자동화 프로그램은 다수의 자동화 기능들을 연결시킴으로써 구현될 수 있다. 자동화 기능들은 함께 "소프트-와이어링(soft-wired)"된다. 즉, 기능 호출들을 통해 자동화 기능들을 함께 직접적으로 링크(linking)하기보다는, 중개자(intermediary)들로서의 자동화 장비 추상화 계층(215) 및 생산 추상화 계층(220)의 사용은, 전반적인 소프트웨어 아키텍처가 시간의 경과에 따라 발전함에 따라, 더 많은 유연성을 허용한다. 더욱이, 이는 자동화 기능들이 플랫폼-애그노스틱이고, 재사용가능한 자동화 기능들의 추상화 계층들(215, 220)을 지원하는 임의의 장비 상에서 실행될 수 있고, 예컨대 온라인 시장(online marketplace)에서 생성 및 저장될 수 있기 때문이다. 일부 실시예들에서, 생산 구성자 컴포넌트(210A)는, 자동화 기능들이 소프트-와이어링되는 것을 가능하게 하는 "드래그 앤드 드롭(drag and drop)" 또는 유사한 기능성을 갖는 GUI를 포함할 수 있고, 그에 따라, 자동화 애플리케이션들의 신속한 개발을 용이하게 한다.
[0024] 일단 자동화 프로그램이 생산 구성자 컴포넌트(210A)를 통해 개발되면, 앱 패커 컴포넌트(App Packer Component)(210B)는 프로그램을 자동화 장비의 하나 이상의 유닛들 상에 배치한다. 이는 자동화 기능들을, 자동화 장비의 목표 유닛 상에서 실행가능한 하나 이상의 파일(file)들로 결합한다. 일부 실시예들에서, 사용자는, 적절한 컴파일러(compiler) 등을 앱 패커 컴포넌트(210B)가 식별할 수 있도록, 목표 유닛을 앱 패커 컴포넌트(210B)에 직접적으로 제공할 수 있다. 다른 실시예들에서, 앱 패커 컴포넌트(210B)는 자동화 장비가 동작하는 시스템을 설명하는 구성 파일에 기반하여 목표 컴퓨터(target computer)를 자동으로 검출할 수 있다.
[0025] 인간-머신 인터페이스(HMI; Human Machine Interface) 생성기 컴포넌트(210C)는 생산 환경 내의 자동화 장비 상에 디스플레이될(displayed) 수 있는 GUI들 및 다른 HMI들을 생성하는 데 사용될 수 있다. HMI 생성기 컴포넌트(210C)는, 어떤 정보가 HMI를 통해 사용자들에게 디스플레이되어야 하는지를 결정하기 위해 자동화 기능들을 분석한다. 일부 실시예들에서, 개발자는, 출력되어야 하는 값을 표시하기 위해, 자동화 기능에 특정 코드를 부가할 수 있다. 예컨대, 일 실시예에서, HMI를 통해 무엇이 출력되어야 하는지를 개발자들이 선언하는 것을 가능하게 하는 유형 정의(type definition)들이 있다(예컨대, 정수들을 선언하기 위한 "hmi_integer"). 다른 실시예들에서, 인쇄 구문(print statement)과 유사한 방식으로 기능하는 기능 호출(function call)이 사용될 수 있다. HMI 생성기 컴포넌트(210C)는 코드를 구문분석(parse)하여 이러한 아이템들을 검출하고 그에 따라 HMI를 생성한다. 일부 실시예들에서, HMI 생성기 컴포넌트(210C)는 HMI들을 생성하는 데 있어서 복수의 미리-생성된 템플릿(template)들을 사용한다. 예컨대, 디스플레이될 필요가 있는 값들의 유형들에 기반하여, HMI 생성기 컴포넌트(210C)에 의해 템플릿이 선택될 수 있다. 예컨대, 템플릿이 3개의 정수 값들에 대해 미리-생성될 수 있는데; 자동화 기능이 3개의 정수 값들의 디스플레이(display)를 요구한다는 것을 HMI 생성기 컴포넌트(210C)가 발견하면, 이 템플릿이 활용될 수 있다. 일단 HMI가 생성되면, 이는, 예컨대 HMI 생성기 컴포넌트(210C)와 디스플레이 디바이스(도 2에 도시되지 않음) 사이의 연결을 통해 배치될 수 있다. 대안적으로, 생산 환경 내의 디스플레이 유닛들에 배치될 수 있는 패키지(package)에 HMI를 포함시키기 위해, 앱 패커 컴포넌트(210B)가 사용될 수 있다.
[0026] 자동화 장비(225A, 225B, 225C, 225D, 225E, 225F)의 각각의 유닛은 플러그-인 컴포넌트(도 2에서 "PI"로 라벨링됨(labeled))를 포함한다. 자동화 장비의 특정 유닛에 설치된 각각의 플러그-인 컴포넌트는 자동화 장비 추상화 계층(215) 및 생산 추상화 계층(220)을 실행하는 런타임 환경과 자동화 장비의 특정 유닛 사이의 통신들을 용이하게 한다. 일부 실시예들에서, 런타임 환경은 자동화 장비의 특정 유닛 그 자체 상에서 실행된다. 예컨대, 제어기(225A)는 런타임 환경을 제공하는 애플리케이션을 실행시킬 수 있다. 다른 실시예들에서, 런타임 환경은 하나 이상의 네트워크(network)들을 통해 자동화 장비의 특정 유닛에 연결된 컴퓨팅 시스템 상에서 실행될 수 있다.
[0027] 다양한 기법들이 런타임 환경을 구현하는 데 사용될 수 있다. 예컨대, 일부 실시예들에서, 런타임 환경은 생산 환경 및 자동화 장비의 특정 유닛에 커스터마이징된 가상 머신(virtual machine)을 포함한다. 자동화 기능들은 가상 머신에서 실행가능한 애플리케이션으로 컴파일링될(compiled) 수 있다. 그런 다음, 가상 머신은, 자동화 장비 추상화 계층(215) 및 생산 추상화 계층(220)의 기능성을 사용하여, 필요에 따라, 그 애플리케이션의 각각의 명령을 해석하고 트랜슬레이션(translation)들을 할 수 있다. 대안적으로, 가상 머신은, 애플리케이션의 코드를 런타임 환경을 실행하는 자동화 장비 상에서 실행가능한 네이티브 머신 코드(native machine code)로 컴파일링(compile)하는 적시(JIT; just-in-time) 컴파일러를 사용할 수 있다. JIT 컴파일러가 컴필레이션 프로세스(compilation process)를 수행함에 따라, 이는, 임의의 장비-특정 자동화 명령들 또는 생산 환경-특정 명령들을 삽입하기 위해 필요에 따라 자동화 장비 추상화 계층(215) 및 생산 추상화 계층(220)의 기능성을 사용한다.
[0028] 일부 실시예들에서, 자동화 기능(AF; Automation Function)들은 요구 시(on demand) 점진적으로 그리고 독립적으로 다운로드된다(downloaded). 따라서, 애플리케이션은 주어진 시점에서 모든 배치된 AF들의 집합(aggregation)인 것으로 이해될 수 있다. 즉, 프로그래머(programmer)가 AF를 사용하기를 원할 때, 프로그래머는 설명(예컨대, 이름, 서명 등)을 타이핑(type)할 수 있고, 그런 다음, 대응하는 AF가 원격 소스(remote source)로부터 리트리브될(retrieved) 수 있다. 일부 실시예들에서, 주문형 배치(on-demand deployment)의 개념이 런타임에 적용될 수 있다. 예컨대, 자동화 장비에 배치된 코드는 AF들 자체에 대한 객체 코드를 포함하지 않을 수 있으며; 오히려 코드는, 런타임 동안에 구문분석되고(parsed) 그리고 원격 소스로부터 AF들을 리트리브(retrieve)하는 데 사용될 수 있는, AF들에 대한 참조들을 포함할 수 있다. 일부 실시예들에서, AF에 대한 참조들은 명시적일 수 있다(예컨대, 네트워크 주소). 다른 실시예들에서, 참조들은 AF의 이름 또는 다른 식별 정보만을 포함한다. 그런 다음, 런타임 환경의 컴포넌트(예컨대, 위에서 언급된 가상 머신)는, 식별된 AF를 컴포넌트가 원격 리소스(remote resource)로부터 리트리브하는 것을 가능하게 하는 기능성을 포함할 수 있다. 예컨대, 위에서 논의된 가상 머신은 AF들을 포함하는 서버들의 리스트(list)로 구성될 수 있다. AF를 검출 시에, AF를 리트리브하기 위해 서버들이 접촉된다. 일단 리트리브되면, 런타임 환경은 특정되는 AF를 실행시킬 수 있다.
[0029] 프로그램가능 로직 제어기(programmable logic controller)들에 의해 사용되는, 본원에서 설명되는 프로세서(processor)들은 하나 이상의 중앙 프로세싱 유닛(CPU; central processing unit)들, 그래픽 프로세싱 유닛(GPU; graphical processing unit)들, 또는 당해 기술분야에서 알려진 임의의 다른 프로세서를 포함할 수 있다. 더 일반적으로, 본원에서 사용되는 프로세서는, 작업들을 수행하기 위해, 컴퓨터 판독가능 매체 상에 저장된 머신-판독가능 명령들을 실행하기 위한 디바이스이고, 하드웨어 및 펌웨어(firmware) 중 임의의 하나 또는 하드웨어와 펌웨어의 조합을 포함할 수 있다. 프로세서는 또한, 작업들을 수행하기 위해 실행가능한 머신-판독가능 명령들을 저장하는 메모리(memory)를 포함할 수 있다. 프로세서는, 실행가능 프로시저(executable procedure) 또는 정보 디바이스에 의한 사용을 위해 정보를 조작, 분석, 수정, 변환 또는 송신함으로써, 그리고/또는 정보를 출력 디바이스로 라우팅(routing)함으로써, 정보에 대해 작용한다. 프로세서는, 예컨대 컴퓨터, 제어기 또는 마이크로프로세서(microprocessor)의 능력들을 사용하거나 또는 포함할 수 있고, 범용 컴퓨터에 의해 수행되지 않는 특수 목적 기능들을 수행하기 위해 실행가능 명령들을 사용하여 컨디셔닝될(conditioned) 수 있다. 프로세서는 임의의 다른 프로세서와 (전기적으로 그리고/또는 실행가능 컴포넌트들을 포함하여) 커플링되어서(coupled), 프로세서와 임의의 다른 프로세서 사이의 상호작용 및/또는 통신을 가능하게 할 수 있다. 사용자 인터페이스 프로세서 또는 생성기는, 디스플레이 이미지(display image)들 또는 그 부분들을 생성하기 위한 전자 회로 또는 소프트웨어 또는 그 둘의 조합을 포함하는 알려진 엘리먼트(element)이다. 사용자 인터페이스는, 프로세서 또는 다른 디바이스와의 사용자 상호작용을 가능하게 하는 하나 이상의 디스플레이 이미지들을 포함한다.
[0030] 제한 없이 프로그램가능 로직 제어기들 및 관련된 컴퓨팅 기반구조들을 포함하는 본원에서 설명되는 다양한 디바이스들은, 본 발명의 실시예들에 따라 프로그래밍된(programmed) 명령들을 유지하고 데이터 구조들, 표들, 레코드(record)들, 또는 본원에서 설명된 다른 데이터를 포함하기 위한 적어도 하나의 컴퓨터 판독가능 매체 또는 메모리를 포함할 수 있다. 본원에서 사용된 "컴퓨터 판독가능 매체"라는 용어는, 실행을 위해 명령들을 하나 이상의 프로세서들에 제공하는 것에 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체는 비-일시적, 비-휘발성 매체들, 휘발성 매체들, 및 송신 매체들을 포함하는(그러나 이에 제한되지 않음) 많은 형태들을 취할 수 있다. 비-휘발성 매체들의 비-제한적 예들은 광학 디스크(optical disk)들, 고체 상태 드라이브(solid state drive)들, 자기 디스크들, 및 마그네토-광학 디스크(magneto-optical disk)들을 포함한다. 휘발성 매체들의 비-제한적 예들은 동적 메모리를 포함한다. 송신 매체들의 비-제한적 예들은, 시스템 버스(system bus)를 구성하는 와이어(wire)들을 포함하는 동축 케이블(coaxial cable)들, 구리 와이어, 및 광섬유들을 포함한다. 송신 매체들은 또한, 음향 파 또는 광파, 이를테면, 라디오 파(radio wave) 및 적외선 데이터 통신들 동안에 생성되는 것들의 형태를 취할 수 있다.
[0031] 본원에 사용된 실행가능 애플리케이션은, 예컨대, 사용자 커맨드(user command) 또는 입력에 대한 응답으로, 미리 결정된 기능들, 이를테면, 오퍼레이팅 시스템, 콘텍스트 데이터 획득 시스템(context data acquisition system) 또는 다른 정보 프로세싱 시스템의 미리 결정된 기능들을 구현하도록 프로세서를 컨디셔닝(conditioning)하기 위한 코드 또는 머신 판독가능 명령들을 포함한다. 실행가능 프로시저는 코드 또는 머신 판독가능 명령의 세그먼트(segment), 서브-루틴(sub-routine), 또는 하나 이상의 특정 프로세스들을 수행하기 위한 실행가능 애플리케이션의 코드 또는 부분의 다른 별개의 섹션(section)이다. 이들 프로세스들은, 입력 데이터 및/또는 매개변수들을 수신하는 것, 수신된 입력 데이터에 대한 연산들을 수행하는 것 및/또는 수신된 입력 매개변수들에 대한 응답으로 기능들을 수행하는 것, 및 결과적 출력 데이터 및/또는 매개변수들을 제공하는 것을 포함할 수 있다.
[0032] 본원의 기능들 및 프로세스 단계들은 사용자 커맨드에 대한 응답으로, 자동으로, 전체적으로 또는 부분적으로 수행될 수 있다. 자동으로 수행되는 활동(단계를 포함함)은, 활동의 사용자 직접 개시 없이, 하나 이상의 실행가능 명령들 또는 디바이스 동작에 대한 응답으로 수행된다.
[0033] 본 출원에서, "포함하다" 및 "구비하다"라는 용어들뿐만 아니라 그 파생어들은 제한 없이 포함하는 것을 의미하고; "또는"이라는 용어는 포괄적이고 및/또는을 의미하고; "~와 연관된" 및 "그와 연관된"이라는 문구들뿐만 아니라 그들의 파생어들은, 포함하는, ~ 내에 포함되는, ~와 상호연결되는, 보유하는, ~ 내에 보유되는, ~에 또는 ~와 연결되는, ~에 또는 ~와 커플링(couple)되는, ~와 통신가능한, ~와 협력하는, 인터리빙(interleave)되는, 나란히 놓이는(juxtapose), ~ 가까이 있는, ~에 또는 ~와 결속되는, ~을 갖는, ~의 특성을 갖는 등을 의미할 수 있고; 그리고 "제어기"라는 용어는, 적어도 하나의 동작을 제어하는 임의의 디바이스, 시스템 또는 그 일부(그러한 디바이스가 하드웨어로 구현되든, 펌웨어로 구현되든, 소프트웨어로 구현되든, 또는 이들 중 적어도 2개의 어떠한 결합으로 구현되든)를 의미한다. 임의의 특정 제어기와 연관된 기능성은, 국부적으로든 또는 원격으로든, 중앙집중식이거나 또는 분산식일 수 있다는 것이 주목되어야 한다. 소정의 단어들 및 문구들에 대한 정의들이 본 특허 문서 전체에 걸쳐 제공되며, 당업자들은 그러한 정의들이, (대부분은 아닐지라도) 많은 경우들에서, 그러한 정의된 단어들 및 문구들의 이전의 사용뿐만 아니라 향후의 사용에 적용된다는 것을 이해할 것이다. 일부 용어들이 넓은 범위의 실시예들을 포함할 수 있지만, 첨부된 청구항들은 이러한 용어들을 특정 실시예들로 명시적으로 한정할 수 있다.
[0034] 도면들의 시스템 및 프로세스들이 유일한 것은 아니다. 동일한 목적들을 달성하기 위해, 본 발명의 원리들에 따라, 다른 시스템들, 프로세스들 및 메뉴(menu)들이 도출될 수 있다. 본 발명이 특정 실시예들을 참조하여 설명되었지만, 본원에 도시 및 설명된 실시예들 및 변형들이 예시 목적들만을 위한 것임이 이해되어야 한다. 본 발명의 범위를 벗어나지 않으면서 현재 설계에 대한 수정들이 당업자들에 의해 구현될 수 있다. 본원에서 설명된 바와 같이, 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 및/또는 이들의 결합들을 사용하여 다양한 시스템들, 서브시스템(subsystem)들, 에이전트(agent)들, 관리자들 및 프로세스들이 구현될 수 있다. 청구항 엘리먼트가 명백히 "~을 위한 수단"이라는 문구를 사용하여 언급되지 않는 한, 본원의 어떤 청구항 엘리먼트도 35 U.S.C. 112(f)항의 조항들 하에서 해석되어야 하는 것은 아니다.

Claims (10)

  1. 추상화 계층(abstraction layer)들을 통해 자동화 기능들을 구현하기 위한 시스템(system)으로서,
    하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된 제어 애플리케이션(control application) ― 각각의 자동화 기능은 하나 이상의 장비-애그노스틱 명령(equipment-agnostic instruction)들을 포함함 ―;
    런타임 환경(runtime environment)에서 실행가능한 자동화 장비 추상화 프레임워크(automation equipment abstraction framework)를 포함하며,
    상기 자동화 장비 추상화 프레임워크는,
    상기 제어 애플리케이션의 실행 동안, 장비-애그노스틱 명령들, 및 자동화 장비의 특정 유닛(unit)의 표시를 수신하고,
    상기 장비-애그노스틱 명령들을 상기 자동화 장비의 특정 유닛 상에서 실행가능한 장비-특정 자동화 명령들로 트랜슬레이팅(translate)하고,
    상기 장비-특정 자동화 명령들을 상기 자동화 장비의 특정 유닛에 전송하도록 구성되는,
    시스템.
  2. 제1 항에 있어서,
    상기 자동화 장비의 특정 유닛과 상기 자동화 장비 추상화 프레임워크 사이의 통신들을 용이하게 하는, 상기 자동화 장비의 특정 유닛에 설치된 플러그-인 컴포넌트(plug-in component)를 더 포함하는,
    시스템.
  3. 제1 항에 있어서,
    (a) 상기 자동화 장비의 특정 유닛은 오퍼레이팅 시스템(operating system)을 실행시키는 제어기에 의해 제어되고; 그리고 (b) 상기 자동화 장비 추상화 프레임워크는 상기 장비-애그노스틱 명령들을 상기 오퍼레이팅 시스템에 의해 실행가능한 장비-특정 명령들로 트랜슬레이팅(translating)하기 위한 오퍼레이팅 시스템 추상화 컴포넌트를 포함하는,
    시스템.
  4. 제1 항에 있어서,
    (a) 상기 자동화 장비의 특정 유닛은 통신 프로토콜(communication protocol)을 사용하여 네트워크(network)를 통해 액세스가능하고(accessible); 그리고 (b) 상기 자동화 장비 추상화 프레임워크는 상기 통신 프로토콜을 사용하여 상기 네트워크를 통해 상기 장비-애그노스틱 명령들을 전송하기 위한 통신 추상화 컴포넌트를 포함하는,
    시스템.
  5. 제1 항에 있어서,
    상기 자동화 장비 추상화 프레임워크는 그래픽 사용자 인터페이스(GUI; graphical user interface)를 통해 사용자에 의해 요청되는 기능성에 기반하여 상기 자동화 기능들을 자동으로 생성하도록 구성된 제품 구성자 컴포넌트(product composer component)를 포함하는,
    시스템.
  6. 추상화 계층들을 통해 자동화 기능들을 구현하기 위한 시스템으로서,
    하나 이상의 자동화 기능들을 사용하여 자동화 장비와 통신하도록 설계된 제어 애플리케이션 ― 각각의 자동화 기능은 하나 이상의 생산 환경-애그노스틱 명령(production environment-agnostic instruction)들을 포함함 ―;
    런타임 환경에서 실행가능한 생산 추상화 프레임워크를 포함하며,
    상기 생산 추상화 프레임워크는,
    상기 제어 애플리케이션의 실행 동안, 생산 환경-애그노스틱 명령들, 및 목표 생산 환경의 표시를 수신하고,
    상기 생산 환경-애그노스틱 명령들을 상기 목표 생산 환경 내의 자동화 장비의 특정 유닛 상에서 실행가능한 생산 환경-특정 자동화 명령들로 트랜슬레이팅하고,
    상기 생산 환경-특정 자동화 명령들을 상기 자동화 장비의 특정 유닛에 전송하도록 구성되는,
    시스템.
  7. 제6 항에 있어서,
    (a) 상기 자동화 장비의 특정 유닛은 상기 목표 생산 환경 내의 특정 스테이션(station)과 상호작용하고; 그리고 (b) 상기 생산 추상화 프레임워크는, 상기 생산 환경-애그노스틱 명령들 중 적어도 일부를 상기 목표 생산 환경 내의 특정 스테이션과 상호작용하기 위한 스테이션-특정 명령들로 트랜슬레이팅하도록 구성된 스테이션 추상화 컴포넌트를 포함하는,
    시스템.
  8. 제6 항에 있어서,
    (a) 상기 목표 생산 환경은 특정 지리적 위치에 있고; 그리고 (b) 상기 생산 추상화 프레임워크는, 상기 생산 환경-애그노스틱 명령들 중 적어도 일부를 상기 특정 지리적 위치의 하나 이상의 리소스(resource)들에 액세스(accessing)하기 위한 위치-특정 명령들로 트랜슬레이팅하도록 구성된 위치 추상화 컴포넌트를 포함하는,
    시스템.
  9. 제6 항에 있어서,
    (a) 상기 목표 생산 환경은 특정 제품을 생산하도록 구성되고; 그리고 (b) 상기 생산 추상화 프레임워크는, 상기 생산 환경-애그노스틱 명령들 중 적어도 일부를 상기 특정 제품과 상호작용하기 위한 제품-특정 명령들로 트랜슬레이팅하도록 구성된 제품 추상화 컴포넌트를 포함하는,
    시스템.
  10. 제6 항에 있어서,
    상기 생산 추상화 프레임워크는 그래픽 사용자 인터페이스(GUI)를 통해 사용자에 의해 요청되는 기능성에 기반하여 상기 자동화 기능들을 자동으로 생성하도록 구성된 제품 구성자 컴포넌트를 포함하는,
    시스템.
KR1020190083392A 2018-07-11 2019-07-10 자동화 애플리케이션들을 위한 추상화 계층들 KR102233353B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862696470P 2018-07-11 2018-07-11
US62/696,470 2018-07-11
US16/119,006 2018-08-31
US16/119,006 US10705511B2 (en) 2018-07-11 2018-08-31 Abstraction layers for automation applications

Publications (2)

Publication Number Publication Date
KR20200006939A true KR20200006939A (ko) 2020-01-21
KR102233353B1 KR102233353B1 (ko) 2021-03-26

Family

ID=67437663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190083392A KR102233353B1 (ko) 2018-07-11 2019-07-10 자동화 애플리케이션들을 위한 추상화 계층들

Country Status (7)

Country Link
US (1) US10705511B2 (ko)
EP (1) EP3594767A1 (ko)
JP (1) JP6899871B2 (ko)
KR (1) KR102233353B1 (ko)
CN (1) CN110716510B (ko)
BR (1) BR102019014309A2 (ko)
RU (1) RU2729209C1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102242622B1 (ko) * 2020-02-19 2021-04-23 한국과학기술원 스마트 공장을 위한 솔루션 제공 방법 및 시스템

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942710B1 (en) 2019-09-24 2021-03-09 Rockwell Automation Technologies, Inc. Industrial automation domain-specific language programming paradigm
US11048483B2 (en) 2019-09-24 2021-06-29 Rockwell Automation Technologies, Inc. Industrial programming development with an extensible integrated development environment (IDE) platform
US11163536B2 (en) 2019-09-26 2021-11-02 Rockwell Automation Technologies, Inc. Maintenance and commissioning
US11080176B2 (en) 2019-09-26 2021-08-03 Rockwell Automation Technologies, Inc. Testing framework for automation objects
US11733687B2 (en) 2019-09-26 2023-08-22 Rockwell Automation Technologies, Inc. Collaboration tools
US11392112B2 (en) 2019-09-26 2022-07-19 Rockwell Automation Technologies, Inc. Virtual design environment
US11042362B2 (en) 2019-09-26 2021-06-22 Rockwell Automation Technologies, Inc. Industrial programming development with a trained analytic model
CN113495162A (zh) * 2020-03-20 2021-10-12 竑腾科技股份有限公司 自动光学检测设备的控制系统
US11308447B2 (en) 2020-04-02 2022-04-19 Rockwell Automation Technologies, Inc. Cloud-based collaborative industrial automation design environment
JP2023151976A (ja) * 2022-04-01 2023-10-16 オムロン株式会社 サーバ装置、情報モデルの提供方法、及び情報モデルの提供プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920565A (en) * 1993-07-30 1999-07-06 British Telecommunications Public Limited Company Method and apparatus for intranetwork communication
US20110022198A1 (en) * 2006-09-29 2011-01-27 Rockwell Automation Technologies, Inc. Layered interface in an industrial environment
US20160067864A1 (en) * 2014-09-05 2016-03-10 Accenture Global Services Limited Self-adaptive device intelligence as a service enterprise infrastructure for sensor-rich environments

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862391A (en) * 1996-04-03 1999-01-19 General Electric Company Power management control system
US7203740B1 (en) * 1999-12-22 2007-04-10 Intel Corporation Method and apparatus for allowing proprietary forwarding elements to interoperate with standard control elements in an open architecture for network devices
US20040025173A1 (en) * 2002-04-24 2004-02-05 Gil Levonai Interaction abstraction system and method
US20030235211A1 (en) 2002-06-24 2003-12-25 Honeywell International Inc. Field abstraction layer
US20060271255A1 (en) * 2004-12-30 2006-11-30 Teradyne, Inc. System and method for vehicle diagnostics and prognostics
US7725205B1 (en) * 2006-09-21 2010-05-25 Novellus Systems, Inc. Apparatus and methods for providing a homogenous I/O interface for controlling a heterogenous mixture of hardware I/O systems
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
US20130211610A1 (en) 2010-07-23 2013-08-15 Siemens Aktiengesellschaft Configuring of a field device in an arragement for distribution of electric energy
US20130201316A1 (en) * 2012-01-09 2013-08-08 May Patents Ltd. System and method for server based control
US10402208B2 (en) * 2012-06-18 2019-09-03 Microsoft Technology Licensing, Llc Adaptive portable libraries
US9009018B2 (en) * 2012-10-15 2015-04-14 International Business Machines Corporation Enabling reuse of unit-specific simulation irritation in multiple environments
US9946244B2 (en) * 2014-08-25 2018-04-17 Siemens Aktiengesellschaft Intelligent programmable logic controller
EP3213162B1 (en) * 2014-10-29 2018-11-28 Siemens Aktiengesellschaft Automatic compression algorithm selection and parameter tuning based on contextual knowledge
CN107077114B (zh) * 2014-10-30 2020-09-29 西门子公司 在可编程逻辑控制器中使用软传感器
CN104571005B (zh) * 2014-11-17 2017-05-17 上海申美饮料食品有限公司 一种基于通用适配器的自动化生产控制系统及方法
CN107250932B (zh) * 2014-11-18 2020-09-15 西门子公司 可编程逻辑控制器及其中的语义情境化方法
US11226605B2 (en) * 2015-01-09 2022-01-18 Siemens Aktiengesellschaft Provisioning of control layer applications for use in industrial control environments
US10365626B2 (en) * 2015-02-12 2019-07-30 Siemens Aktiengesellschaft Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming
US10642665B2 (en) * 2015-04-18 2020-05-05 Intel Corporation Multimodal interface
US20160378089A1 (en) 2015-06-24 2016-12-29 Siemens Aktiengesellschaft Logical Position Sensor
EP3314340B1 (en) * 2015-06-24 2021-11-17 Siemens Aktiengesellschaft Control contextualization and reasoning about control
US10409254B2 (en) * 2015-07-16 2019-09-10 Siemens Aktiengesellschaft Knowledge-based programmable logic controller with flexible in-field knowledge management and analytics
US11175643B2 (en) * 2015-08-11 2021-11-16 Siemens Aktiengesellschaft Rich contextualization of automation data
CN108353090B (zh) * 2015-08-27 2020-04-03 雾角系统公司 用于改进对分布式网络中的传感器流数据的处理的方法
US9971610B2 (en) * 2016-06-20 2018-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Distributed application execution based on device-specific support for platform-independent device functions
US10642603B2 (en) * 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920565A (en) * 1993-07-30 1999-07-06 British Telecommunications Public Limited Company Method and apparatus for intranetwork communication
US20110022198A1 (en) * 2006-09-29 2011-01-27 Rockwell Automation Technologies, Inc. Layered interface in an industrial environment
US20160067864A1 (en) * 2014-09-05 2016-03-10 Accenture Global Services Limited Self-adaptive device intelligence as a service enterprise infrastructure for sensor-rich environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Timo Lehto 외 2명. Open interfaces in a terminal automation platform. 2017년 9월 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102242622B1 (ko) * 2020-02-19 2021-04-23 한국과학기술원 스마트 공장을 위한 솔루션 제공 방법 및 시스템
WO2021167173A1 (ko) * 2020-02-19 2021-08-26 한국과학기술원 스마트 공장을 위한 솔루션 제공 방법 및 시스템

Also Published As

Publication number Publication date
RU2729209C1 (ru) 2020-08-05
KR102233353B1 (ko) 2021-03-26
US20200019147A1 (en) 2020-01-16
CN110716510A (zh) 2020-01-21
JP6899871B2 (ja) 2021-07-07
JP2020009451A (ja) 2020-01-16
CN110716510B (zh) 2023-12-22
BR102019014309A2 (pt) 2020-01-28
US10705511B2 (en) 2020-07-07
EP3594767A1 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
KR102233353B1 (ko) 자동화 애플리케이션들을 위한 추상화 계층들
US11269598B2 (en) Industrial automation domain-specific language programming paradigm
US20230259335A1 (en) EXTENSIBLE IDE PLATFORM WITH OPEN APIs
US11481313B2 (en) Testing framework for automation objects
EP3798758B1 (en) System, method and medium for generating system project data
US11947943B2 (en) Industrial automation smart object inheritance
US11226605B2 (en) Provisioning of control layer applications for use in industrial control environments
EP4152110A1 (en) Graphical and text based co-design editor for industrial automation projects
US20220299981A1 (en) Notifications from an industrial automation development environment
US11003517B2 (en) Device-based engineering system for programmable logic controllers
EP4155903A1 (en) Industrial automation project design telemetry
EP4057086A1 (en) Industrial automation smart object inheritance break and singleton creation
EP4345602A1 (en) Presentation design to automation device binding
US20240086182A1 (en) Method for connecting a web socket session with an object instance with automation device association

Legal Events

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