ПЛК Ace: маленький контроллер для «умного дома»

ПЛК Ace: маленький контроллер для «умного дома»

838

Я занимаюсь разработкой программ для программируемых логических контроллеров(ПЛК) в промышленных автоматизированных системах управления техническими действиями(АСУ ТП).

ПЛК это особый мини-комп, который работает так: Для тех, кто сталкивается с сиим словом в первый раз, объясню.
Воспринимает входные дискретные (Di) либо аналоговые (Ai) сигналы; 1.
2. Обрабатывает эти сигналы по данной программером програмке;
Выдает управляющий сигнал через выходные дискретные (DO) либо аналоговые (AO) сигналы. 3.

К примеру, клавиша нажата либо отжата, лампочка включена либо выключена. Дискретный — когда у сигнала может быть лишь 2 состояния: 0 либо 1, «да» либо «нет».
К примеру, чем выше уровень сигнала (вольт либо миллиампер) от датчика температуры, тем больше измеряемая температура. Аналоговый — когда значение сигнала зависит от уровня электрического сигнала.

Используются ПЛК в основном в индустрии, станках, системах домашней автоматизации «умный дом» и т.д.

Естественно, в силу профессии меня интересует все, что касается ПЛК и другого оборудования, применяемого в АСУ ТП. Как-то, бродя по сети, я зашел на веб-сайт американской компании Velocio, которая производит ПЛК серий Ace, Branch, Embeded.

В особенности впечатлил размер, такового малеханького ПЛК я еще не встречал: Главные фишки этих контроллеров — небольшой размер, всего 2.5» x 2.5», питание 5 вольт и стоимость от 49$ за модель с 6 дискретными входами и 6 дискретными выходами.

Забегая вперед скажу, что ПЛК компании Velocio лучше всего подступают для «умных домов» и иных систем домашней автоматизации. Хотелось бы кратко поведать о этом ПЛК и наиболее широкой аудитории Хабра. ПЛК меня заинтриговал, я связался с компанией Velocio и мне прислали контроллер модели Ace 3090v5.

Вот ко мне пришла посылочка с контроллером прям из городка Хантсвилл, штат Алабама:

Состав посылки:
1. ПЛК Velocio Ace 3090v5, $179
2. Крепление на DIN-рейку, $5
Коннекторы сигнальных линий (3,4,8 pin, шаг 2.5 мм), 6 шт., $6*3 3.
Отвертка плоская, нажимало 1.5 мм, безвозмездно 4.
5. Коннектор питания (2 pin, шаг 2.5 мм), $2
6. Кабель USB Am-miniB, $5

Коннекторы тоже можно поискать в другом месте, но крепление на DIN-рейку неповторимо и его необходимо брать совместно с контроллером. Кабель USB для программирования Ace не непременно брать в Velocio, это обыденный кабель USB Am-miniB, который продается в любом компьютерном магазине.

Ожидания Ace 3090v5 оправдал, он вправду чрезвычайно небольшой:

Свойства:
Заглавие
Velocio Ace 3090v5
Назначение
ПЛК для домашней и промышленной автоматизации
Кол-во DI
6
Кол-во DO
18, транзисторные
AI
Кол-во, всего
7
Кол-во AI 16 бит/ тип
4/ Термопары J, K, T, N;
±0.256 V, ±0.512 V, ±1.024 V, ±2.048 V
Кол-во AI 12 бит/ тип
 3/ 0…+5 V
Порты связи
Mini USB(может работать по Modbus), RS-232
Протоколы передачи данных
Modbus RTU slave
Скорость передачи данных, bps
9600, 19200, 38400, 57600
Крепление
DIN-рейка
Питание
5 V DC
Габариты
63.5х63.5х12.7 мм
Температура эксплуатации
-40… 85°С
Степень защиты IP
IP65
Среда программирования
Velocio vBuilder, бесплатная
Стоимость
179 $

Конструкция
При собственных размерах, контроллер в общей сумме имеет 31 вход и выход, порт поочередной связи RS-232 и порт Mini USB для загрузки программ и связи с наружными устройствами.

