Automation systems
Components
Devices:
-
- Automation components (protocol ISBus, 485 interface);
- Iterface Converters ISBus->Ethernet;
- Amplifiers D class.
Software:
-
- Software «Controller»;
- Software for touch panel(IPhone/IPad/IPod, devices on Android OS);
- Software LinkStudio2;
- Software SmartHomeStudio.
Devices in construction:
-
- Temperature controller (inside temperature measurement, control of servomotors heating systrem)
- Humidity controller (inside humidity measurement and control of other automation devices in network)
- Electric parameters meter (voltage and current measurement in power system, calculation of phase shifting and other parameters)
System architecture

The basis of the system is the controller that is connected to all devices via Ethernet. Devices with an interface RS485/432/422/IS-Bus have to be connected via Ethernet Interface Converter. Configuration of our equipment performs through software LinkStudio2.
Creating of an user interface for touch panels (iPhone/iPad, Android) and configuration of controller performs through SmartHomeStudio.
Управлять системой можно при помощи сенсорных панелей, для этого в SmartHomeStudio создается интерфейс управления и осуществляется связывание графических элементов интерфейса с различными командами других устройств.
Устройства автоматики связаны информационной шиной и работают по протоколу ISBus. Устройства настраиваются через ПО LinkStudio2 и могут работать как автономно, так и в связи с контроллером. Данная связь осуществляется при помощи преобразователя интерфейсов Ethernet/ISBus. Также устройствами автоматики можно управлять используя контроллеры сторонних производителей, например, контроллеры компании AMX.
Основой системы является контроллер, который связан со всеми устройствами интерфеса Етхернет. Устройства имеющие интерфейс РС485/432/422/исбуы подкючаются через конвертер интерфейса Етхернет. Для настройки нашего оборудования используется программное обеспечение ЛинкСтудио2.
Для создания интерфейса управления системой с сенсорных панелей (ифоне|ипад, андроид) используется программное обеспечение смартхоместудио.
Среда программирования системы
SmartHomeStudio
SHS (SmartHomeStudio) - продукт для программирования взаимодействия различных устройств управления , автоматики и др. Программа написана на С++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt ( после процесса отладки ). Для удобства настройки и отладки программы, а так же для легкости запуска каких-либо рутинных операций, в продукт встроен язык V8 (разновидность JAVASCRIPT на основе ECMA стандарта - разработчик языка - Google и он использует его в раскручиваемом браузере Google Chrome, отличается высокой скоростью в выполнения, потому что компилируется в машинный код), который полностью управляет логикой программы на стадии запуска и в рантайме.
В программе реализована среда для написания интерфейса для устройств управления , на основе iOS (IPAD, IPhone) и Android, на которые программа может передавать составленный интерфейс по каналу TCP.
Наравне с этим в программе реализована среда для программирования логики совместной работы любых устройств на основе сигнально/слотовых соединений, которые позволяют наглядно создать логику работы, не имея каких-либо навыков - то есть данная деятельность ориентирована на широкий круг пользователей. Причём для более продвинутых пользователей доступны мощные низкоуровневые возможности, которые позволяют проектировать любые по сложности комбинации взаимодействия устройств. Хотя для вышеупомянутой "продвинутости" требуется всего лишь знание JavaScript (самый распространенный диалект среди разработчиков) и основ работы программы.
Вся спроектированная передается по каналу TCP на контроллер - приложение также написанное на Qt + V8 , играющее роль демона и управляющее работой всех устройств в рантайме, на основе спроектированной пользователем логики. Причём основную работу на контроллере выполняет V8 . Так как V8 в скомпилированном варианте представляет из себя тот же машинный(ассемблерный) код, то вся логика работает быстро и с минимальным расходом ресурсов. Надо отметить, что SHS полностью подготовлен для совместной работе с контроллером, в целях отладки проектов, из данной среды можно запускать скрипты на контроллере и также получать различную информацию с контроллера.
Особо программу (SHS) выделяет её универсальность. Она теоретически может работать с любыми типами устройств. Если пользователь хочет ,что бы контроллер мог работать с каким-либо новым устройством , он пишет протокол для него на JavaScript , на основе специального API. После этого устройство готово к работе. Таким образом, например, для управления мультимедийным центром XBMC достаточно реализовать протокол обмена на javascript, причем изменения не вносятся в код программы контроллера или SHS. Также рассматривается возможность встраивания DLNA библиотеки в контроллер для возможности управлять различными мультимедиа устройствами, поддерживающими данный стандарт.
Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock.
Принципы работы SmartHomeStudio
SHS предназначена для связывания различных устройств в единую систему управления. Основными логическими единицами программы являются:
- контроллер,
- устройство отображения и управления,
- драйвер какого-либо устройства.
Каждое из представленных устройств имеет входы управления этим устройством - «слоты» и события, которые порождает само устройство - «сигналы». Для получения логической связи сигнал устройства должен быть связан со слотом другого или того же устройства.
Например, сигналами панели управления являются: нажатие/удержание/отпускание определенной кнопки, перемещение ползунка. А слотами: изменения текста определенной кнопки, изменение состояния кнопки и .т.п.
Драйвер устройства имеет сигналы и слоты, которые определяются спецификой работы устройства. Например, если это драйвер усилителя, то слотами будут: установка значения громкости, установка определенного входа, установка баланса, тембра и т.п. А слотами: статус громкости, статус баланса, текущий вход.
Если мы хотим назначить на определенную кнопку панели управления изменение громкости, то мы связываем нажатие на кнопку(сигнал) с установкой значения громкости(слот) и получаем логическую связь. Данная связь обрабатывается контроллером. Контроллер получает событие нажатия на кнопку(сигнал), далее ищет слот(ы), который привязан к данному сигналу и выполняет их.
Для создания более сложных логических связей, которые требуют проверки каких-либо условий, в программе существует возможность написания скриптов на основе ECMA-скрипта.
Для добавления в программу драйвера неизвестного устройства необходимо описать при помощи скрипта вид сигнала/слота, из каких параметров он состоит, а также описать протокол работы данного устройства.
Основным протоколом связи контроллера с другими с устройствами является TCP либо UDP. Но также существует возможность использовать 232/485 интерфейсы компьютера, на котором установлен контроллер.
Функции и возможности SmartHomeStudio
-
Создание графического интерфейса для iPod, iPhone, iPad, Android (тестирование на данный момент происходит на iPad):
- Доступные элементы управления: кнопка, слайдер, список;
- Элементы графического интерфейса: страница, всплывающая страница;
- Свободное размещение элементов управления на страницах;
- Копирование/вставка/перемещение элементов управления;
- Назначение картинок элементам управления;
- Анимация при переходе со страницы на страницу.
- Загрузка графического интерфейса на панель
- Автоматические нахождение панели в сети.
- Загрузка проекта на контроллер;
- Создание логических связей устройств (сигнально-слотовых соединений);
- Возможность добавления новых драйверов устройств с использованием ECMA-скрипта без перекомпиляции всей программы;
- Настройка взаимодействия устройств без программирования;
- Возможность написания скриптов для создания сложной логики взаимодействия устройств;
- Двунаправленное взаимодействие контроллера и сенсорных панелей.
Контроллер
Контроллер - это консольное приложение (демо), которое управляет логикой работы всех устройств. Все устройства (как автоматики, управления и др) постоянно информируют контроллер о различных событиях и изменениях в своём состоянии, а он , в свою очередь , на основе логики , запрограммированной в SHS (так называемой 'схеме', имеющей вид массива сериализованных сигнально/слотовых связей), принимает решение о реакции на эти сообщения , в виде запуска каких-то действий (так называемых 'слотов') на том же или других устройствах. Вся эта деятельность происходит в контексте V8, что обеспечивает гибкость работы логики без потери производительности и ресурсов (по причине того, что V8 в рабочем (компилированном) виде представляет из себя тот же низкоуровневый - машинный( ассемблерный) код). Чтобы работа одних устройств, не влияла негативно на работу других устройств (в смысле использования ресурсов машины, где запущен контроллер), его работа построена максимально асинхронно . Практически каждое устройство управления общается с контроллером в отдельном потоке, что позволяет максимально снизить возможные коллизии.
В зависимости от настроек пользователя, контроллер может отправлять отладочную информацию , о происходящих на нём действиях (причём в стандартизированном виде), на SHS, что делает 'прозрачным' для настройщика механизм работы контроллера. Также из SHS (как и из контроллера, непосредственно) можно всегда повлиять на текущую работу контроллера, с помощью запуска различных скриптов, что может быть необходимо, в процессе отладки проекта.
Продукт написан на C++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt (после процесса отладки). Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock.
Настройка автоматики - Linkstudio 2
LS2 - программа для управления и настройки устройств автоматики. Продукт написан на C++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt (после процесса отладки). Для удобства настройки и отладки программы, а так же для легкости запуска каких-либо рутинных операций, в продукт встроен Qt Script (разновидность JAVASCRIPT на основе ECMA стандарта), который полностью управляет логикой программы на стадии запуска и в рантайме. Программа не ориентированна на конкретные виды устройств, а предоставляет API на Qt Script для динамического создания устройств любого вида, включая динамически программируемый диалог настройки устройств и программируемый механизм для работы с памятью устройства. В сетевом плане программа работает по TCP и 232 интерфейсу.
Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock. Инструментарий программы включает в себя различные утилиты для работы с устройствами автоматики, такие как поиск устройств по различным параметрам и сниффер. Программа снабжена мощными средствами логгирования - визуальный лог, асинхронные файловый и UDP лог, которые можно переключать/настраивать самостоятельно.
Обмен данными между устройствами осуществляется при помощи протокола ISBus на основе интерфейса RS-485. Каждое устройство имеет свой физический адрес в сети.
Функции устройств могут объединяться в группы, на основе групп осуществляется взаимосвязь между устройствами. Каждое устройство имеет свой набор функций и свой набор параметров для настройки. Объединение функций в группу приводит к образованию логической связи между этими функциями.




