KR102257938B1 - 산업 애플리케이션들을 위한 스킬 인터페이스 - Google Patents

산업 애플리케이션들을 위한 스킬 인터페이스 Download PDF

Info

Publication number
KR102257938B1
KR102257938B1 KR1020197006869A KR20197006869A KR102257938B1 KR 102257938 B1 KR102257938 B1 KR 102257938B1 KR 1020197006869 A KR1020197006869 A KR 1020197006869A KR 20197006869 A KR20197006869 A KR 20197006869A KR 102257938 B1 KR102257938 B1 KR 102257938B1
Authority
KR
South Korea
Prior art keywords
skill
virtual
physical production
physical
instance
Prior art date
Application number
KR1020197006869A
Other languages
English (en)
Other versions
KR20190040236A (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 KR20190040236A publication Critical patent/KR20190040236A/ko
Application granted granted Critical
Publication of KR102257938B1 publication Critical patent/KR102257938B1/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/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] or 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] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41865Total 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] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • G05B19/4187Total 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] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow by tool management
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41815Total 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] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • 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] or computer integrated manufacturing [CIM]
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41835Total 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] or computer integrated manufacturing [CIM] characterised by programme execution
    • 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] or 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] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/41855Total 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] or computer integrated manufacturing [CIM] characterised by the network communication by local area network [LAN], network structure
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/4188Total 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] or computer integrated manufacturing [CIM] characterised by CIM planning or realisation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25417Identify capabilities necessary to produce article
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25418Enter description of capabilities of each module
    • 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/31052Find feasable assembly sequences
    • 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/31053Planning, generate assembly plans
    • 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)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Factory Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

가상-물리 생산 시스템은, 하나 이상의 공작물들을 포함하는 제품을 집합적으로 생산하도록 구성된 복수의 가상-물리 생산 유닛들을 포함한다. 각각의 가상-물리 생산 유닛들은 하나 이상의 자동화 시스템 디바이스들, 네트워크 인터페이스 및 프로세서를 포함한다. 네트워크 인터페이스는 하나 이상의 스킬 인스턴스들을 수신하도록 구성된다. 각각의 스킬 인스턴스는 하나 이상의 자동화 시스템 디바이스들에 의한 공작물의 변형을 위한 기계-독립적 요청을 제공한다. 프로세서는, 자동화 시스템 디바이스들을 제어하는 거동들을 적용함으로써, 하나 이상의 스킬 인스턴스들 각각을 실행하도록 구성된다.

Description

