Использование данной статьи возможно только после личного разрешения автора.
Умный офис своими руками на базе контроллера Alpha SE. Часть 1.
Сегодня все большее количество людей начинают задумываться об установке систем домашней или офисной автоматизации. Эта тенденция обусловлена несколькими причинами: во-первых быстрыми темпами строительства, во-вторых – повышением требований к качеству жизни, в-третьих – уменьшением стоимости систем «дополнительного комфорта». Кроме комфорта системы автоматизации могут принести и существенную экономию при содержании строений.
Эта статья расчитана на технических специалистов развивающихся строительных и монтажных организаций, желающих идти в ногу со временем.
Системы офисной автоматизации, выполненные на основе контроллера Alpha SE позволяют решать достаточно широкий круг задач:
- Управление освещением от датчиков движения, по графику, по событию, брелоком,
- Управление освещением вывесок – по графику,
- Управление отопительными системами - теплыми полами, водяными и эл. радиаторами,
- Управление инженерными системами - системами предотвращения протечек воды,
- Управление ограждениями – воротами, шлагбаумами,
- Оповещение о событиях – SMS, голосовое сообщение, сирена.
Управление всем оборудованием в системе автоматизации осуществляется контроллером по программе, разработанной фирмой-инсталлятором. Программы для контроллера пишутся в приложении Win32 «Конфигуратор контроллера Alpha SE» на специальном языке программирования, описанном в руководстве по программированию.
Вполне естественно, что при освоении языка программирования контроллера наискорейших результатов можно добиться, изучая небольшие примеры, которые встречаются в реальной жизни.
В качестве объекта для изучения рассмотрим небольшой офис, схема оборудования автоматизации которого изображена ниже.
Освещение офиса реализовано с помощью люминисцентных светильников (4х20Вт.), разделенных на 8 групп. Все розетки поделены на 4 управляемые группы.
Постараемся рассмотреть некоторые алгоритмы с приведением программного кода.
Освещение
Достаточно часто, при автоматизации офисных помещений, встает задача отключения освещения забытого после окончания рабочего дня. В нашем случае всем освещением офиса управляет модуль SER8O Light (Smart Electronics Relay 8 Output Light).
Предположим, что рабочий день в офисе заканчивается в 18:00, значит общее отключение освещения необходимо проводить не ранее 19:00, когда уйдут даже слегка задержавшиеся сотрудники.
Время отключения всего освещения будем хранить в переменной var[2].
Первым делом, используя программу Alpha SE Configurator требуется задать значение самой переменной и ее начального значения (var[2]=1900). Задание начального значения позволит корректно работать контроллеру даже после его полной перезагрузки.
Программный код, реализующий выключение освещения, будет выглядеть следующим образом:
#var[2] Время выключения забытого света в офисе
var[50]=GetTime(); # текущее время
#Алгоритм - конец рабочего дня
if(var[50]$==var[2]) #Если настал конец рабочего дня
{
var[255]=Set_Relays_State(1,2,0); #Команда первому модулю выключить все.
};
Кроме самого алгоритма отключения освещения необходимо обратить внимание на то, что вместо выполнения нескольких операций над одним модулем мы использовали блочную команду – команда позволяющая изменить сразу несколько выходов за один вызов. В данном случае мы отправили команду на выключение сразу 8 выходных реле, затратив примерно в 10 раз меньше времени, чем при вызове 8 команд отключающих по одному реле.
Теперь рассмотрим алгоритм «Доброе утро» - при открытии утром входной двери офиса первым сотрудником включается освещение рабочего зала.
var[30]=Get_Points_State(1,8); # Первая группа освещения рабочего зала
var[21]=Get_Points_State(2,1); # Датчик открытия двери
var[50]=GetTime(); # текущее время
if (var[50]$==0) #Если настал новый день 00:00
{
var[51]=1; #Включили признак нового дня
};
if(var[51]&&var[21])# Если настал новый день и сработал геркон на входной двери
{
if (var[30]==0) # Если свет выключен
{
#Включаем свет в рабочем зале
var[254]=Set_Relay_State(1,8,1);
};
var[51]=0; #Выключили признак нового дня
};
Если с этим алгоритмом все понятно, можем переходить на следующий – управление вывеской. Естественно, что она должна подсвечиваться в темное время суток, это один из верных способов привлечения клиентов. Но оставлять вывеску работающей на всю ночь тоже не имеет смысла, если конечно же это не вывеска ночного клуба. :) Оптимальный период ее работы определяется временем заката, которое зависит от географического положения и времени года.
Предположим, что мы решили настроить контроллер так, что бы он включал вывеску в 18:00, а выключал в 23:30. Само время включения и выключения занесем в переменные 0 и 1.
#var[0] – время включения вывески
#var[1] – время выключения вывески
var[32]=Get_SER8I8O_IO(1,10); # Состояние вывески
var[50]=GetTime(); # текущее время
#Отработка алгоритма работы вывески
var[254]=var[50]==var[0]; #Если настало время включения вывески
var[255]=!var[32]; #Вывеска выключена
if (var[254]&&var[255]) # Если настало время включения вывески
{
var[254]=Set_Relay_State(1,10,1); # Включаем вывеску
};
var[254]=var[50]==var[1]; #Если пришло время выключения вывески
if (var[254]&&var[32]) # и она работает
{
var[254]=Set_Relay_State(1,10,0);
};
Вот и все. Согласитесь, это достаточно просто.
Думаю, что не может не вызвать интерес и алгоритм имитации присутствия, но мы рассмотрим его в следующей статье. Могу лишь сказать заранее, что в этом алгоритме применяется функция Random, которая возвращает произвольные значения в определенном числовом диапазоне.
Инженерные системы
Системы предотвращения протечек воды обычно реализуется с использованием датчиков протечки и эл.клапанов. Сначала может показаться, что эту систему можно огранизовать и без всяких контроллеров, плат ввода-вывода и прочего. Алгоритм же простой – пока датчик сухой, клапан открыт, как только датчик намок, клапан закрыли. Просчет обычно замечают уже после установки – заказчик идет купаться, небольшое количество воды, переливается через край душевой, датчик намокает и ... :) Человек стоит в душе, весь в пене, воды нет и появится она только после полного просыхания датчика.
Всегда необходимо предусматривать возможность открытия клапана, даже если сработал соответствующий датчик протечки.
Алгоритм работы системы предотвращения протечек воды будет выглядеть следующим образом - Если выключатель (режим автоматической защиты от протечек) выключен, то никакого внимания на датчик протечки контроллер не обращает. Если выключатель (режим автоматической защиты от протечек) включен, состояние клапана будет определяться состоянием датчика.
var[1]=Get_Points_State(2,1); #Состояние датчика протечки
var[2]=Get_Points_State(2,2); #Состояние выключателя управления
var[3]=Get_Points_State(2,8); #Состояние эл. клапана
if (var[2]==1) # Если режим автоматической защиты от протечек включен
{
if (var[1]==1) #Сработал датчик протечки
{
var[255]=Set_Relay_State(2, 8, 1); # Замыкаем клапан
};
};
if (var[2]$==0) # Если выключатель переключили
{
var[255]=Set_Relay_State(2, 8, 0); # Открываем клапан
};
Надеюсь, что весь описанный в этой части статьи материал был понятен для читателя. Если какие-то моменты были изложены недостаточно подробно, пишите на электронный ящик.
Автор: Быков Виктор Сергеевич
E-mail: info@smart-elec.ru
Сайт: https://smart-elec.ru
|