Впереди на корпусе видны светодиоды индикации питания и состояния дискретных входов и выходов:

Сзаду на корпусе имеются выемки для монтажа крепления на DIN-рейку:

На боковых стенах корпуса находятся порты для подключения всех сигналов через разъемы. Порты маркируются литерами A, B, C, D, E, F:

Подключение проводов происходит через коннекторы COMBICON PTSM Series компании Phoenix Contact с шагом ножек 2.5 мм (0.098»):

Вставляются провода в коннектор с помощью идущей в комплекте с ПЛК отверткой так:

Дискретные выхода- транзисторные, на то есть такие предпосылки:

реле в корпус контроллера все равно не поместится
для обеспечения огромного быстродействия, к примеру при управлении шаговыми движками

Можно приобрести модули с промежными реле там же у Velocio, при покупке ПЛК. Естественно, для коммутации электрической сети 220 В транзисторные выхода не подступают и необходимо опосля их ставить промежные реле. А можно сэкономить и приобрести на ебее подобные китайские платы, как сделал я:

Аналоговые входа (Ai) в Ace 3090v5 разбиты на 2 группы:

3 Ai с общей землей в порту A, спектр входных сигналов 0… 5 V
4 Ai дифференциальных в порту F, подключение датчиков температуры(термопар) типа J, K, T, N, а так же милливольтных сигналов

Вот я подключил на вход Ai F1 термопару типа «К» от китайского тестера и вывел значение температуры на ноутбук:

Кстати, в этом примере я термопару в контроллере не калибровал. Тем не наименее, показания температуры соответствовали значениям спиртового градусника, который выступал у меня в роли контрольного устройства.

Ace различается небольшим энергопотреблением: 5 В при макс. То есть, в качестве блока питания можно применять 5-вольтную зарядку для телефона. силе тока до 0.3 А.

Программирование
Разработка программ осуществляется через бесплатную среду программирования vBuilder. В пакете установки находится так же драйвер виртуального COM-порта, нужный для подключения контроллера к компу:

Есть так же полная документация на британском языке под заглавием «vBuilder Manual» в несколько сотен страничек,. Исследование vBuilder лучше начать с просмотра видеоуроков.

Разработка программ возможна на 2-ух графических языках: языке релейной логики(Ladder Logic) и языке блок-схем(Flow Chart).

Язык релейной логики (Ladder Logic) это отлично узнаваемый всем программерам ПЛК язык LD, который является одним из стандартизированных по эталону IEC 61131-3 фабричным языком.
LD выдумали специально для того, что бы на нем писали программы не лишь программеры, но и обыденные электрики. Программа на LD и смотрится, как электрическая схема:

Это легкий для исследования и работы язык.

Язык блок-схем (Flow Chart) это графический язык, на котором программа создается в виде блок-схем:

Блок-схемы и принципы их построения почти все помнят еще со времен информатики в школе. А в остальных школах вообщем компов не было. К примеру, я окончил 11 класс в 1999 году, в сумрачные времена постсоветского компьютерного средневековья. Тогда компания «Интел» уже торговала процессорами Pentium-II, Билл Гейтс продавал Windows 98, а в нашей школе стояли русские компютеры «Электроника» с черно-белоснежными экранами. Огромную часть урока мы посиживали за партой и рисовали программы в тетрадях конкретно блок-схемами. Позже переводили их на бейсик, садились за «Электронику» (по 4 человека на машинку) и уже опосля вводили в комп.

Так что для начинающих язык Flow Chart даже легче, чем LD. При этом, по моему мнению, он нагляднее и дозволяет создавать наиболее сложные программы. Кстати, блок-схемы я нередко использую и на данный момент, работая с разными ПЛК. Когда мне необходимо обмыслить какой-нибудь непростой метод, я поначалу рисую блок-схемы на листике, а позже уже перевожу их в програмку на определенном языке.

В обоих языках программирования доступны одни и те же программные блоки:

