ИНТЕРФЕЙС НАВЫКОВ ДЛЯ ПРОМЫШЛЕННЫХ ПРИКЛАДНЫХ СИСТЕМ
SKILLS INTERFACE FOR INDUSTRIAL APPLICATION SYSTEMS

Область техники, к которой относится изобретение
[1] Настоящее изобретение относится, в целом, к интерфейсу навыков для промышленных прикладных систем, вместе со способами, системами и устройствами, связанными с ним. Описываемая технология может быть применена, например, к различным автоматизированным производственным средам, где используются программируемые контроллеры.
Уровень техники
[2] Производственные процессы являются в высокой степени автоматизированными и могут быть разделены на несколько иерархических уровней. Например, на наивысшем уровне, имеет место планирование ресурсов предприятия (ERP), которое может называться бизнес-уровнем. На несколько низких уровнях имеют место аппаратная реализация и управление, которые могут называться уровнем различного управления или блоков. Промежуточный уровень объединяет и соединяет бизнес-уровень и уровень управления. Этот промежуточный уровень включает в себя систему организации производства (MES), которая определяет MES-процесс с точки зрения данных и взаимодействий между функциями, такими как управление ресурсами, распределение ресурсов, диспетчеризация, сбор и получение данных, организация контроля качества, управление техническим обслуживанием, анализ производительности, составление технологического маршрута, управление документами, организация труда и отслеживание материалов и продукции.
[3] Одной проблемой в разработке промышленного назначения является то, что взаимодействия машина-машина очень зависят от того, как MES реализует процессы промышленной прикладной системы. В результате, надежность всей системы ограничивается. Когда требуется индивидуальная настройка, она должна выполняться вручную. Например, оператор или другой рабочий в промышленной среде может читать рабочее задание, подбирать входные материалы для конкретного этапа процесса, подходить с этими материалами к машинам и запускать машины, чтобы выполнять этап. В некоторых случаях, машины, такие как краны, могут облегчать транспортировку предметов; но, в принципе, какая-либо индивидуальная настройка системы остается зависимой от взаимодействия человека с системой.
Сущность изобретения
[4] Варианты осуществления настоящего изобретения устраняют и преодолевают один или несколько вышеописанных несовершенств и недостатков, предоставляя способы, системы и устройства, относящиеся к интерфейсу навыков для промышленных прикладных систем. Технологии, описанные в данном документе, определяют проблему сообщения намерения между множеством взаимодействующих устройств в автоматизированной прикладной системе с точки зрения абстракции, называемой "навыками". Целью навыков является стандартизация и упрощение процесса настройки и выполнения процессов автоматизации. Они также используются в качестве среды связи между машинами на системном уровне и должны определять, какие операции выполнять для оптимизации вычислений. Навык связывается с процессом как навык, который будет найден в MES, но может быть реализован на уровне блока.
[5] Согласно одному аспекту настоящего изобретения, киберфизическая производственная система включает в себя множество киберфизических блоков, сконфигурированных, чтобы совместно производить изделие, содержащее одну или несколько обрабатываемых деталей. В некоторых вариантах осуществления каждый из киберфизических блоков содержит программируемый логический контроллер. Каждый из киберфизических блоков содержит одно или несколько устройств системы автоматизации, сетевой интерфейс и процессор. Сетевой интерфейс конфигурируется, чтобы принимать экземпляры навыков, которые предоставляет машинонезависимый запрос преобразования обрабатываемой детали посредством устройств системы автоматизации. В некоторых вариантах осуществления сетевой интерфейс включает в себя интерфейс веб-служб, который использует протокол передачи состояния представления (REST), чтобы принимать экземпляры навыков. Процессор конфигурируется, чтобы выполнять каждый из экземпляров навыков, применяя режимы работы, которые управляют устройствами системы автоматизации. В некоторых вариантах осуществления киберфизической производственной системы, по меньшей мере, один из киберфизических блоков соответствует транспортной системе, которая обеспечивает транспортировку обрабатываемой детали между киберфизическими блоками, включенными в систему.
[6] Согласно некоторым вариантам осуществления вышеупомянутой киберфизической производственной системы, каждый из киберфизических блоков дополнительно содержит очередь заказ-нарядов блока, сконфигурированную, чтобы хранить экземпляры навыков перед исполнением посредством процессора. Процессор может быть дополнительно сконфигурирован, чтобы переупорядочивать очередь заказ-нарядов блока на основе предпочтительной последовательности после ввода экземпляра навыка в очередь заказ-нарядов блока. Дополнительно (или альтернативно), процессор может быть дополнительно сконфигурирован, чтобы выполнять экземпляры навыков по порядку, пропуская экземпляры навыков, которые не могут быть выполнены немедленно. В некоторых вариантах осуществления вышеупомянутой киберфизической производственной системы процессор дополнительно конфигурируется, чтобы передавать сообщение киберфизической производственной системе, указывающее завершение экземпляра навыка, после удаления экземпляра навыка из очереди заказ-нарядов блока для выполнения. Процессор может также быть сконфигурирован, чтобы модифицировать параметр состояния навыка для экземпляра навыка после удаления экземпляра навыка из очереди заказ-нарядов блока для выполнения.
[7] В некоторых вариантах осуществления каждый из киберфизических блоков дополнительно содержит сканирующее устройство, сконфигурированное, чтобы считывать физическую метку на обрабатываемой детали. Эта физическая метка указывает универсальный идентификатор ресурса (URI), соответствующий обрабатываемой детали. Процессор может использовать URI, чтобы ассоциировать экземпляры навыков в очереди заказ-нарядов блока с обрабатываемой деталью во время выполнения. Например, в одном варианте осуществления, экземпляры навыков содержат ключевое значение навыка, совпадающее с URI, соответствующим обрабатываемой детали.
[8] Согласно другому аспекту настоящего изобретения, компьютерно-реализованный способ для использования интерфейса навыков для управления киберфизическим блоком включает в себя прием экземпляра навыка, предоставляющего машинонезависимый запрос преобразования обрабатываемой детали посредством одного или нескольких устройств системы автоматизации, включенных в киберфизический блок. Экземпляры навыков вводятся в очередь заказ-нарядов блока, содержащую один или несколько дополнительных экземпляров навыков. После того как экземпляры навыков введены, очередь может быть переупорядочена. Например, в одном варианте осуществления, способ включает в себя переупорядочивание очереди заказ-нарядов блока на основе предпочтительной последовательности после ввода экземпляра навыка в очередь заказ-нарядов блока. Затем, каждый экземпляр навыка в очереди заказ-нарядов блока выборочно выполняется посредством применения режимов работы, которые управляют устройствами системы автоматизации. В некоторых вариантах осуществления экземпляры навыков в очереди заказ-нарядов блока выполняются по порядку, пропуская экземпляры навыков, которые не могут быть выполнены немедленно. После удаления экземпляра навыка из очереди заказ-нарядов блока для выполнения сообщение может быть передано киберфизической производственной системе, указывающее завершение экземпляра навыка, или параметр состояния навыка для экземпляра навыка может быть модифицирован.
[9] Согласно другим вариантам осуществления настоящего изобретения киберфизическая производственная система включает в себя киберфизический блок транспортировки, который содержит физическую транспортную систему, сетевой интерфейс транспортировки и процессор. Сетевой интерфейс транспортировки конфигурируется, чтобы принимать примеры навыка транспортировки, которые предоставляют машинонезависимый запрос транспортировки обрабатываемой детали между другими киберфизическими блоками, включенными в киберфизическую производственную систему. Процессор конфигурируется, чтобы применять рабочие режимы транспортировки к физической системе транспортировки, чтобы реализовывать примеры навыка транспортировки. В некоторых вариантах осуществления вышеупомянутая киберфизическая производственная система дополнительно содержит один или несколько киберфизических блоков машинной обработки. Каждый киберфизический блок машинной обработки включает в себя физическую машину для физического преобразования обрабатываемой детали, сетевой интерфейс машинной обработки, который конфигурируется, чтобы принимать один или несколько экземпляров навыков машинной обработки, предоставляя машинонезависимый запрос машинной обработки обрабатываемой детали посредством киберфизического блока машинной обработки, и процессор, который конфигурируется, чтобы применять рабочие режимы машинной обработки к физическим машинам, чтобы реализовывать экземпляры навыков машинной обработки.
[10] Дополнительные признаки и преимущества изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, которое продолжается со ссылкой на сопровождающие чертежи.
Краткое описание чертежей
[11] Вышеупомянутые и другие аспекты настоящего изобретения лучше понимаются из последующего подробного описания, когда читаются вместе с сопровождающими чертежами. С целью иллюстрации изобретения, на чертежах показаны вариант осуществления, которые в настоящее время являются предпочтительными, понятно, однако, что изобретение не ограничивается конкретными описанными техническими средствами. В чертежи включены следующие рисунки:
[12] Фиг. 1 иллюстрирует примерную киберфизическую производственную систему (CPPS), которая автоматически транспортирует материалы между автономными машинами, согласно некоторым вариантам осуществления;
[13] Фиг. 2 предоставляет высокоуровневое общее представление киберфизического производственного блока (CPPU) и связанных навыков для примерной CPPS, показанной на фиг. 1, согласно некоторым вариантам осуществления;
[14] Фиг. 3 предоставляет пример состава отдельного CPPU 300, согласно некоторым вариантам осуществления;
[15] Фиг. 4 показывает примерный сценарий, который включает в себя комплект из трех конвейеров, размещенных вместе с другими датчиками и толкателем;
[16] Фиг. 5 - это онтология для CPPU, как она может быть реализована в некоторых вариантах осуществления настоящего изобретения. CPPU содержит режимы работы, компоненты и навыки;
[17] Фиг. 6 предоставляет в качестве примера экземпляры навыков, добавленные в очередь заказ-нарядов блока, согласно некоторым вариантам осуществления;
[18] Фиг. 7 показывает пример идентификатора QR-кода, который идентифицирует рабочий лоток;
[19] Фиг. 8 иллюстрирует пример интерфейса навыков, где язык потока информации используется для реализации запрограммированного режима работы посредством указания внутренних соединений между навыками и режимами работы; и
[20] Фиг. 9 предоставляет дополнительный пример потока информации, иллюстрирующий несколько сложное соединение навык-режим работы по сравнению с показанным на фиг. 8.
Подробное описание изобретения
[21] Последующее описание описывает настоящее изобретение согласно нескольким вариантам осуществления, направленным на способы, системы и устройства, ассоциированные с интерфейсом навыков, который обеспечивает связи в автономных процессах. Термин "навык", когда используется в данном документе, ссылается на машинонезависимое описание того, как обрабатываемая деталь или материал должны быть преобразованы, так, что он может быть превращен, в конечном счете, в готовое изделие. Устройство, которое поддерживает интерфейс навыков, называется в данном документе киберфизическим производственным блоком (CPPU), и совместные действия множества CPPU управляются посредством киберфизической производственной системы (CPPS).
[22] Интерфейс навыков, описанный в данном документе, может быть использован для управления группами блоков, чтобы создавать изделия совместно и автоматически. Рабочие изделия могут маршрутизироваться к различным машинам на основе, например, оптимизированных затрат или большой доли заемных средств, чтобы создавать множество изделий с помощью одного и того же комплекта блоков, возможно даже одновременно. Интерфейс навыков предусматривается для самодиагностики и выбора таким образом, что автоматизированная система может выбирать машины динамически и не полагаться на фиксированный производственный маршрут. Заданный CPPU может поддерживать несколько различных навыков, которые могут быть применены к различным изделиям, и различные CPPU могут поддерживать общий навык, так что система может выбирать, какой CPPU было бы несколько эффективно использовать.
[23] Реализация интерфейса навыков подразумевает определение класса навыка. Это может включать в себя, например, название для навыка, также как и набор параметров, которые описывают, как обрабатываемая деталь преобразуется. CPPS может создавать экземпляр навыка, который описывает то, какие значения параметров использовать для конкретной обрабатываемой детали. Экземпляр может быть обобщенным и применимым к любой обрабатываемой детали или может использовать ключ, который идентифицирует, на какую обрабатываемую деталь воздействовать. Экземпляры сохраняются в очереди, из которой блок извлекает их и распаковывает параметры навыка. Блок может также выполнять опережающий просмотр очереди, чтобы выбирать навык для следующего выполнения, так как не все навыки могут быть применены немедленно. Блок затем выполняет навык, применяя его параметры к режимам работы, которые управляют различными компонентами, физическими и функциональными устройствами, которые фактически выполняют работу. Множество навыков могут выполняться одновременно, включая в себя навыки одинакового класса, в зависимости от физических ограничений блока. Когда навыки завершаются, они могут быть удалены из очереди, и просигнализированы в MES как выполненные.
[24] Навыки являются средой, используемой для сообщения информации об изделии между комплектами полуавтономных производственных блоков. Существует множество причин для применения множества полуинтеллектуальных устройств для создания изделий вместо создания фиксированного производства с ручной механической обработкой и лишь для одного изделия. Например, если желательно создавать в высокой степени адаптируемые к требованиям заказчика изделия или создавать множество изделий с небольшими объемами партий, использование машин общего назначения в настраиваемых конфигурациях может быть несколько эффективным с точки зрения затрат, так как фиксированная стоимость создания целого производства для единственного изделия устраняется.
[25] Фиг. 1 иллюстрирует примерную киберфизическую производственную систему (CPPS) 100, которая автоматически транспортирует материалы между автономными машинами, согласно некоторым вариантам осуществления. На фиг. 1 транспортная система переносит материал и рабочие изделия между станцией 105 загрузки/разгрузки, сверлильным станком 110 и фрезерным станком 115, каждый из которых выполняет процессы, которые формируют обрабатываемые детали в изделия.
[26] Производственная система делится на блоки, каждый из которых может выполнять некоторые аспекты общего процесса. Фрезерный станок 115, например, может быть использован, чтобы формировать общую форму изделия. Сверлильный станок 110 может быть использован, чтобы сверлить отверстия в изделии, которые являются слишком мелкими для создания с помощью фрезерного станка 115. Станция 105 загрузки/разгрузки удерживает товары и материалы до тех пор, пока они не понадобятся для использования на других станках. Транспортная система перемещает рабочие изделия к и от машин, где происходит обработка. Отдельные сегменты CPPS 100 называются киберфизическими производственными блоками (CPPU). CPPU являются автономными и интеллектуальными, так что большая часть работы, которую они обеспечивают, может быть выполнена без надзора или специальной инструкции.
[27] В примере на фиг. 1 отметим, что элементы транспортной системы, такие как устройство, которое переносит обрабатываемую деталь с главного конвейера на сверлильный станок, считаются частью CPPU сверлильного станка 110. Оно может точно так же легко считаться частью блока транспортировки. Разделение труда между машинами может потенциально быть произвольным, но обычно определяется по нескольким факторам помимо прихоти специалиста по системной интеграции. Например, система замены комплектующих деталей для сверлильного станка 110 может быть физически жестко смонтированной или иначе присоединенной к сверлильному станку. Если процесс должен быть переконфигурирован, может не иметь смысла отделять загрузочное устройство сверлящей делали от сверла, так как загрузочное устройство может быть изготовлено на заказ и не будет использоваться для какой-либо другой цели. Кроме того, объединение сверла с загрузочным устройством может делать сверлильный станок 110 в целом несколько автономным. Без загрузочного устройства сверло будет нуждаться в некотором другом устройстве или человеке для размещения внутри материала, который должен быть просверлен.
[28] С определенными CPPU цели процесса могут быть затем сообщены устройствам, которые выполняют их. Навыки множества CPPU затем используются для сообщения того, какие действия необходимо выполнять над обрабатываемыми деталями.
[29] Фиг. 2 предоставляет высокоуровневое общее представление множества CPPU и связанных навыков для примерной CPPS, показанной на фиг. 1, согласно некоторым вариантам осуществления. Каждый навык отражает операции, которые применяются к рабочим продуктам, и ключевые цели для каждого блока. Таким образом, станция 105 загрузки/разгрузки реализует навык 205A загрузки и навык 205B подачи. Сверлильный станок 110 и фрезерный станок 115 реализуют навык 210 сверления и навык 215 фрезерования, соответственно. Наконец, конвейерная система имеет навык 220 транспортировки. Для хода процесса рабочие изделия двигаются взад и вперед к различным блокам посредством навыка 220 транспортировки. Изделия получают форму с помощью навыка 215 фрезерования; изделия получают отверстия с помощью навыка 210 сверления и т.д. Система планирования может быть использована для отправки корректной информации о навыках корректным блокам, когда они являются необходимыми.
[30] Фиг. 3 предоставляет пример состава отдельного CPPU 300, согласно некоторым вариантам осуществления. CPPU - это место, где происходит создание и модификации изделий. Он считается кибернетическим, так как управляется посредством навыков, применяемых к нему, как часть CPPS, и он является, как правило, полностью автоматизированным; хотя помощь человека может также быть использована в некоторых вариантах осуществления. CPPU предназначается для автономной работы в том, что он не требует действий от других CPPU, чтобы функционировать за пределами транспортной системы, которая может доставлять рабочие изделия в и из блока. CPPU должен также быть интеллектуальным в том, что он имеет способность интерпретировать желаемую информацию об изделии из примененных навыков и быть приспособленным выполнять свои собственные режимы работы для того, чтобы добиваться этого результата.
[31] CPPU, показанный на фиг. 3, содержит два компонента 315, 320, которые содержат физические средства, которые выполняют работу, также как вспомогательные устройства, которые подают материал, меняют инструменты, распыляют химикаты, распознают позиции и любые другие вещи, которые блок должен выполнять. Эти объекты называются компонентами. Пример на фиг. 3 показывает робота, камеру, мотор и конвейерную ленту в качестве включенных в компоненты 315, 320; однако, необходимо понимать, что любые физические средства могут, в целом, быть включены в компонент CPPU.
[32] Навыки 305, 310 действуют в качестве интерфейса для CPPU 300. На фиг. 3 навыки 305, 310 изображаются с помощью символа интерфейса, чтобы указывать, что обмен информацией происходит извне, чтобы применять навык к CPPU. Среда связи возможно может быть видом протокола сетевого взаимодействия, который предоставляет возможность для произвольных и имеющих переменную длину сообщений. Например, сообщения, отправляющие данные на и с веб-сервера, будут удовлетворять этому виду протокола.
[33] Между навыками 305, 310, которые говорят машине, что необходимо сделать, и компонентами 315, 320, которые действуют, чтобы выполнять работу, существуют режимы работы, которые включают в себя все встроенные и программные функции, которые описывают, как фактически выполнять работу. Режим работы определяется как фундаментальная деятельность, которую компоненты выполняют. Деятельность может быть физической или вычислительной. Например, роботизированная рука может перемещать свой рабочий орган в пространстве в качестве физического режима работы. Если функция для определения конечной точки, в которую робот перемещается, также рассматривается, тогда этот режим работы также является вычислительным, в том смысле, что точку необходимо вычислить. Хотя может быть возможным различать между чистым физическим режимом работы и абстрактным вычислительным режимом работы, в принципе, большинство режимов работы прикладной системы будут сочетанием обоих режимов. Таким образом, режим работы может быть определен как то, что производственные компоненты выполняют, независимо от того, как это может влиять на состояние рабочего изделия. Например, конвейер может быть включен и выключен. Его режимом работы будет движение ленты, когда он включен. Если на ленте оказывается изделие, оно должно перемещаться, но сам режим работы конвейера не имеет отношения к этому вопросу. Конвейер приспособлен двигаться, находится на нем изделие или нет.
[34] Конечно, объединенные действия компонентов оказывают влияние на рабочие изделия. Остановимся на примере конвейера, режимом работы конвейера является движение, и вещи на верхней стороне конвейера будут перемещаться. Фиг. 4 показывает примерный сценарий, который включает в себя комплект из трех конвейеров, размещенных вместе с другими датчиками и толкателем. Целью этой прикладной системы может быть сортировка поступающих изделий. Если изделия вводятся в местоположение серого ящика с правой стороны конвейера IN, датчик может определять, должны ли ящики быть отправлены вниз по конвейеру A или B (и в другие процессы). Режимом работы толкателя является выдвижение и втягивание, и если выдвигается в правильное время, он будет толкать ящик на конвейер B. Объединенные режимы работы этих компонентов действуют, чтобы изменять состояние рабочих изделий; ящики идут из несортированного состояния, чтобы становиться отсортированными. Таким образом, "навыком" этой прикладной системы является сортировка ящиков. Навык для этого устройства может быть сформулирован как "SORT (box_id, dest)" или, другими словами, при наличии конкретного ящика поместить его на конкретный предназначенный конвейер. Экземпляром этого навыка может быть "SORT (box_id=1007, dest=B)", который инструктирует помещение ящика с номером 1007 на ленту B.
[35] Другие виды навыков могут оказывать влияние на рабочее изделие несколько непосредственно. Например, обрабатываемая деталь может быть изменена посредством резки, фрезерования или сверления в ней. Множество обрабатываемых деталей могут быть собраны, чтобы формировать объединенную деталь, и она может быть склеена или скреплена вместе. В целом, навыки определяют цель производственного блока в контексте производственной системы, декларируя, как он будет модифицировать рабочее изделие. Таким образом, навык является эффективным указателем, который раскрывается наружу, который проясняет, что блок предполагает делать.
[36] Фиг. 5 показывает онтологию для CPPU, как она может быть реализована в некоторых вариантах осуществления настоящего изобретения. CPPU содержит режимы работы, компоненты и навыки. Режимы работы определяются как сущности, которые описывают, как компоненты работают, а также как они работают вместе. Таким образом, логика прикладной программы является также рассматриваемым режимом работы вместе с физическим режимом работы компонентов. Компоненты могут также содержать режим работы, так как они имеют физический режим работы, но также они могут содержать несколько усложненные функции, которые управляют их использованием. Например, робот может иметь функцию планирования движения, которая может быть использована для управления его режимом работы с помощью команд высокого уровня. Так как рабочее изделие является физическим объектом, также учитывается вид компонента. Отметим, что сама обрабатываемая деталь может даже содержать вычислительные элементы типа лотка, который обнаруживает свое содержимое или определяет свой собственный пункт назначения маршрутизации. Даже обычная обрабатываемая деталь будет иметь физический режим работы и состояние, тем не менее.
[37] Режим работы компонентов инструктирует рабочим изделиям становиться модифицированными. Таким образом, хотя режим работы может происходить, даже когда обрабатываемая деталь не присутствует, это все еще применение режима работы компонента к обрабатываемой детали, который инструктирует машине делать что-либо. CPPU предлагает навыки в качестве методов для описания того, что он может делать, и инициирования режимов работы, которые фактически инструктируют совершение таких вещей. Сам навык описывает то, какой результат желательно должен быть достигнут по отношению к предоставленному изделию, даже если конкретные цепочки событий, которые обусловливают происхождение результата, инструктируются посредством режимов работы.
[38] CPPU предлагает навыки внешним устройствам. Эти навыки инициируют действия, включенные в режим работы, и описывают результат, который будет применен к изделию. Так как навыки могут быть отделены от режима работы, можно предоставлять интерфейс навыков для CPPU без необходимости раскрывать режимы работы, которые фактически выполняют задачу. Это является удобным, так как предоставляет возможность точно определять навыки с помощью обычных протоколов интерфейса, тогда как режим работы блока часто должен будет реализовываться на специфическом для конкретной предметной области языке. В результате, реализация навыка является вопросом получения абстрактного представления навыка, который лучше всего соответствует преобразованию обрабатываемой детали, которое является желательным, и затем присоединения программной версии этой абстракции к фактическим характерным функциям, которые выполняют работу.
[39] Потенциально сбивает с толку то, что слово "навык" не подразумевает способ, которым он применяется в прикладной системе. Навык может ссылаться на абстрактное определение задачи - это будет сродни ее классу или онтологии. Навык может также ссылаться на экземпляр этой абстракции, который применяется к конкретному блоку. Например, "наполнение лотка красными блоками" будет экземпляром навыка для конкретной задачи, затрагивающей лоток и блоки. Дополнительно, навык может ссылаться на выполнение навыка в блоке. Навыки выполняются с помощью режимов работы; однако, так как существует соотношение непосредственная причина-результат с экземпляром навыка, устанавливаемое в блоке, и соответствующие режимы работы в этом блоке предпринимают действие, чтобы осуществлять навык, может считаться, что навык выполняется. В настоящем описании эти различные значения для навыка будут проясняться, когда это не является очевидным из контекста.
[40] CPPU может быть реализован на программируемом логическом контроллере или другом вычислительном устройстве уровня блока, тесно связанном с компонентами CPPU. В принципе, можно использовать любой вид управляемой компьютером среды для передачи экземпляров навыков от CPPS к CPPU, но протокол сетевого взаимодействия вероятно должен быть самым эффективным. Преимущества сетевого протокола, такого как веб-службы, включают в себя способность легко расширяться и могут быть использованы с обычным оборудованием связи и библиотеками программирования. Сетевой протокол также может иметь произвольную длину сообщения с хорошо понятными способами для кодирования и декодирования данных. В примерах, описанных в данном документе, предполагается, что обмен информацией выполняется через интерфейс веб-служб с помощью протокола передачи состояния представления (REST) и с помощью предварительно определенных меток универсального идентификатора ресурса (URI). Однако, следует понимать, что альтернативные технологии, обеспечивающие аналогичную функциональность, могут быть применены в других вариантах осуществления настоящего изобретения.
[41] Навыки могут быть реализованы специалистами по системной интеграции и, таким образом, могут не предполагать основываться только на типе процесса. Специфика какого-либо заданного процесса будет уникальной, так как производители применяют свое собственное ноу-хау, чтобы добавлять уникальную ценность своим изделиям. По этой причине, простой протокол для навыков может быть использован, который предоставляет возможность специалисту по системной интеграции отражать свою собственную идею процесса непосредственно в структуре кода блоков. Добавление большей информации и семантики в массив данных навыков является несомненно возможным, но должно считаться дополнением к базовой спецификации, а не фундаментальным требованием к проявлению навыков.
[42] Базовое определение навыка является названием с набором параметров. Название может быть таким же простым как текстовая строка, чтобы обозначать, какой навык в реализации режима работы выполнять. Набор параметров является несколько интересным. В целом, названия параметров могут быть строковыми значениями типа названия навыка. Параметры могут быть необязательными, и данный навык может быть перезагружен с другими наборами параметров для других случаев использования. Значения параметров могут быть постоянными значениями или постоянными выражениями. Аналогично, значения параметров могут сохраняться простыми, такими как единичные числа с плавающей запятой, булевы выражения или целые числа. Использование простых параметров сохраняет экземпляр навыка компактным и эффективным для сообщения блоку и сохранения в очереди навыков (описана ниже).
[43] Реализация навыка включает себя способ применения экземпляра навыка к блоку, также как способы рефлексии для обнаружения того, какие навыки являются доступными. Термин "рефлексия", когда используется в данном документе, ссылается на способность языка программирования изучать и динамически вызывать классы, способы, атрибуты и другую связанную с программой информацию во время работы без необходимости особого знания априори об изучаемых объектах. Рефлексия должна включать в себя, по меньшей мере, список всех навыков и их параметров, и может также включать в себя информацию о типе для параметров, включающих в себя ограничения значений, является или нет параметр необязательным, технические единицы измерения и другие ограничивающие критерии. Обнаружение навыка будет вероятно происходить во время, когда блок впервые активируется, таким образом, список навыков не должен изменяться часто. Большинство блоков будут предоставлять одинаковый набор навыков в течение своей работы и не будут изменять его, пока блок не будет перепрограммирован, или сама система не будет переконфигурирована.
[44] Так как CPPU является автономным, навыки, как правило, не будут вызываться извне аналогично вызову функции. CPPU будет иметь возможность обнаруживать свое собственное состояние и определять состояния обрабатываемой детали согласно своим собственным возможностям и не будет чрезмерно управляться извне. Когда обрабатываемые детали и компоненты являются готовыми по собственному пониманию блока, он выполняет свою функцию. Прямолинейным решением является обработка каждого приложения навыка как вида заказ-наряда, который вводится в очередь заказ-нарядов в блоке.
[45] Фиг. 6 предоставляет в качестве примера экземпляры навыков, добавляемые в очередь заказ-нарядов блока, согласно некоторым вариантам осуществления. Когда экземпляр навыка добавляется в блок, он идет в очередь заказ-нарядов блока, как показано на чертеже. В очереди блок может просматривать содержимое экземпляра навыка и то, каким видом навыка он является. Экземпляры навыка могут быть упорядочены, так что навыки следуют в конкретной последовательности, или блок может пропускать экземпляры, которые не могут выполняться немедленно, для навыков, несколько поздних в очереди. Что касается реализации характерного навыка, блок может осуществлять доступ к параметрам экземпляра в голове очереди. Блок может также сканировать очередь, отыскивая экземпляры, которые он может использовать. Для этого блок будет выполнять итерации по очереди с помощью индексной переменной. По этой причине такой навык называется "индексным навыком", так как блок выбирает экземпляр навыка на основе его позиции в очереди. Голова очереди будет нулевым индексом. Когда блок завершил заказ-наряд, он может удалять экземпляр навыка из очереди. Удаление навыка может действовать как сообщение "выполнено" для CPPS. Также возможно иметь обратный вызов, системное сообщение или переменный параметр в навыке, который CPPS сопоставляет, чтобы определять состояние навыка.
[46] В некоторых вариантах осуществления CPPS конфигурируется так, что она не применяет экземпляр навыка к блоку, который не может фактически выполнять подразумеваемое действие. С точки зрения CPPS, отправка обрабатываемой детали блоку, который не может работать с ней, является плохим планированием и будет предотвращено посредством самого процесса планирования. В других вариантах осуществления механизм ошибок может быть предусмотрен, когда плохой экземпляр навыка предоставляется блоку, и CPPS может быть сконфигурирована, чтобы выполнять повторную маршрутизацию рабочих материалов другим блокам.
[47] Аналогичное затруднение возникает, когда блок ломается, выключается или иначе становится отключенным. В таких обстоятельствах, все ожидающие экземпляры навыков удаляются из блока, и линия связи блока переходит в состояние возврата ошибки. CPPS может в некоторый момент удалять запись блока из своей базы данных и выполнять планирование вновь в новой топологии. Показ отказов может не быть навыком блока сам по себе, но может быть фундаментальным состоянием блока, которое должно сообщаться.
[48] Оператор, инженер или другой специалист по системной интеграции может настраивать реализацию для навыка множеством различных способов, но одним общим случаем является то, что рабочее изделие (и обычно носитель рабочего изделия) идентифицируется посредством некоторого вида физической метки. Эта метка может быть штрих-кодом, QR-кодом, RFID-меткой, напечатанным числом и т.д., которое может быть считано посредством сканера или считывающего устройства, включенного в CPPU. Пример идентификатора QR-кода, который идентифицирует рабочий лоток, показан на фиг. 7. Значение идентификатора может быть, например, числом или буквенно-числовой строкой символов. В некоторых вариантах осуществления "ключевой навык" используется, чтобы указывать параметры для рабочих изделий, идентифицированных посредством этого вида метки. Ключевой навык предоставляет один специальный параметр, ключ, чье значение будет сверяться с идентификатором, который блок извлекает из метки рабочего изделия. С помощью этого блок может быстро выбирать экземпляр навыка, который соответствует обрабатываемой детали, которую он имеет в распоряжении. При использовании этого вида навыка CPPS будет добавлять все экземпляры навыков, которые будут применяться к блоку, как только он будет готов, и будет предоставлять возможность блоку определять, какой из них применять в заданное время. Универсальные символы или другие схемы поиска, в целом, известные в области техники, могут быть использованы в некоторых вариантах осуществления, используемых для выбора экземпляров навыков по их ключу.
[49] Как описано выше, внутреннее программирование блока формируется с помощью режима работы. Таким образом, чтобы осуществлять назначение навыка, необходимо выполнять режимы работы, которые манипулируют компонентами, которые выполняют работу. Программирование блока может быть выполнено на различных языках; однако, в целом, любой язык программирования, известный в области техники, может быть использован для определения класса навыка, выбора экземпляра навыка из очереди и считывания параметров экземпляра, которые должны быть использованы в остальной части программы. В CPPU может быть использована смесь языков программирования. Например, в некоторых вариантах осуществления, один и тот же язык программирования или функции могут быть использованы для определения и навыков, и режимов работы. В других вариантах осуществления язык программирования или функции, используемые в определении навыков и режимов работы, могут различаться.
[50] Фиг. 8 иллюстрирует пример интерфейса навыков, где язык потока информации используется для реализации запрограммированного режима работы посредством указания внутренних соединений между навыками и режимами работы. На языке потока информации, входные значения применяются к узлу в графе. Узел выполняет вычисление, и результаты отображаются в выходных значениях. Выходные значения затем могут передаваться другим узлам, которые выполняют дополнительное вычисление, и т.д. В этом примере узел определения навыка использует два входных значения и предоставляет два выходных значения. Первое входное значение является флагом, который, когда активирован, инструктирует узлу искать навыки в очереди. Узел определяет конфигурацию для названия навыка и список названий параметров, которые навык использует. В таком случае, названием навыка является "лоток сброса", и он имеет один параметр навыка, называемый "цвет" (не показан). Вторым входным значением является целое число, которое идентифицирует, какой экземпляр навыка в очереди должен быть выбран. Для типа ключевого навыка второе входное значение является значением ключа для сопоставления с экземпляром навыка. Если узел находит навык, он устанавливает первое выходное значение в значение ИСТИНА, чтобы обозначать, что узел является активным. Он также выводит значения параметров экземпляра навыка во второе выходное значение, перечисленное в том же порядке, что и список параметров. Пример показывает узел индекса массива, используемый для выбора значения первого параметра (число "1"), и оно отображается в текстовом окне. Когда программа устанавливает входной флаг узла навыка в значение ЛОЖЬ, узел может быть сконфигурирован, чтобы автоматически удалять навык, который был последним представлен в его выходных значениях.
[51] Фиг. 9 предоставляет дополнительный пример потока информации, иллюстрирующий несколько сложное соединение навык-режим работы по сравнению с показанным на фиг. 8. Этот пример содержит код для извлечения информации из экземпляра навыка, определения того, имеет ли блок необходимый материал для выполнения навыка, и, наконец, он инструктирует другие режимы работы блока, чтобы выполнять действия. Режим работы для реализации навыка на другом языке будет вероятно производить аналогичные действия. Реализация навыка, показанная на фиг. 9, является достаточной для выполнения режима работы от имени навыка. Также будет уместным добавить дополнительную обратную связь. Этот пример указывает завершение, когда экземпляр навыка удаляется из очереди. В некоторых вариантах осуществления экземпляр навыка помечается как используемый, и значение выражает то, как близко к завершению режим работы находится в осуществлении навыка. В этих реализациях можно предусматривать дополнительный порт ввода для процента выполнения, хотя это будет все еще программная реализация режимов работы в блоке, которая будет формировать значения для этого порта.
[52] Хотя методы, описанные в данном документе, используют множество обычных методов, способ, которым эти методы выполняются, отличается от традиционных способов. Например, вся архитектура отделения CPPS от CPPU и определения процессов для операций процесса связи в качестве модификаций в рабочем изделии не встречается в традиционных системах. В обычном способе операции машины описываются в понятиях режима работы машины. Конвейер включается и выключается безотносительно того, как это влияет на обрабатываемую деталь. Полностью новый акцент меняет конструкцию системы с последовательности жестко закодированных инструкций на набор интеллектуальных акторов, которые знают свою роль и применяют свои навыки к имеющейся задаче.
[53] На несколько техническом уровне, стандартный интерфейсный механизм, встроенный в контроллер, будет обычно действовать аналогично удаленному вызову процедуры. В результате, осуществление доступа к режиму работы машины выносится наружу. Переключатель для включения и выключения машины может быть подвергнут воздействию, и некоторый внешний контроллер может выполнять эту операцию. Результат предполагает быть непосредственным аналогично вызову функции на языке программирования или записи значения в совместно используемую память. Интерфейс навыков не является непосредственным. Сами навыки действуют как заказ-наряды, которые помещаются в очередь. Собственные внутренние операции машины определяют, где и как применять заказ-наряды к обрабатываемым деталям. Ключевой навык в сравнении с абстракцией индексного навыка используется для общего случая, когда обрабатываемые детали могут быть идентифицированы посредством маркеров, так что уместные навыки легко находить.
[54] Интерфейс навыков является полезным для автоматизации, но он также может быть применен помимо этого к оптимизации и вычислению стоимости. Навыки могут быть использованы для сообщения намерений системам моделирования, которые определяют, является ли процесс возможным, и как он повлияет на машину и ассоциированные системы. Таким образом, абстракция навыка становится неотъемлемой для всего процесса автоматизации от программирования устройств автоматизации до составления технологического маршрута и планирования.
[55] Различные устройства, описанные в данном документе, включают в себя, без ограничения, устройства уровня управления, а связанная вычислительная инфраструктура может включать в себя, по меньшей мере, один компьютерно-читаемый носитель или запоминающее устройств для хранения инструкций, запрограммированных согласно вариантам осуществления изобретения, и для содержания структур данных, таблиц, записей или других данных, описанных в данном документе. Термин "компьютерно-читаемый носитель", когда используется в данном документе, ссылается на любой носитель, который участвует в предоставлении инструкций одному или несколько процессорам для исполнения. Компьютерно-читаемый носитель может принимать множество форм, включающих в себя, но не только, невременные, энергонезависимые носители, энергозависимые носители и среду передачи. Неограничивающие примеры энергонезависимых носителей включают в себя оптические диски, твердотельные накопители, магнитные диски и магнитооптические диски. Неограничивающие примеры энергозависимых носителей включают в себя динамическую память. Неограничивающие примеры среды передачи включают в себя коаксиальные кабели, медный провод и оптоволокно, включающие в себя провода, которые составляют системную шину. Среда передачи может также принимать форму акустических или световых волн, таких как волны, формируемые во время передач данных с помощью радиоволн и инфракрасного света.
[56] Вышеупомянутые устройства уровня управления и связанная вычислительная инфраструктура может включать в себя один или несколько процессоров для реализации методов, описанных в данном документе. Процессоры, описанные в данном документе, когда используются устройствами управления, могут включать в себя один или несколько центральных процессоров (CPU), графических процессоров (GPU) или любой другой процессор, известный в области техники. Несколько конкретно, процессор, когда используется в данном документе, является устройством для исполнения машиночитаемых инструкций, сохраненных на компьютерно-читаемом носителе, для выполнения задач и может содержать любое одно или сочетание аппаратных средств и микропрограммного обеспечения. Процессор может также содержать память, хранящую машиночитаемые инструкции, исполняемые для выполнения задач. Процессор воздействует на информацию, манипулируя, анализируя, модифицируя, преобразуя или передавая информацию для использования исполняемой процедурой или информационным устройством и/или маршрутизируя информацию устройству вывода. Процессор может использовать или содержать возможности компьютера, контроллера или микропроцессора, например, и быть обусловлен с помощью исполняемых инструкций, чтобы выполнять функции специального назначения, невыполняемые компьютером общего назначения. Процессор может быть связан (электрически и/или как содержащий исполняемые компоненты) с любым другим процессором, предоставляющим возможность взаимодействия и/или связи между ними. Процессор или генератор пользовательского интерфейса является известным элементом, содержащим электронные схемы или программное обеспечение или сочетание того и другого, для формирования отображаемых изображений или их фрагментов. Пользовательский интерфейс содержит одно или несколько отображаемых изображений, предоставляющих возможность взаимодействия пользователя с процессором или другим устройством.
[57] В некоторых вариантах осуществления фрагменты CPPU, включающие в себя интерфейс навыков, реализуются с помощью одного или нескольких исполняемых приложений. Исполняемое приложение, когда используется в данном документе, содержит код или машиночитаемые инструкции для создания условий процессору реализовывать предварительно определенные функции, такие как функции операционной системы, системы получения контекстных данных или другой системы обработки информации, например, в ответ на пользовательскую команду или входные данные. Исполняемая процедура является сегментом кода или машиночитаемой инструкцией, подпрограммой или другим отдельным участком кода или фрагментом исполняемого приложения для выполнения одного или нескольких конкретных процессов. Эти процессы могут включать в себя прием входных данных и/или параметров, выполнение операций по принятым входным данным и/или выполнение функций в ответ на принятые входные параметры и предоставление результирующих выходных данных и/или параметров.
[58] Функции и этапы процесса в данном документе могут быть выполнены автоматически, целиком или частично в ответ на пользовательскую команду. Деятельность (включающая в себя этап), выполняемая автоматически, выполняется в ответ на одну или несколько исполняемых инструкций или операцию устройства без непосредственного инициирования пользователем деятельности.
[59] Система и процессы на чертежах не являются исключительными. Другие системы, процессы и меню могут быть получены в соответствии с принципами изобретения, чтобы достигать тех же целей. Хотя это изобретение было описано со ссылкой на конкретные варианты осуществления, следует понимать, что варианты осуществления и разновидности, показанные и описанные в данном документе, существуют только в иллюстративных целях. Модификации текущей конструкции могут быть реализованы специалистами в области техники без отступления от рамок изобретения. Как описано в данном документе, различные системы, подсистемы, агенты, диспетчеры и процессы могут быть реализованы с помощью компонентов аппаратных средств, компонентов программного обеспечения и/или их сочетаний. Элемент формулы изобретения в данном документе не должен истолковываться под положениями 35, U.SC. 112, шестой параграф, пока элемент явно не ограничивается с помощью фразы "средство для".