СПОСОБ И СИСТЕМА ОБЪЕДИНЕНИЯ КОМПОНЕНТОВ ДЛЯ УПРАВЛЕНИЯ ОБЪЕКТАМИ АВТОМАТИЗАЦИИ
METHOD AND SYSTEM OF COMMUNICATION OF COMPONENTS FOR MANAGEMENT OF OBJECTS OF AUTOMATION

ОБЛАСТЬ ТЕХНИКИ
Техническое решение относится к области информационных технологий, а именно - к области передачи данных в цифровых сетях передачи данных. Предназначено для создания коммуникаций между программами и устройствами автоматизации, облачными шлюзами и программами для настройки и передачи информации между участниками сети, объединенных общим протоколом.
УРОВЕНЬ ТЕХНИКИ
В настоящий момент существуют разнообразные устройства, работа которых зависит от передачи данных, различных брендов. Но у многих устройств есть недостаток - несовместимость с оборудованием других брендов. Вследствие этого пользователю приходится выбирать один бренд и использовать всю линейку оборудования только этого бренда, закрывая глаза на минусы устройств. Таким образом, можно выявить следующие проблемы в существующих протоколах передачи данных:
Отсутствие единого стандарта у производителей оборудования, постоянная борьба производителей между собой на уровне экосистем, борьба с проникновением конкурирующего протокола в собственную экосистему.
Отсутствие на рынке протокола объединяющего в себе работу с инженерными и мультимедийными системами.
Большинство крупнейших производителей оборудования и программного обеспечения для информационных систем делают протоколы не «снизу вверх», а «сверху вниз», тем самым создают протокол для производителей без производителей оборудования.
Для взаимодействия между вышеописанными объектами в среде передачи данных должен использоваться протокол передачи данных, способный:
работать в сетях с низкой пропускной способностью;
быть защищенным на уровне передачи данных;
уметь работать как с инженерными, так и мультимедийными системами;
иметь возможность работать в физических шинах ТСР/IP, UDP, RS-232, RS-485 и иметь гибкую структуру при последующих модификациях для работы в новых шинах;
осуществлять разделение участников сети на категории;
позволять передавать данные баз данных;
взаимодействовать с «облачными» технологиями;
Известным из уровня техники близким аналогом частной реализации предлагаемого технического решения является патент US 6574234 B1 «Method and apparatus for controlling network devices», патентообладатель: AMX CORP, опубликовано: 03.06.2003. В этом документе раскрывается информация о системе и способе, которые позволяют осуществлять автоматизированное управление домашними приборами.
Также из уровня техники известно техническое решение US 20130211546 A1, «SMART DEVICE FOR INDUSTRIAL AUTOMATION", заявитель: Rockwell Automation Technologies Inc., опубликовано: 15.08.2013.
Предлагается умное устройство, которое облегчает автоматизированную конфигурацию и интеграцию устройств в системе автоматизации. После установки в системе автоматизации, умный прибор определяет его географическое местоположение, определяет другие устройства в системе, и определяет его роль и место в системе. Умное устройство затем устанавливает связь с облачной платформой, на которой установлено одно или несколько облачных приложений или служб и отправляет профиль устройства, содержащий собранную информацию облачной платформы.
Недостатками вышеуказанных решений является то, что они не позволяют решать все основные проблемы при построении объекта автоматизации, а именно: необходимо проводить поиск устройств управления, создавать соглашения об установлении соединения, передача настроек, осуществлять передачу управляющих сигналов, передачу потоков, контроль за ошибками, автоматическое конфигурировании устройств, защищенную передачу сигналов между участниками сети.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Данное техническое решение направлено на устранение недостатков, присущих существующим аналогам. Задачей данного технического решения является обеспечение построения вычислительной сети для связи между различными устройствами с последующим обменом данных.
Технический результат от использования данного технического решения заключается в улучшении гибкости подключения различных устройств в сети и в расширении функциональных возможностей, требуемых от среды передачи данных при построении и дальнейшем использовании систем автоматизации различного вида, а именно: проводить поиск устройств управления, создавать соглашения об установлении соединения, передача настроек, осуществлять передачу управляющих сигналов, передачу потоков, контроль за ошибками, автоматическое конфигурировании устройств, защищенную передачу сигналов между участниками сети.
Данный технический результат достигается за счет того, что, при использовании предлагаемого способа создается вычислительная сеть для передачи данных между множеством различных устройств сети с возможностью работы одновременно в трех режимах: централизованном, децентрализованном и комбинированном.
Режим централизованной сети: в сети присутствует сервер, к которому подсоединены все участники сети. Сервер, в свою очередь, принимает решения по управлению тем или иным устройством сети, отправляя и получая управляющие сигналы. Данный подход хорош тем, что сервер, имеет всю информацию и контроль над участниками сети, недостаток же сети в том, что в случае отказа сервера, объект автоматизации перестает работать.
Режим децентрализованной сети: все участники сети не имеют единого центра управления, участников сети можно разделить на две категории генераторов событий и обработчиков событий. Например, в сети присутствует два участника, это кнопка и лампа. При нажатии на кнопку, генерируется событие о том, что кнопка изменила свое состояние, лампа, в свою очередь, реагирует на событие нажатия кнопки и включает или выключает лампу в зависимости от значения события.
Режим комбинированной сети: позволяет серверу контролировать устройства, работающие как в централизованном, так и децентрализованном режиме. За счет этого можно существенно повысить надежность системы, а так же разгрузить сервер. К примеру, освещение работает по децентрализованной сети, а мультимедиа устройства работают в централизованной сети. В случае если сервер выйдет из строя, освещение продолжит работу.
Способ построения вычислительной сети для связи между множеством устройств, содержащий этапы, на которых:
- определяют режим функционирования сети как централизованный либо децентрализованный;
- в случае определения режима функционирования сети как централизованного:
генерируют на устройстве клиента запрос серверу на возможность соединения и направляют его на сервер;
получают в ответ на упомянутый запрос условия подключения устройства пользователя к серверу;
отправляют данные для подключения к серверу от устройства пользователя;
инициируют на устройстве пользователя формирование запроса подписки на каналы управления и направляют его на сервер;
сервер в ответ на полученный запрос инициирует подписку устройства пользователя на упомянутые каналы управления и направляет уведомление со списком упомянутых каналов на устройство пользователя;
выполняют соединение устройства пользователя с сервером по соответствующим каналам управления;
- в случае определения режима функционирования сети как децентрализованного:
выполняют поиск участников сети;
устанавливают локальный идентификатор для каждого участника сети;
производят получение информации о каждом участнике сети;
выполняют опрос каналов управления по каждому участнику сети, каналов обратной связи и связанных с каналами глобальных переменных, на основе полученной информации осуществляют создание списка глобальных переменных, каналов управления и обратной связи;
выполняют связывание каналов управления таким образом, что при изменении значения канала управления все связанные с каналом управления глобальные переменные принимают значения канала управления;
осуществляют связывание глобальной переменной и канала обратной связи для настройки канала обратной связи так, что упомянутый канал обратной связи принимает значение связанной с ним глобальной переменной, причем в случае изменения значения упомянутой глобальной переменной, участники децентрализованной сети получают значение изменения глобальной переменной;
переводят устройства участников сети в рабочий режим, при котором каждое из устройств ожидает изменения глобальных переменных или изменения собственных каналов, с последующей отправкой в сеть изменившихся значений глобальной переменной связанной с каналом управления.
Подключение устройств в сети осуществляется с помощью проводной и/или беспроводной связи.
Условия подключения к сети от сервера в централизованном режиме функционирования сети включают в себя необходимость шифрования и\или авторизации.
Данные для подключения к серверу в централизованном режиме функционирования сети включают в себя хеш авторизации, и\или тип устройства, и\или информация об устройстве.
При централизованном режиме функционирования сети клиент запрашивает у сервера список каналов управления, список каналов обратной связи, после чего происходит подписка на интересующие каналы управления и обратной связи, причем, в случае если клиент меняет значение канала управления, сервер принимает изменившееся значение, в случае если значение обратной связи, на которое подписался клиент, меняется на сервере, клиент получает изменившееся значение.
Определение режима функционирования сети устанавливается заранее в зависимости от используемого сетевого оборудования на физическом уровне.
Сеть может быть поделена на участки с централизованным режимом функционирования сети и децентрализованным режимом функционирования сети и взаимодействие между упомянутыми участками происходит с помощью списка глобальных переменных.
При построении вычислительной сети для связи между множеством устройств используется алгоритм шифрования, при котором:
клиент посылает запрос на открытие соединения и посылает свой открытый ключ, который подписан секретным сертификатом (этот сертификат является общим для клиента и сервера)
сервер, получив открытый ключ, проверяет его подлинность секретным сертификатом, убедившись, что полученный ключ подлинный, сервер передает свой открытый ключ клиенту.
клиент, получив открытый ключ от сервера, так же проверяет подлинность секретным сертификатом.
клиент зашифровывает с помощью открытого ключа сервера, вектор инициализации блочного шифра, который будет использоваться для канала "клиент-сервер" и отправляет серверу.
сервер, получив зашифрованные данные вектора инициализации, расшифровывает данные вектора инициализации блочного шифра и зашифровывает открытым ключом клиента собственный вектор инициализации для канала "сервер-клиент" и отправляет его клиенту.
получив вектор инициализации, клиент переходит в режим обмена, и пытается выполнить открытие сессии.
Данное техническое решение может быть выполнено в виде системы построения вычислительной сети для связи между множеством устройств, которая включает в себя:
сервер, имеющий в составе: по крайней мере, одно устройство хранения данных, одно устройство обработки команд, и выполненный с возможностью: в централизованном режиме функционирования сети - принимать запросы на возможность соединения, данные для подключения, запросы на подписку каналов управления и обратной связи; посылать условия подключения к нему, подтверждения подключения к нему, список каналов управления и обратной связи, команды для устройств клиента; в децентрализованном режиме функционирования сети - участвовать в поиске участников сети, принимать локальный идентификатор, передавать информацию о себе как об участнике сети, участвовать в опросе, в ходе которого формируется список глобальных переменных, каналов управления и обратной связи, принимать значения глобальных переменных;
устройство клиента, имеющее в составе: по крайней мере, одно устройство хранения данных, одно устройство обработки команд, и выполненное с возможностью: в централизованном режиме функционирования сети - посылать запросы серверу на возможность соединения, данные для подключения к серверу, запросы по подписке на каналы управления и обратной связи; подключаться к серверу; принимать условия подключения к серверу, подтверждения подключения к серверу, список каналов управления и обратной связи, команды от сервера и пользователя; в децентрализованном режиме функционирования сети - участвовать в поиске участников сети, принимать локальный идентификатор, передавать информацию о себе как об участнике сети, участвовать в опросе, в ходе которого формируется список глобальных переменных, каналов управления и обратной связи, принимать значения глобальных переменных.
Подключение устройств в сети осуществляется с помощью проводной и/или беспроводной связи.
Условия подключения к сети от сервера в централизованном режиме функционирования сети включают в себя необходимость шифрования и\или авторизации.
Данные для подключения к серверу в централизованном режиме функционирования сети включают в себя хеш авторизации, и\или тип устройства, и\или информация об устройстве.
При централизованном режиме функционирования сети клиент запрашивает у сервера список каналов управления, список каналов обратной связи, после чего происходит подписка на интересующие каналы управления и обратной связи, причем, в случае если клиент меняет значение канала управления, сервер принимает изменившееся значение, в случае если значение обратной связи, на которое подписался клиент, меняется на сервере, клиент получает изменившееся значение.
Определение режима функционирования сети устанавливается заранее в зависимости от используемого сетевого оборудования на физическом уровне.
Сеть может быть поделена на участки с централизованным режимом функционирования сети и децентрализованным режимом функционирования сети и взаимодействие между упомянутыми участками происходит с помощью списка глобальных переменных.
При построении вычислительной сети для связи между множеством устройств используется алгоритм шифрования, при котором:
клиент посылает запрос на открытие соединения и посылает свой открытый ключ, который подписан секретным сертификатом (этот сертификат является общим для клиента и сервера)
сервер, получив открытый ключ, проверяет его подлинность секретным сертификатом, убедившись, что полученный ключ подлинный, сервер передает свой открытый ключ клиенту.
клиент, получив открытый ключ от сервера, так же проверяет подлинность секретным сертификатом.
клиент зашифровывает с помощью открытого ключа сервера, вектор инициализации блочного шифра, который будет использоваться для канала "клиент-сервер" и отправляет серверу.
сервер, получив зашифрованные данные вектора инициализации, расшифровывает данные вектора инициализации блочного шифра и зашифровывает открытым ключом клиента собственный вектор инициализации для канала "сервер-клиент" и отправляет его клиенту.
получив вектор инициализации, клиент переходит в режим обмена, и пытается выполнить открытие сессии.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - схема передачи сигналов сеанса связи от клиента к серверу;
Фиг. 2 - примерная структура протокола;
Фиг. 3 - формат универсального значения пакета в протоколе;
Фиг. 4 - формат заголовка сообщения;
Фиг. 5 - схема устройства клиента и\или сервера для реализации технического решения.
ПОДРОБНОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Данное техническое решение в различных своих вариантах осуществления может быть выполнено в виде способа, в виде системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.
В некоторых вариантах реализации техническое решение может быть реализовано в виде распределенной компьютерной системы.
В данном техническом решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор, процессор, микроконтроллер), исполняющая машинные (машиночитаемые) инструкции (программы).
Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), ОЗУ, твердотельные накопители (SSD), оптические носители данных (CD-R, DVD-R, BlueRay Disk и т.п.).
Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
Ниже будут рассмотрены некоторые термины, которые в дальнейшем будут использоваться при описании технического решения.
Протокол передачи данных - набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесенной в пространстве аппаратуры, соединенной тем или иным интерфейсом.
Клиент-сервер (англ. Client-server) - вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер - это программное обеспечение. Обычно эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через компьютерную сеть посредством сетевых протоколов, но их можно расположить также и на одной машине.
Программы-сервера, ожидают от клиентских программ запросы и предоставляют им свои ресурсы в виде данных (например, загрузка файлов посредством HTTP, FTP, BitTorrent, потоковое мультимедиа или работа с базами данных) или сервисных функций (например, работа с электронной почтой, общение посредством систем мгновенного обмена сообщениями, просмотр web-страниц во всемирной паутине). Поскольку одна программа-сервер может выполнять запросы от множества программ-клиентов, ей может потребоваться высокопроизводительная вычислительная машина. Из-за особой роли этой машины в сети, специфики ее оборудования и программного обеспечения ее так же называют сервером.
Сетевой протокол - набор правил и действий (очередности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включенными в сеть устройствами.
Разные протоколы зачастую описывают лишь разные стороны одного типа связи. Названия «протокол» и «стек протоколов» также указывают на программное обеспечение, которым реализуется протокол.
Канал управления - каналом управления называется сущность, которая позволяет принимать значение, из внешнее среды. Устройство, получившее значение на канал управления, выполняет действия в соответствии с программой. Также, канал управления может проецировать собственное значение на, связанную с каналом управления, глобальную переменную. Максимально, каждый канал управления, может проецировать значение на 16 глобальных переменных одновременно.
Канал обратной связи - каналом обратной связи называется сущность, которая позволяет передавать внутреннее значение устройства, во внешнею среду. Так же, канал обратной связи может проецировать на себя значение из, связанной с каналом обратной связи, глобальной переменной. Канал обратной связи, может являться, владельцем одной глобальной переменной. Таким образом, в случае если какой либо участник сети захочет получить текущее значение глобальной переменной, владелец глобальной переменной должен сообщить текущее значение переменной. В случае если в сети существует несколько владельцев одной переменно, значение переменной считается неопределенным.
Глобальная переменная - абстрактное значение, которое может быть связано с каналами управления и обратной связи. Основное предназначение, связывание разных устройств для работы, как в централизованных, так и децентрализованных сегментах сети. Любое изменение значения глобальной переменной становится известным всем участникам сети, в случае если участник сети работает с глобальными переменными.
Данное техническое решение обеспечивает улучшение гибкости подключения различных устройств в сети и расширение функциональных возможностей, требуемых от среды передачи данных при построении и дальнейшем использовании систем автоматизации различного вида, а именно: проводить поиск устройств управления, создавать соглашения об установлении соединения, передача настроек, осуществлять передачу управляющих сигналов, передачу потоков, контроль за ошибками, автоматическое конфигурировании устройств, защищенную передачу сигналов между участниками сети.
Согласно предлагаемому техническому решению, способ построения вычислительной сети для связи между множеством устройств, содержит этапы, на которых:
Определяют режим функционирования сети как централизованный либо децентрализованный.
В случае определения режима функционирования сети как централизованного:
генерируют на устройстве клиента запрос серверу на возможность соединения и направляют его на сервер;
получают в ответ на упомянутый запрос условия подключения устройства пользователя к серверу;
отправляют данные для подключения к серверу от устройства пользователя;
инициируют на устройстве пользователя формирование запроса подписки на каналы управления и направляют его на сервер;
сервер в ответ на полученный запрос инициирует подписку устройства пользователя на упомянутые каналы управления и направляет уведомление со списком упомянутых каналов на устройство пользователя;
выполняют соединение устройства пользователя с сервером по соответствующим каналам управления;
В случае определения режима функционирования сети как децентрализованного:
выполняют поиск участников сети;
устанавливают локальный идентификатор для каждого участника сети;
производят получение информации о каждом участнике сети;
выполняют опрос каналов управления по каждому участнику сети, каналов обратной связи и связанных с каналами глобальных переменных, на основе полученной информации осуществляют создание списка глобальных переменных, каналов управления и обратной связи;
выполняют связывание каналов управления таким образом, что при изменении значения канала управления все связанные с каналом управления глобальные переменные принимают значения канала управления;
осуществляют связывание глобальной переменной и канала обратной связи для настройки канала обратной связи так, что упомянутый канал обратной связи принимает значение связанной с ним глобальной переменной, причем в случае изменения значения упомянутой глобальной переменной, участники децентрализованной сети получают значение изменения глобальной переменной;
переводят устройства участников сети в рабочий режим, при котором каждое из устройств ожидает изменения глобальных переменных или изменения собственных каналов, с последующей отправкой в сеть изменившихся значений глобальной переменной связанной с каналом управления.
В одном из возможных вариантов реализации техническое решение представляет собой сетевой протокол, предназначенный для создания коммуникаций между программами и устройствами автоматизации, облачными шлюзами и программами для настройки и передачи информации между участниками сети, объединенных данным протоколом. Протокол использует гибридную сетевую архитектуру, в которой участники сети распределены на группы:
Инструменты разработчика
Сервер-контроллер
Панель управления
Исполнительное устройство
Облачный шлюз
Взаимодействие между устройствами, в зависимости от способа соединения устройств, может осуществляться двумя способами:
В режиме прямого соединения. Связывание каналов управления и каналов обратной связи через прямую передачу данных. Данный способ предполагает отправку значения на канал управления и получение значения от канала обратной связи, в случае изменения значения канала обратной связи. В режиме прямого соединения используется авторизация и шифрация трафика. Тем самым данный тип соединения лучше всего использовать в общественных сетях. Данный подход требует наличия центрального сервера-контроллера.
В режиме широковещательного соединения. Связывание каналов управления и каналов обратной связи осуществляется через глобальные переменные. Данный способ позволяет проецировать поступившее значение на канал управления в глобальную переменную. А так же проецировать значение глобальной переменной на канал обратной связи. Данный тип соединения лучше всего использовать в закрытых сетях и шинах, кроме того подобный способ передачи данных позволяет создавать одноранговые участки сети в которых нет центрального управления.
Гибридная архитектура протокола позволяет объединить централизованные и децентрализованные участки сети и передавать между ними сигналы, в виде глобальных переменных.
Инструменты разработчика - это программы, использующие протокол, с помощью которых производится настройка, отладка и обслуживание участников сети, объединенных протоколом. Инструмент разработчика, в рамках протокола может:
Подключатся следующим группам участников сети:
Сервера-контроллеры.
Панели управления.
Исполнительные устройства.
Облачные шлюзы.
Отправлять запросы поиска участников сети.
Запрашивать список каналов управления и обратной связи.
Подписываться на каналы управления и обратной связи.
Получать, отправлять и изменять текущее состояние связей между глобальными переменными и каналами управления и обратной связи.
Отправлять значения на каналы управления.
Получать и отправлять значения каналов обратной связи.
Получать и отправлять значения системных настроек.
Получать и передавать данные проектов.
Сервер-контроллер - это программа или устройство использующее протокол. Сервер-контроллер предназначен для выполнения программ пользователя, сбором и хранением информации от других устройств автоматизации и приемом управляющих сигналов от панелей управления. Сервер-контроллер, в рамках протокола может:
Подключатся следующим группам участников сети:
Сервера-контроллеры.
Исполнительные устройства.
Облачные шлюзы.
Ожидать подключения от следующих групп участников сети:
Инструменты разработчика.
Сервера-контроллеры.
Панели управления.
Отправлять запросы поиска участников сети.
Отвечать на запросы поиска участников сети.
Запрашивать список каналов управления и обратной связи.
Отправлять собственный список каналов управления и обратной связи.
Подписываться на каналы управления и обратной связи.
Отправлять значения на каналы управления.
Получать значения на собственные каналы управления.
Получать и отправлять значения каналов обратной связи.
Получать, отправлять и изменять, собственные значения, системных настроек.
Получать, отправлять и изменять, собственные проектные данные.
Получать, отправлять и изменять текущее состояние связей между глобальными переменными и каналами управления и обратной связи.
Панель управления - это программа или устройство использующее протокол. Панель управления, предназначена для отображения текущего состояния и управления объектом автоматизации. Панель управления, в рамках протокола может:
Подключатся следующим группам участников сети:
Сервера-контроллеры.
Исполнительные устройства.
Облачные шлюзы.
Ожидать подключения от следующих групп участников сети:
Инструменты разработчика.
Отправлять запросы поиска участников сети.
Отвечать на запросы поиска участников сети.
Запрашивать список каналов управления и обратной связи.
Отправлять собственный список каналов управления и обратной связи.
Подписываться на каналы управления и обратной связи.
Отправлять значения на каналы управления.
Получать значения на собственные каналы управления.
Получать и отправлять значения каналов обратной связи.
Получать, отправлять и изменять, собственные значения, системных настроек.
Получать, отправлять и изменять, собственные проектные данные.
Получать, отправлять и изменять текущее состояние связей между глобальными переменными и каналами управления и обратной связи.
Исполнительное устройство - это программа или устройство использующее протокол. Исполнительное устройство является законченным конечным автоматом, который выполняет команды от других участников сети, объединенных протоколом, в соответствии с собственной жестко прописанной программой. Исполнительные устройства работают как в централизованном, так и децентрализованном режиме. В децентрализованном режиме используется передача сигналов с помощью глобальных переменных. Исполнительное устройство, в рамках протокола может:
В централизованном режиме, ожидать подключения от следующих групп участников сети:
Инструменты разработчика.
Сервера-контроллеры.
Панели управления.
Отвечать на запросы поиска участников сети.
Отправлять список каналов управления и обратной связи.
Отправлять значения каналов обратной связи.
Получать значения на собственные каналы управления.
Получать, отправлять и изменять, собственные значения, системных настроек.
Получать, отправлять и изменять текущее состояние связей между глобальными переменными и каналами управления и обратной связи.
Облачный шлюз - это программа использующее протокол. Облачный шлюз предназначен для связывания панелей управления и сервер-клиентов, сбора и обработки информации с сервер-контроллера. Облачный шлюз, в рамках протокола может:
Ожидать подключения от следующих групп участников сети:
Инструменты разработчика.
Сервера-контроллеры.
Панели управления.
Запрашивать список каналов управления и обратной связи.
Подписываться на каналы управления и обратной связи.
Отправлять значения на каналы управления.
Получать значения на собственные каналы управления.
Получать и отправлять значения каналов обратной связи.
Получать, отправлять и изменять, собственные значения, системных настроек.
Получать, отправлять и изменять, собственные проектные данные.
Получать, отправлять и изменять текущее состояние связей между глобальными переменными и каналами управления и обратной связи.
Протокол создан для решения основных проблем объектов автоматизации таких как:
Поиск участников сети.
Установка соединения и согласование параметров соединения между участниками сети.
Установка и получение настроечной информации об участниках сети.
Передача управляющих сигналов и потоков между участниками сети.
Контроль целостности передаваемых данных.
Шифрование передаваемых данных.
На Фиг. 1 приведена схема передачи сигналов сеанса связи от клиента к серверу.
Протокол может работать в двух режимах: централизованном и децентрализованном. Рассмотрим подробнее работу протокола в указанных режимах.
Централизованный режим. Данный режим позволяет управлять устройствами как в локальных сетях так и в глобальных. В этом режиме клиент должен выполнить следующие шаги:
1. Поиск участников сети. Данный шаг является опциональным.
2. Запрос возможности соединения.
3. Запрос на открытие сессии.
4. Запрос информации о сервере. Данный шаг является опциональным и предназначен для получения информации о сервере к которому подключен клиент.
5. Запрос количества каналов управления на сервере. Данный шаг является опциональным и предназначен для получения информации о количестве каналов управления на сервере к которому подключен клиент.
6. Запрос количества каналов обратной связи на сервере. Данный шаг является опциональным и предназначен для получения информации о количестве каналов обратной связи на сервере к которому подключен клиент.
7. Подписка на интересующие каналы обратной связи.
8. Отправка значения на канал управления.
9. Получение изменения значения канала обратной связи.
Децентрализованный режим. В этом режиме клиент должен выполнить следующие шаги:
1. Поиск участников сети. Данный шаг является опциональным.
2. Запрос информации о сервере. Данный шаг является опциональным и предназначен для получения информации о сервере к которому подключен клиент.
3. Установка локального идентификатора. Данный шаг является опциональным и предназначен для указания участнику сети его локальный идентификатор.
4. Связывание списка глобальных переменных и канала управления. Данный шаг является опциональным и предназначен для настройки канала управления таким образом, что при изменении значения канала все связанные с каналом управления глобальные переменные принимали бы значения канала управления.
5. Связывание глобальной переменной и канала обратной связи. Данный шаг является опциональным и предназначен для настройки канала обратной связи таким образом, что канал обратной связи принимал бы значение связанной с ним глобальной переменной.
6. Запрос количества каналов управления на сервере. Данный шаг является опциональным и предназначен для получения информации о количестве каналов управления на сервере к которому подключен клиент.
7. Запрос количества каналов обратной связи на сервере. Данный шаг является опциональным и предназначен для получения информации о количестве каналов обратной связи на сервере к которому подключен клиент.
8. Изменение значения глобальной переменной.
9. Получение значение изменения глобальной переменной.
Поиск участников сети. Данный тип запроса предназначен для поиска всех участников сети объединенных протоколом. В самом запросе указывается список флагов указывающих на то, какой группе участников сети следует откликнуться, например, искать только исполнительные устройства. Каждый участник сети должен ответить на запрос поиска, в случае получения, при этом участник сети состоит в запрашиваемой группе. Ответ содержит группу клиента, уникальный идентификатор устройства и локальный идентификатор устройства. Полученная информация используется для получения дополнительной информации и настройки участника сети.
Запрос возможности соединения. С помощью данного запроса клиент проверяет возможность подключения к серверу. В случае если клиент не находится в черном списке и на сервере есть свободное место. Сервер присылает параметры подключения к сервере, такие как нужна ли авторизация, параметры шифрования.
Запрос открытия сессии. После того как клиент получит от сервера подтверждение возможности соединения, отправляется запрос на открытие сессии. Передаются параметры доступа к серверу - хеш имени и пароля. В случае если параметры доступа соответствуют данными сервера, присылается подтверждение открытия сессии. Теперь клиент может посылать и принимать информацию с сервера.
Протокол представляет собой последовательность пакетов (П), каждый пакет в свою очередь состоит из заголовка (ЗП) и данных пакета (ДП). Данные пакета, в соответствии с заголовком пакета, могут быть зашифрованы и содержать контрольную сумму (КС). Данные пакета содержит сообщение, который в свою очередь состоит из заголовка (ЗС) и данных сообщения (ДС). На Фиг. 2 изображена примерная структура протокола.
Формат универсального значения пакета приведен на Фиг. 3.
На Фиг. 4 приведен формат заголовка сообщения.
В Таблицах 1-4 приведены идентификаторы, использующиеся в протоколе и необходимые для установления типа соединения (Таблица 1), типа протокола (Таблица 2), способа шифрования (Таблица 3), типа сообщения (Таблица 4).
Создание пакетов должно соответствовать следующим правилам:
Шифрование данных пакета производится до вычисления контрольной суммы.
Контрольная сумма вычисляется с помощью алгоритма CRC-16-IBM.
Получение пакетов. Получение пакетов должно соответствовать следующим правилам:
Начало пакета определяется маркером начала пакета.
Любой поврежденный пакет приводит к закрытию соединения.
Если заголовок пакета указывает на наличие контрольной суммы, производится вычисление контрольной суммы полученного пакета, в случае если вычисленная контрольная сумма не равна содержащийся в пакете, пакет считается поврежденным.
Если не удалось расшифровать пакет, такой пакет должен быть пропущен.
Создание и обработка сообщений: данные сообщения, их длинна, содержание и структура зависит от идентификатора сообщения, которые определяются заголовком сообщения. При создании сообщения соблюдаются следующие правила:
При создании сообщения с типом запрос, флаг ошибки должен быть всегда сброшен в 0.
В случае возникновения ошибки при выполнении запроса, всегда создается сообщение с типом ответ, который содержит код ошибки.
При создании сообщения с типом ответ, в пакет должен быть включен идентификатор транзакции запроса на который производится ответ.
При обработке сообщений соблюдаются следующие правила:
Любое сообщение считающееся поврежденным, не обрабатывается.
В случае если идентификатор сообщения не известен, сообщение считается поврежденным.
При получении сообщения с типом запрос и значением флага ошибки равным 1, сообщение считается поврежденным.
На каждое сообщение с типом запрос, нужно создавать сообщение с типом ответ, сообщение должно содержать идентификатор сообщения и транзакции запроса.
Рассмотрим основные типы сообщений:
Возможность соединения (0×00). Сообщение предназначено для определения возможности соединения клиента с сервером. В случае если такая возможность присутствует, клиент получает подтверждение возможности соединения, в противном случает присылается код ошибки.
Открытие сессии (0×01). Сообщение предназначено для открытия сессии клиентом, на сервере. Во время запроса клиент реквизиты подключения. В случае если сервер принимает реквизиты подключения и на сервере есть свободное место для клиента, клиент получает подтверждение соединения. В противном случае, клиент получает код ошибки.
Проверка соединения (0×02). Сообщение предназначено для проверки наличия соединения между сервером и клиентом. Сообщение проверки соединения отправляется каждые 15 секунд. В случае если сервер не получит ответ, от клиента, на запрос, сервер отключает клиента.
Сообщение: поиск устройств (0×03). Сообщение предназначено для поиска устройств, внутри локальной сети.
Сообщение: получение списка каналов обратной связи (0×20). Сообщение предназначено для получения списка всех каналов обратной связи на устройстве с их идентификаторами, именами и текущими значениями.
Сообщение: подписка на каналы обратной связи (0×21). Сообщение предназначено для подписки на каналы обратной связи, значения которых нужно получать при изменении.
Сообщение: отписка от каналов обратной связи (0×22). Сообщении предназначено для отписки от каналов обратной связи, значения которых не нужно получать по мере изменения.
Сообщение: изменение значения канала обратной связи (0×23). Данное сообщение генерируется в случае если клиент подписался на канал сервера.
Сообщение: связывание канала обратной связи глобальной переменной. (0×24). Сообщение предназначено для сообщения серверу, что нужно установить логическую связь между каналом обратной связи и глобальной переменной.
Сообщение: получение списка каналов управления (0×30). Сообщение предназначено для получения списка всех каналов управления на устройстве с их идентификаторами и именами.
Сообщение: подписка на каналы управления (0×31). Сообщение предназначено для сообщения серверу информации о всех каналах, которые клиент собирается использовать.
Сообщение: отписка от каналов управления (0×32). Сообщении предназначено для отписки от каналов управления.
Сообщение: изменение значения канала управления (0×33). Сообщение предназначено для сообщения серверу об изменении значения канала управления.
Сообщение: связывание канала управления и списка глобальных переменных. (0×34). Сообщение предназначено для сообщения серверу, что нужно установить логическую связь между каналом управления и списком глобальных переменных.
Сообщение: получение списка каналов обратной связи, имеющих архивные данные. (0×40). Сообщение предназначено для получения списка всех каналов обратной связи, которые имеют архивные данные.
Сообщение: подписка на архивные данные канала обратной связи (0×41). Сообщение предназначено для сообщения серверу, запроса на получение архивных данных, указанного канала обратной связи, в указанном временном диапазоне.
Сообщение: отписка от архивных данных канала обратной связи (0×42). Сообщение предназначено для информирования сервера, о том что больше не нужно получать архивные данные канала обратной связи.
Сообщение: архивные данные канала обратной связи (0×43). Сообщение предназначено для передачи архивных данных канала обратной связи.
Сообщение: установка значения списка глобальных переменных (0×60). Сообщение предназначено изменения значения списка глобальных переменных.
Сообщение: получение значения списка глобальных переменных (0×61). Сообщение предназначено для получения текущего значения глобальной переменной, значение может быть получено, только если в сети присутствует владелец переменной. Ниже (в качестве примера) представлена структура данного сообщения.
Тип сообщения запрос:
Тип сообщения ответ:
В таблицах 5-6 представлены кодировки и описание ошибок (Таблица 5) и типы массивов данных (Таблица 6).
В практическом смысле - использование данного протокола, позволяет, например, объединять устройства различных брендов в единое умное пространство. При изменении состояния одного из устройств, шина данных посылает оповещение об изменении состояния устройства на управляющую панель и возникает необходимость среагировать на это оповещение, воздействием на другое устройство. Если устройства относятся к разным брендам, то они не совместимы и подобная логика работы будет недоступна. Например, при включении света в ночное время суток, система должна автоматически закрывать шторы на окнах. За управление светом отвечает один модуль, а за управления моторизированными шторами отвечает другой модуль. Суть межмодульного взаимодействия состоит в том, что модуль, получая от пользователя определенную команду, должен оповещать систему и остальные модули о своем состоянии и всех изменениях в работе устройства. При приеме сообщения от другого модуля, модуль управления светом должен принимать решение об изменении состоянии своего устройства, если это заложено в концепцию работы объекта автоматизации.
Система построения вычислительной сети для связи между множеством устройств должна иметь в своем составе:
сервер, имеющий в составе: по крайней мере, одно устройство хранения данных, одно устройство обработки команд, и выполненный с возможностью: в централизованном режиме функционирования сети - принимать запросы на возможность соединения, данные для подключения, запросы на подписку каналов управления и обратной связи; посылать условия подключения к нему, подтверждения подключения к нему, список каналов управления и обратной связи, команды для устройств клиента; в децентрализованном режиме функционирования сети - участвовать в поиске участников сети, принимать локальный идентификатор, передавать информацию о себе как об участнике сети, участвовать в опросе, в ходе которого формируется список глобальных переменных, каналов управления и обратной связи, принимать значения глобальных переменных;
устройство клиента, имеющее в составе: по крайней мере, одно устройство хранения данных, одно устройство обработки команд, и выполненное с возможностью: в централизованном режиме функционирования сети - посылать запросы серверу на возможность соединения, данные для подключения к серверу, запросы по подписке на каналы управления и обратной связи; подключаться к серверу; принимать условия подключения к серверу, подтверждения подключения к серверу, список каналов управления и обратной связи, команды от сервера и пользователя; в децентрализованном режиме функционирования сети - участвовать в поиске участников сети, принимать локальный идентификатор, передавать информацию о себе как об участнике сети, участвовать в опросе, в ходе которого формируется список глобальных переменных, каналов управления и обратной связи, принимать значения глобальных переменных.
На Фиг. 5 изображена примерная конфигурация сервера\или устройства клиента для реализации описываемого технического решения. Устройство обработки данных 100 может быть сконфигурировано как клиент, сервер, мобильное устройство или любое другое вычислительное устройство, которое взаимодействует с данными в системе совместной работы, основанной на сети. В самой базовой конфигурации устройство обработки данных 100, как правило, включает в себя, по меньшей мере, один процессор 101 и устройство хранения данных 102. В зависимости от точной конфигурации и типа вычислительного устройства системная память 102 может быть энергозависимой (например, оперативное запоминающее устройство (ОЗУ, RAM)), энергонезависимой (например, постоянное запоминающее устройство (ПЗУ, ROM)) или некоторой их комбинацией. Устройство хранения данных 102, как правило, включает в себя одну или более прикладных программ 103 и может включать в себя данные 104 программ. Настоящее техническое решение как способ, описанное в деталях выше, реализовано в прикладных программах 103.
Устройство обработки данных 100 может иметь дополнительные особенности или функциональные возможности. Например, устройство обработки данных 100 может также включать в себя дополнительные устройства хранения данных (съемные и несъемные), такие как, например, магнитные диски, оптические диски или лента. Такие дополнительные хранилища проиллюстрированы на Фиг. 5 посредством несъемного хранилища 107 и съемного хранилища 108. Компьютерные носители данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или при помощи любой технологии для хранения информации. Устройство хранения данных 102, несъемное хранилище 107 и съемное хранилище 108 являются примерами компьютерных носителей данных. Компьютерные носители данных включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память, выполненную по другой технологии, ПЗУ на компакт-диске (CD-ROM), универсальные цифровые диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитные ленты, хранилища на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для хранения желаемой информации и к которой может получить доступ устройство обработки данных 100. Любой такой компьютерный носитель данных может быть частью устройства 100. Устройство обработки данных 100 может также включать в себя устройство(а) 105 ввода, такие как клавиатура, мышь, перо, устройство с речевым вводом, устройство сенсорного ввода, и так далее. Устройство(а) 106 вывода, такие как дисплей, динамики, принтер и тому подобное, также могут быть включены в состав устройства.
Устройство обработки данных 100 содержит коммуникационные соединения, которые позволяют устройству связываться с другими вычислительными устройствами, например по сети. Сети включают в себя локальные сети и глобальные сети наряду с другими большими масштабируемыми сетями, включая, но не в ограничительном смысле, корпоративные сети и экстрасети. Коммуникационное соединение является примером коммуникационной среды. Как правило, коммуникационная среда может быть реализована при помощи машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном информационном сигнале, таком как несущая волна, или в другом транспортном механизме, и включает в себя любую среду доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более из его характеристик изменены или установлены таким образом, чтобы закодировать информацию в этом сигнале. Для примера, но без ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Термин «машиночитаемый носитель», как употребляется в этом документе, включает в себя как носители данных, так и коммуникационные среды.
Специалисту в данной области очевидно, что конкретные варианты осуществления способа и системы построения вычислительной сети для связи между множеством устройств были описаны здесь в целях иллюстрации, допустимы различные модификации, не выходящие за рамки и сущности объема технического решения.