ГЕНЕРАЦИЯ СОБЫТИЙ С ИСПОЛЬЗОВАНИЕМ КОНТЕКСТНОЙ ИНФОРМАЦИИ НА ИНТЕЛЛЕКТУАЛЬНОМ ПРОГРАММИРУЕМОМ ЛОГИЧЕСКОМ КОНТРОЛЛЕРЕ
GENERATION OF EVENTS WITH THE USE OF CONTEXT INFORMATION ON AN INTELLECTUAL PROGRAMMING LOGIC CONTROLLER

ОБЛАСТЬ ТЕХНИКИ
[1] Настоящее изобретение в общем относится к использованию программируемого логического контроллера, который генерирует события, используя контекстную информацию из среды автоматизации. Раскрытая технология может применяться, например, для различных производственных систем, в которых используются программируемые контроллеры.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[2] Программируемый логический контроллер (PLC) - это специализированная компьютерная система управления, сконфигурированная для выполнения программного обеспечения, которая непрерывно собирает данные о состоянии входных устройств для управления состоянием выходных устройств. PLC обычно включает в себя три основных компонента: процессор (который может включать в себя энергозависимую память), энергозависимую память, содержащую прикладную программу, и один или несколько портов ввода/вывода (I/O) для соединения с другими устройствами в системе автоматизации.
[3] PLC используются в различных промышленных установках для управления системами автоматизации. Системы автоматизации обычно генерируют большой объем данных в их повседневных операциях. Эти данные могут включать в себя, например, данные датчиков, исполнительных механизмов и параметров программы управления, а также информацию, ассоциированную с действиями по обслуживанию. Во время работы, PLC могут генерировать одно или несколько событий, таких как, например, сигналы тревоги или состояния системы. Эти события содержат важную информацию о процессе автоматизации, поскольку они выражают представление состояния системы.
[4] Обычные PLC очень ограничены в отношении типов событий, которые могут быть сгенерированы. Основные события статически конфигурируются и программируются на этапе проектирования. Однако многие важные события для процесса управления (например, нежесткие (программируемые) датчики или скрытые переменные управления, превышающие пороговые значения) не фиксируются автоматически, не обнаруживаются и даже не повышаются. Также очень сложно добавлять или изменять события во время выполнения. Таким образом, на этапе диагностики, инженерам очень сложно изменять переменные и правила мониторинга (контроля) для отслеживания, отладки и диагностики ошибки. Как правило, процесс производства должен быть остановлен, что, в свою очередь, приводит к высоким эксплуатационным расходам.
[5] Кроме того, полезная информация, предоставляемая событиями в обычных PLC, минимальна. Например, одним важным типом события, используемого в обычных системах, является сигнал тревоги. Сигналы тревоги используются для предупреждения об ошибках в процессе производства. Как только сигнал тревоги возникает, инженеры сначала просматривают содержание (например, тексты или свойства) события и пытаются ассоциировать его с другими одновременными событиями. Однако единственная информация, предоставляемая сигналом тревоги, - это его текстовое описание (например, ошибка качества) и ограниченные свойства (например, серьезность). Истинное понимание системы (например, такое как приобретаемое с помощью анализа причинно-следственных связей и других аналитических процессов, выполняемых над данными) требует дополнительной информации об условиях тревоги. Например, как поднят сигнал тревоги? Относится ли сигнал тревоги к производственному процессу или продукту? Ассоциирован ли сигнал тревоги с некоторыми данными датчика в реальном времени или историческими (архивными, прошлыми) данными? Существуют ли какие-либо другие события, которые могут быть релевантными (например, быть причиной) для этого сигнала тревоги? Этот тип информации недоступен в обычных системах, поскольку события изолированы и не связаны с прошлыми данными и контекстами. Вместо этого необходимо предвидение и подготовка, чтобы найти смысл в произошедшем событии.
[6] Каскады событий также плохо обрабатываются обычными системами. В настоящее время, при проектировании систем автоматизации необходимо проявлять большую осторожность, если в течение короткого промежутка времени произойдет каскад событий тревоги, в противном случае основополагающая причина (которая может не быть самым ранним обнаруженным событием) может потеряться в шуме. Знания контекста, которые связывают каскад событий, не управляются и не используются.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[7] Варианты осуществления настоящего изобретения направлены на исследование и преодоление одного или нескольких из вышеупомянутых дефектов и недостатков путем предоставления способов, систем и устройств, относящихся к интеллектуальному PLC, который генерирует расширенные события с использованием контекстуального знания о среде автоматизации. Расширенные события могут использоваться, например, для выполнения аналитики в полевых условиях.
[8] В соответствии с некоторыми вариантами осуществления настоящего изобретения, способ генерации событий на основе данных системы автоматизации в интеллектуальном PLC включает в себя сбор данных системы автоматизации посредством интеллектуального PLC и применение модели контекста к данным системы автоматизации для создания контекстуализированных данных. Интеллектуальный PLC генерирует одно или несколько событий на основе контекстуализированных данных. В некоторых вариантах осуществления, интеллектуальный PLC также извлекает исторические (прошлые) данные системы автоматизации из энергонезависимого считываемого компьютером носителя хранения данных, операционно связанного с интеллектуальным PLC. Эти прошлые данные также могут использоваться для генерации событий.
[9] В некоторых вариантах осуществления вышеупомянутого способа, интеллектуальный PLC сохраняет одно или несколько событий в базе данных событий, включенной в интеллектуальный PLC. Затем способ может дополнительно включать в себя прием, интеллектуальным PLC, запроса события, формулирование (информационного) запроса на основе запроса события и модели контекста и извлечение данных ответа из базы данных событий на основе запроса.
[10] В некоторых вариантах осуществления вышеупомянутого способа, интеллектуальный PLC выполняет процесс генерации события в цикле в течение каждого цикла управления. Этот процесс генерации события в цикле может включать, например, сбор данных системы автоматизации с использованием компонентов аналитики для определения того, существует ли условие генерации события, на основе данных системы автоматизации и генерирование одного или нескольких дополнительных событий, если условие генерации события существует. В некоторых вариантах осуществления, компоненты аналитики могут обновляться на основе одной или нескольких новых спецификаций аналитики во время рабочего цикла интеллектуального PLC. Эти спецификации аналитики могут включать в себя, без ограничения указанным, спецификации правил, рабочие процессы аналитических операций, спецификации языка разметки модели предсказания (PMML), сложные запросы и т.д. В некоторых вариантах осуществления, интеллектуальный PLC извлекает исторические данные системы автоматизации из энергонезависимого считываемого компьютером носителя хранения данных, операционно связанного с интеллектуальным PLC. Интеллектуальный PLC затем модифицирует одну или несколько спецификаций аналитики, используемых компонентами аналитики, на основе исторических данных системы автоматизации.
[11] Согласно другому аспекту настоящего изобретения, как описано в некоторых вариантах осуществления, второй способ генерации событий на основе данных системы автоматизации включает в себя выполнение интеллектуальным PLC процесса генерации события в цикле по множеству циклов управления. Этот процесс генерации события в цикле может включать в себя, например, сбор данных системы автоматизации с использованием компонентов аналитики для определения того, существует ли условие генерации события, на основе данных системы автоматизации и генерацию одного или нескольких событий, если условие генерации события существует.
[12] К вышеупомянутому второму способу могут быть применены различные дополнительные функции, улучшения или модификации. Например, в некоторых вариантах осуществления, способ дополнительно включает в себя обновление компонентов аналитики на основе новых спецификаций аналитики в течение рабочего цикла интеллектуального PLC. В некоторых вариантах осуществления, интеллектуальный PLC извлекает локально сохраненные исторические данные системы автоматизации и использует эти данные для изменения спецификаций правил, используемых компонентами аналитики.
[13] В других вариантах осуществления вышеупомянутого второго способа, интеллектуальный PLC применяет модель контекста к данным системы автоматизации и генерирует одно или несколько дополнительных событий на основе контекстуализированных данных. В некоторых вариантах осуществления, локально хранимые исторические данные системы автоматизации могут быть извлечены и использованы для генерации этих дополнительных событий. В некоторых вариантах осуществления способа, события хранятся в локальной базе данных на интеллектуальном PLC. Когда принимается запрос события, интеллектуальный программируемый логический контроллер формулирует запрос на основе запроса события и модели контекста. В свою очередь, этот запрос может использоваться для извлечения данных ответа из базы данных событий.
[14] Согласно другим вариантам осуществления настоящего изобретения, интеллектуальный PLC включает в себя процессор, сконфигурированный, чтобы работать в соответствии с циклом управления, энергозависимый считываемый компьютером носитель хранения данных, содержащий область изображения процесса, энергонезависимый считываемый компьютером носитель хранения данных, и компоненты контроллера, исполняемые процессором в соответствии с циклом управления. Эти компоненты контроллера включают в себя компонент переноса данных, сконфигурированный, чтобы обновлять область изображения процесса, в течение каждого цикла управления, содержимым, содержащим данные системы автоматизации. Компоненты контроллера также включают в себя компонент контекстуализации, сконфигурированный, чтобы применять модель контекста к данным системы автоматизации для создания контекстуализированных данных и генерировать одно или несколько событий на основе контекстуализированных данных. В некоторых вариантах осуществления, эти события основаны на исторических данных системы автоматизации. Кроме того, компоненты контроллера включают в себя компонент ʺисторикаʺ, содержащий базу данных событий, сконфигурированную для хранения одного или нескольких событий на энергонезависимом считываемом компьютером носителе хранения данных.
[15] В некоторых вариантах осуществления, компонент контекстуализации, используемый в вышеупомянутом интеллектуальном PLC, включает в себя дополнительную функциональность. Например, в одном варианте осуществления, компонент контекстуализации дополнительно сконфигурирован, чтобы выполнять процесс генерации события в цикле в течение каждого цикла управления. Этот процесс генерации события в цикле может включать в себя, например, использование компонентов аналитики для определения того, существует ли условие генерации события, на основе данных системы автоматизации и генерацию одного или нескольких дополнительных событий, если условие генерации события существует. В некоторых вариантах осуществления, компоненты аналитики обновляются на основе новых спецификаций аналитики во время рабочего цикла. В других вариантах осуществления компонент контекстуализации дополнительно сконфигурирован, чтобы извлекать исторические данные системы автоматизации из компонента ʺисторикаʺ и изменять одну или несколько ранее полученных спецификаций аналитики, используемых компонентами аналитики, на основе исторических данных системы автоматизации. В еще одном варианте осуществления, компонент контекстуализации дополнительно сконфигурирован, чтобы использовать модель контекста для формулирования запросов на основе принятых запросов события для извлечения данных ответа из базы данных событий.
[16] Дополнительные признаки и преимущества изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, представленного ниже со ссылками на приложенные чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[17] Вышеизложенные и другие аспекты настоящего изобретения будут более понятны из последующего детального описания при изучении во взаимосвязи с приложенными чертежами. Для иллюстрации изобретения на чертежах показаны варианты осуществления, которые являются предпочтительными в настоящее время, однако следует понимать, что изобретение не ограничено конкретным раскрытым инструментарием. На чертежах представлено следующее:
[18] Фиг. 1 представляет системное представление интеллектуальных PLC, интегрированных в систему автоматизации, в соответствии с некоторыми вариантами осуществления настоящего изобретения;
[19] Фиг. 2 представляет иллюстрацию компонентов системы, включенных в интеллектуальный PLC, который может использоваться для генерации расширенных событий в соответствии с некоторыми вариантами осуществления настоящего изобретения;
[20] Фиг. 3 представляет пример базы данных событий для процесса управления сборкой дверей;
[21] Фиг. 4 представляет процесс, в котором расширенные события генерируются, сохраняются и используются интеллектуальным PLC в соответствии с некоторыми вариантами осуществления настоящего изобретения;
[22] Фиг. 5 иллюстрирует примерный набор моделей 500 контекста, который может использоваться интеллектуальным PLC в некоторых вариантах осуществления;
[23] Фиг. 6А представляет высокоуровневый обзор моделей, которые могут быть применены в некоторых вариантах осуществления;
[24] Фиг. 6В показывает расширение высокоуровневой модели событий, показанной на Фиг. 6A;
[25] Фиг. 6C показывает модель события, связанную с моделями управления и моделями ресурсов (цифровых объектов);
[26] Фиг. 7А показывает правило для генерации события проблемы качества двери;
[27] Фиг. 7В показывает правило для генерации события аномалии управления позиционированием;
[28] Фиг. 7C показывает правило, которое связывает событие качества двери и событие аномалии управления позиционированием;
[29] Фиг. 7D показывает пример того, как компонент аналитики в цикле запускает событие.
ПОДРОБНОЕ ОПИСАНИЕ
[30] Здесь описаны системы, способы и устройства, которые в целом относятся к PLC, который представляет собой интеллектуальный PLC, который генерирует расширенные события с использованием контекстуального знания о среде автоматизации. Более конкретно, описанная здесь технология позволяет использовать в PLC данные (например, изображение процесса и ʺhistorianʺ (историк) ввода, вывода, данные нежестких датчиков и т.д.) и знания контекста (например, знание управления, модель установки и т.д.), чтобы инициировать события, доступные на уровне управления. Эти события, называемые здесь ʺрасширенными событиямиʺ, могут основываться на фиксированных свойствах, а также на логике динамического контролирования (например, правилах), которая может использовать информацию, полученную из исторических данных. В обычных системах автоматизации, события обычно ограничиваются сигналами тревоги. Однако в процессе управления может быть много других важных ситуаций, которые должны быть задокументированы и записаны исторические данные (заархивированы). Например, тот факт, что продукт был успешно обработан машиной и передан на следующий этап процесса, является важным. Расширенное событие может быть использовано для захвата этого и присоединения дополнительной важной информации, такой как энергия, потребленная машиной для данного продукта, качество продукта, параметры производственного процесса, такие как конфигурация машины и т.д. Для последующей аналитики данных, такой как расчет KPI на уровне SCADA/MES, такие события упрощают сбор и подготовку данных.
[31] Различные варианты осуществления настоящего изобретения описаны в контексте PLC, который включает в себя различные компоненты, сконфигурированные для обеспечения набора расширенных функций в приложениях управления. Данный PLC, называемый здесь ʺинтеллектуальным PLCʺ, более подробно описан в заявке США № 14/467,125, озаглавленной ʺIntelligent Programmable Logic Controllerʺ, которая полностью включена в настоящий документ посредством ссылки. Вкратце, интеллектуальный PLC предлагает несколько технических признаков, которые могут присутствовать в различных комбинациях, и использует различные варианты осуществления настоящего изобретения. Интеллектуальный PLC обеспечивает эффективное хранение данных на устройствах уровня управления. Более конкретно, функциональность уровня управления может быть расширена за счет эффективного механизма хранения данных временных рядов (т.е. функции историка), что позволяет осуществлять кратко-/среднесрочное архивирование данных с высоким разрешением с временными метками. В случае данных высокой точности не происходит потери событий. Эффективные алгоритмы сжатия (например, разновидность ʺкачающейся двериʺ (swinging door)) могут использоваться для уменьшения требований к хранению и связи. Интеллектуальный PLC может также предлагать интеллектуальный способ генерации данных на устройстве в некоторых вариантах осуществления. Способы фильтрации данных могут применяться непосредственно там, где генерируются данные, чтобы гарантировать, что дополнительные данные будут храниться только в том случае, если они предоставляют дополнительное информационное содержание. Эти способы также могут активно анализировать входящие данные и конфигурировать сбор данных в соответствии с текущими потребностями, например, путем коррекции частоты дискретизации или путем сохранения данных только в случае обнаружения определенных событий. Интеллектуальный PLC также может обеспечивать возможность обогащенной и семантической контекстуализации и выполнять семантическую аналитику уровня управления. Кроме того, в некоторых вариантах осуществления, интеллектуальный PLC также обеспечивает распределенную аналитику в системах автоматизации.
[32] Как описано в различных вариантах осуществления, раскрытых здесь, интеллектуальный PLC может быть сконфигурирован для генерации расширенных событий. Расширенное событие в интеллектуальном PLC содержит идентификатор, время начала и окончания и некоторое описание. Кроме того, следующая контекстная информация может включать одно или несколько из следующих полей: occursAtAsset (ресурс, в котором происходит событие); occursDuringProcess (текущий процесс автоматизации); OccursOnProduct (продукт, который должен быть произведен); type (типы события, ошибка позиционирования или ошибка калибровки); и cause-by (какое другое событие инициирует данное событие). Свойства события не ограничены приведенным выше списком. В интеллектуальном PLC, свойства событий можно динамически добавлять на основе спецификаций аналитики (например, спецификаций правил, рабочего процесса аналитических операций, спецификаций языка разметки модели предсказания (PMML), сложных запросов и т.д.), которые можно динамически изменять во время выполнения (в течение рабочего цикла).
[33] Фиг. 1 предоставляет системное представление интеллектуальных PLC, интегрированных в систему 100 автоматизации, в соответствии с некоторыми вариантами осуществления настоящего изобретения. Этот пример концептуально разделяет промышленную среду на уровень 105 производства, уровень 110 управления и IT-уровень 115. В обычных системах, большинство функций обработки данных выполняются на IT-уровне 115. Используя интеллектуальные PLC 110E и 110F, система 100, показанная на фиг. 1 продвигает многие из этих функций обработки данных вниз до уровня 110 управления. Например, в некоторых вариантах осуществления, возможности историка, такие как эффективное сжатие данных для данных временных рядов и интеллектуальная фильтрация данных, могут быть реализованы непосредственно на интеллектуальных PLC 110E и 110F. Это позволяет уровню 110 управления использовать данные высокой точности с меньшими затратами на хранение/связь, так что мало событий (если это имеет место) остаются необнаруженными. В некоторых вариантах осуществления, интеллектуальные PLC 110Е и 110F также обеспечивают функциональность обогащенной контекстуализации. За счет добавления знаний уровня управления к данным, может не потребоваться повторное обнаружение знания в бизнес-аналитике 115C на IT-уровне 115. Кроме того, расширенные события могут генерироваться на основе этих данных на уровне 110 управления и пропускаться на IT-уровень 115. Кроме того, в некоторых вариантах осуществления, интеллектуальные PLC 110Е и 110F могут генерировать события, используя функциональные возможности аналитики данных, реализованные непосредственно на соответствующем устройстве, тем самым увеличивая эффективность машины и процесса.
[34] Продолжая ссылаться на фиг. 1, на уровне 105 производства действуют один или несколько производственных блоков (например, блок 105А). Каждый производственный блок отправляет и принимает данные через одно или несколько полевых устройств (например, полевое устройство 110А) на уровне 110 управления. На уровне управления 110 каждое полевое устройство может быть соединено с интеллектуальным PLC (например, интеллектуальным PLC 110Е). Данные, полученные от производственных блоков, передаются (либо напрямую полевыми устройствами, либо через интеллектуальный PLC) на IT-уровень 115. IT-уровень 115 включает в себя системы, которые выполняют различные задачи постобработки и хранения. Пример на фиг. 1 включает в себя компонент 115A сервера (или шлюза) диспетчерского управления и сбора данных (SCADA). Этот компонент 115A позволяет оператору дистанционно контролировать и управлять устройствами на уровне 110 управления и уровне 105 производства. Кроме того, компонент 115A сервера SCADA собирает данные из нижних уровней 105, 110 и обрабатывает информацию, чтобы сделать ее доступной для единого хранилища знаний 115В установки. Единое хранилище знаний 115В установки обеспечивает дополнительную обработку и хранение данных, полученных от нижних уровней 105, 110. Различные функциональные возможности могут предоставляться единым хранилищем знаний 115В установки. Например, в некоторых вариантах осуществления, единое хранилище знаний 115B установки включает в себя функциональные возможности для генерации аналитики на основе данных, генерируемых нижними уровнями 105, 110.
[35] Каждый интеллектуальный PLC 110E и 110F включает в себя три основные части: процессор, систему не-временной (нетранзиторной), энергонезависимой памяти и соединитель линий передачи данных, обеспечивающий функциональность ввода/вывода. Система энергонезависимой памяти может принимать различные формы, включая, например, съемную карту памяти или флэш-накопитель. Приложения, которые могут выполняться в интеллектуальных PLC 110Е и 110F, более подробно описаны ниже со ссылкой на фиг. 2. Соединитель линий передачи данных интеллектуального PLC 110E соединен (проводным или беспроводным способом) с полевыми устройствами 110A и 110B. Аналогично, соединитель линий передачи данных интеллектуального PLC 110F соединен с полевыми устройствами 11°C и 110D. Любые полевые устройства, известные в данной области техники, могут использоваться с описанным здесь интеллектуальным PLC. Примеры полевых устройств, которые могут использоваться с интеллектуальным PLC, включают, без ограничения, реле давления, датчики, кнопки, переключатели потока и переключатели уровня. Отметим, что интеллектуальные PLC 110E и 110F могут быть интегрированы в производственную среду по частям. Например, на фиг. 1, производственные блоки 105B и 105C соединены через их соответствующие полевые устройства с интеллектуальными PLC 110E и 110F, в то время как производственные блоки 105A и 105D осуществляют связь непосредственно через их соответствующие полевые устройства 110G, 110H, 110I, 110J с единым хранилищем знаний 115B установки.
[36] Интеллектуальные PLC 110Е и 110F могут обогащать данные, используя дополнительные размерности контекста по сравнению с системами предшествующего уровня техники (например, знания управления, условия окружающей среды и сфера действия служб). Это позволяет анализировать данные с большей уверенностью и качеством. В свою очередь, интеллектуальные PLC 110E и 110F имеют более разнообразный набор знаний для генерации расширенных событий. В некоторых вариантах осуществления, система 100 использует языки представления семантических данных и стандарты для контекстуализации данных в системах автоматизации. Это позволяет сконфигурировать бизнес-аналитику, а также историков уровня SCADA (например, инфраструктуру ресурсов OSI PI) с минимальными усилиями для интеграции с данными из других систем/устройств/источников. Кроме того, система 100 может предоставлять основанную на модели аналитику семантики на уровне 110 управления. Таким образом, аналитические алгоритмы могут быть обновлены во время работы устройства, а анализ главных причин может быть улучшен путем предоставления явного доступа к моделям (вместо компилируемой логики в функциональном блоке). В некоторых вариантах осуществления, система 100 вводит распределенную систему совместного использования данных на уровне 110 управления и интегрируется с внешними инфраструктурами больших данных. Таким образом, приложения могут получить доступ ко всем требуемым данным независимо от места их хранения.
[37] В дополнение к типичным входам датчиков и выходам управления, переданным на IT-уровень 115 или уровень 105 производства, интеллектуальные PLC 110Е и 110F могут хранить, использовать и архивировать параметры и переменные локального уровня управления, которые в обычных системах автоматизации скрыты внутри уровня 110 управления (то есть, нежесткие датчики).
[38] Расширенные события могут использоваться интеллектуальными PLC 110E и 110F для аналитики в поле на уровне 110 управления для использования знаний управления и другой информации контекста. Например, путем анализа ряда релевантных событий, главная причина проблемы качества сборки двери может быть идентифицирована в качестве ошибки считывания датчика штрих-кода опоры. Расширенные события создают ссылки на ресурс (например, датчик), данные на основе времени (например, аномально-высокое значение управляющей переменной) и окончательную ошибку качества. Рассматривая контекст как часть свойств события, расширенные события могут помочь понять: время простоя и общую эффективность оборудования (OEE), отклонения, запуски, выключения и т.д. Например, вопросами, связанными с DOWNTIME (временем простоя), на которые база данных может помочь ответить, являются: как часто конкретный ресурс не работает, каковы причины простоя и какие из этих причин следует решать в первую очередь?
[39] На Фиг. 2 представлена иллюстрация компонентов системы, включенных в интеллектуальный PLC 200, который может использоваться для генерации расширенных событий в соответствии с некоторыми вариантами осуществления настоящего изобретения. Компонент 225 изображения процесса представляет собой область памяти в энергозависимой системной памяти CPU контроллера, которая обновляется в каждом цикле обработки/сканирования на основе данных, ассоциированных с производственными устройствами (например, входы и выходы соединенных I/O). На каждом этапе обработки, приложение 230 управления считывает компонент 225 изображения процесса, выполняет развернутую прикладную логику и записывает результаты обратно в компонент 225 изображения процесса. Компонент 225 изображения процесса может включать в себя различные системные события и сигналы тревоги, которые используются в обычных системах автоматизации. Эти системные события и сигналы тревоги программируются вручную на этапе проектирования и не могут быть изменены без вывода из эксплуатации проекта автоматизации.
[40] Продолжая ссылаться на фиг. 2, изображение процесса каждого цикла считывается и постоянно сохраняется на энергонезависимом физическом носителе хранения данных компонентом 220 историка. В некоторых вариантах осуществления этот компонент 220 историка сконфигурирован для развертывания алгоритмов сжатия данных для уменьшения объема данных. Таким образом, он может предоставлять приложениям доступ к изображениям прошлых процессов. Данные могут храниться либо в течение фиксированного временного окна, либо для реализации эвристики динамического кэширования используются онлайн-алгоритмы. Как часть компонента 220 историка, интеллектуальные алгоритмы генерации данных могут непрерывно анализировать изображение процесса и контекст для коррекции параметров генерации данных (например, частоты дискретизации) соединенных I/O. Например, для быстрого изменения сигналов датчика может быть выбрана высокая частота дискретизации, тогда как для медленно меняющихся сигналов датчика достаточна более низкая частота дискретизации.
[41] Компонент 205 аналитики данных содержит набор алгоритмов анализа данных, которые обрабатывают текущие или прошлые изображения процессов (запрошенные из историка). В компонент 205 аналитики данных могут быть включены различные алгоритмы анализа данных. Например, в некоторых вариантах осуществления эти алгоритмы включают в себя один или несколько алгоритмов кластеризации, классификации, выводов на основе логики и статистического анализа. Более того, алгоритмы могут быть заданы с помощью модели, которая может быть развернута во время выполнения на устройстве. Компонент 205 аналитики данных может также включать различные аналитические модели и специальные алгоритмы для интерпретации этих моделей. Результаты, сгенерированные компонентом 205 аналитики данных, могут сохраняться в компонент 220 историка, записываться обратно в компонент 225 изображения процесса и/или предоставляться внешним компонентам через компонент 210 соединителя данных. Таким образом, интеллектуальный PLC может рассматриваться как устройство для предоставления распределенной аналитики другим устройствам в системе автоматизации.
[42] Компонент 205 аналитики данных включает в себя модуль 250 аналитики в цикле и модуль 245 аналитики вне цикла, которые генерируют расширенные события. Каждое расширенное событие характеризуется временем начала, временем окончания и списком атрибутов, включая указатели на фактические данные. Модуль 250 аналитики в цикле оценивает данные (например, из компонента 225 изображения процесса или компонента 220 историка) с высокой частотой в каждом цикле управления. Если удовлетворены определенные условия, будет сгенерировано расширенное событие. Например, в некоторых вариантах осуществления, модуль 250 аналитики в цикле может содержать встроенный механизм (процессор) правил, который оценивает данные входных датчиков в каждом цикле управления по некоторым спецификациям (например, правилам). Процессор правил может запускать события, если условия правил удовлетворены. Модуль 245 анализа вне цикла работает аналогично модулю 250 аналитики в цикле. Однако, поскольку вычисления аналитики выполняются вне нормального цикла обработки с помощью модуля 245 аналитики вне цикла, модуль 245 аналитики вне цикла может генерировать расширенные события с использованием вычислений аналитики, которые занимают больше одного цикла управления.
[43] После того, как расширенные события сгенерированы из компонента 205 аналитики данных, они хранятся в базе 255 данных событий в компоненте 220 историка. Подобно историческим данным, как только расширенные события сохранены, они могут быть запрошены внешними компонентами (например, IT-уровнем) через компонент 210 соединителя линии передачи данных или компонентом 205 аналитики данных для дальнейшей аналитики (например, для анализа главных причин). В некоторых вариантах осуществления, кадр события может использоваться для архивирования (ʺисторизацииʺ) любого расширенного события, определенного набором правил, применяемых к значениям компонента 220 историка и компонента 225 изображения процесса.
[44] В отличие от данных временных рядов расширенные события являются менее частыми, содержат несколько полей (например, имя, время, связанные события и т.д.) и не обязательно должны быть сжаты. Таким образом, в некоторых вариантах осуществления, реляционная база данных может использоваться в качестве базы 255 данных событий. Системы управления реляционными базами данных обеспечивают структурированный и эффективный доступ к данным в соответствии с различными полями событий и, следовательно, обеспечивают эффективный доступ к определенным событиям. На фиг. 3 представлен пример базы данных событий для процесса управления сборки двери. Все события хранятся вместе с данными историка на носителе хранения данных (например, SD-карте) интеллектуального PLC. Отметим, что каждая запись события содержит знание контекста в его свойствах, таких как атрибуты occursAtAsset, attributesDuringProcess и causedBy.
[45] Интеллектуальный PLC 200 также включает в себя группу нежестких датчиков 265. Каждый нежесткий датчик обеспечивает доступ к переменной уровня управления, которая обычно не будет доступна вне интеллектуального PLC 200. Таким образом, путем динамической активации конкретного нежесткого датчика, данные могут быть доступны, например, через компонент 210 соединителя линий передачи данных. Дополнительная информация о нежестких датчиках может быть найдена в международной заявке № PCT/US14/63105, озаглавленной ʺUsing Soft-Sensors in a Programmable Logic Controllerʺ, которая полностью включена в настоящий документ посредством ссылки.
[46] Компонент 215 контекстуализации аннотирует входящие данные с помощью информации контекста, чтобы облегчить ее последующую интерпретацию. Информация контекста, как используется здесь, может включать в себя любую информацию, которая описывает значение данных. Например, контекст данных в системах автоматизации может включать информацию об устройстве, которое генерировало данные (например, датчике), о структуре системы автоматизации (например, топологии установки), о рабочем режиме системы (например, время простоя), о программном обеспечении автоматизации и его статусе при генерации данных и/или о продукте/партии, которые были произведены во время генерации данных. Компонент контекстуализации сконфигурирован, чтобы предоставлять данные любому из других компонентов для конкретных потребностей обработки. Информация контекста, генерируемая компонентом 215 контекстуализации, может не ограничиваться структурой ресурса, но может также включать в себя знание управления, специфическую для продукта информацию, информацию о процессе, информацию о событиях и потенциально другие аспекты таких внешних событий, как метеоинформация. Некоторая информация контекста может быть импортирована из инструментария инжиниринга (например, Siemens Totally Integrated Automation tools (Полностью интегрированный инструментарий автоматизации от компании Siemens)). Кроме того, в некоторых вариантах осуществления компонент 215 контекстуализации обеспечивает семантическую контекстуализацию. Контекст может быть представлен стандартным языком моделирования (например, язык описания онтологий Web, структура описания ресурса (стандарт RDF)), где формально определяется значение языковых конструкций. Контекстуализация данных с помощью этих стандартов семантического моделирования позволяет приложениям бизнес-аналитики автоматически понимать и интерпретировать данные, предоставляемые системой автоматизации, без усилий, направленных на ручное конфигурирование.
[47] Модель 240 события включена в компонент 215 контекстуализации. Модель 240 события связана с другими контекстами, такими как контекст ресурсов и управления (см. фиг. 5). Контекст предоставляется компоненту 205 аналитики данных для генерации событий. Например, событие ошибки позиционирования может быть ассоциировано с переменной управления (нежесткого датчика/переменной управления в контексте управления) и датчиком штрих-кода опоры (датчик в модели ресурса). Событие ошибки позиционирования генерируется во время выполнения с данной информацией контекста.
[48] С использованием функциональных возможностей компонента 205 аналитики данных и компонента 215 контекстуализации, описанных здесь, объем анализа и оптимизации может быть расширен, чтобы охватывать сами производственные процессы и не ограничивается самим интеллектуальным PLC или областью непосредственно управляемых устройств. Например, фокус аналитики на интеллектуальном PLC может быть направлен не только на обеспечение функционирования интеллектуального PLC и его подсоединенных датчиков и исполнительных механизмов (например, специфических для аппаратных средств расширенных событий), но и на оптимизацию управляемого производственного процесса в более широком контексте (например, на основе знания области и инфраструктуры применения).
[49] Любые данные, собранные или сгенерированные компонентами интеллектуального PLC 200 (включая расширенные события), могут быть предоставлены внешним компонентам через компонент 210 соединителя линий передачи данных. В некоторых вариантах осуществления, компонент 210 соединителя линий передачи данных доставляет данные посредством методологии продвижения (проталкивания) (т.е. посредством активной отправки на внешний компонент). В других вариантах осуществления может использоваться методология вытягивания (извлечения), когда данные запрашиваются внешним компонентом. Кроме того, в некоторых вариантах осуществления, методологии продвижения и извлечения могут быть объединены, так что интеллектуальный PLC сконфигурирован для обработки обеих форм переноса данных.
[50] Фиг. 4 представляет процесс 400, в котором расширенные события генерируются, сохраняются и используются интеллектуальным PLC в соответствии с некоторыми вариантами осуществления настоящего изобретения. Начиная с этапа 405, входящие данные собираются с устройств автоматизации (например, датчиков) и других внешних систем. Эти данные могут включать в себя, например, данные временных рядов, события управления, сигналы тревоги и другие структурированные (например, реляционные данные) и неструктурированные данные (например, сообщения, тексты). Затем, на этапе 410, данные используются для обновления компонента аналитики в цикле в интеллектуальном PLC (см. фиг. 2), который непрерывно контролирует и анализирует данные в своем активном окне, чтобы генерировать новые события. В некоторых вариантах осуществления, генерация событий выполняется с помощью спецификации, например, с использованием определенных правил или шаблонов.
[51] В дополнение к аналитике в цикле, выполняемой на этапе 410, данные сохраняются в компоненте историка на интеллектуальном PLC. Процесс хранения начинается на этапе 430, где данные сжимаются, например, с использованием одного или нескольких методов сжатия, общеизвестных в данной области техники. Затем, на этапе 435, сжатые данные аннотируются и обрабатываются в соответствии с релевантными моделями контекста, доступными в качестве онтологий в стандартном языке онтологий (например, RDF, OWL, стандартизированных посредством W3C). В некоторых вариантах осуществления, обработка, выполняемая на этапе 435, выполняется путем явной генерации семантических данных в качестве экземпляров онтологии. В некоторых вариантах осуществления, это делается с использованием триад RDF. Как хорошо известно в данной области техники, базовая структура выражения в RDF представляет собой набор триад, содержащих субъект, предикат и объект. Каждый предикат представляет собой выражение отношения между вещами, обозначенными субъектами и объектами, которые он связывает. Каждая часть триады имеет ассоциированный с ней универсальный индикатор ресурса (URI). Таким образом, URI может быть сгенерирован на этапе 435 на основе модели контекста. Затем могут быть созданы одна или несколько триад, которые кодируют отношение между этим элементом данных и другими данными в среде системы автоматизации. Альтернативно, в других вариантах осуществления, обработка на этапе 435 выполняется путем связывания идентификатора датчика, генерирующего входящие данные, с соответствующим концептом (например, классом) в онтологии, которая затем разрешается процессором запроса (см. этап 440 ниже). На этапе 440, семантически контекстуализированные данные сохраняются. В некоторых вариантах осуществления, это сохранение выполняется в историке (например, с аннотацией посредством отображения ID), тогда как в других вариантах осуществления, данные могут храниться в базе данных, созданной специально для хранения и извлечения триад (т.е. хранилище триад) с прямой аннотацией данных.
[52] Продолжая ссылаться на фиг. 4, на этапе 415, компонент аналитики вне цикла (см. фиг. 2) извлекает данные из хранилища и генерирует новые события. Поскольку этап 415 выполняется вне цикла, компонент аналитики вне цикла может непрерывно контролировать и анализировать данные в течение более длительного периода времени, чтобы генерировать новые события.
[53] После того как расширенное событие сгенерировано и обнаружено, информация контекста, требуемая для расширенного события (как определено в модели контекста), собирается из хранилища на этапе 420. Новые расширенные события с контекстами сохраняются в базе данных событий. На этапе 425, события и данные в хранилище становятся доступными через процессор семантических запросов. Этот процессор может выполнять запрос, сформулированный в отношении семантической модели контекста (например, запрос SPARQL), и извлекать релевантные данные. В некоторых вариантах осуществления, данные хранятся непосредственно в виде семантических данных (например, как RDF в хранилище триаде), и запрос может исполняться естественным образом. В других вариантах осуществления, данные хранятся в простом историке, и запрос переводится (SPARQL -> запросы историка) на основе моделей контекстов.
[54] Следует отметить, что фиг. 4 иллюстрирует два различных пути обработки: контекстуализация данных происходит на этапах 430-440, а обработка события в цикле выполняется на этапе 410. Эти два пути обработки могут выполняться параллельно или последовательно. В некоторых вариантах осуществления, интеллектуальный PLC сконфигурирован так, чтобы предоставлять обработку на основе доступных ресурсов на интеллектуальном PLC. Например, для многопроцессорного контроллера, один процессор может быть выделен для контекстуализации, тогда как другой процессор регулирует обработку событий. И наоборот, для однопроцессорной среды, два пути обработки могут исполняться последовательно.
[55] Фиг. 5 иллюстрирует примерный набор моделей 500 контекста, который может использоваться интеллектуальным PLC в некоторых вариантах осуществления. Модель 505 процесса, модель 510 ресурсов, модель 515 материала, модель 520 событий, модель 525 управления и модель 530 среды, показанные на фиг. 5 представляют собой пять основных моделей, которые составляют структуру контекстуализации интеллектуального PLC. В отличие от всех других моделей контекстов, 505, 510, 515, 525 и 530, которые содержат статические данные, расширенные события в модели 520 событий динамически генерируются во время работы PLC. Поэтому расширенные события могут использоваться для ассоциирования/аннотирования статической контекстной информации (например, типов продуктов, топологии предприятия, информации о процессе) с данными временных рядов. Например, расширенное событие может использоваться для документирования того, что продукт Y был произведен машиной X во временном окне Z. Без этого расширенного события, очень сложно восстановить эти зависимости только на основе временных меток.
[56] Фиг. 6A-6C предоставляют графическое представление того, как модели, показанные на фиг. 5, могут применяться при регулировании процесса сборки автомобильных дверей, в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления, инструментальное средство проектирования может генерировать графику, аналогичную представленной на этих чертежах, чтобы дать инженеру возможность полностью понять контекст расширенных событий, генерируемых системой.
[57] На фиг. 6A представлен высокоуровневый обзор моделей. Событие (например, ошибка позиционирования) возникает на ресурсе (например, в датчике штрих-кода опоры), во время процесса (сборки двери) и на продукте (двери). Программа управления может инициировать событие (например, переменная управления, превышающая порог).
[58] На фиг. 6В показано расширение модели события верхнего уровня, показанной на фиг. 6А. Этот пример показывает, что событие сбоя может иметь разные типы: проблема позиционирования, проблема материала или проблема калибровки робота. Эта информация может быть предварительно определена на основе знаний предметной области или получена во время выполнения.
[59] На фиг. 6C показана модель события, связанная с моделями управления и ресурсов. В этом примере, проблема позиционирования дополнительно расширена, можно видеть, что датчик счета цикла позиционирования (нежесткий датчик) может вызвать аномалию регулирования позиционирования. Нежесткий датчик счета цикла позиционирования относится к модели управления, и он недоступен для традиционных PLC вне программы управления.
[60] Как отмечено выше со ссылкой на фиг. 2, расширенные события генерируются в компонентах аналитики в интеллектуальном PLC. В некоторых вариантах осуществления компоненты аналитики используют процессор правил для выполнения такой генерации. Процессор правил оценивает входящие данные по некоторым предопределенным правилам в каждом цикле управления. Если все его условия удовлетворены, событие будет запущено. Правила могут быть развернуты в PLC в любое время. Таким образом, правила могут быть добавлены, изменены и удалены офлайн/онлайн и развернуты во время выполнения на работающем интеллектуальном PLC. Правила оцениваются, и новые события генерируются в следующем цикле. Нет необходимости переконфигурировать и перестраивать всю систему автоматизации. Более того, в некоторых вариантах осуществления, спецификации того, как генерируются события (например, пороговое значение), обучаются во времени на основе исторических данных и событий. Эти события не основаны на фиксированных пороговых значениях, а скорее на динамических значениях, полученных обучением из исторических условий.
[61] Фиг. 7A, 7B, 7C и 7D иллюстрируют, как концепция процессора правил может применяться к конкретному примеру: процессу сборки автомобильных дверей. На фиг.7А показано правило для генерации события проблемы качества двери, если значение DoorQualitySensor выше нуля. На фиг. 7В показано правило для генерации события аномалии управления позиционированием, если значение PositionLoopCounterSensor выше 5. В этом случае positionLoopCountsensor является управляющей переменной, частью модели управления. На фиг. 7С показано правило, которое связывает событие качества двери и событие аномалии управления позиционированием. Атрибут cause-by устанавливается в событии проблемы качества двери, если оба события происходят на одной и той же двери. На фиг. 7D показан пример того, как компонент аналитики в цикле (например, процессор правил) запускает событие. Нежесткий датчик счетчика циклов для набора дверей оценивается в процессоре правил. Порог (линия 701) получают обучением из исторических данных с использованием методов машинного обучения. Инженер может использовать этот полученный обучением порог для запуска события, если значение превышает его. Это невозможно с традиционными PLC, которые должны использовать предопределенную величину или переменную для использования ее в качестве порога.
[62] Процессоры, описанные здесь как используемые устройствами уровня управления, могут включать в себя один или несколько центральных процессоров (CPU), графических процессоров (GPU) или любых других процессоров, известных в данной области техники. В общем случае, процессор, как используется здесь, представляет собой устройство для выполнения машиночитаемых инструкций, хранящихся на считываемом компьютером носителе, для выполнения задач и может содержать любую одно или комбинацию из аппаратных средств и встроенного программного обеспечения. Процессор может также содержать память, хранящую машиночитаемые инструкции, исполняемые для выполнения задач. Процессор воздействует на информацию посредством манипулирования, анализа, изменения, преобразования или передачи информации для использования исполняемой процедурой или информационным устройством и/или путем маршрутизации информации на устройство вывода. Например, процессор может использовать или включать в себя возможности компьютера, контроллера или микропроцессора и быть сконфигурирован с использованием исполняемых инструкций для выполнения функций специального назначения, не выполняемых компьютером общего назначения. Процессор может быть связан (электрически и/или как содержащий исполняемые компоненты) с любым другим процессором с обеспечением взаимодействия и/или связи между ними. Процессор или генератор пользовательского интерфейса представляют собой известный элемент, содержащий электронную схему или программное обеспечение или их комбинацию для формирования отображаемых изображений или их частей. Пользовательский интерфейс содержит одно или несколько отображаемых изображений, обеспечивающих возможность взаимодействия пользователя с процессором или другим устройством.
[63] Различные устройства, описанные здесь, включая, без ограничения, устройства уровня управления и связанную вычислительную инфраструктуру, могут включать в себя по меньшей мере один считываемый компьютером носитель или память для хранения инструкций, запрограммированных в соответствии с вариантами осуществления изобретения, и для хранения структур данных, таблиц, записей или другие данные, описанные здесь. Термин ʺсчитываемый компьютером носительʺ, как используется здесь, относится к любому носителю, который участвует в предоставлении инструкций одному или нескольким процессорам для исполнения. Считываемый компьютером носитель может принимать множество форм, включая, без ограничения указанным, не-временные, энергонезависимые носители, энергозависимые носители и среды передачи. Неограничительные примеры энергонезависимых носителей включают в себя оптические диски, твердотельные накопители, магнитные диски и магнитооптические диски. Неограничительные примеры энергозависимых носителей включают в себя динамическую память. Неограничительные примеры сред передачи включают в себя коаксиальные кабели, медный провод и волоконную оптику, включая провода, составляющие системную шину. Среды передачи могут также иметь форму акустических или световых волн, например, генерируемых при радиоволновой и инфракрасной передаче данных.
[64] Исполняемое приложение, как используется здесь, содержит коды или машиночитаемые инструкции для конфигурирования процессора для реализации предопределенных функций, таких как функции операционной системы, системы сбора данных контекста или другой системы обработки информации, например, в ответ для команду или ввод пользователя. Исполняемая процедура представляет собой сегмент кода или машиночитаемой команды, подпрограмму или другую отдельную часть кода или часть исполняемого приложения для выполнения одного или нескольких конкретных процессов. Эти процессы могут включать в себя прием входных данных и/или параметров, выполнение операций над принятыми входными данными и/или выполнение функций в ответ на принятые входные параметры и предоставление результирующих выходных данных и/или параметров.
[65] Графический пользовательский интерфейс (GUI), как используется здесь, содержит одно или несколько отображаемых изображений, генерируемых процессором отображения и позволяющих пользователю взаимодействовать с процессором или другим устройством и ассоциированными функциями сбора и обработки данных. GUI также включает исполняемую процедуру или исполняемое приложение. Исполняемая процедура или исполняемое приложение конфигурирует процессор отображения генерировать сигналы, представляющие отображаемые изображения GUI. Эти сигналы подаются на устройство отображения, которое отображает изображение для просмотра пользователем. Процессор, управляемый исполняемой процедурой или исполняемым приложением, манипулирует отображаемыми изображениями GUI в ответ на сигналы, принимаемые от устройств ввода. Таким образом, пользователь может взаимодействовать с отображаемым изображением с помощью устройств ввода, что позволяет пользователю взаимодействовать с процессором или другим устройством.
[66] Функции и этапы процесса здесь могут выполняться автоматически, полностью или частично в ответ на команду пользователя. Операция (включая этап), выполняемая автоматически, выполняется в ответ на одну или несколько исполняемых инструкций или операцию устройства без прямого инициирования упомянутой операции пользователем.
[67] Система и процессы, показанные на чертежах, не являются исключительными. Другие системы, процессы и меню могут быть получены в соответствии с принципами изобретения для достижения тех же целей. Хотя настоящее изобретение описано со ссылкой на конкретные варианты осуществления, следует понимать, что варианты осуществления и изменения, показанные и описанные в настоящем документе, предназначены только для иллюстрации. Модификации настоящей разработки могут быть реализованы специалистами в данной области техники без отклонения от объема изобретения. Как описано в настоящем документе, различные системы, подсистемы, агенты, менеджеры и процессы могут быть реализованы с использованием компонентов аппаратных средств, компонентов программного обеспечения и/или их комбинаций. Никакой элемент пункта формулы изобретения не должен толковаться в соответствии с положениями 35 U.S.C. 112, шестой абзац, если только этот элемент явно не изложен с использованием фразы ʺсредство дляʺ.