산업 애플리케이션들을 위한 스킬 인터페이스
[1] 본 발명은 일반적으로, 산업 애플리케이션(application)을 위한 스킬 인터페이스(skill interface)와 그에 관련된 방법들, 시스템(system)들, 및 장치들에 관한 것이다. 개시된 기술은, 예컨대, 프로그램가능(programmable) 제어기들이 사용되는 다양한 자동화된 생산 환경들에 적용될 수 있다.
[2] 제조 프로세스(process)들은 고도로 자동화되며, 그리고 몇몇 계층적인 층들로 분할될 수 있다. 예컨대, 최고 수준에서, 비즈니스(business) 층으로 지칭될 수 있는 전사적 자원 계획(ERP; enterprise resource planning)이 이루어진다. 더 낮은 수준들에서, 다양한 제어 또는 유닛(unit) 층으로 지칭될 수 있는 하드웨어(hardware) 구현 및 제어가 이루어진다. 중간 층이 비즈니스 층과 제어 층을 통합 및 연결한다. 이 중간 층은 제조 실행 시스템(MES; manufacturing execution system)을 포함하며, 이 제조 실행 시스템(MES)은 기능들, 이를테면, 자원 관리, 자원 할당, 디스패칭(dispatching), 데이터(data) 수집 및 획득, 품질 보장 관리, 유지보수 관리, 성능 분석, 스케줄링(scheduling), 문서 제어, 노사(labor management), 그리고 재료 및 생산 추적 사이의 상호작용들과 데이터 측면에서 MES 프로세스를 정의한다.
[3] 산업 애플리케이션들을 설계할 때의 하나의 난제는, 기계-대-기계 상호작용들이 MES가 산업 애플리케이션의 프로세스들을 어떻게 구현하는지에 고도로 의존한다는 것이다. 그 결과, 전체 시스템의 강건성(robustness)이 제한된다. 맞춤화가 요구될 때, 이 맞춤화는 수동으로 수행되어야 한다. 예컨대, 산업 환경의 오퍼레이터(operator) 또는 다른 작업자가 작업 오더(order)를 읽고, 특정 프로세스 단계를 위한 투입 재료들을 고르고, 이들 재료들을 가지고 기계들로 걸어가며, 그리고 이 단계를 달성하기 위해 기계들을 작동시킬 수 있다. 일부 사례들에서, 기계들, 이를테면 크레인(crane)들은 아이템(item)들의 이송(transportation)을 가능하게 할 수 있지만, 원리적으로, 시스템의 임의의 맞춤화는 시스템과 인간의 상호작용에 의존하는 상태로 남겨진다.
[4] 본 발명의 실시예들은, 산업 애플리케이션들을 위한 스킬 인터페이스에 관련된 방법들, 시스템들, 및 장치들을 제공함으로써, 위의 단점들 및 결점들 중 하나 이상을 해결 및 극복한다. 본원에서 설명된 기법들은, "스킬들"로 불리는 추상(abstraction) 측면에서 자동화 애플리케이션에서의 다수의 상호작용 디바이스(device)들 사이에 의도를 통신하는 문제를 정의한다. 스킬들의 목적은, 자동화에서 프로세스들을 셋업(setting up) 및 실행하는 프로세스를 표준화 및 단순화하는 것이다. 그것은 또한, 최적화를 컴퓨팅(compute)하기 위해 어떤 동작들을 수행할지를 결정하기 위해, 시스템 수준에서 기계들 사이의 통신 매체로서 사용된다. 스킬은, 당업자가 MES에서 발견할 바와 같은 프로세스에 관련되지만, 유닛 수준에서 구현될 수 있다.
[5] 본 발명의 일 양상에 따라, 가상-물리(cyber-physical) 생산 시스템은, 하나 이상의 공작물(workpiece)들을 포함하는 제품을 집합적으로 생산하도록 구성된 복수의 가상-물리 생산 유닛들을 포함한다. 일부 실시예들에서, 가상-물리 생산 유닛들 각각은 프로그램가능 논리 제어기를 포함한다. 각각의 가상-물리 생산 유닛들은 하나 이상의 자동화 시스템 디바이스들, 네트워크(network) 인터페이스, 및 프로세서(processor)를 포함한다. 네트워크 인터페이스는, 자동화 시스템 디바이스들에 의한 공작물의 변형(transformation)을 위한 기계-독립적 요청을 제공하는 스킬 인스턴스(instance)들을 수신하도록 구성된다. 일부 실시예들에서, 네트워크 인터페이스는, 스킬 인스턴스들을 수신하기 위해 표현 상태 전송(REST; Representational State Transfer) 프로토콜(protocol)을 사용하는 웹 서비스(web services) 인터페이스를 포함한다. 프로세서는, 자동화 시스템 디바이스들을 제어하는 거동들을 적용함으로써, 스킬 인스턴스들 각각을 실행하도록 구성된다. 가상-물리 생산 시스템의 일부 실시예들에서, 가상-물리 생산 유닛들 중 적어도 하나는, 시스템에 포함된 다른 가상-물리 생산 유닛들 사이의 공작물의 이송을 가능하게 하는 이송 시스템에 대응한다.
[6] 전술된 가상-물리 생산 시스템의 일부 실시예들에 따라, 각각의 가상-물리 생산 유닛들은, 프로세서에 의한 실행 전에 스킬 인스턴스들을 저장하도록 구성된 오더 큐(queue)를 더 포함한다. 프로세서는 추가로, 오더 큐에 스킬 인스턴스를 넣은 후에 선호 시퀀스(preferred sequence)에 기반하여 오더 큐를 재정렬(reorder)하도록 구성될 수 있다. 부가적으로(또는 대안적으로), 프로세서는 추가로, 즉시 실행될 수 없는 스킬 인스턴스들을 건너뛰며 순서대로(in order) 스킬 인스턴스들을 실행하도록 구성될 수 있다. 전술된 가상-물리 생산 시스템의 일부 실시예들에서, 프로세서는 추가로, 실행을 위해 오더 큐로부터 스킬 인스턴스의 제거 시 스킬 인스턴스의 완료를 표시하는 메시지(message)를 가상-물리 생산 시스템에 송신하도록 구성된다. 프로세서는 또한, 실행을 위해 오더 큐로부터 스킬 인스턴스의 제거 시 스킬 인스턴스의 스킬 상태 매개변수를 수정하도록 구성될 수 있다.
[7] 일부 실시예들에서, 각각의 가상-물리 생산 유닛들은 공작물 상의 물리 태그(tag)를 판독하도록 구성된 스캐너(scanner) 디바이스를 더 포함한다. 이러한 물리 태그는 공작물에 대응하는 유니버셜 자원 식별자(URI; Universal Resource Identifier)를 특정한다. 프로세서는 실행 동안 공작물과 오더 큐의 스킬 인스턴스들을 연관시키기 위해 URI를 사용할 수 있다. 예컨대, 일 실시예에서, 스킬 인스턴스들은 공작물에 대응하는 URI에 매칭(matching)하는 키(key) 스킬 값을 포함한다.
[8] 본 발명의 다른 양상에 따라, 가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터(computer)-구현 방법은, 가상-물리 생산 유닛에 포함된 하나 이상의 자동화 시스템 디바이스들에 의한 공작물의 변형을 위한 기계-독립적 요청을 제공하는 스킬 인스턴스를 수신하는 단계를 포함한다. 스킬 인스턴스들은, 하나 이상의 부가적인 스킬 인스턴스들을 포함하는 오더 큐에 넣어진다. 일단 스킬 인스턴스들이 넣어지면, 큐는 재정렬될 수 있다. 예컨대, 일 실시예에서, 방법은, 오더 큐에 스킬 인스턴스를 넣은 후에 선호 시퀀스에 기반하여 오더 큐를 재정렬하는 단계를 포함한다. 그런 다음, 자동화 시스템 디바이스들을 제어하는 거동들을 적용함으로써, 오더 큐의 각각의 스킬 인스턴스가 선택적으로 실행된다. 일부 실시예들에서, 오더 큐의 스킬 인스턴스들은, 즉시 실행될 수 없는 스킬 인스턴스들을 건너뛰며 순서대로 실행된다. 실행을 위해 오더 큐로부터 스킬 인스턴스의 제거 시, 스킬 인스턴스의 완료를 표시하는 메시지가 가상-물리 생산 시스템에 송신될 수 있거나, 또는 스킬 인스턴스의 스킬 상태 매개변수가 수정될 수 있다.
[9] 본 발명의 다른 실시예들에 따라, 가상-물리 생산 시스템은 이송 가상-물리 생산 유닛을 포함하며, 이송 가상-물리 생산 유닛은, 물리 이송 시스템, 이송 네트워크 인터페이스, 및 프로세서를 포함한다. 이송 네트워크 인터페이스는, 가상-물리 생산 시스템에 포함된 다른 가상-물리 생산 유닛들 사이의 공작물의 이송을 위한 기계-독립적 요청을 제공하는 이송 스킬 인스턴스들을 수신하도록 구성된다. 프로세서는, 이송 스킬 인스턴스들을 구현하기 위해 물리 이송 시스템에 이송 거동들을 적용하도록 구성된다. 일부 실시예들에서, 전술된 가상-물리 생산 시스템은, 하나 이상의 기계가공(machining) 가상-물리 생산 유닛들을 더 포함한다. 각각의 기계가공 가상-물리 생산 유닛은, 공작물을 물리적으로 변형시키기 위한 물리 기계, 기계가공 가상-물리 생산 유닛에 의한 공작물의 기계가공을 위한 기계-독립적 요청을 제공함으로써 하나 이상의 기계가공 스킬 인스턴스들을 수신하도록 구성되는 기계가공 네트워크 인터페이스, 및 기계가공 스킬 인스턴스들을 구현하기 위해 물리 기계들에 기계가공 거동들을 적용하도록 구성되는 프로세서를 포함한다.
[10] 본 발명의 부가적인 특징들 및 장점들은, 첨부된 도면들을 참조하여 진행되는 예시적인 실시예들의 다음의 상세한 설명으로부터 자명해질 것이다.
[11] 본 발명의 전술된 그리고 다른 양상들은, 첨부된 도면들과 관련하여 읽을 때, 다음의 상세한 설명으로부터 가장 잘 이해된다. 본 발명을 예시하는 목적을 위해, 현재 바람직한 실시예들이 도면들에서 도시되지만, 본 발명이 개시된 특정 수단들로 제한되지 않는다는 것이 이해된다. 다음의 도면들이 도면들에 포함된다:
[12] 도 1은 일부 실시예들에 따른, 자율 기계들 사이에서 재료들을 자동적으로 이송하는 예시적인 가상-물리 생산 시스템(CPPS; Cyber-Physical Production System)을 예시하고;
[13] 도 2는 일부 실시예들에 따른, 도 1에서 도시된 예시적인 CPPS를 위한 가상-물리 생산 유닛(CPPU; Cyber-Physical Production Unit)들 및 관련된 스킬들의 고-수준 개요를 제공하고;
[14] 도 3은 일부 실시예들에 따른, 개별적인 CPPU(300)의 컴포지션(composition)의 예를 제공하고;
[15] 도 4는 다른 센서(sensor)들 및 푸셔(pusher)와 함께 배열된 3개의 컨베이어(conveyor)들의 세트(set)를 포함하는 예시적인 시나리오(scenario)를 도시하고;
[16] 도 5는 본 발명의 일부 실시예들에서 구현될 수 있는 바와 같은, CPPU에 대한 온톨로지(ontology)이다. CPPU는 거동들, 구성요소들, 및 스킬들을 포함하고;
[17] 도 6은 일부 실시예들에 따른, 유닛의 오더 큐에 부가되는 스킬 인스턴스들의 예를 도시 및 제공하고;
[18] 도 7은 작업 트레이(tray)를 식별하는 QR-코드(code) 식별자의 예를 도시하고;
[19] 도 8은 스킬들과 거동들 사이의 내부 연결들을 특정함으로써, 프로그래밍된(programmed) 거동을 구현하기 위해 데이터플로(dataflow) 언어가 사용되는 스킬 인터페이스의 예를 예시하며; 그리고
[20] 도 9는 도 8에서 도시된 것보다 더욱 복잡한 스킬 거동 연결을 예시하는 부가적인 데이터 플로(flow) 예를 제공한다.
[21] 다음의 개시내용은, 자율 프로세스들에서의 통신들을 가능하게 하는 스킬 인터페이스와 연관된 방법들, 시스템들, 및 장치들에 관한 몇몇 실시예들에 따라 본 발명을 설명한다. 본원에서 사용된 "스킬"이란 용어는, 공작물 또는 재료가 궁극적으로 최종 제품으로 변환될 수 있도록 이 공작물 또는 재료가 어떻게 변형될 필요가 있는지에 대한 기계-독립적 설명을 지칭한다. 스킬 인터페이스를 지원하는 디바이스는 본원에서 가상-물리 생산 유닛(CPPU; Cyber-Physical Production Unit)으로 지칭되며, 다수의 CPPU들의 결합된 활동들은 가상-물리 생산 시스템(CPPS; Cyber-Physical Production System)에 의해 제어된다.
[22] 본원에서 설명된 스킬 인터페이스는, 협력적으로 그리고 자동적으로 제품들을 생성하기 위해 유닛들의 그룹(group)들을 제어하는 데 사용될 수 있다. 작업 제품들은, 예컨대, 최적화된 비용들에 기반하여 상이한 기계들로 라우팅되거나(routed), 또는 어쩌면 심지어 동시에 유닛들의 동일한 스위트(suite)를 이용하여 다수의 제품들을 생성하기 위해 레버리징될(leveraged) 수 있다. 스킬 인터페이스는, 자동화된 시스템이 기계들을 동적으로 선택하며 고정된 생산 경로에 의존하지 않을 수 있도록, 내성(introspection) 및 선택을 제공한다. 주어진 CPPU는 상이한 제품들에 적용될 수 있는 몇몇 상이한 스킬들을 지원할 수 있으며, 어느 CPPU가 사용하기에 더욱 효과적일 것인지를 시스템이 선정할 수 있도록, 상이한 CPPU들은 공통 스킬을 지원할 수 있다.
[23] 스킬 인터페이스의 구현은 스킬의 부류의 정의를 수반한다. 이는, 예컨대, 스킬에 대한 명칭, 뿐만 아니라 공작물이 어떻게 변형되는지를 설명하는 매개변수들의 세트를 포함할 수 있다. CPPS는, 특정 공작물에 대해 어떤 매개변수 값들을 사용할지를 설명하는, 스킬의 인스턴스를 생성할 수 있다. 인스턴스는 포괄적이며 임의의 공작물에 적용가능할 수 있거나, 또는 어느 공작물에 영향을 끼칠지를 식별하는 키를 사용할 수 있다. 인스턴스들은 큐에 저장되고, 유닛은 큐로부터 인스턴스들을 리트리빙(retrieve)하고 스킬의 매개변수들을 언패킹(unpack)한다. 유닛은 또한, 스킬들 전부가 즉시 적용될 수 있는 것은 아니기 때문에, 다음 차례로 실행할 스킬을 선택하기 위해 큐를 미리보기(look ahead)할 수 있다. 그런 다음, 유닛은, 작업을 실제로 수행하는 다양한 구성요소들, 물리 및 기능 디바이스들을 제어하는 거동들에 스킬의 매개변수들을 적용함으로써 스킬을 실행한다. 유닛의 물리적 제한들에 따라 동일한 부류의 스킬들을 포함하는 다수의 스킬들이 동시에 실행될 수 있다. 스킬들이 완료될 때, 이 스킬들은 큐로부터 제거되고, 수행된 것으로서 MES에 시그널링될(signaled) 수 있다.
[24] 스킬들은, 반-자율(semi-autonomous) 생산 유닛들의 스위트들 사이에 제품 정보를 통신하기 위해 사용되는 매체이다. 고정된 수공구의 한 제품 전용 공장을 생성하는 것이 아니라, 제품들을 형성하기 위해 다수의 반-지능적(semi-intelligent) 디바이스들을 사용하는 많은 이유들이 존재한다. 예컨대, 고도로 맞춤화된 제품들을 생성하거나 또는 작은 로트 사이즈(lot size)들을 갖는 다양한 제품들을 생성하는 것이 원해지면, 맞춤화가능한 구성들의 범용 기계들을 사용하는 것이 가장 비용-효과적일 수 있는데, 그 이유는 단일 제품을 위해 온전한 공장을 만드는 고정비가 제거되기 때문이다.
[25] 도 1은 일부 실시예들에 따른, 자율 기계들 사이에서 재료들을 자동적으로 이송하는 예시적인 가상-물리 생산 시스템(CPPS; Cyber-Physical Production System)(100)을 예시한다. 도 1에서, 이송 시스템은, 각각이 공작물들을 제품들로 형상화하는 프로세스들을 수행하는, 로딩/언로딩 스테이션(Load/Unload Station)(105), 드릴링(Drilling) 기계(110), 그리고 절삭 기계(115) 사이에서 재료 및 작업 제품들을 운반한다.
[26] 생산 시스템은 전체 프로세스의 일부 양상들을 각각 수행할 수 있는 유닛들로 분할된다. 예컨대, 절삭 기계(115)는 제품의 전체 형상을 형성하기 위해 사용될 수 있다. 드릴링 기계(110)는, 절삭 기계(115)가 만들기에는 너무 미세한 홀(hole)들을 제품에 뚫기 위해 사용될 수 있다. 로딩/언로딩 스테이션(105)은, 물품들 및 재료들이 다른 기계들 상에 배치될 필요가 있을 때까지 물품들 및 재료들을 홀딩(hold)한다. 이송 시스템은, 프로세싱(processing)이 일어나는 기계들로 그리고 이 기계들로부터 작업 제품들을 이동시킨다. CPPS(100)의 개별적인 세그먼트(segment)들이 가상-물리 생산 유닛(CPPU; Cyber-Physical Production Unit)들로 불린다. CPPU들은 자율적이고 지능적이어서, CPPU들이 제공하는 많은 작업은 감독 또는 특별 명령 없이 수행될 수 있다.
[27] 도 1의 예에서, 이송 시스템, 이를테면 주요 컨베이어로부터 드릴링 기계로 공작물을 운반하는 디바이스의 엘리먼트(element)들이 드릴링 기계(110)의 CPPU의 일부로서 간주되고 있다는 것을 주목하라. 그것은 단지, 이송 유닛의 일부인 것으로 쉽게 간주될 수 있다. 기계들 사이의 노동의 분할은 잠재적으로 임의적일 수 있지만, 시스템 통합자의 기분(whim)을 넘어서는 몇몇 인자들에 의해 대개 결정된다. 예컨대, 드릴링 기계(110)에 대한 부품 교환 시스템은, 드릴링 기계에 물리적으로 하드와이어링되거나(hardwired) 또는 다른 방식으로 부착될 수 있다. 프로세스가 재구성되어야 하면, 드릴(drill)로부터 드릴링 부품 로더(loader)를 분리하는 것은 의미가 없을 수 있는데, 그 이유는 로더가 맞춤 빌드(custom build)일 수 있고, 어떤 다른 목적에도 사용되지 않을 것이기 때문이다. 또한, 로더와 드릴의 결합은, 드릴링 기계(110)를 전체로서 더욱 자율적인 것으로 만들 수 있다. 로더 없이, 드릴은 어떤 다른 디바이스 또는 드릴링되도록(drilled) 내부에 재료를 배치할 사람을 요구할 것이다.
[28] 그런 다음, CPPU들이 결정됨에 따라, 프로세스의 목표들이, 이 프로세스의 목표들을 수행하는 디바이스들에 통신될 수 있다. 그런 다음, 공작물들에 대해 어떤 액션(action)들을 취할지를 통신하기 위해, CPPU들의 스킬들이 사용된다.
[29] 도 2는 일부 실시예들에 따른, 도 1에서 도시된 예시적인 CPPS를 위한 CPPU들 및 관련된 스킬들의 고-수준 개요를 제공한다. 각각의 스킬은, 작업 제품들에 적용되는 동작들과 각각의 유닛에 대한 키 목적들을 반영한다. 따라서, 로딩/언로딩 스테이션(105)은 로딩 스킬(205A) 및 공급 스킬(205B)을 구현한다. 드릴링 기계(110)와 절삭 기계(115)는 드릴링(Drill) 스킬(210)과 절삭 스킬(215)을 각각 구현한다. 최종적으로, 컨베이어 시스템은 이송 스킬(220)을 갖는다. 프로세스를 작동시키기 위해, 작업 제품들은 이송 스킬(220)을 통해 다양한 유닛들로 왕복(shuttle)된다. 절삭 스킬(215)을 사용하여 제품들이 형상화되고; 드릴링 스킬(210)을 이용하여 제품들이 홀들을 얻는 식이다. 정확한 스킬 정보를 정확한 유닛들에, 그들이 요구될 때 전송하기 위해, 계획 시스템이 사용될 수 있다.
[30] 도 3은 일부 실시예들에 따른, 개별적인 CPPU(300)의 컴포지션의 예를 제공한다. CPPU는, 제품들의 생성과 수정들이 일어나는 곳이다. CPPU는 가상(cyber)인 것으로 간주되는데, 그 이유는 CPPU가 CPPS의 일부로서 CPPU에 적용되는 스킬들에 의해 제어되고, CPPU가 일반적으로 완전히 자동화되기 때문이며; 그렇지만 인간의 보조를 갖는 것이 또한, 일부 실시예들에서 사용될 수 있다. CPPU는, 유닛의 안팎으로(in and out) 작업 제품들을 가져올 수 있는 이송 시스템의 외부에서 기능하기 위해 CPPU가 다른 CPPU들로부터의 액션들을 요구하지 않는다는 점에서, 자율적으로 작업하는 것으로 의도된다. CPPU는 또한, CPPU가 적용된 스킬들로부터 원하는 제품 정보를 해석하는 능력을 가지며, 그리고 그 결과를 달성하기 위하여 자신만의 거동들을 실행할 수 있다는 점에서, 지능적이어야 한다.
[31] 도 3에서 도시된 CPPU는 2개의 구성요소들(315, 320)을 포함하며, 이러한 2개의 구성요소들(315, 320)은 작업을 수행하는 물리 자산(physical asset)들 뿐만 아니라, 재료를 피딩(feed)하고, 공구(tool)들을 변화시키고, 화학물질들을 분무하고, 포지션(position)들을 감지하며, 그리고 유닛이 수행하기를 요구하는 임의의 다른 것들을 하는 부속 디바이스들을 포함한다. 이들 아이템들은 구성요소들로 불린다. 도 3의 예는 구성요소들(315, 320)에 포함된, 로봇(robot), 카메라(camera), 모터(motor), 및 컨베이어 벨트(belt)를 도시하지만, 임의의 물리 자산들이 일반적으로, CPPU의 구성요소에 포함될 수 있다는 것이 이해되어야 한다.
[32] 스킬들(305, 310)은 CPPU(300)에 대한 인터페이스로서의 역할을 한다. 도 3에서, 스킬들(305, 310)은, CPPU에 스킬을 적용하기 위해 외부로부터 통신이 일어난다는 것을 표시하기 위한 인터페이스 심볼(symbol)과 함께 묘사된다. 통신 매체는 가능하게는, 임의적인 그리고 가변적인 길이의 메시지들을 허용하는 일종의 네트워킹(networking) 프로토콜일 수 있다. 예컨대, 웹 서버(server)로의 그리고 웹 서버로부터의 데이터를 전송하는 메시지들은, 이 종류의 프로토콜을 충족할 것이다.
[33] 무엇이 수행될 필요가 있는지를 기계에게 알리는 스킬들(305, 310)과, 작업을 수행하기 위해 행동하는 구성요소들(315, 320) 사이에는, 작업을 실제로 어떻게 수행하는지를 설명하는 내장 함수 및 프로그래매틱(programmatic) 함수 전부를 포함하는 거동들이 있다. 거동은, 구성요소들이 수행하는 기본 활동으로서 정의된다. 활동은 물리적이거나 또는 계산적(computational)일 수 있다. 예컨대, 로봇 아암(arm)이 물리 거동으로서 공간에서 자신의 엔드 이펙터(end effecter)를 이동시킬 수 있다. 로봇이 이동하는 종점을 결정하기 위한 함수가 또한 고려되면, 이 거동은 또한, 그 지점이 컴퓨팅될(computed) 필요가 있는 경우에서와 같이 계산적이다. 순수 물리 거동과 추상 계산 거동(abstract computational behavior) 사이를 구분하는 것이 원리적으로 가능할 수 있지만, 대부분의 애플리케이션 거동은 이 둘의 결합일 것이다. 따라서, 거동은, 작업 제품의 상태에 어떻게 영향을 끼칠 수 있는지에 관계없이, 생산 구성요소들이 무엇을 수행하는지로서 정의될 수 있다. 예컨대, 컨베이어는 턴 온(turned on) 그리고 턴 오프될(turned off) 수 있다. 컨베이어의 거동은, 컨베이어가 턴 온될 때 벨트를 작동시키는 것일 것이다. 벨트 상에 제품이 존재하게 되면, 제품은 이동할 것이지만, 컨베이어의 거동 자체는 이 이슈(issue)에 관련이 없다. 컨베이어는 제품이 존재하든 또는 존재하지 않든 간에 작동할 수 있다.
[34] 물론, 구성요소들의 결합된 활동들은 작업 제품들에 영향을 끼친다. 컨베이어 예를 계속하면, 컨베이어의 거동은 작동하는 것이며, 컨베이어의 위에 있는 것들은 이동할 것이다. 도 4는 다른 센서들 및 푸셔와 함께 배열된 3개의 컨베이어들의 세트를 포함하는 예시적인 시나리오를 도시한다. 이 애플리케이션의 목적은 들어오는 제품들을 분류(sort)하는 것일 수 있다. IN 컨베이어의 우측에 있는 회색 상자의 위치에 제품들이 유입되면, 센서는 상자들이 A 컨베이어에(그리고 다른 프로세스들에) 보내져야 하는지 또는 B 컨베이어에(그리고 다른 프로세스들에) 보내져야 하는지를 결정할 수 있다. 푸셔의 거동은 연장 및 수축하는 것이며, 정시에 연장되면, 푸셔는 상자를 컨베이어 B 상으로 푸시(push)할 것이다. 이들 구성요소들의 결합된 거동들은, 작업 제품들의 상태를 변화시키기 위해 행동하며; 상자들은 분류되지 않은 상태로부터 분류되는 상태로 간다. 따라서, 이 애플리케이션의 "스킬"은 상자들을 분류하는 것이다. 이 디바이스에 대한 스킬은 "SORT (box_id, dest)"로서 공식화될 수 있거나, 또는 다시 말하면, 특정 상자가 주어지면, 이 특정 상자가 특정 목적지 컨베이어 상에 놓일 수 있다. 이 스킬의 인스턴스는 "SORT (box_id=1007, dest=B)"일 수 있으며, 이는 상자 번호 1007이 벨트 B 상에 배치되게 한다.
[35] 다른 종류들의 스킬들이 더욱 직접적으로 작업 제품에 영향을 끼칠 수 있다. 예컨대, 공작물을 절단하거나, 공작물을 절삭하거나, 또는 공작물에 드릴링(drilling)함으로써, 공작물이 변경될 수 있다. 다수의 공작물들이 조립되어 결합된 부품이 형성될 수 있으며, 결합된 부품은 함께 체결되거나 또는 글루잉될(glued) 수 있다. 일반적으로, 스킬들은, 생산 유닛이 작업 제품을 어떻게 수정할 것인지를 선언함으로써 생산 시스템의 맥락에서 이 생산 유닛의 목적을 결정한다. 따라서, 스킬은 사실상, 유닛이 무엇을 수행하기로 되어 있는지를 명확하게 하는, 외부에 노출되는 지시(directive)이다.
[36] 도 5는 본 발명의 일부 실시예들에서 구현될 수 있는 바와 같은, CPPU에 대한 온톨로지를 도시한다. CPPU는 거동들, 구성요소들, 및 스킬들을 포함한다. 거동들은, 구성요소들이 어떻게 작업하는지 뿐만 아니라 구성요소들이 어떻게 함께 작업하는지를 설명하는 엔티티(entity)들로서 정의된다. 따라서, 구성요소들의 물리 거동과 함께, 애플리케이션 프로그램(program)의 논리가 또한, 거동인 것으로 간주된다. 구성요소들이 또한 거동을 포함할 수 있는데, 그 이유는 구성요소들이 물리 거동을 가질 뿐 아니라 구성요소들이 이 구성요소들의 사용을 제어하는 더욱 정교한 기능들도 포함할 수 있기 때문이다. 예컨대, 로봇은, 더 높은-수준의 커맨드(command)들을 이용하여 로봇의 거동을 제어하기 위해 사용될 수 있는 모션(motion) 계획 기능을 가질 수 있다. 작업 제품이 물리 엔티티이기 때문에, 작업 제품이 또한, 일종의 구성요소인 것으로 간주된다. 공작물 자체가 심지어, 자신의 내용물들을 검출하거나 또는 자신만의 라우팅(routing) 목적지를 결정하는 트레이처럼, 계산 엘리먼트들을 포함할 수 있다는 것을 주목하라. 그렇지만, 심지어 보통의(plain) 공작물이 물리 거동과 상태를 가질 것이다.
[37] 구성요소들의 거동은 작업 제품들이 수정되게 한다. 따라서, 심지어 어떤 공작물도 존재하지 않을 때 거동이 일어날 수 있지만, 그것은 여전히, 기계가 무엇이든 수행하게 하는, 공작물에 대한 구성요소의 거동의 애플리케이션이다. CPPU는, CPPU가 무엇을 수행할 수 있는지를 설명하기 위한, 그리고 실제로 그러한 것들이 일어나게 하는 거동들을 개시하기 위한 기법들로서 스킬들을 제공한다. 스킬 자체는, 결과가 일어나게 하는 이벤트(event)들의 특정 체인(chain)들이 거동들에 의해 유발되지만, 주어진 제품에 대해 어떤 결과가 달성될 것이 원해지는지를 설명한다.
[38] CPPU는 외부 디바이스들에 스킬들을 제공한다. 이들 스킬들은 거동에 포함된 액션들을 개시하고, 제품에 적용될 결과를 설명한다. 스킬들이 거동과 구별될 수 있기 때문에, 태스크(task)를 실제로 수행하는 거동들을 노출시킬 필요 없이, 당업자는 CPPU에 대한 스킬 인터페이스를 제공할 수 있다. 이는 편리한데, 그 이유는 그것이, 공통 인터페이스 프로토콜들을 사용하여 스킬들이 특정될 수 있게 하는 반면에, 유닛의 거동은 종종, 도메인 특정 언어(domain specific language)로 구현될 필요가 있을 것이기 때문이다. 그 결과, 스킬을 구현하는 것은, 원해지는 공작물 변형에 가장 잘 매칭(match)하는 스킬의 추상 표현을 도출하고, 그런 다음, 임무를 수행하는 실제 거동 기능들에 그 추상의 프로그래매틱 버전(version)을 첨부하는 일이다.
[39] 스킬에 대한 단어가 스킬이 애플리케이션에서 사용되는 방식을 암시하지 않는다는 것은 잠재적으로 혼란스럽다. 스킬은 태스크의 추상 정의를 지칭할 수 있으며 ― 이는 태스크의 부류 또는 온톨로지와 유사할 것이다. 스킬은 또한, 특정 유닛에 적용된 그 추상의 인스턴스를 지칭할 수 있다. 예컨대, "적색 블록(block)들로 트레이를 채워라"는 트레이 및 블록들을 수반하는 특정 태스크에 대한 스킬 인스턴스일 것이다. 부가적으로, 스킬은 유닛 상에서의 스킬의 실행을 지칭할 수 있다. 스킬들은 거동들을 이용하여 수행되지만, 유닛 상에 세팅(set)되어 있는 스킬 인스턴스와의 직접적인 인과 관계, 그리고 스킬을 달성하기 위해 액션을 취하는 그 유닛 상의 대응하는 거동들이 존재하기 때문에, 스킬이 실행되고 있다고 간주될 수 있다. 본 개시내용에서, 스킬에 대한 이들 상이한 의미들은, 스킬이 맥락으로부터 분명하지 않을 때 명확하게 될 것이다.
[40] CPPU는 프로그램가능 논리 제어기 또는 CPPU의 구성요소들과 밀접하게 커플링된(coupled) 다른 유닛-수준 컴퓨팅(computing) 디바이스 상에 구현될 수 있다. 원리적으로, 당업자는 CPPS로부터 CPPU로 스킬 인스턴스들을 통신하기 위해 임의의 종류의 컴퓨터(computer) 제어 매체를 사용할 수 있지만, 네트워킹 프로토콜이 가장 간단할 가능성이 있다. 네트워크 프로토콜, 이를테면 웹 서비스(service)들의 잇점들은 쉽게 확장되는 능력을 포함하며, 공통 통신 장비 및 프로그래밍 라이브러리(programming library)들과 함께 사용될 수 있다. 네트워크 프로토콜은 또한, 데이터를 인코딩(encoding) 및 디코딩(decoding)하기 위한 잘 이해되는 방법들에 따라 임의적인 메시지 길이를 가질 수 있다. 본원에서 설명된 예들에서, 표현 상태 전송(REST; Representational State Transfer) 프로토콜을 사용하는 웹 서비스 인터페이스를 통해 그리고 미리-정의된 유니버셜 자원 식별자(URI; Universal Resource Identifier) 태그들을 사용하여 통신이 수행된다고 가정된다. 그러나, 유사한 기능성을 제공하는 대안적인 기술들이 본 발명의 다른 실시예들에서 사용될 수 있다는 것이 이해되어야 한다.
[41] 스킬들은 시스템 통합자들에 의해 구현될 수 있고, 따라서 단지 프로세스의 유형에 기반하여 예상되지 않을 수 있다. 임의의 주어진 프로세스의 명세(specific)들은 고유할 것인데, 그 이유는 제조자들이 고유 값을 그들의 제품들에 부가하기 위해 자신들만의 노-하우(know-how)를 적용하기 때문이다. 그러한 이유로, 통합자가 유닛들의 코드(code) 구조에 직접적으로 프로세스의 그들만의 아이디어(idea)를 반영할 수 있게 하는, 스킬들에 대한 단순한 프로토콜이 활용될 수 있다. 스킬 데이터세트(dataset)에 더 많은 정보 및 의미론(semantics)을 부가하는 것이 분명히 가능하지만, 핵심 규격(specification)에 부가적인 것으로 간주되어야 하며, 발전하는 스킬들에 대한 기본 요건인 것으로 간주되어서는 안된다.
[42] 기본 스킬 정의는 매개변수들의 세트(set)를 갖는 명칭이다. 명칭은, 거동 구현에서의 어느 스킬을 실행할지를 나타내기 위한 텍스트 스트링(text string)만큼 단순할 수 있다. 매개변수 세트는 더욱 흥미롭다. 일반적으로, 매개변수 명칭들은 스킬 명칭처럼 스트링 값들일 수 있다. 매개변수들은 선택적일 수 있으며, 상이한 유스 케이스(use case)들에 대한 매개변수들의 상이한 세트들이 주어진 스킬에 오버로딩될(overloaded) 수 있다. 매개변수 값들은 상수 값들 또는 상수 표현식(expression)들일 수 있다. 마찬가지로, 매개변수 값들은 싱글톤(singleton) 부동 소수점 수들, 불린(Boolean)들, 또는 정수들과 같이 단순하게 유지될 수 있다. 단순한 매개변수들을 사용하는 것은, 유닛에 통신하고 스킬 큐(아래에서 설명됨)에 저장하기 위해, 스킬 인스턴스를 콤팩트(compact)하게 그리고 효율적으로 유지한다.
[43] 스킬 구현은, 유닛에 스킬 인스턴스를 적용하는 방법 뿐만 아니라 어떤 스킬들이 이용가능한지를 발견하기 위한 리플렉션(reflection) 방법들을 포함한다. 본원에서 사용된 "리플렉션"이란 용어는, 검사되고 있는 아이템들에 관해 사전에 특정 지식을 요구하지 않으면서 런타임(runtime) 시 클래스(class)들, 방법들, 속성들, 및 다른 프로그램-관련된 정보를 검사하고 동적으로 호출(call)하는, 프로그래밍 언어의 능력을 지칭한다. 리플렉션은 적어도, 모든 스킬들 및 이 스킬들의 매개변수들의 목록을 포함해야 하며, 매개변수가 선택적이든 또는 아니든 간에 값 제한치들, 엔지니어링(engineering) 유닛들, 및 다른 제약 기준들을 포함하는, 매개변수들에 대한 유형 정보를 또한 포함할 수 있다. 스킬 발견은, 유닛이 처음 활성화될 때에 일어날 가능성이 있을 것이며, 따라서 스킬들의 목록은 자주 변화하지 않아야 한다. 대부분의 유닛들은 자신의 런(run)에 걸쳐 스킬들의 동일한 세트를 제공할 것이며, 유닛이 리프로그래밍되거나(reprogrammed) 또는 시스템 자체가 재구성되지 않는 한, 변화하지 않을 것이다.
[44] CPPU가 자율적이기 때문에, 스킬들은 일반적으로, 함수 호출처럼 외부로부터 인보크되지(invoked) 않을 것이다. CPPU는 자신만의 상태를 검출하고, 자신만의 능력들에 따라 공작물 조건들을 결정할 수 있을 것이며, 그리고 외부로부터 지나치게 지시받지 않을 것이다. 유닛만의 지능에 의해 공작물들 및 구성요소들이 준비될 때, 유닛은 자신의 기능을 수행한다. 간단한 해결책은, 유닛 상의 오더 큐에 넣어지는 일종의 작업 오더로서 각각의 스킬 애플리케이션을 취급하는 것이다.
[45] 도 6은 일부 실시예들에 따른, 유닛의 오더 큐에 부가되고 있는 스킬 인스턴스들의 예를 제공한다. 도면에서 도시된 바와 같이, 스킬 인스턴스가 유닛에 부가될 때, 스킬 인스턴스는 유닛의 오더 큐에 들어간다. 일단 큐에 있으면, 유닛은 스킬 인스턴스의 내용물들, 그리고 그것이 어느 종류의 스킬인지를 볼 수 있다. 스킬의 인스턴스들은 스킬들이 특정 시퀀스(sequence)로 뒤따르도록 정렬될 수 있거나, 또는 유닛은 큐에서 나중의 것들에 대해 이 유닛이 즉시 수행할 수 없는 인스턴스들을 건너뛸 수 있다. 포괄적인 스킬 구현을 위해, 유닛은 큐의 헤드(head)에 있는 인스턴스의 매개변수들에 액세스(access)할 수 있다. 유닛은 또한, 이 유닛이 사용할 수 있는 인스턴스들을 찾으며 큐를 스캔(scan)할 수 있다. 이를 수행하기 위해, 유닛은 인덱스(index) 변수를 사용하여 큐를 통해 반복할 것이다. 이러한 이유로, 그러한 스킬은 "인덱스 스킬"로 불리는데, 그 이유는 유닛이 큐에서의 스킬 인스턴스의 포지션에 기반하여 스킬 인스턴스를 고르기 때문이다. 큐의 헤드는 인덱스 제로(zero)일 것이다. 유닛이 오더를 완료했을 때, 유닛은 큐로부터 스킬 인스턴스를 제거할 수 있다. 스킬 제거는 CPPS에 대한 "완료(done)" 메시지로서의 역할을 할 수 있다. 또한, 스킬 상태를 결정하기 위해 CPPS가 주시하는 스킬에 콜 백(call back), 시스템 메시지, 또는 변하기 쉬운(mutable) 매개변수를 갖는 것이 가능하다.
[46] 일부 실시예들에서, CPPS는, 암시된 행위(deed)를 실제로 수행할 수 없는 유닛에 CPPS가 스킬 인스턴스를 적용하지 않도록 구성된다. CPPS 관점으로부터, 공작물을 이 공작물에 작업할 수 없는 유닛에 보내는 것은 나쁜 계획이며, 계획 프로세스 자체에 의해 방지될 것이다. 다른 실시예들에서, 나쁜 스킬 인스턴스가 유닛에 주어질 때 오류 메커니즘(mechanism)이 제공될 수 있으며, CPPS는 작업 재료들을 상이한 유닛들로 재-라우팅(re-route)하도록 구성될 수 있다.
[47] 유닛이 고장나거나, 턴 오프되거나(turned off), 또는 다른 방식으로 오프라인(offline)이 될 때, 유사한 곤경이 일어난다. 그러한 상황에서, 모든 계류 중인 스킬 인스턴스들은 유닛으로부터 없애지며, 유닛의 통신선은 오류 반환 상태가 된다. CPPS는 어떤 지점에서 자신의 데이터베이스(database)로부터 유닛의 엔트리(entry)를 제거하고, 새로운 토폴로지(topology) 하에서 새로 계획할 수 있다. 장애(failure)들을 보여주는 것은 그 자체로 유닛의 스킬이 아닐 수 있지만, 통신될 필요가 있는 기본 유닛 상태일 수 있다.
[48] 오퍼레이터, 엔지니어(engineer), 또는 다른 통합자가 많은 상이한 방식들로 스킬에 대한 구현을 셋업(set up)할 수 있지만, 하나의 공통 경우는, 작업 제품(그리고 대개, 작업 제품의 캐리어(carrier))이 어떤 종류의 물리 태그에 의해 식별되는 것이다. 이 태그는, CPPU에 포함된 스캐너(scanner) 또는 판독기 디바이스에 의해 판독될 바(bar) 코드, QR-코드, RFID 태그, 인쇄된 번호 등일 수 있다. 작업 트레이를 식별하는 QR-코드 식별자의 예가 도 7에서 도시된다. 식별자의 값은 예컨대 문자(character)들의 영숫자(alphanumeric) 스트링 또는 번호일 수 있다. 일부 실시예들에서, 이 종류의 태그에 의해 식별되는 작업 제품들에 대한 매개변수들을 특정하기 위해 "키 스킬"이 사용된다. 키 스킬은 하나의 특별 매개변수인 키를 제공하며, 그 값은, 유닛이 작업 제품의 태그로부터 리트리빙하는 식별자에 매칭할 것이다. 이를 사용하여, 유닛은, 유닛이 가까이에 갖는 공작물에 대응하는 스킬 인스턴스를 신속하게 고를 수 있다. 이 종류의 스킬을 사용할 때, CPPS는, 유닛이 준비되자마자 유닛에 적용할 모든 스킬 인스턴스들을 부가할 것이며, 유닛이 주어진 시간에 어느 것을 적용할지를 결정하게 할 것이다. 기술분야에서 일반적으로 알려진 와일드카드(wildcard)들 또는 다른 검색 방식들이, 스킬 인스턴스들의 키에 의해 스킬 인스턴스들을 선택하는 데 사용되는 일부 실시예들에서 사용될 수 있다.
[49] 위에서 설명된 바와 같이, 유닛의 내부 프로그래밍은, 거동을 이용하여 형성된다. 따라서, 스킬의 의도를 수행하는 것은, 작업을 수행하는 구성요소들을 조작하는 거동들을 실행하는 것이다. 유닛을 프로그래밍(programming)하는 것은 상이한 언어들로 수행될 수 있지만, 일반적으로, 스킬 클래스를 정의하고, 큐로부터 스킬 인스턴스를 고르며, 그리고 프로그램의 나머지에서 사용될 인스턴스의 매개변수들을 판독하기 위해, 기술분야에서 알려진 임의의 프로그래밍 언어가 사용될 수 있다. CPPU 내에서, 프로그래밍 언어들의 혼합이 사용될 수 있다. 예컨대, 일부 실시예들에서, 스킬들과 거동들 둘 모두를 정의하기 위해 동일한 프로그래밍 언어 또는 함수들이 사용될 수 있다. 다른 실시예들에서, 스킬들과 거동들을 정의할 때 사용되는 프로그래밍 언어 또는 함수들은 별개일 수 있다.
[50] 도 8은 스킬들과 거동들 사이의 내부 연결들을 특정함으로써, 프로그래밍된 거동을 구현하기 위해 데이터플로 언어가 사용되는 스킬 인터페이스의 예를 예시한다. 데이터플로의 어법으로, 그래프(graph)의 노드(node)에 입력 값들이 적용된다. 노드는 계산을 수행하며, 결과들이 출력 값들 상에 디스플레이된다(displayed). 그런 다음, 출력들은, 더 많은 계산을 수행하는 다른 노드들로 계속 가는 식일 수 있다. 이 예에서, 스킬 정의 노드는 2개의 입력 값들을 사용하고, 2개의 출력 값들을 제공한다. 제1 입력 값은, 활성화될 때, 노드로 하여금 큐에서 스킬들을 검색하게 하는 플래그(flag)이다. 노드는, 스킬이 사용하는 매개변수 명칭들의 목록 및 스킬의 명칭에 대한 구성을 정의한다. 이 경우, 스킬 명칭은 "DumpTray"이며, 이 스킬 명칭은 "색(color)"(미도시)으로 명명된 하나의 스킬 매개변수를 갖는다. 제2 입력은, 큐의 어느 스킬 인스턴스가 선택되어야 하는지를 식별하는 정수이다. 키 스킬 유형의 경우, 제2 입력 값은, 스킬 인스턴스에 매칭하는 키의 값이다. 노드가 스킬을 찾으면, 노드는, 노드가 활성이라는 것을 나타내는 데 충실하도록 제1 출력 값을 세팅(set)한다. 노드는 또한, 스킬 인스턴스 매개변수들의 값들을, 매개변수 목록과 동일한 순서로 열거된 제2 출력에 놓는다. 예는, 제1 매개변수의 값(번호 "1")을 고르기 위해 어레이(array) 인덱스 노드가 사용되고 있다는 것을 보여주며, 그것은 텍스트 상자에 디스플레이된다. 프로그램이 스킬 노드 입력 플래그를 거짓으로 세팅할 때, 노드는 자신의 출력들에 마지막으로 제시된 스킬을 자동적으로 삭제하도록 구성될 수 있다.
[51] 도 9는 도 8에서 도시된 것보다 더욱 복잡한 스킬 거동 연결을 예시하는 부가적인 데이터 플로 예를 제공한다. 이 예는, 스킬 인스턴스로부터 정보를 페치(fetching)하고, 유닛이 스킬을 수행하기 위해 필요한 재료를 갖는지 여부, 그리고 최종적으로, 그것이 액션들을 수행하도록 유닛의 다른 거동들에게 지시하는지 여부를 결정하기 위한 코드를 포함한다. 상이한 언어로 스킬을 구현하기 위한 거동은 유사한 활동들을 생성할 가능성이 있을 것이다. 도 9에서 도시된 스킬 구현은 스킬 대신에 거동을 실행하기에 충분하다. 이 스킬 구현은 또한, 추가적인 피드백(feedback)을 부가하기에 적절할 것이다. 이 예는, 큐로부터 스킬 인스턴스가 제거될 때 완료를 표시한다. 일부 실시예들에서, 스킬 인스턴스는 사용되고 있는 것으로서 마킹되며(marked), 값은, 스킬을 달성할 때 거동이 완료에 얼마나 가까운지를 표현한다. 이들 구현들에서, 당업자는 완료된 퍼센트(percent)에 대해 추가적인 입력 포트(port)를 제공할 수 있다(그것이 여전히, 이 포트에 대해 값들을 생성할 유닛에서의 거동들의 프로그래밍된 구현일 것이지만).
[52] 본원에서 설명된 기법들이 많은 공통 기법들을 사용하지만, 이들 기법들이 수행되는 방식은 전통적인 방법들과는 상이하다. 예컨대, CPPU로부터 CPPS를 분리하고, 작업 제품에 대한 수정들로서 프로세스 동작들을 통신하는 프로세스들을 정의하는 온전한 아키텍처(architecture)는 종래의 시스템들에서는 발견되지 않는다. 대개의 방법에서, 기계 동작들은 기계의 거동 측면에서 설명된다. 컨베이어는, 공작물이 어떻게 영향받는지를 무시하고 턴 온(turned on) 및 턴 오프된다(turned off). 온전한 새로운 초점은 일련의 하드-코딩된(hard-coded) 명령들로부터의 시스템의 설계를, 자신들의 역할을 알고 자신들의 스킬들을 가까이에 있는 태스크에 적용하는 지능적 액터(actor)들의 세트로 변화시킨다.
[53] 더욱 기술적인 수준에서, 제어기에 만들어진 표준 인터페이스 메커니즘은 대개, 원격 프로시저(procedure) 호출처럼 행동할 것이다. 이는, 기계 거동에 대한 액세스(access)가 어떻게 외부로 보내지는지이다. 기계를 턴 온(turning on) 및 턴 오프(turning off)하기 위한 스위치(switch)가 노출될 수 있으며, 어떤 외부 제어기가 그 동작을 수행할 수 있다. 효과는 바로 프로그래밍 언어의 함수 호출 또는 공유 메모리(memory)에 값을 기록하는 것처럼 이루어지는 것으로 의도된다. 스킬 인터페이스는 직접적이지 않다. 스킬들 자체들은, 큐 상에 놓이는 오더들로서의 역할을 한다. 기계만의 내부 동작들은, 공작물들에 오더들을 어디에 그리고 어떻게 적용할지를 결정한다. 적절한 스킬들이 위치결정(locate)하기가 쉽도록 공작물들이 마커(marker)들에 의해 식별될 수 있는 공통 경우에 대해, 키 스킬 대 인덱스 스킬 추상이 사용된다.
[54] 스킬 인터페이스는 자동화를 위해 유용하지만, 최적화 및 비용 계산을 넘어서도 또한 적용될 수 있다. 스킬들은, 프로세스가 가능한지 여부 그리고 프로세스가 기계 및 연관된 시스템들에 어떻게 영향을 끼칠 것인지를 결정하는 시뮬레이션(simulation) 시스템들에 의도들을 통신하기 위해 사용될 수 있다. 이러한 방식으로, 스킬 추상은 프로그래밍 자동화 디바이스들부터 스케줄링(scheduling) 및 계획까지 온전한 자동화 프로세스에 일체가 된다.
[55] 제어 계층 디바이스들 및 관련된 컴퓨팅 인프라구조(infrastructure)(이들에 제한되지 않음)를 포함하는, 본원에서 설명된 다양한 디바이스들은, 본 발명의 실시예들에 따라 프로그래밍된(programmed) 명령들을 홀딩(holding)하고, 본원에서 설명된 데이터 구조들, 테이블(table)들, 레코드(record)들, 또는 다른 데이터를 포함하기 위한 적어도 하나의 컴퓨터 판독가능 매체 또는 메모리를 포함할 수 있다. 본원에서 사용된 "컴퓨터 판독가능 매체"란 용어는, 실행을 위해 하나 이상의 프로세서(processor)들에 명령들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체는, 비-일시적, 비-휘발성 매체, 휘발성 매체, 및 송신 매체(그러나, 이들에 제한되지 않음)를 포함하는 많은 형태들을 취할 수 있다. 비-휘발성 매체의 비-제한적인 예들은 광학 디스크(disk)들, 고체 상태 드라이브(drive)들, 자기 디스크들, 및 광자기 디스크들을 포함한다. 휘발성 매체의 비-제한적인 예들은 동적 메모리를 포함한다. 송신 매체의 비-제한적인 예들은, 시스템 버스(bus)를 형성하는 와이어(wire)들을 포함하여 동축 케이블(cable)들, 구리 와이어, 및 광섬유들을 포함한다. 송신 매체는 또한, 음향 파 또는 광 파, 이를테면, 라디오(radio) 파 및 적외선 데이터 통신들 동안 생성된 파들의 형태를 취할 수 있다.
[56] 전술된 제어 계층 디바이스들 및 관련된 컴퓨팅 인프라구조는 본원에서 설명된 기법들을 구현하기 위한 하나 이상의 프로세서들을 포함할 수 있다. 제어 디바이스들에 의해 사용되는, 본원에서 설명된 프로세서들은 하나 이상의 중앙 프로세싱 유닛(CPU; central processing unit)들, 그래픽 프로세싱 유닛(GPU; graphical processing unit)들, 또는 기술분야에서 알려진 임의의 다른 프로세서를 포함할 수 있다. 더욱 일반적으로, 본원에서 사용된 프로세서는, 태스크들을 수행하기 위해 컴퓨터 판독가능 매체 상에 저장된 기계-판독가능 명령들을 실행하기 위한 디바이스이며, 하드웨어(hardware)와 펌웨어(firmware) 중 임의의 하나, 또는 이 둘의 결합을 포함할 수 있다. 프로세서는 또한, 태스크들을 수행하기 위해 실행가능한 기계-판독가능 명령들을 저장하는 메모리를 포함할 수 있다. 프로세서는, 실행가능한 프로시저 또는 정보 디바이스에 의한 사용을 위해 정보를 조작, 분석, 수정, 변환 또는 송신함으로써, 그리고/또는 정보를 출력 디바이스로 라우팅(routing)함으로써, 정보에 대해 행동한다. 프로세서는 예컨대 컴퓨터, 제어기 또는 마이크로프로세서(microprocessor)의 능력들을 사용하거나 또는 포함하며, 범용 컴퓨터에 의해 수행되지 않는 특별 목적 기능들을 수행하기 위해, 실행가능한 명령들을 사용하여 컨디셔닝될(conditioned) 수 있다. 프로세서가 임의의 다른 프로세서와 (전기적으로 그리고/또는 실행가능한 구성요소들을 포함하여) 커플링되어서(coupled), 이들 사이의 상호작용 및/또는 통신이 가능하게 될 수 있다. 사용자 인터페이스 프로세서 또는 생성기는, 디스플레이 이미지(display image)들 또는 디스플레이 이미지들의 일부분들을 생성하기 위한 전자 회로소자 또는 소프트웨어(software) 또는 이 둘의 결합을 포함하는 알려진 엘리먼트이다. 사용자 인터페이스는, 프로세서 또는 다른 디바이스와 사용자의 상호작용을 가능하게 하는 하나 이상의 디스플레이 이미지들을 포함한다.
[57] 일부 실시예들에서, 스킬 인터페이스를 포함하는 CPPU의 부분들은, 하나 이상의 실행가능한 애플리케이션들을 사용하여 구현된다. 본원에서 사용된 실행가능한 애플리케이션은, 사용자 커맨드 또는 입력에 대한 응답으로, 미리 결정된 기능들, 이를테면, 예컨대, 운영체제, 콘텍스트(context) 데이터 획득 시스템, 또는 다른 정보 프로세싱(processing) 시스템의 기능들을 구현하도록 프로세서를 컨디셔닝(conditioning)하기 위한 코드 또는 기계 판독가능 명령들을 포함한다. 실행가능한 프로시저는, 하나 이상의 특정 프로세스들을 수행하기 위한 코드 또는 기계 판독가능 명령의 세그먼트(segment), 서브-루틴(sub-routine), 또는 실행가능한 애플리케이션의 코드 또는 일부분의 다른 별개의 섹션(section)이다. 이들 프로세스들은 입력 데이터 및/또는 매개변수들을 수신하는 것, 수신된 입력 데이터에 대한 동작들을 수행하는 것 그리고/또는 수신된 입력 매개변수들에 대한 응답으로 기능들을 수행하는 것, 그리고 결과적 출력 데이터 및/또는 매개변수들을 제공하는 것을 포함할 수 있다.
[58] 본원의 기능들 및 프로세스 단계들은, 사용자 커맨드에 대한 응답으로 부분적으로 또는 전적으로, 자동적으로 수행될 수 있다. 자동적으로 수행되는 활동(단계를 포함함)은, 이 활동의 사용자 직접 개시 없이, 디바이스 동작 또는 하나 이상의 실행가능한 명령들에 대한 응답으로 수행된다.
[59] 도면들의 시스템 및 프로세스들은 배타적이지 않다. 동일한 목적들을 달성하기 위해 본 발명의 원리들에 따라 다른 시스템들, 프로세스들 및 메뉴(menu)들이 도출될 수 있다. 본 발명이 특정 실시예들을 참조하여 설명되었지만, 본원에서 설명 및 도시된 실시예들 및 변형들은 예시 목적들만을 위한 것임이 이해되어야 한다. 본 발명의 범위로부터 벗어나지 않고, 당업자들에 의해 본 설계에 대한 수정들이 구현될 수 있다. 본원에서 설명된 바와 같이, 하드웨어 구성요소들, 소프트웨어 구성요소들, 및/또는 이들의 결합들을 사용하여 다양한 시스템들, 서브시스템(subsystem)들, 에이전트(agent)들, 관리자들, 및 프로세스들이 구현될 수 있다. 본원의 어떤 청구항 엘리먼트도, 그 엘리먼트가 "~하기 위한 수단"이란 어구를 사용하여 명시적으로 언급되지 않는 한, 35 U.S.C. 112의 6번째 단락의 조항들 하에서 해석되지 않아야 한다.