сопоставление(<, >,= и др.)
присваивание с возможностью ввода формул
копирование
счетчик
таймер
часы настоящего времени
цифровой фильтр
чтение энкодеров
управление шаговым движком
ПИД-регулятор
ШИМ
плавный запуск/останов
масштабирование
побитовый сдвиг и «переворот» числа
статистика
управление com-портом для реализации собственных протоколов передачи данных
вызов подпрограмм

В качестве «быстрого хэлпа» по программным блокам употребляется та же страничка загрузки vBulder. Просто жмешь по пиктограммам соответственных блоков vBuilder справа на страничке и читаешь, как они работают:

Раз с английским совершенно туго, на помощь придет переводчик браузера Ghrome: правая клавиша мыши-> перевести на российский. Перевод технический, но смысл будет понятен.

Доступные способности при программировании:

создание собственных переменных (тэгов) типа bit, unsigned int 8/16 bit, signed int 16/32 bit, float;
создание массивов;
создание подпрограмм;
при этом, подпрограммы тут это объекты по типу FB как в Step-7 и Codesys;
каждому входу/выходу и тэгам можно назначить адресок для передачи их значений по Modbus;
cвязь по Modbus с ПК, сенсорными панелями и др. по Modbus в режиме slave; может быть подключение по Modbus к 2-м мастер-устройствам сразу;
возможность реализовывать собственные протоколы передачи данных по RS-232;
отладка программы по шагам.

Подключение Ace к компу и сенсорным панелям
Для управления с компа используются особые программы типа SCADA, но можно и на каком-нибудь визуал бейсике програмку написать. К примеру, комп по USB, а сенсорная панель по RS-232. Для связи с наружными устройствами по сети в Ace 3090v5 имеется 2 порта: RS-232 и USB. Оба этих порта могут передавать данные по протоколу Modbus RTU slave. Сразу к Ace могут быть подключены 2 мастер устройства.

Для подключения компа к Ace я и отыскал старенькую комовскую мышь с шариком, отрезал от нее хвост и подключил его к 3-пиновому разъему RS-232 Aсe вот по таковой схеме: Ранее в него мыши подключались. RS-232 это старенькый хороший COM-порт компа.

Раз в компе нет COM-порта, необходимо приобрести хоть какой преобразователь USB/RS-232 по стоимости около $8.

Варианты реализации обмена данными Ace с наружными устройствами:

по внутреннему протоколу Ace для связи с компом, на котором установлена бесплатная SCADA vFactory;
по всепригодному протоколу передачи данных Modbus RTU для связи с компами, сенсорными панелями и иными ПЛК;
по собственному протоколу, реализованному программным методом в контроллере.

Чрезвычайно обычная СКАДА без скриптового языка и способности ведения архивов. Панель инструментов невелика: Бесплатная СКАДА vFactory работает лишь с ПЛК компании Velocio, поэтому что употребляет не Modbus, а внутренний закрытый протокол контроллеров. Документации на vFactory нет, чтоб ей овладеть, довольно 1-го видеоурока.

Зато, можно быстро сделать работающую програмку без особенных способностей программирования:

К примеру, в ролике с термопарой, я применил SCADA Trace Mode 6 Base. Раз способностей vFactory мало, можно подключить по протоколу Modbus RTU всякую другую SCADA.

Можно в Ace запрограммировать и свой протокол передачи данных, этому посвящен отдельный видоурок.

ПЛК Ace в домашней автоматизации
Плюсы контроллера: небольшой размер, маленькое энергопотребление, питание всего от 5 В, множество дискретных выходов, возможность подключения термопар, 2 порта связи с наружными устройствами, легкость программирования, огромное количество различных программных блоков. Думаю, этот контроллер отлично себя покажет в системе «умный дом».

habrahabr.ru Раз контроллер Ace приглянулся, но 6 дискретных входов мало, можно приглядеться к серии Branch — тот же Ace, лишь с возможностью подключения модулей расширения (до 450 входов/выходов). Вообщем, это уже без меня — мне пока хватит поиграться Ace.