СПОСОБ И СИСТЕМА ИНТЕГРАЦИИ ОБОРУДОВАНИЯ В СРЕДСТВА АВТОМАТИЗИРОВАННОГО УПРАВЛЕНИЯ И УЧЕТА
METHOD AND SYSTEM FOR INTEGRATING EQUIPMENT INTO AUTOMATED CONTROL AND ACCOUNTING MEANS

ОБЛАСТЬ ТЕХНИКИ
Группа изобретений относится к области управления различным оборудованием систем автоматизации, Умного Дома, музыкальных и аудио-видео систем, серверов учета данных и ресурсов, и в частности, к способу и системе интеграции оборудования в средства автоматизированного управления и учета.
УРОВЕНЬ ТЕХНИКИ
В данной области техники есть много решений, ключевой задачей которых является обеспечение совместимости разнородного оборудования внутри системы Умный Дом (и подобных систем) для централизованного управления. В пределах программы разработчики используют способы классификации оборудования и набор требований, которые обеспечивают совместимость разного оборудования внутри данного ПО.
Наиболее близком аналогом к заявленному решению является решение, описанное в документе US2016170390 (A1), опубл. 16.06.2016. В данном решении описывается управление устройствами, подключенными к управляющему устройству, причем устройство управления включает в себя: коммуникатор, сконфигурированный для приема от сервера правила обслуживания, включающего условие триггера и устройство выполнение действия; и контроллер, сконфигурированный для выбора одного из устройств, подключенных к управляющему устройству, на основе принятого правила обслуживания, изменения принятого правила обслуживания и управления выбранным устройством с использованием модифицированного правила обслуживания.
Недостатками известного решения является необходимость во внесении изменений в систему управления при подключении нового оборудования, повышенные требования к вычислительным ресурсам и низкая скорость при обработке информации и управлении оборудованием.
РАСКРЫТИЕ ИЗОБРЕТЕНИЕ
Заявленное решение предлагает способ интеграции оборудования в средства автоматизированного управления и учета, при котором внесение изменений в оборудование не потребуется для того, чтобы управлять этим оборудованием из системы автоматизации. Вместо этого, потребуется только поддержка оборудованием любого cтандарта управления. Под требование “поддержка любого cтандарта управления” потенциально попадает любое оборудование системы автоматизации, протокол управления которым не является проприетарным.
Техническим результатом является повышение эффективности управления подключенными устройствами с любым типом протокола за счет повышения скорости передачи и обработки информации.
Для обеспечения достижения указанного результата разработан способ интеграции оборудования в средства автоматизированного управления и учета, содержащий этапы, на которых: направляют на драйвер данные о по меньшей мере одной переменной управляемого оборудования, которой можно управлять, и набор ее свойств, характеризующих тип управляемого оборудования; определяют посредством драйвера список доступных входов и выходов драйвера для по меньшей мере одной переменной управляемого оборудования и тип интерфейса прикладного программирования (API) для управления упомянутой переменной в соответствии с типом управляемого оборудования; направляют список доступных входов и выходов драйвера для по меньшей мере одной переменной управляемого оборудования и данные о типе API в базу данных интерфейса прикладного программирования (API), в которой каждому входы и выходу присваивается свойства расположения на основе размещения управляемого оборудования и свойства API на основе типа API; сохраняют информацию полученного списка входов и выходов драйвера, о свойствах расположения и свойствах API в базе данных API.
Также разработан способ управления оборудованием, интегрированным в средства автоматизированного управления и учета, содержащий этапы, на которых: направляют в базу данных API команду для управления оборудованием, а также информацию о типе управляемого оборудования и его расположении, причем команда содержит значение по меньшей мере одной переменной управляемого оборудования; определяют значения свойств расположения и свойств API на основе информации о типе управляемого оборудования и его расположении; определяют по меньшей мере один вход драйвера на основе определенных на предыдущем этапе значений свойств и направляют на упомянутый по меньшей мере один вход значение по меньшей мере одной переменной управляемого оборудования для управления оборудованием в соответствии с упомянутой командой; преобразуют поступившее на вход драйвера значение по меньшей мере одной переменной управляемого оборудования в соответствии типом управляемого оборудования и в соответствии с протоколом управляемого оборудования; направляют преобразованное значение по меньшей мере одной переменной на управляемое оборудование для его управления в соответствии с упомянутой командой.
Кроме того, разработана система управления оборудованием, содержащая по меньшей мере один сервер, включающий базу данных API и по меньшей мере один драйвер, причем драйвер выполнен с возможностью; получать данные о по меньшей мере одной переменной управляемого оборудования, которой можно управлять, и набор ее свойств, характеризующих тип управляемого оборудования: определять список доступных входов и выходов для по меньшей мере одной переменной управляемого оборудования и тип API для управления упомянутой переменной в соответствии с типом управляемого оборудования; направлять список доступных входов и выходов драйвера для по меньшей мере одной переменной управляемого оборудования и данные о типе API в базу данных интерфейса прикладного программирования (API); при этом база данных API выполнена с возможностью каждому входы и выходу драйвера присваивать свойства расположения на основе размещения управляемого оборудования и свойства API на основе типа API; и сохранять информацию полученного списка входов и выходов драйвера, о свойствах расположения и свойствах API.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для лучшего понимания сущности изобретения, и чтобы более ясно показать, каким образом оно может быть осуществлено, далее будет сделана ссылка, лишь в качестве примера, на прилагаемые чертежи, на которых:
фиг. 1 – пример технической схемы средств автоматизированного управления и учета.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В соответствии с примером, приведенным на фиг. 1, средства автоматизированного управления и учета включают систему управления оборудованием 100, содержащую по меньшей мере один сервер 101 и интерфейс пользователя 101. Сервер 101 соединен с по меньшей мере одним управляемым оборудованием 1, размещенным в системе 10 автоматизированного управления, Умного Дома или Интернет вещей (IoT). Интерфейс пользователя 101 включает ПО для демонстрации пользовательского интерфейса на мобильных устройствах и ПК. Интерфейс может управлять оборудованием 1 напрямую или посредством сервера 101.
Сервер 101 в свою очередь содержит по меньшей мере один драйвер 110 и базу данных 120. Драйвер состоит из набора входов и выходов 111 и может включать список переменных, которые отвечают за работу нескольких отдельных (физических) устройств - управляемого оборудования 1. Входы и выходы драйвера 111 объединены в логические устройства, каждое из которых описывает заданную завершенную функцию физического устройства, причем “функция устройства” - не равно “физическое устройство”. Так, кондиционер с подсветкой, который является физически единым, будет представлен как два логических устройства - “кондиционер” и “источник света”. Это является основным принципом объединения входов и выходов драйвера в отдельные логические устройства - принципом классификации драйвера по API (Smart API).
Введение логических устройств, которые объединяют входы и выходы 111 драйвера в одно устройство является условностью и используется только для удобства визуального отображения. В процессе ручной настройки оно позволяет быстро выбирать для всех входов и выходов тип и свойства, которые являются общими для устройства. При этом каждый вход и выход драйвера хранит полный набор свойств, определенных для него при помощи API. Эта особенность используется при создании выборок устройств для передачи на них команд.
Каждый вход и выход 111 драйвера классифицируется при помощи следующего набора свойств:
1. Тип устройства (Type) – определяет точное назначение устройства и зависящий от этого список команд, которые оно может поддерживать.
2. Тип выполняемой команды (Command) - зависит от типа устройства. Устройство может поддерживать все, или некоторые команды, доступные для данного типа. Команды определяют доступные способы управления этим устройством.
3. Список возвращаемых данных (Tag) – зависит от типа устройства. Устройство может возвращать все, или некоторые данные, возможные для данного типа. Теги обратной связи определяют набор данных, которые можно от него получить.
4. Способ размещение устройства (Placement) – устройство расположено в помещении или на улице (Outdoor, Indoor). Указывается только вручную
5. Принадлежность к зоне/помещению (Location) – конкретное помещение  или выделенная зона, на которую влияет устройство. Указывается только вручную
6. Принадлежность к группе (Group) – способ произвольного объединения устройств, который может применить пользователь для создания сценариев, работающих с ручными выборками устройств. Указывается только вручную
7. Уровень прав доступа к другим устройствам (Access) - значение от 0 до 10, которое определяет, будут ли другие устройства УД принимать от этого устройства команды, отправленные при помощи API (при наличии таковых). 0 - устройство не может отправлять другим команды. 1...10 - чем больше значение, тем выше уровень доступа. Если у двух устройств уровень доступа одинаковый, от 1 до 10, они могут влиять друг на друга. По умолчанию у всех устройств уровень доступа - 0. Изменяется вручную при настройке управляющего ПО, изменение всегда подтверждается пользователем.
Входы и выходы 111 могут быть настроены пользователем заранее вручную посредством блока ввода данных 112 в соответствии с набором заданных свойств для API. Информация о настройках входов и выходов 111 также может быть передана от блока ввода данных 112 в базу данных 120 для ее хранения в блоке хранения свойств 122. В частности, пользователь программирует входы и выходы 111 драйвера, задает список доступных входов и выходов драйвера для по меньшей мере одной переменной управляемого оборудования, набор ее свойств, характеризующих тип управляемого оборудования, и тип API для управления упомянутой переменной в соответствии с типом управляемого оборудования. Тип API определяет, как должны быть преобразованы команды, полученные при помощи запросов от интерфейса пользователя 102, чтобы привести их к стандартному формату, с которым работает драйвер.
Также входы и выходы 111 драйвера для управления переменной управляемого оборудования 1 могут быть получены с помощью направления посредством блока управления 113 запроса данных на по меньшей мере одно управляемое оборудование 1 через блок преобразования данных 114. Управляемое оборудование 1 в соответствии с поступившим запросом направляет на драйвер 110 данные о по меньшей мере одной переменной управляемого оборудования, которой можно управлять, и набор ее свойств, характеризующих тип управляемого оборудования, на основе которых драйвер 110 определяет список доступных входов и выходов для по меньшей мере одной переменной управляемого оборудования 1 и тип интерфейса прикладного программирования (API) для управления упомянутой переменной в соответствии с типом управляемого оборудования.
Для определения упомянутых списков доступных входов и выходов полученные посредством запроса данные преобразуются блоком преобразования данных 114 и подаются на блок управления 113. Блок управления 113 в соответствии с заложенным в него алгоритмом для каждой переменной управляемого оборудования 1 на основе набора полученных свойств переменной назначает вход драйвера для передачи управляющих данных (команд) на управляемое устройство 1 и выход драйвера для приема информации от управляемого устройства 1 и передачи ее, например, в базу данных 120 API или на интерфейс пользователя 102. Далее блок управления 113 формирует список входов и выходов, в который входят все назначенные входы и выходы, а также набор переменных управляемого оборудования, которыми можно управлять и их свойства, в соответствии с которыми входы и выходы были назначены. Сформированный список направляется в блок 115 сопоставления свойств.
Также на блок 115 сопоставления свойств поступает информация о наборе заданных свойств для API от блока ввода данных 112. Блок 115 сопоставления свойств сопоставляет полученные свойства переменных управляемого оборудования с набором заданных свойств для API и определяет тип API для управления каждой переменной управляемого оборудования 1, т.е. в соответствии с типом управляемого оборудования. Далее сформированный список доступных входов и выходов драйвера и данные о типе API передаются в базу данных 120 API, причем информация о входах и выходах сохраняется в блоке хранения 121. Информация в входах и выходах и о типе API также может быть введена пользователем посредством интерфейса пользователя 102 в случае, если назначение не всех входов и выходов было определено или если они не были настроены заранее посредством блока ввода данных 112.
Каждому входу и выходу драйвера, поступившему в базе данных 120 API, в сервер 101 также присваивает свойства расположения на основе размещения управляемого оборудования 1 и свойства API на основе типа API. Свойства размещения могут включать информацию о способе размещение устройства и принадлежности к зоне/помещению.
Информация о свойствах размещения и свойствах API поступает на сервер 101 от интерфейса пользователя 102 и сохраняется в блоке хранения свойств 122 в соответствии с сохраненной информацией о входах и выходах, в которым они относятся, например, в следующем виде:
Дополнительно от интерфейса пользователя может поступать информация о принадлежность к группе и об уровне прав доступа к управляемому оборудованию 1 для хранения данной информации в блоке хранения свойств 122 аналогичным образом.
Таким образом, поскольку каждая функция оборудования 1, управляемая посредством переменной, привязана к соответствующему входу и выходу драйвера, ускоряется обмен информацией между управляемым оборудованием 1 и сервером 101, а также интеграция управление оборудованием 1 и его управлением, так как не требуется передавать идентификатор управляемого оборудования на сервер и осуществлять дополнительные действия по идентификации устройств, как в наиболее близком аналоге. В связи с этим повышается эффективность управления подключенными устройствами с любым типом протокола и снижается вычислительная нагрузка на сервер 101.
Что касается управления оборудованием, то оно может осуществляться следующим образом.
С помощью интерфейса пользователя 102 пользователь формирует команду для управления оборудованием 1, которая может быть отправлена с помощью заданной кнопки пользовательского интерфейса на сервер 101. Дополнительно пользователем может быть определен сценарий, например, как в наиболее близком аналоге, либо задан таймер, в соответствии с котором команда будет выполнена. Команда для управления оборудованием может направляться вместе с информацией о типе управляемого оборудования 1, его расположении и значении по меньшей мере одной переменной управляемого оборудования. В частности, команда может иметь следующий вид:
<SET>,<Type:Light, Location:Kitchen>,<Command:On>.
В данном случае информация о типе оборудования «Type: Ligh» указывает на то, что команда относится к типу осветительного оборудования. Информация о типе оборудования также может указывать на то, что команда относится к типу диммеров, типу реле, типу устройств контроля доступа, типу аудиоплееров и т.д.
Получив команду для управления оборудованием 1 сервер 101 направляет ее в базу данных 120 API и в соответствии с набором ранее заданных свойств для API, сохранным в базе данных 120 API ранее, определяет значения свойств расположения и свойств API на основе информации о типе управляемого оборудования и его расположении. Свойства API помимо типа команд также могут указывать на диапазоны команд, размеры которых зависят от типа управляемого оборудования 1.
В соответствии с указанным выше примером свойства расположения будут указывать на то, что управляемое устройство расположено на кухне (Kitchen), а свойствами API для типа осветительного оборудования будут характеризовать:
- типы команд, поддерживаемых управляемым оборудованием: включение, выключение питания, значения яркости, значения цветовой температуры;
- диапазон команд, где для включения и выключения питания устанавливается бинарный диапазон, а для значений яркости и цветовой температуры – процентный диапазон;
- минимальное и максимальное значение управляемой переменной, где значения 0 или 1 - для бинарного и значения от 0 до 100 для процентного.
Если информация о типе оборудования указывает на то, что управляемое оборудование 1 относится к оборудованию отопление, вентиляция и кондиционирования, то свойствами API могут быть:
- типы команд, поддерживаемых управляемым оборудованием: включение, выключение питания, температурный режим (охлаждение, обогревание), скорость вентиляторов, параметры профиля;
- диапазон команд: бинарный, процентный и пр.;
- минимальное и максимальное значение управляемой переменной.
Далее сервер 101 определяет по меньшей мере один вход драйвера 110 посредством сравнения полученных выше значений свойств расположения и свойств API с присвоенными входам драйвера 110 свойствами расположения и свойствами API, и направляет на входы драйвера 110, свойства которых совпали на этапе сравнения, значение по меньшей мере одной переменной управляемого оборудования 1 для управления оборудованием в соответствии с упомянутой командой. В частном случае команды, приведенном выше, значением переменной будет являться значение «On», которая направится на входы драйвера, соответствующие осветительному оборудованию, размещенному на кухне. Таким образом, не нужно определять все устройства на кухне, относящиеся к осветительному оборудованию и для направления на них значения «On». Значение «On» автоматически будет направлена на соответствующие входы драйвера 110.
Полупившее на вход драйвера 110 значение переменной преобразуется драйвером 110 в соответствии типом управляемого оборудования и в соответствии с протоколом управляемого оборудования 1. Например, если протоколом управляемого оборудования 1, в частности осветительное оборудование, поддерживает прием команд в бинарном виде, то полученное значение «On» преобразуется в значение «1» (соответственно значение «OFF» преобразуется в «0»). Если на вход драйвера поступило значение яркости в диапазоне от 0 до 100, а управляемое оборудование 1 работает со значениями яркости в диапазоне от 0 до 255, то в соответствии с протоколом и типом управляемого оборудования 1 полученное значение яркости в диапазоне от 0 до 100 преобразуется в соответствии с протоколом управляемого оборудования 1, например, делится на 100 и умножает на 255 с приведением к целому числу, для получения значения яркости в диапазоне от 0 до 255.
Преобразованное значение по меньшей мере одной переменной далее направляется драйвером 110 на управляемое оборудование 1 для его управления в соответствии с упомянутой командой. Информация о состоянии управляемого оборудования 1 и текущих параметрах поступает на соответствующий выход драйвера и преобразуется в соответствии с набором заданных свойств для API, поступивших от блока ввода данных 112. Т.е., например, если текущее значение яркости управляемого оборудования 1 задано в диапазоне от 0 до 255, а набором заданных свойств для API предусматривает для яркости диапазон значений от 0 до 100, то текущее значение яркости преобразуется из диапазона от 0 до 255 в диапазон от 0 до 100. Текущее значение сохраняется в базе данных 120 и может быть выведено на интерфейс пользователя по запросу (Например, запрос: <GET>,<Type:Light, Location:Kitchen>,<Tag:Power>) из базы данных, или напрямую от управляемого устройства 1.
Таким образом, поскольку каждая функция оборудования 1, управляемая посредством переменной, привязана к соответствующему входу и выходу драйвера, ускоряется обмен информацией между управляемым оборудованием 1 и сервером 101 для его управления, так как не требуется передавать идентификатор управляемого оборудования на сервер 101 и осуществлять дополнительные действия по идентификации устройств и их функций, как в наиболее близком аналоге. В связи с этим повышается эффективность управления подключенными устройствами с любым типом протокола и снижается вычислительная нагрузка на сервер 101 особенно в тех случаях, когда команда предназначена для управления множеством устройств.
Также предложенные решения обеспечат потенциальную возможность управления оборудованием, без внесения каких-либо изменений в его программную часть, а также получение подробной информации о назначении оборудования и его возможностях. Это позволит быстро и эффективно подключить систему управления к новому оборудованию и использовать все его функции вручную и автоматически.