Claims (20)

  1. 가상-물리 생산 시스템(cyber-physical production system)으로서,
    하나 이상의 공작물(workpiece)들을 포함하는 제품을 집합적으로 생산하도록 구성된 복수의 가상-물리 생산 유닛(unit)들
    을 포함하며,
    각각의 가상-물리 생산 유닛들은,
    하나 이상의 자동화 시스템 디바이스(device)들,
    하나 이상의 스킬 인스턴스(skill instance)들을 수신하도록 구성된 네트워크 인터페이스(network interface) ― 각각의 스킬 인스턴스는 상기 하나 이상의 자동화 시스템 디바이스들에 의해 공작물이 최종 제품으로의 궁극적인 변환을 위해 어떻게 변형될 수 있는지에 대한 기계-독립적 설명을 제공하는 매개변수들의 세트 및 스킬 명칭을 제공함 ―,
    상기 하나 이상의 스킬 인스턴스들을 저장하도록 구성된 오더 큐(queue), 및
    상기 오더 큐에 스킬 인스턴스를 넣은 후에 선호 시퀀스(preferred sequence)에 기반하여 상기 오더 큐를 재정렬(reorder)하도록,
    각각의 스킬 인스턴스를 해석하며 상기 하나 이상의 스킬 인스턴스들 각각에 대응하는, 상기 자동화 시스템 디바이스들의 계산 또는 물리 거동들을 실행하도록, 그리고
    상기 공작물에 대한 실행된 거동들 및 대응하는 변형들의 상태를 상기 네트워크 인터페이스를 통해 상기 가상-물리 생산 시스템에 통신하도록 구성된
    프로세서(processor)
    를 포함하는,
    가상-물리 생산 시스템.
  2. 제1 항에 있어서,
    각각의 가상-물리 생산 유닛의 네트워크 인터페이스는, 하나 이상의 스킬 인스턴스들을 수신하기 위해 표현 상태 전송(REST; Representational State Transfer) 프로토콜(protocol)을 사용하는 웹 서비스(web services) 인터페이스를 포함하는,
    가상-물리 생산 시스템.
  3. 삭제
  4. 제1 항에 있어서,
    상기 프로세서는 추가로, 즉시 실행될 수 없는 스킬 인스턴스들을 건너뛰며 순서대로(in order) 상기 하나 이상의 스킬 인스턴스들을 실행하도록 구성되는,
    가상-물리 생산 시스템.
  5. 제1 항에 있어서,
    각각의 가상-물리 생산 유닛은,
    상기 공작물 상의 물리 태그(tag)를 판독하도록 구성된 스캐너(scanner) 디바이스
    를 더 포함하며,
    상기 물리 태그는 상기 공작물에 대응하는 유니버셜 자원 식별자(URI; Universal Resource Identifier)를 특정하며,
    상기 하나 이상의 스킬 인스턴스들은, 상기 공작물 상의 상기 물리 태그로부터 판독되는 상기 URI에 매칭(matching)하기 위한 값을 갖는 키(key) 매개변수를 가지는 키 스킬을 포함하며, 그리고
    상기 프로세서는 실행 동안 상기 공작물과 상기 오더 큐의 상기 하나 이상의 스킬 인스턴스들을 연관시키기 위해 상기 URI를 사용하는,
    가상-물리 생산 시스템.
  6. 제1 항에 있어서,
    상기 프로세서는 추가로, 실행을 위해 상기 오더 큐로부터 스킬 인스턴스의 제거 시 상기 스킬 인스턴스의 완료를 표시하는 메시지(message)를 상기 가상-물리 생산 시스템에 송신하도록 구성되는,
    가상-물리 생산 시스템.
  7. 제1 항에 있어서,
    상기 프로세서는 추가로, 실행을 위해 상기 오더 큐로부터 스킬 인스턴스의 제거 시 상기 스킬 인스턴스의 스킬 상태 매개변수를 수정하도록 구성되는,
    가상-물리 생산 시스템.
  8. 제1 항에 있어서,
    상기 가상-물리 생산 유닛들에 공작물들을 이송하기 위한 이송 시스템
    을 더 포함하며,
    상기 가상-물리 생산 유닛들 각각은, 가상-물리 생산 유닛의 안팎으로 공작물들을 가져오는 상기 이송 시스템의 외부에서 기능하기 위해 다른 가상-물리 생산 유닛들로부터의 액션(action)들이 요구되지 않는다는 점에서, 자율적으로 작업하는,
    가상-물리 생산 시스템.
  9. 가상-물리 생산 시스템에서 가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터(computer)-구현 방법으로서, 상기 방법은,
    스킬 인스턴스를 네트워크 인터페이스를 통해 수신하는 단계 ― 상기 스킬 인스턴스는 상기 가상-물리 생산 유닛에 포함된 하나 이상의 자동화 시스템 디바이스들에 의해 공작물이 최종 제품으로의 궁극적인 변환을 위해 어떻게 변형될 수 있는지에 대한 기계-독립적 설명을 제공하는 매개변수들의 세트 및 스킬 명칭을 제공함―;
    하나 이상의 부가적인 스킬 인스턴스들을 포함하는 오더 큐에 스킬 인스턴스들을 넣는 단계;
    상기 오더 큐에 상기 스킬 인스턴스를 넣은 후에 선호 시퀀스에 기반하여 상기 오더 큐를 재정렬하는 단계;
    각각의 스킬 인스턴스를 해석하며 상기 오더 큐의 각각의 스킬 인스턴스에 대응하는, 상기 자동화 시스템 디바이스들의 계산 또는 물리 거동들을 선택적으로 실행하는 단계; 및
    상기 공작물에 대한 실행된 거동들 및 대응하는 변형들의 상태를 상기 네트워크 인터페이스를 통해 상기 가상-물리 생산 시스템에 통신하는 단계
    를 포함하는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  10. 삭제
  11. 제9 항에 있어서,
    상기 오더 큐의 스킬 인스턴스들은, 즉시 실행될 수 없는 스킬 인스턴스들을 건너뛰며 순서대로 실행되는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  12. 제9 항에 있어서,
    스캐너 디바이스에 의해, 상기 공작물 상의 물리 태그를 판독하는 단계 ―상기 물리 태그는 상기 공작물에 대응하는 유니버셜 자원 식별자(URI; Universal Resource Identifier)를 특정함―,
    상기 공작물 상의 상기 물리 태그로부터 판독되는 상기 URI에 매칭하기 위한 값을 갖는 키 매개변수를 가지는 키 스킬을 포함하는 적어도 하나의 스킬 인스턴스를 수신하는 단계, 및
    실행 동안 상기 공작물과 상기 스킬 인스턴스를 연관시키기 위해 상기 URI를 사용하는 단계
    를 더 포함하는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  13. 제9 항에 있어서,
    실행을 위해 상기 오더 큐로부터 스킬 인스턴스의 제거 시 상기 스킬 인스턴스의 완료를 표시하는 메시지를 가상-물리 생산 시스템에 송신하는 단계
    를 더 포함하는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  14. 제9 항에 있어서,
    실행을 위해 상기 오더 큐로부터 스킬 인스턴스의 제거 시 상기 스킬 인스턴스의 스킬 상태 매개변수를 수정하는 단계
    를 더 포함하는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  15. 제9 항에 있어서,
    상기 가상-물리 생산 시스템은 가상-물리 생산 유닛들에 공작물들을 이송하기 위한 이송 시스템을 더 포함하며,
    상기 방법은,
    상기 가상-물리 생산 유닛들 각각이, 가상-물리 생산 유닛의 안팎으로 공작물들을 가져오는 상기 이송 시스템의 외부에서 기능하기 위해 다른 가상-물리 생산 유닛들로부터의 액션들이 요구되지 않는다는 점에서, 자율적으로 작업하는 단계
    를 더 포함하는,
    가상-물리 생산 유닛을 제어하기 위해 스킬 인터페이스를 사용하기 위한 컴퓨터-구현 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197006869A 2016-08-10 2016-08-10 산업 애플리케이션들을 위한 스킬 인터페이스 KR102257938B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/046226 WO2018031005A1 (en) 2016-08-10 2016-08-10 Skill interface for industrial applications

