ПОЛЬЗОВАТЕЛЬСКАЯ ПРИКЛАДНАЯ СРЕДА В УСТРОЙСТВЕ УПРАВЛЕНИЯ ПРОЦЕССОМ
USER APPLICATION ENVIRONMENT IN PROCESS CONTROL DEVICE

ОБЛАСТЬ ТЕХНИКИ
[0001]
Настоящее изобретение в целом относится к управлению автоматическими устройствами в системах управления процессом и, более конкретно, к созданию пользовательской прикладной среды в устройстве управления процессом.
УРОВЕНЬ ТЕХНИКИ
[0002]
Системы управления процессом, такие как те, которые используются в химических, нефтехимических и других технологических процессах, обычно содержат один или большее количество системных контроллеров, коммуникационно связанных с по меньшей мере одним хостом или рабочей станцией оператора и с одним или большим количеством автоматическими устройств с использованием аналоговых, цифровых или комбинированных аналоговых/цифровых шин. Автоматические устройства, которые могут быть, например, клапанами, позиционерами клапанов, переключателями и передатчиками (например, датчиками температуры, давления и  скорости потока жидкости), выполняют функции в системе управления процессом, такие как: открытие и закрытие клапанов, и измерение параметров процесса. Контроллер процесса получает сигналы, соответствующие значениям измерений процесса, выполненными автоматическими устройствами, и/или другой информации, относящейся к автоматическим устройствам, использует эту информацию для реализации управляющей процедуры, а затем генерирует управляющие сигналы, которые направляются по шинам или другим линиям связи в автоматические устройства для управления работой системы управления процессом.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003]
На ФИГ. 1 изображена иллюстративная система управления процессом.
[0004]
На ФИГ. 2 изображен иллюстративный контроллер устройства с пользовательской прикладной средой для автоматического устройства.
[0005]
На ФИГ. 3 изображена реализация иллюстративного диспетчера приложений согласно ФИГ. 2.
[0006]
На ФИГ. 4 приведена блок-схема, представляющая иллюстративный способ, который может выполняться для реализации диспетчера приложений согласно ФИГ. 2 и 3.
[0007]
На ФИГ. 5 приведена блок-схема, представляющая другой иллюстративный способ, который может выполняться для реализации диспетчера приложений согласно ФИГ. 2 и 3.
[0008]
На ФИГ. 6 приведена блок-схема иллюстративной процессорной системы, выполненной с возможностью исполнения машиночитаемых инструкций для осуществления способов, представленных на ФИГ. 4 и/или 5, с целью реализации иллюстративного диспетчера приложений на ФИГ. 2 и 3.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0009]
Примеры раскрытых способов включают коммуникационную связь контроллера устройства с хостом. Иллюстративный хост предназначен для обеспечения контроллера устройства и автоматического устройства в системе управления процессом. Описанные иллюстративные способы также включают установку приложения управления процессом в пространстве приложений в прошивке контроллера устройства. Иллюстративное приложение управления процессом предоставляется хостом с данными разрешений. Раскрытые иллюстративные способы также включают в себя выполнение приложения управления процессом в пространстве приложений. Иллюстративное приложение управления процессом расширяет функциональные возможности контроллера устройства. Описанные иллюстративные способы также включают в себя контроль доступа приложения управления процессом к физическим ресурсам контроллера устройства. Иллюстративные данные разрешений определяет, какие из физических ресурсов доступны для приложения управления процессом.
[0010]
Описанные иллюстративные контроллеры устройств, связанные с автоматическим устройством, установленным в системе управления процессом, включают диспетчер контроллера устройства, предназначенный для коммуникационного соединения контроллера устройства с хостом. Иллюстративный хост обеспечивает контроллер устройства и автоматическое устройство в системе управления процессом. Иллюстративные контроллеры устройств также содержат установщик для установки приложения управления процессом в пространстве приложений в прошивке контроллера устройства. Иллюстративное приложение управления процессом предоставляется хостом с данными разрешений. Иллюстративные контроллеры устройств также включают в себя обработчик каркаса приложения для выполнения приложения управления процессом в пространстве приложений, приложение управления процессом для расширения функциональных возможностей контроллера устройства и контролируемый доступ приложения управления процессом к физическим ресурсам контроллера устройства, данные разрешений для определения правил контроля доступа приложения управления процессом к физическим ресурсам контроллера устройства.
[0011]
Иллюстративное изделие включает инструкции, которые при их исполнении побуждают контроллер устройства коммуникационно связывать контроллер устройства с хостом. Иллюстративный хост обеспечивает контроллер устройства и автоматическое устройство в системе управления процессом. Иллюстративное изделие также включает инструкции, которые при их исполнении побуждают контроллер устройства установить приложение управления процессом в пространстве приложений в прошивке контроллера устройства. Иллюстративное приложение управления процессом предоставляется хостом с данными разрешений. Иллюстративное изделие также содержит инструкции, которые при их исполнении побуждают контроллер устройства выполнять приложение управления процессом в пространстве приложений. Иллюстративное приложение управления процессом расширяет функциональные возможности иллюстративного контроллера устройства. Иллюстративное изделие также содержит инструкции, которые при их исполнении побуждают контроллер устройства контролировать доступ приложения управления процессом к физическим ресурсам контроллера устройства. Иллюстративные данные разрешений определяют правила для контроля доступа иллюстративного приложения управления процессом к физическим ресурсам иллюстративного контроллера устройства.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0012]
Настоящее изобретение относится в целом к автоматическим устройствам в системах управления процессом и, более конкретно, к способам, устройствам и изделиям для создания пользовательской прикладной среды в устройстве управления процессом (например, контроллере устройства). Системы управления процессом содержат рабочие станции и/или серверы, которые взаимодействуют с системными контроллерами, контроллерами устройств и/или автоматическими устройствами, расположенными в системе управления процессом. В описанных здесь примерах контроллеры устройств выполняют приложения управления процессом в дополнение к основным функциям управления процессом, выполняемым прошивкой контроллеров устройств. Автоматическими устройствами могут быть, например, клапаны, позиционеры клапанов, переключатели и передатчики, и они могут выполнять функции управления процессом, такие как открытие или закрытие клапанов и измерение параметров управления процессом. В дополнение к управлению автоматическими устройствами контроллеры устройств могут генерировать данные процесса (например, информацию управления процессом) на основе информации, полученной от автоматических устройств. Данные процесса могут включать в себя статистику процесса, сигналы тревоги, данные мониторинга, информацию о тенденциях процесса, диагностическую информацию, информацию о состоянии автоматического устройства и/или сообщения от автоматических устройств. В некоторых примерах контроллеры устройств могут быть интегрированы в автоматическое устройство. В альтернативном варианте или дополнительно в некоторых примерах контроллеры устройств могут быть подключены к автоматическому устройству с использованием проводного или беспроводного соединения.
[0013]
Контроллеры устройств выполняют программы в прошивке, например, для связи с хостом (например, рабочими станциями, сервером и т.д.), поддерживают связь с автоматическим устройством и/или генерируют данные процесса. Как правило, для обновления функциональных возможностей контроллера устройства его переводят в автономный режим и обновляют прошивку. В альтернативном варианте зеркальная версия прошивки обновляется в фоновом режиме, а затем становится активной версией прошивки. Кроме того, для предоставления пользовательских функций, прошивка или модуль прошивки изменяется и рекомпилируется. Такие подходы ограничивают гибкость контроллера устройства и могут потребовать значительного количества времени и ресурсов.
[0014]
В описанных в данном документе примерах прошивка контроллера устройства содержит пространство приложений. Пространство приложений позволяет расширять и/или обновлять функциональные возможности контроллера процесса без обновления прошивки и без нарушения работы контроллера процесса. В проиллюстрированных ниже примерах, приложения управления процессом могут загружаться и выполняться в пространстве приложений без изменения прошивки или возврата автоматического устройства в точку рестарта. Чтобы обеспечить безопасность и стабильность, пространство приложений отделено от остальной части прошивки.
[0015]
Диспетчер приложений определяет пространство приложений, изолируя часть памяти (например, постоянного запоминающего устройства (ПЗУ), оперативного запоминающего устройства (ОЗУ), жесткого диска, твердотельной памяти и т.д.), в которой могут храниться приложения управления процессом, выполняемые в пространстве приложений, из которого приложения управления процессом могут считываться и/или в которое приложения управления процессом могут записываться. Кроме того, приложения управления процессом не могут считывать и/или записывать данные из других/в другие области памяти, не определенные для пространства приложений. В описанных в данном документе примерах диспетчер приложений контролирует доступ к физическим ресурсам (например, связь по сети, связь с автоматическими устройствами, датчикам, приводным механизмам и т.д.) контроллера устройства. В некоторых примерах диспетчер приложений контролирует приложение управления процессом, управляя доступом (например, доступ только для чтения, доступ для чтения и записи, возможность отправлять и/или получать сообщение хоста и т.д.) к функциям прошивки. Например, диспетчер приложений может разрешить приложению управления процессом считывать сообщения и/или данные, отправленные автоматическим устройством, но может запрещать приложению управления процессом отправлять сообщения (например, сигнал команды) автоматическому устройству. Диспетчер приложений может также управлять частотой доступа к физическим ресурсам. Например, диспетчер приложений может ограничивать частоту, с которой приложение управления процессом может отправлять сообщения хосту (например, для предотвращения случайных или вредоносных атак типа «отказ в обслуживании» и т.д.).
[0016]
В описанных в данном документе примерах приложение управления процессом связано с данными разрешений. Данные разрешений определяют доступ, который приложение управления процессом имеет к физическим ресурсам контроллера устройства. Например, данные разрешений могут указывать, что приложение управления процессом может отправлять сообщения хосту, но не автоматическому устройству. В таком примере, если приложение управления процессом содержит инструкции, предусматривающие отправку сообщения автоматическому устройству, диспетчер приложений не предоставляет соответствующие функциональные возможности приложению управления процессом. В некоторых примерах производитель может устанавливать (например, на аппаратном уровне, в прошивке и т.д.) различные политики разрешений для контроллеров устройств, изготовленных для разных клиентов. Например, клиент может решить, что в целях безопасности, приложения управления процессом, выполняемые на контроллерах устройств в определенной системе управления процессом, не должны отправлять сообщения автоматическим устройствам.
[0017]
Иллюстративные данные разрешений передается контроллеру устройства с приложением управления процессом. В некоторых примерах, если приложение управления процессом установлено, но не связано с данными разрешений, диспетчер приложений не выполняет приложение управления процессом. В некоторых примерах данные разрешений создаются при создании приложения управления процессом. В таких примерах, когда приложение управления процессом устанавливается через хост, пользователю предлагается подтвердить (например, принять) данные разрешений. В некоторых примерах данные разрешений создаются отдельно от приложения управления процессом. Например, данные разрешений могут быть созданы при установке приложения в контроллере устройства. В некоторых таких примерах на этапе установки приложения управления процессом пользователю предлагается выбрать для него разрешения.
[0018]
В некоторых примерах, чтобы вредоносные приложения не получали доступ к функциональным возможностям прошивки контроллера процесса, данные разрешений могут храниться в репозитории данных разрешений отдельно от соответствующего приложения управления процессом, и извлекаться при установке соответствующего приложения управления процессом. В некоторых таких примерах значение аутентификации предварительно вычисляется на основе приложения управления процессом. Например, приложение управления процессом может использоваться для вычисления значения хэш-функции. В указанных примерах, когда приложение управления процессом должно быть установлено через хост, новое значение аутентификации рассчитывается на основе приложения управления процессом. В таких примерах, если новое рассчитанное значение аутентификации и предварительно рассчитанное значение аутентификации совпадают, файл разрешений извлекается и передается контроллеру процесса. В этих примерах совпадение означает, что приложение управления процессом не было изменено с момента создания данных разрешений. В альтернативном варианте или дополнительно, в некоторых примерах данные разрешений содержат цифровую подпись. В указанных примерах хост и/или контроллер устройства не устанавливает данные разрешений, пока не будет проверена цифровая подпись (например, с использованием соответствующего открытого ключа).
[0019]
Диспетчер приложений также содержит обработчик каркаса приложения, который обеспечивает интерфейс между пространством приложений и прошивкой. В некоторых примерах приложение управления процессом может быть скомпилированным набором инструкций. В таких примерах обработчик каркаса приложения предоставляет приложению управления процессом в пространстве приложений доступ к библиотекам функций (например, функций связи по сети, функций связи автоматического устройства и т.д.), которые содержатся в прошивке. В некоторых примерах приложение управления процессом может быть скриптом. В таких примерах каркас приложения интерпретирует сценарий и обеспечивает доступ к функциям, содержащимся в прошивке (например, перехватчикам сценариев). В этих примерах приложение управления процессом направляет запрос (например, с использованием вызова библиотечной функции, перехватчика и т.д.) диспетчеру приложений для получения доступа к физическим ресурсам контроллера процесса, а диспетчер приложений предоставляет доступ или отклоняет запрос на основе данных разрешений, связанных с приложением управления процессом. Предоставляя доступ по запросу, диспетчер приложений разрешает вызов библиотечной функции прошивки. Например, если приложение управления процессом запрашивает считывание значения положения датчика положения на приводе клапана, диспетчер приложений извлечет это значение (например, направляя запрос прошивке для получения значения) и передаст его приложению управления процессом.
[0020]
На ФИГ. 1 изображена иллюстративная система управления процессом 100, которая может использоваться совместно с пользовательской прикладной средой в описанном в данном документе контроллере устройства. В иллюстративной системе управления процессом 100 используется архитектура управления технологическим процессом, которая объединяет одну или большее количество интеллектуальных технологических компонентов, включая промышленные шины 102 (такие как промышленные шины HART и/или FOUNDATION™), высокоскоростные дискретные шины, встроенное упреждающее регулирование и расширенное управление блоками и партиями. Промышленные шины 102 объединяют в сеть автоматические устройства 104, 106 и/или контроллеры устройств 108 в системе управления процессом 100, и обеспечивают инфраструктуру для множества приложений, включая: управление устройствами, настройку, мониторинг, диагностику и т.д.
[0021]
В проиллюстрированном примере система управления процессом 100 содержит иллюстративные автоматические устройства 104, 106, иллюстративные контроллеры устройств 108a, 108b, иллюстративный системный контроллер 110, иллюстративные устройства ввода/вывода 112a, 112b и иллюстративный хост 114. Иллюстративные устройства ввода/вывода 112a, 112b способствуют связи между иллюстративным системным контроллером 110 и иллюстративным автоматическим устройством 106 и/или иллюстративным контроллером устройства 108a. Иллюстративные устройства ввода/вывода 112а, 112b поддерживают множество модулей для связи (например, посредством цифровой и/или аналоговой связи) с множеством автоматических устройств 106 и/или иллюстративными контроллерами устройств 108a. Например, устройство ввода/вывода 112b может иметь аналоговый модуль для взаимодействия с автоматическим устройством 106 (например, трехпроводным температурным зондом и т.д.) и цифровой модуль для взаимодействия с контроллером устройства 108a. Иллюстративные устройства ввода/вывода 112а, 112b получают данные от иллюстративного автоматического устройства 106 и/или иллюстративного контроллера устройства 108a и преобразуют данные в сообщения, которые может обрабатывать иллюстративный системный контроллер 110. Кроме того, иллюстративные устройства ввода/вывода 112a, 112b преобразуют данные и/или сообщения от иллюстративного системного контроллера 110 в формат, который может обрабатываться иллюстративным автоматическим устройством 106 и/или иллюстративным контроллером устройства 108a. В некоторых примерах устройства ввода/вывода 112a, 112b и контроллер(ы) устройств(а) 108 объединены в один блок.
[0022]
Иллюстративные автоматические устройства 104, 106 могут, например, содержать один или большее количество приборов, управляющих и контролирующих текучие среды (например, жидкости, газы, полужидкие среды и т.д.) в системе управления процессом 100. Автоматические устройства 104, 106 могут, например, включать в себя клапаны, приводные механизмы, датчики, зонды, бесконтактные переключатели, пускатели двигателей, приводы и т.д. Иллюстративные контроллеры устройств 108a, 108b осуществляют управление и/или мониторинг иллюстративных автоматических устройств 104, 106. В проиллюстрированном примере контроллер устройства 108a, 108b считывает данные (например, данные датчиков и т.д.) иллюстративных автоматических устройств 104, 106 и/или подает управляющие сигналы (например, для управления положением клапана, скоростью двигателя и т.д.) иллюстративным автоматическим устройствам 104, 106. Например, контроллеры устройств 108a, 108b могут получать данные от датчика положения и/или других датчиков и могут передавать управляющие сигналы для управления клапаном и/или другими устройствами.
[0023]
Иллюстративное автоматическое устройство 104 коммуникационно связано с контроллером устройства 108a. В некоторых таких примерах контроллер устройства 108a может быть интегрирован в автоматическое устройство 104. Например, аппаратура для управления приводным механизмом на клапане может находиться в том же корпусе, что и контроллер устройства 108a. В альтернативном варианте контроллер устройства 108a может быть отделен от автоматического устройства 104. В некоторых примерах контроллер устройства 108b может быть интегрирован с устройством ввода/вывода 112b.
[0024]
В проиллюстрированном примере контроллеры устройств 108a, 108b исполняют содержание прошивки для обработки данных, полученных от иллюстративных автоматических устройств 104, 106 и/или системного контроллера 110. Иллюстративная прошивка может варьироваться от прошивки, которая обеспечивает базовые функции (например, данные отчетов, управление автоматическими устройствами 104, 106 и т.д.), до прошивки, обеспечивающей расширенные функциональные возможности (например, вычисление данных процесса, формирование предупреждающих данных и т.д.). Прошивка содержит пространство приложений, в которое загружаются приложения для осуществления управления процессом, например, из хоста 114. Приложения управления процессом расширяют функциональные возможности прошивки контроллеров устройств 108a, 108b, например, с выполнением функций, не включенных в прошивку. Например, приложения управления процессом могут вычислять данные процесса, управлять автоматическими устройствами 104, 106, формировать предупреждения и т.д. В некоторых примерах прошивка может выполнять несколько приложений управления процессом в пространстве приложений и/или предоставлять несколько пространств приложений. В некоторых примерах прошивка контроллеров устройств 108a, 108b может иметь базовые функциональные возможности (например, считывание данных датчика/составление на их основе отчетов, формирование управляющих сигналов и т.д.), а приложения управления процессом в пространстве приложений могут использоваться для настройки, согласно потребностям клиента, функциональных возможностей контроллеров устройств 108a, 108b. Таким образом, потребность в обновлениях прошивки уменьшается, и увеличивается возможность настройки согласно потребностям клиента функциональных возможностей контроллеров устройств 108a, 108b.
[0025]
Иллюстративный системный контроллер 110 соединен с иллюстративным хостом 114 через проводную или беспроводную сеть (например, LAN, WAN, Интернет и т.д.). Иллюстративный системный контроллер 110 управляет процедурами для вычисления данных процесса на основе выходных данных от автоматических устройств 104, 106 и/или контроллеров устройств 108a, 108b для приложений управления процессом, включая, например, приложения для мониторинга, управления аварийными сигналами, определения тенденций процесса и/или формирования хронологий данных, диагностические приложения, приложения пакетной обработки и/или управления кампаниями, статистические приложения, приложения для потоковой передачи видео, расширенные приложения управления, приложения работы с приборно-измерительным оборудованием для обеспечения безопасности, приложения для обработки событий и т.д. Системный контроллер 110 пересылает данные процесса хосту 114 периодически, через определенные промежутки времени и/или после обработки или формирования данных процесса. Данные процесса, переданные системным контроллером 110, могут содержать значения управления процессом, значения данных, информацию о тревоге, текст, информацию о статусе элемента в блочном режиме, диагностическую информацию, сообщения об ошибках, параметры, события и/или идентификаторы устройств.
[0026]
В примере, проиллюстрированном на ФИГ. 1, хост 114 может содержать одну или большее количество рабочих станций 116 и/или серверов 118 для выполнения приложений управления системой. Приложения управления системой взаимодействуют с иллюстративным контроллером 110 для контроля, управления и/или диагностики иллюстративных контроллеров устройств 108a, 108b и/или иллюстративных автоматических устройств 104, 106 в системе управления процессом 100. Например, приложения управления процессом могут включать в себя автоматизацию управления, графические представления системы управления процессом 100, управление изменениями, внесение изменений в управление процессом, сбор данных, анализ данных и т.д. В некоторых примерах рабочая станция 116 отображает приложения управления системой с использованием пользовательского интерфейса для представления данных процесса в графическом формате, позволяющем пользователю рабочей станции 116 просматривать в графическом виде (с помощью приложения) данные процесса, генерируемые иллюстративными контроллерами устройств 108a, 108b и/или иллюстративными автоматическими устройствами 104, 106. В некоторых примерах, при выполнении приложения управления процессом на сервере 118 оператор может установить удаленное соединение с рабочей станции (например, с рабочей станции 116) с сервером 118 для обеспечения доступа к приложению управления процессом.
[0027]
Иллюстративный хост 114 содержит иллюстративную базу данных приложений 120. В иллюстративной базе данных приложений 120 хранятся приложения управления процессом, которые могут быть установлены в пространстве приложений прошивки одного или большего количества контроллеров устройств 108a, 108b в системе управления процессом 100. В некоторых примерах рабочая станция 116 может использоваться для управления установкой и удалением приложений управления процессом в контроллере устройства 108a, 108b. Чтобы установить приложение управления процессом, рабочая станция 116 отправляет (например, путем блочной передачи) приложение управления процессом из базы данных приложений 120 в контроллер устройства 108a, 108b через системный контроллер 110 и устройства ввода/вывода 112a, 112b.
[0028]
В проиллюстрированном примере на ФИГ. 1 иллюстративный хост 114 содержит иллюстративную базу данных разрешений 122. Данные разрешений определяют доступ приложения управления процессом к физическим ресурсам контроллеров устройств 108a, 108b и/или логические условия, которые регулируют, когда приложение управления процессом имеет доступ к физическим ресурсам контроллеров устройств 108a, 108b. Например, данные разрешений могут указывать, что приложение управления процессом может отправлять сообщения хосту 114, но не может отправлять управляющие сигналы устройства автоматическим устройствам 104, 106. В качестве другого примера данные разрешений могут указывать, что приложение управления процессом может связываться с автоматическим устройством 104, 106 при получении сообщения, предоставляющего такой доступ, от хоста 114. Данные разрешений отправляются контроллерам устройств 108a, 108b, когда приложение управления процессом направляется в контроллеры устройств 108a, 108b. В некоторых примерах, если приложение управления процессом установлено в контроллере устройства 108a, 108b, но не связано с данными разрешений, прошивка контроллера устройства 108a, 108b не будет выполнять приложение управления процессом.
[0029]
В некоторых примерах данные разрешений создаются при создании приложения управления процессом. В некоторых примерах, прежде чем приложение управления процессом будет отправлено контроллеру устройства 108a, 108b через хост 114, пользователю будет предложено принять данные разрешений. Например, рабочая станция 116 может отображать данные разрешений, связанные с приложением управления процессом, и может предоставлять кнопку для нажатия пользователем с целью приема данных разрешений. В некоторых примерах, если пользователь не принимает данные разрешений, хост 114 не отправляет приложение управления процессом в контроллер устройства 108a, 108b. В некоторых примерах данные разрешений генерируются через хост 114 отдельно от приложения управления процессом. Например, пользователю может быть предложено выбрать данные разрешений, когда приложение управления процессом отправляется контроллеру устройства 108a, 108b. Например, рабочая станция 116 может отображать возможные разрешения (например, считывать из автоматического устройства 104, 106, записывать в автоматическое устройство 104, 106 и т.д.), которые могут быть включены в данные разрешений и позволяют пользователю выбирать, какие разрешения включать в данные разрешений.
[0030]
В некоторых примерах производитель контроллера устройства 108a, 108b включает данные разрешений в контроллер устройства 108a, 108b в процессе производства контроллера устройства 108a, 108b. В некоторых таких примерах данные разрешений, установленные производителем, используются приложениями управления процессом, выполняемыми в контроллере устройства 108a, 108b. Например, данные разрешений в контроллере устройства 108a, 108b могут не позволять приложению управления процессом, установленному в контроллере устройства 108a, 108b, считывать данные из соответствующего автоматического устройства 104, 106 и/или записывать данные в соответствующее автоматическое устройство 104, 106. В таком примере приложения управления процессом не могут получить доступ к соответствующему автоматическому устройству 104 независимо от разрешений, установленных данными разрешений, связанными с конкретным приложением управления процессом.
[0031]
В некоторых примерах, чтобы запретить вредоносным приложениям управления процессом получать доступ к функциональным возможностям прошивки, когда приложение управления процессом отправляется контроллеру устройства 108a, 108b, данные разрешений, хранящиеся в базе данных разрешений 122, отправляются отдельно. В некоторых примерах ожидаемое значение аутентификации (например, значение хэш-функции и т.д.) предварительно вычисляется и сохраняется в базе данных разрешений 122. Например, после того, как приложение управления процессом записано, в нем может использоваться хеш-функция для получения ожидаемого значения аутентификации. В таких примерах, когда приложение управления процессом должно быть установлено через хост 114, новое значение аутентификации рассчитывается на основе приложения управления процессом. В таких примерах данные разрешений извлекаются и передаются контроллеру процесса 108a, 108b, если вновь вычисленное значение аутентификации и ожидаемое значение аутентификации совпадают. В альтернативном варианте или дополнительно, в некоторых примерах данные разрешений, хранящиеся в базе данных разрешений 122, содержат цифровую подпись, сгенерированную с использованием закрытого ключа в соответствии со стандартом цифровой подписи (digital signature standard, DSS). В таких примерах, когда данные разрешений принимаются от хоста 114, контроллер устройства 108a, 108b управления проверяет цифровую подпись с использованием открытого ключа, соответствующего закрытому ключу. В таких примерах, если цифровая подпись проверена, контроллер устройства 108a, 108b устанавливает данные разрешений. В противном случае, в таких примерах, если цифровая подпись не подтверждена, контроллер устройства 108a, 108b отбрасывает данные разрешений.
[0032]
На ФИГ. 2 показано иллюстративная реализация контроллера устройства 108 с прошивкой 202, содержащей иллюстративное пользовательское пространство приложений 204 для выполнения приложений управления процессом 206. В проиллюстрированном примере контроллер устройства 108 содержит иллюстративную прошивку 202 и иллюстративные физические ресурсы 208. В проиллюстрированном примере физические ресурсы 208 включают в себя: иллюстративный процессор 210, иллюстративную память 212, иллюстративное энергонезависимое хранилище 214 (например, флэш-память, жесткий диск и т.д.), иллюстративные датчики 216, иллюстративную шину ввода/вывода 218 и иллюстративный ввод/вывод автоматического устройства 220. Иллюстративная прошивка 202 содержит иллюстративное пространство приложений 204, иллюстративный диспетчер приложений 222 и иллюстративный диспетчер контроллера устройства 224.
[0033]
Иллюстративный диспетчер контроллера устройства 224 содержит функции для использования физических ресурсов 208. Например, диспетчер контроллера устройства 224 может отправлять и принимать сообщения хоста 114 (ФИГ. 1) через шину 102 (ФИГ. 1). В некоторых примерах диспетчер контроллера устройства 224 может также иметь функциональные возможности для управления автоматическими устройствами 104, 106 (ФИГ. 1). Например, диспетчер контроллера устройства 224 может считывать данные с датчиков (например, датчиков давления, датчиков положения и т.д.) автоматических устройств 104, 106, вычислять ошибки и отправлять сигналы управления в автоматические устройства 104, 106 для поддержания желаемой уставки. В проиллюстрированном примере диспетчер контроллера устройства 224 также управляет совместным использованием иллюстративного процессора 210 с диспетчером приложений 222, чтобы позволить диспетчеру контроллера устройства 224 выполнять функции управления процессом, а диспетчеру приложений 222 - приложения управления процессом 206.
[0034]
В примере, проиллюстрированном на ФИГ. 2, диспетчер приложений 222 управляет иллюстративными приложениями управления процессом 206, выполняемыми в иллюстративном пространстве приложений 204. Чтобы изолировать пространство приложений 204 от диспетчера контроллера устройства 224, иллюстративный диспетчер приложений 222 делит иллюстративную память 212 и/или иллюстративное хранилище 214 между пространством приложений 204 и диспетчером контроллера устройства 224. Такая изоляция служит для предотвращения случайной или злонамеренной перезаписи приложениями управления процессом 206 значений в памяти, используемых диспетчером контроллера устройства 224. Иллюстративные приложения управления процессом 206 хранятся в части иллюстративной памяти 212 и/или иллюстративного хранилища 214, предназначенной для пространства приложений 204. Кроме того, иллюстративные приложения управления процессом 206 могут только считывать и записывать данные в часть иллюстративной памяти 212 и/или иллюстративного хранилища 214, предназначенную для пространства приложений 204. Когда приложение управления процессом 206 направляет запрос на запись в память 212 и/или хранилище 214, иллюстративный диспетчер приложений 222 управляет запросом и записывает в указанную часть иллюстративной памяти 212 и/или иллюстративного хранилища 214. Когда приложение управления процессом 206 направляет запрос на считывание из памяти 212 и/или хранилища 214, иллюстративный диспетчер приложений 222 управляет запросом и считывает данные из указанной части иллюстративной памяти 212 и/или иллюстративного хранилища 214.
[0035]
В проиллюстрированном примере диспетчер приложений 222 предоставляет обработчик каркаса приложения для контроля доступа приложений управления процессом 206 к физическим ресурсам 208 контроллера устройства 108. Приложения управления процессом 206 могут быть скомпилированным набором инструкций или скриптом. Если приложение управления процессом 206 представляет собой скомпилированный набор инструкций, диспетчер приложений 222 предоставляет приложению управления процессом 206 доступ к библиотекам функций для доступа к физическим ресурсам 208 контроллера устройства 108. Если приложение управления процессом 206 является скриптом, диспетчер приложений 222 интерпретирует его и обеспечивает доступ к функциям, которые обращаются к физическим ресурсам 208 контроллера устройства 108. Иллюстративные приложения управления процессом 206 подают запрос (например, через вызов библиотеки, с помощью перехватчика и т.д.) в диспетчер приложений 222, для получения доступа к физическим ресурсам 208 контроллера устройства 108.
[0036]
В некоторых примерах диспетчер приложений 222 и диспетчер контроллера устройства 224 определяют пространство данных 225 в памяти 212 и/или хранилище 214. В таких примерах пространство данных 225 представляет собой пространство, в котором приложения управления процессом 206 и процессы диспетчера контроллера устройства 224 могут осуществлять считывание и запись. Таким образом, иллюстративные приложения управления процессом 206 могут вычислять данные процесса, которые могут использоваться процессами диспетчера контроллера устройства 224. Например, приложение управления процессом 206 может вычислять управляющее значение, которое должно использоваться для управления клапаном, т.е. которое должно использоваться диспетчером управления устройством 224. В некоторых таких примерах доступ к пространству данных 225 может контролироваться диспетчером приложений 222 с использованием данных разрешений. В некоторых примерах для предотвращения конфликта чтения/записи доступ к пространству данных 225 управляется семафором. В некоторых таких примерах семафор не дает приложению управления процессом 206 осуществлять считывание из пространства данных 225, пока диспетчер управления устройством 224 записывает данные в пространство данных 225, и/или не позволяет диспетчеру управления устройством 224 осуществлять считывание из пространства данных 225, пока приложение управления процессом 206 записывает данные в пространство данных 225.
[0037]
Иллюстративный диспетчер приложений 222 предоставляет или отклоняет запросы на доступ к физическим ресурсам 208 на основе данных разрешений, связанных с приложением управления процессом 206, направляющим запрос. В проиллюстрированном примере, чтобы предотвратить изменение приложением управления процессом 206 данных разрешений, они хранятся в части памяти 212 и/или хранилища 214, изолированной от пространства приложений 204. Например, если приложение управления процессом 206 отправляет сообщение хосту 114, диспетчер приложений 222 проверяет данные разрешений, связанные с приложением управления процессом 206, чтобы определить, имеет ли приложение управления процессом 206 разрешение на доступ к шине ввода/вывода 218. Если диспетчер приложений 222 разрешает запрос, диспетчер приложений 222 выполняет соответствующий вызов функции с параметрами (например, сообщение, значение управляющего сигнала и т.д.), указанный приложением управления процессом 206. Например, если приложение управления процессом 206 имеет разрешение на отправку сообщения хосту 114, диспетчер приложений 222 выполняет соответствующий вызов функции. В еще одном примере, если приложение управления процессом 206 запрашивает считывание значения датчика положения на клапане автоматического устройства 104, диспетчер приложений 222 извлекает значение (например, запрашивает значение у прошивки) и передает его приложению управления процессом 206.
[0038]
На ФИГ. 3 изображена реализация иллюстративного диспетчера приложений 222 согласно ФИГ. 2 для управления приложениями управления процессом 206 (ФИГ. 2), которые выполняются в пространстве приложений 204 (ФИГ. 2). Иллюстративный диспетчер приложений 222 содержит иллюстративный диспетчер разрешений 300, иллюстративный установщик 302 и иллюстративный обработчик каркаса приложения 304. В проиллюстрированном примере диспетчер разрешений 300 определяет, имеет ли приложение управления процессом 206, выполняемое в пространстве приложений 204, разрешение на доступ к конкретным физическим ресурсам 208 (ФИГ. 2), когда приложение управления процессом 206 запрашивает доступ (например, через вызов библиотечной функции, посредством перехватчика и т.д.). Для принятия решения иллюстративный диспетчер разрешений 300 извлекает данные разрешений из памяти 212 (ФИГ. 2) и/или хранилища 214 (ФИГ. 2).
[0039]
Когда приложение управления процессом 206 запрашивает доступ, иллюстративный диспетчер разрешений 300 сравнивает запрошенный доступ с данными разрешений. Например, если приложение управления процессом 206 выполняет вызов функции для отправки управляющего сигнала автоматическому устройству 104, 106 через ввод/вывод автоматического устройства 220 (ФИГ. 2), диспетчер разрешений 300 определяет, указывают ли соответствующие данные разрешений, что приложение управления процессом 206 может обращаться к вводу/выводу автоматического устройства 220. Если данные разрешений указывают, что приложение управления процессом 206 имеет разрешение на доступ к запрашиваемому физическому ресурсу 208, иллюстративный диспетчер разрешений 300 позволяет продолжить выполнение соответствующего вызова функции.
[0040]
В некоторых примерах диспетчер разрешений 300 управляет частотой, с которой приложение управления процессом 206 может обращаться к конкретным физическим ресурсам 208. Например, диспетчер разрешений 300 может разрешить приложению управления процессом 206 отправлять сообщение хосту 114 (ФИГ. 1) только один раз в секунду, чтобы предотвратить случайное или злонамеренное выполнение приложением управления процессом 206 атаки типа «отказ в обслуживании» на системный контроллер 110 (ФИГ. 1) и/или хост 114.
[0041]
Иллюстративный установщик 302 управляет установкой и удалением приложений управления процессом 206. Иллюстративный установщик 302 получает иллюстративное приложение управления процессом 206 и соответствующие данные разрешений от хоста 114 через шину ввода/вывода 218 (ФИГ. 2). Иллюстративный установщик 302 копирует приложение управления процессом 206 в часть памяти 212 и/или хранилища 214, предоставленную для пространства приложений 204. В некоторых примерах установщик 302 копирует данные разрешений в часть памяти 212 и/или хранилища 214, предоставленную для данных разрешений. Затем иллюстративный установщик 302 уведомляет обработчик каркаса приложения 304 о местоположении начала установленного приложения управления процессом 206 и сообщает диспетчеру разрешений 300 о местоположении данных разрешений.
[0042]
В проиллюстрированном примере на ФИГ. 3 обработчик каркаса приложения 304 управляет выполнением установленных приложений управления процессом 206. В некоторых примерах обработчик каркаса приложения 304 выполняет установленные приложения управления процессом 206 по существу непрерывно. Дополнительно или в качестве альтернативного варианта, в некоторых примерах обработчик каркаса приложения 304 выполняет приложения управления процессом 206 несколько раз в ответ на событие и/или триггер. Например, обработчик каркаса приложения 304 может выполнять приложения управления процессом 206 при закрытии клапана или обнаружении состояния неисправности. Обработчик каркаса приложения 304 планирует доступ к процессору (например, процессору 210 на ФИГ. 2) для приложений управления процессом 206. В некоторых примерах обработчик каркаса приложения 304 интерпретирует приложение управления процессом 206 (например, когда приложение управления процессом 206 является скриптом). Кроме того, обработчик каркаса приложения 304 предоставляет библиотеки и/или процедуры-перехватчики, которые позволяют приложению управления процессом 206 обращаться к физическим ресурсам 208 контроллера устройства 108. Например, если приложение управления процессом 206 направляет сигнал управления автоматическому устройству 104, 106, приложение управления процессом 206 включает вызов функции ввода/вывода автоматического устройства, включенной в обработчик каркаса приложения 304. Обработчик каркаса приложения 304 в сочетании с диспетчером разрешений 300 либо позволяет осуществить вызов функции (например, приложение управления процессом 206 связано с соответствующими разрешениями), либо игнорирует вызов функции (например, приложение управления процессом 206 не связано с соответствующими разрешениями). Таким образом, диспетчер приложений 222 контролирует доступ к физическим ресурсам 208.
[0043]
В то время как иллюстративный вариант реализации иллюстративного диспетчера приложений 222 согласно ФИГ. 2 показан на ФИГ. 3, один или большее количество элементов, процессов и/или устройств, приведенных на ФИГ. 3, могут быть объединены, разделены, переупорядочены, опущены, устранены и/или реализованы любым другим способом. Дополнительно, иллюстративный диспетчер разрешений 300, иллюстративный установщик 302, иллюстративный обработчик каркаса приложения 304 и/или, в целом, иллюстративный диспетчер приложений 222 согласно ФИГ. 2 могут быть реализованы с использованием аппаратного обеспечения, программного обеспечения, прошивки и/или любой комбинации аппаратного обеспечения, программного обеспечения и/или прошивки. Таким образом, например, иллюстративный диспетчер разрешений 300, иллюстративный установщик 302, иллюстративный обработчик каркаса приложения 304 и/или, в общем, иллюстративный диспетчер приложений 222 могут быть реализованы в виде одной или большего количества аналоговых или цифровых схем, логических схем, программируемых процессоров, специализированных интегральных схем (ASIC), программируемых логических устройств (PLD) и/или программируемых логических устройств (FPLD). При чтении любого из пунктов прилагаемой формулы изобретения, относящихся к устройству или системе, и излагающих вариант реализации чисто программного обеспечения и/или прошивки, следует понимать, что по меньшей мере один из перечисленного: иллюстративный диспетчер разрешений 300, иллюстративный установщик 302 и/или иллюстративный обработчик каркаса приложения 304; явно предусматривает наличие материального считываемого компьютером запоминающего устройства или диска для хранения данных, такого как: память, цифровой универсальный диск (DVD), компакт-диск (CD), диск Blu-ray и т.д., в/на которых хранится программное обеспечение и/или прошивка. Кроме того, иллюстративный диспетчер приложений 222 на ФИГ. 2 может содержать один или большее количество элементов, процессов и/или устройств в дополнение к / или вместо проиллюстрированных на ФИГ., 3 и/или может включать в себя более одного из проиллюстрированных элементов, процессов и устройств, или их все.
[0044]
Блок-схемы, представляющие иллюстративные способы реализации иллюстративного диспетчера приложений 222 согласно ФИГ. 2 и 3, показаны на ФИГ. 4 и/или 5. В этом примере способы могут быть реализованы с использованием программ(ы) для выполнения процессором, таким как процессор 210, показанный в иллюстративной процессорной платформе 600, описанной ниже со ссылкой на ФИГ. 6. Программы могут быть реализованы в программном обеспечении, хранящемся на материальном машиночитаемом носителе данных, таком как: CD-ROM, гибкий диск, жесткий диск, цифровой универсальный диск (DVD), диск Blu-ray или память, связанная с процессором 210; но в альтернативном варианте вся программа и/или ее части могут выполняться устройством, отличным от процессора 210, и/или могут быть реализованы в прошивке или специализированных аппаратных средствах. Кроме того, хотя иллюстративная(ые) программа(ы) описана(ы) со ссылкой на блок-схемы, показанные на ФИГ. 4 и/или 5, в альтернативных вариантах могут использоваться различные другие способы реализации иллюстративного диспетчера приложений 222. Например, может быть изменен порядок выполнения блоков и/или могут быть изменены, исключены или объединены некоторые описанные блоки.
[0045]
Как упомянуто выше, иллюстративные способы согласно ФИГ. 4 и/или 5 могут быть реализованы с использованием кодированных инструкций (например, компьютерных и/или машиночитаемых инструкций), хранящихся на материальном машиночитаемом носителе, таком как: жесткий диск, флэш-память, постоянное запоминающее устройство (ПЗУ), компакт-диск (CD), цифровой универсальный диск (DVD), кэш, оперативное запоминающее устройство (ОЗУ), и/или любое другое запоминающее устройство или диск для хранения данных, в/на котором информация хранится в течение любого времени (например, в течение длительного времени, постоянно, в течение коротких промежутков времени, при временной буферизации и/или при кэшировании информации). Используемый здесь термин «материальный машиночитаемый носитель данных» явно определен таким образом, что он охватывает любой тип считываемого компьютером запоминающего устройства и/или диска для хранения данных и исключает распространяющиеся сигналы и средства передачи. Термины «материальный машиночитаемый носитель данных» и «материальный считываемый компьютером носитель данных» используются взаимозаменяемо. Дополнительно или в альтернативном варианте иллюстративные способы согласно ФИГ. 4 и/или 5 могут быть реализованы с использованием кодированных инструкций (например, компьютерных и/или машиночитаемых инструкций), хранящихся на постоянном компьютеро- и/или машиночитаемом носителе, таком как: жесткий диск, флэш-память, постоянное запоминающее устройство, компакт-диск, цифровой универсальный диск, кэш, оперативное запоминающее устройство и/или любое другое запоминающее устройство или диск для хранения данных, в/на котором информация хранится в течение любого времени (например, в течение длительного времени, постоянно, в течение коротких промежутков времени, при временной буферизации и/или при кэшировании информации). Используемый здесь термин «постоянный машиночитаемый носитель данных» явно определен таким образом, что он охватывает любой тип считываемого компьютером запоминающего устройства и/или диска для хранения данных и исключает распространяющиеся сигналы и средства передачи. Термин «по меньшей мере» используется в данном описании в качестве переходного термина в преамбуле пункта формулы изобретения и является таким же открытым термином, как и термин «содержащий».
[0046]
На ФИГ. 4 приведена блок-схема, представляющая иллюстративный способ 400, который может выполняться для реализации диспетчера приложений 222 согласно ФИГ. 2 и 3 для выполнения иллюстративных приложений управления процессом 206 (ФИГ. 2) в контроллере устройства 108 (ФИГ. 1 и 2). Диспетчер контроллера устройства 224 связывается с системным контроллером 110 (ФИГ. 1) и/или хостом 114 (ФИГ. 1) для обеспечения контроллера устройства 108 в системе управления процессом 100 (ФИГ. 1) (этап 402). В некоторых примерах для обеспечения контроллера устройства 108 диспетчер контроллера устройства 224 предоставляет информацию о конфигурации (например, файлы описания устройства, идентификатор контроллера устройства, идентификатор автоматического устройства, общую информацию об устройстве, информацию о диапазоне настроек, параметры и/или допуски датчика/приводного механизма и т.д.) контроллера устройства 108 и/или соответствующего автоматического устройства 104, 106 (ФИГ. 1).
[0047]
Диспетчер приложений 222 устанавливает приложение(я) управления процессом 206, полученные от хоста 114, в пространство приложений 204 контроллера устройства 108 (этап 404). Например, диспетчер приложений 222 может разместить приложение(я) управления процессом 206 в части памяти 212 и/или хранилища 214, предназначенной для пространства приложений 204. Диспетчер разрешений 300 устанавливает данные разрешений, полученные от хоста 114, связанные с приложением(ями) управления процессом 206, в часть памяти 212 и/или хранилища 214, предназначенную для данных разрешений (например, память разрешений) (этап 406). Затем диспетчер приложений 222 управляет выполнением приложения(й) управления процессом 206 (этап 408). В некоторых примерах диспетчер приложений 222 интерпретирует приложение(я) управления процессом 206.
[0048]
Диспетчер приложений 222 также контролирует доступ приложения(й) управления процессом 206 к физическим ресурсам 208 контроллера устройства 108 (этап 410). Например, если приложение управления процессом 206 запрашивает доступ (например, посредством вызова библиотечной функции, перехватчика сценариев и т.д.), диспетчер приложений 222 использует данные разрешений, связанные с приложением управления процессом 206, чтобы определить, может ли приложение управление процессом 206 получить доступ к конкретному физическому ресурсу 208. Кроме того, для контроля доступа диспетчер приложений 222 запрещает приложениям управления процессом 206 считывать или записывать данные в памяти 212 и/или хранилище 214, не выделенной(м) для пространства приложений 204.
[0049]
На ФИГ. 5 приведена блок-схема, представляющая иллюстративный способ 500, который может выполняться для реализации диспетчера приложений 222 согласно ФИГ. 2 и 3 для контроля доступа иллюстративного приложения управления процессом 206 (ФИГ. 2) к физическим ресурсам 208 (ФИГ. 2) контроллера устройства 108 (ФИГ. 1 и 2). Обработчик каркаса приложения 304 (ФИГ. 3) управляет выполнением приложений управления процессом 206 (этап 502). Например, обработчик каркаса приложения 304 интерпретирует приложения управления процессом 206 и/или загружает начальное местоположение в памяти 212 (ФИГ. 2) в программный счетчик процессора 210 (ФИГ. 2). Обработчик каркаса приложения 304 определяет, запрашивает ли приложение управления процессом 206 доступ (например, через вызов библиотечной функции, посредством перехватчика сценариев и т.д.) к физическому ресурсу 208 (этап 504).
[0050]
Если приложение управления процессом 206 запрашивает доступ к физическому ресурсу 208, диспетчер разрешений 300 (ФИГ. 3) определяет, имеет ли приложение управления процессом 206 разрешение на доступ к конкретному физическому ресурсу 208 (этап 506). Для принятия решения диспетчер разрешений 300 проверяет данные разрешений, связанные с конкретным приложением управления процессом 206. Если приложение управления процессом 206 имеет право доступа к конкретному физическому ресурсу 208, обработчик каркаса приложения 304 передает запрос (например, через библиотечную функцию и т.д.) конкретному физическому ресурсу 208 (этап 508). Если приложение управления процессом 206 не имеет права доступа к конкретному физическому ресурсу 208, обработчик каркаса приложения 304 игнорирует запрос (этап 510). В некоторых примерах обработчик каркаса приложения 304 устанавливает флаг и/или отправляет сообщение хосту 114, чтобы указать, что приложение управления процессом 206 пыталось получить доступ к физическому ресурсу 208, не имея права доступа.
[0051]
Обработчик каркаса приложения 304 определяет, продолжать ли выполнение приложения управления процессом 206 (блок 512). Если обработчик каркаса приложения 304 будет продолжать выполнять приложение управления процессом 206, процесс 500 возвращается к этапу 502. В противном случае процесс 500 заканчивается.
[0052]
На ФИГ. 6 приведена блок-схема иллюстративной процессорной платформы 600, структурированной для выполнения способов согласно ФИГ. 4 и 5 для реализации иллюстративного контроллера устройства 108 согласно ФИГ. 1 и 2 и/или иллюстративного диспетчера приложений 222 согласно ФИГ. 2 и 3. Процессорная платформа 600 содержит физические ресурсы 208 согласно ФИГ. 2 контроллера устройства 108.
[0053]
Процессорная платформа 600 проиллюстрированного примера содержит процессор 210. Процессор 210 в проиллюстрированном примере является аппаратным обеспечением. Например, процессор 210 может быть реализован одной или большим количеством интегральных схем, логических схем, микропроцессоров или контроллеров любого требуемого семейства или производителя.
[0054]
Процессор 210 в проиллюстрированном примере содержит локальную память 602 (например, кэш). Процессор 210 в проиллюстрированном примере поддерживает связь с основной памятью, включающей в себя энергозависимую память 212a и энергонезависимую память 212b, через шину 604. Энергозависимое запоминающее устройство 212a может быть реализовано с помощью синхронного динамического запоминающего устройства с произвольной выборкой (SDRAM), динамического запоминающего устройства с произвольной выборкой (DRAM), динамического запоминающего устройства с произвольной выборкой Rambus с внутренней шиной (RDRAM), и/или запоминающего устройства с произвольной выборкой любого другого типа. Энергонезависимая память 212b может быть реализована в виде флэш-памяти и/или любого другого требуемого типа запоминающего устройства. Доступ к основной памяти 212a, 212b управляется контроллером памяти. Пространство приложений 204 может быть определено в части энергозависимой памяти 212a и/или запоминающего устройства 214.
[0055]
Процессорная платформа 600 в проиллюстрированном примере также содержит шину ввода/вывода 218 и ввод/вывод автоматического устройства 220. Шина ввода/вывода 218 и ввод/вывод автоматического устройства 220 могут быть реализованы с использованием любого типа стандарта интерфейса, такого: как шина Foundation Fieldbus, Profibus, Hart, интерфейс Ethernet, универсальная последовательная шина (USB) и/или интерфейс PCI Express.
[0056]
В некоторых примерах процессорная платформа 600 содержит схему интерфейса 606, которая может включать в себя устройство связи, такое как: передатчик, приемник, приемопередатчик, модем, и/или плату сетевого интерфейса; для обеспечения обмена данными с внешними машинами (например, вычислительными устройствами любого типа) по сети 608 (например, Ethernet-соединение, цифровая абонентская линия (DSL), телефонная линия, коаксиальный кабель, сотовая телефонная система и т.д.).
[0057]
Процессорная платформа 600 в проиллюстрированном примере также содержит одно или большее количество запоминающих устройств 214 для хранения программного обеспечения и/или данных. Примеры таких запоминающих устройств 214 включают гибкие диски, жесткие диски или любые другие подходящие носители данных.
[0058]
Кодированные инструкции 610 для реализации способов согласно ФИГ. 4 и 5 могут храниться в запоминающем устройстве 214, в энергозависимой памяти 212a, в энергонезависимой памяти 212b и/или на съемном материальном машиночитаемом носителе данных, таком как CD или DVD.
[0059]
В некоторых примерах процессорная платформа 600 содержит датчики 216 (например, датчики температуры, датчики влажности, акселерометры и т.д.), которые могут быть отделены от датчиков автоматического устройства 104, 106. В некоторых таких примерах датчики 216 могут использоваться для мониторинга условий, в которых работает контроллер устройства 108, и/или обнаружения аномалий (например, обнаружения сбоев, кражи и т.д.).
[0060]
Описанные в данном документе некоторые иллюстративные способы, устройства и изделия не ограничивают объем данного патента. Напротив, данный патент охватывает все способы, устройства и изделия, справедливо находящиеся в пределах объема прилагаемой формулы изобретения.