Publications (2)

Publication Number Publication Date
KR20190040236A KR20190040236A (ko) 2019-04-17
KR102257938B1 true KR102257938B1 (ko) 2021-05-27

Family

ID=56853811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197006869A KR102257938B1 (ko) 2016-08-10 2016-08-10 산업 애플리케이션들을 위한 스킬 인터페이스

Country Status (7)

Country Link
US (1) US11054812B2 (ko)
EP (1) EP3482265B1 (ko)
JP (1) JP7351744B2 (ko)
KR (1) KR102257938B1 (ko)
CN (1) CN109564419B (ko)
RU (1) RU2711874C1 (ko)
WO (1) WO2018031005A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11951631B2 (en) 2018-11-19 2024-04-09 Siemens Aktiengesellschaft Object marking to support tasks by autonomous machines
EP3726319A1 (de) * 2019-04-18 2020-10-21 Siemens Aktiengesellschaft Verfahren, vorrichtungen und system zum bearbeiten eines werkstücks
DE102019118002A1 (de) * 2019-07-03 2021-01-07 Günther Battenberg Verfahren und System zur Prüfung und/oder Montage eines Objekts mittels eines Roboters
WO2021043419A1 (de) * 2019-09-06 2021-03-11 Siemens Aktiengesellschaft Verfahren und vorrichtung zum betreiben eines automatisierungssystems
US20220089237A1 (en) * 2020-06-16 2022-03-24 Arrival Ltd. Robotic production environment for vehicles
EP4060439A1 (en) * 2021-03-19 2022-09-21 Siemens Aktiengesellschaft System and method for feeding constraints in the execution of autonomous skills into design
EP4084435A1 (en) * 2021-04-27 2022-11-02 OMRON Corporation Diagnosing and/or controlling an industrial controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110251865A1 (en) * 2008-11-28 2011-10-13 Nulogy Corporation System, method, and computer program for manufacturing estimation production assembly and inventory management
WO2016074730A1 (de) * 2014-11-13 2016-05-19 Siemens Aktiengesellschaft Verfahren zur planung der herstellung eines produkts und produktionsmodul mit selbstbeschreibungs-informationen

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153839A (en) * 1990-09-28 1992-10-06 The Boeing Company Wire harness manufacturing system
JPH0675972A (ja) 1992-08-28 1994-03-18 Hitachi Ltd 生産制御方法
JP3689438B2 (ja) * 1994-04-20 2005-08-31 キヤノン株式会社 画像処理装置及びジョブ処理方法
JP3643478B2 (ja) * 1997-05-19 2005-04-27 株式会社東芝 制御システム
US6285966B1 (en) 1998-06-25 2001-09-04 Fisher Controls International, Inc. Function block apparatus for viewing data in a process control system
US6970903B1 (en) 1999-10-29 2005-11-29 Intel Corporation Distributed component system management using machine-independent activation requests
JP2003291083A (ja) * 2002-03-28 2003-10-14 Toshiba Corp ロボット装置、ロボット制御方法及びロボット配送システム
US7340312B2 (en) * 2003-06-26 2008-03-04 International Business Machines Corporation Method and system for monitoring and control of complex systems based on a programmable network processor
US7669177B2 (en) 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US20060224250A1 (en) * 2005-04-01 2006-10-05 Rockwell Automation Technologies, Inc. Industrial automation interface systems and methods
US20160112262A1 (en) * 2014-10-18 2016-04-21 Weaved, Inc. Installation and configuration of connected devices
US20090192857A1 (en) * 2008-01-25 2009-07-30 Morse Richard A Product Lifecycle Management Method and Apparatus
US8893035B2 (en) * 2008-09-17 2014-11-18 Accenture Global Services Limited Method, system and graphical user interface for configuring a simulator to simulate a plurality of devices
US8145333B2 (en) * 2008-12-01 2012-03-27 Rockwell Automation Technologies, Inc. Ontology-based system and method for industrial control
CN102650860A (zh) * 2011-02-25 2012-08-29 西安邮电学院 一种新型数据流dsp中信号处理硬件的控制器结构
RU117667U1 (ru) 2011-12-23 2012-06-27 Владимир Васильевич Махалов Мультиагентная информационная система управления инновационной средой предприятий региона
GB2522338B (en) * 2014-01-03 2020-12-16 Fisher Rosemount Systems Inc Reusable graphical elements with quickly editable features for use in user displays of plant monitoring systems
WO2015157851A1 (en) 2014-04-17 2015-10-22 Masitek Instruments Inc. Systems, methods, devices and computer readable medium for real and near-real time sensor data capture and analysis
US9895841B2 (en) * 2014-05-09 2018-02-20 Autodesk, Inc. User specific design customization for 3D printing
US9934185B2 (en) * 2015-01-12 2018-04-03 Xilinx, Inc. Processing system network controller with interface to programmable logic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110251865A1 (en) * 2008-11-28 2011-10-13 Nulogy Corporation System, method, and computer program for manufacturing estimation production assembly and inventory management
WO2016074730A1 (de) * 2014-11-13 2016-05-19 Siemens Aktiengesellschaft Verfahren zur planung der herstellung eines produkts und produktionsmodul mit selbstbeschreibungs-informationen

Also Published As

Publication number Publication date
KR20190040236A (ko) 2019-04-17
EP3482265B1 (en) 2023-02-22
BR112019001650A2 (pt) 2019-05-07
JP2019532383A (ja) 2019-11-07
WO2018031005A1 (en) 2018-02-15
US20190171190A1 (en) 2019-06-06
CN109564419B (zh) 2022-01-11
EP3482265A1 (en) 2019-05-15
CN109564419A (zh) 2019-04-02
US11054812B2 (en) 2021-07-06
JP7351744B2 (ja) 2023-09-27
RU2711874C1 (ru) 2020-01-22

Similar Documents

Publication Publication Date Title
KR102257938B1 (ko) 산업 애플리케이션들을 위한 스킬 인터페이스
Krüger et al. Innovative control of assembly systems and lines
US9134726B2 (en) Method for configuration SOA-based automation devices and for developing an orchestration machine, production method and production system in service-oriented architecture having embedded service orchestration engine
US20100138017A1 (en) Ontology-Based System and Method for Industrial Control
US11951631B2 (en) Object marking to support tasks by autonomous machines
JP2019514144A (ja) フォグコンピューティング促進型フレキシブル工場
WO2018176025A1 (en) System and method for engineering autonomous systems
Barenji et al. A framework for structural modelling of an RFID-enabled intelligent distributed manufacturing control system
Malburg et al. Using semantic web services for ai-based research in industry 4.0
US11221852B2 (en) Method for dynamic adaptation of a workflow of an automatic system
Barenji An RFID-based distributed control system for flexible manufacturing system
Hoffmann et al. Developing self-organizing robotic cells using organic computing principles
Mayrhofer et al. Capability-based process modeling and control
Vrba Simulation in agent-based control systems: MAST case study
Le et al. Multilayer Communication-Based Controller Design for Smart Warehouse Testbed
EP3671584A1 (en) Method and system for controlling a production process
Mayr-Dorn et al. Designing Strongly-decoupled Industry 4.0 Applications Across the Stack: A Use Case
BR112019001650B1 (pt) Sistema de produção ciber-físico e método implementado por computador para utilizar uma interface de habilidade para controlar uma unidade ciber-física em um sistema de produção ciber-físico
Wagner et al. Machining of Individualized Milled Parts in a skill-based Production Environment
Kruger The development and evaluation of an Erlang control system for reconfigurable manufacturing systems
US11182715B2 (en) Systems and methods for orchestrating autonomously and manually performed operations
Makris et al. Flexible Cooperating Robots for Reconfigurable Shop Floor
Lee et al. Sequential Decision-Making Framework for Robotic Mobile Fulfillment System-Based Automated Kitting System
Mulubika Evaluation of control strategies for reconfigurable manufacturing systems
Vrba et al. Agent Based Simulation: MAST Case Study

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