ПЛК Ace: маленький контроллер для «умного дома»
Я занимаюсь разработкой программ для программируемых логических контроллеров(ПЛК) в промышленных автоматизированных системах управления технологическими процессами(АСУ ТП).
Для тех, кто сталкивается с этим словом впервые, поясню. ПЛК это специальный мини-компьютер, который работает так: 1. Принимает входные дискретные (Di) или аналоговые (Ai) сигналы; 2. Обрабатывает эти сигналы по заданной программистом программе; 3. Выдает управляющий сигнал через дискретные (DO) или аналоговые (AO) выхода.
Дискретный — когда у сигнала может быть только 2 состояния: 0 или 1, «да» или «нет». Например, кнопка нажата или отжата, лампочка включена или выключена. Аналоговый — когда значение параметра зависит от уровня электрического сигнала. Например, чем выше уровень сигнала (вольт или миллиампер) от датчика температуры, тем больше измеряемая температура.
Применяются ПЛК в основном в промышленности, станках, системах домашней автоматизации «умный дом» и т.д. Естественно, в силу профессии меня интересует все, что касается ПЛК и другого оборудования, применяемого в АСУ ТП. Как-то, бродя по сети, я зашел на сайт американской компании Velocio, которая производит ПЛК серий Ace, Branch, Embeded.
Главные фишки этих контроллеров — маленький размер, всего 2.5'' x 2.5'', питание 5 вольт и цена от 49$ за модель с 6 дискретными входами и 6 дискретными выходами. Особенно впечатлил размер, такого маленького ПЛК я еще не встречал:
ПЛК меня заинтересовал, я связался с компанией Velocio и мне прислали контроллер модели Ace 3090v5. Хотелось бы вкратце рассказать об этом ПЛК и более широкой аудитории Хабра. Забегая вперед скажу, что ПЛК компании Velocio лучше всего подходят для «умных домов» и прочих систем домашней автоматизации.
Вот ко мне пришла посылочка с контроллером прям из города Хантсвилл, штат Алабама:
Состав посылки: 1. ПЛК Velocio Ace 3090v5, $179 2. Крепление на DIN-рейку, $5 3. Коннекторы сигнальных линий (3,4,8 pin, шаг 2.5 мм), 6 шт., $6*3 4. Отвертка плоская, жало 1.5 мм, бесплатно 5. Коннектор питания (2 pin, шаг 2.5 мм), $2 6. Кабель USB Am-miniB, $5
Кабель USB для программирования Ace не обязательно покупать в Velocio, это обычный кабель USB Am-miniB, который продается в любом компьютерном магазине. Коннекторы тоже можно поискать в другом месте, но крепление на DIN-рейку уникально и его нужно покупать вместе с контроллером.
Ожидания 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''):
Вставляются провода в коннектор с помощью идущей в комплекте с ПЛК отверткой так:
- реле в корпус контроллера все равно не поместится
- для обеспечения большого быстродействия, например при управлении шаговыми двигателями
- 3 Ai с общей землей в порту A, диапазон входных сигналов 0… 5 V
- 4 Ai дифференциальных в порту F, подключение датчиков температуры(термопар) типа J, K, T, N, а так же милливольтных сигналов
Кстати, в этом примере я термопару в контроллере не калибровал. Тем не менее, показания температуры соответствовали значениям спиртового градусника, который выступал у меня в роли контрольного прибора.
Ace отличается маленьким энергопотреблением: 5 В при макс. силе тока до 0.3 А. То есть, в качестве блока питания можно использовать 5-вольтную зарядку для мобильника.
ПрограммированиеРазработка программ осуществляется через бесплатную среду программирования vBuilder. В пакете установки находится так же драйвер виртуального COM-порта, необходимый для подключения контроллера к компьютеру:
Изучение vBuilder лучше начать с просмотра видеоуроков. Есть так же полная документация на английском языке под названием «vBuilder Manual» в несколько сотен страниц.
Разработка программ возможна на двух графических языках: языке релейной логики(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-портом для реализации собственных протоколов передачи данных
- вызов подпрограмм
Если с английским совсем туго, на помощь придет переводчик браузера 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 3090v5 имеется 2 порта: RS-232 и USB. Оба этих порта могут передавать данные по протоколу Modbus RTU slave. Одновременно к Ace могут быть подключены 2 мастер устройства. Например, компьютер по USB, а сенсорная панель по RS-232. Для управления с компьютера применяются специальные программы типа SCADA, но можно и на каком-нибудь визуал бейсике программу написать.
RS-232 это старый добрый COM-порт компьютера. Раньше в него мыши подключались. Для подключения компьютера к Ace я и нашел старую комовскую мышь с шариком, отрезал от нее хвост и подключил его к 3-пиновому разъему RS-232 Aсe вот по такой схеме:
Если в компьютере нет COM-порта, нужно купить любой преобразователь USB/RS-232 по цене около $8.
- по внутреннему протоколу Ace для связи с компьютером, на котором установлена бесплатная SCADA vFactory;
- по универсальному протоколу передачи данных Modbus RTU для связи с компьютерами, сенсорными панелями и другими ПЛК;
- по собственному протоколу, реализованному программным путем в контроллере.
Зато, можно быстро сделать работающую программу без особых навыков программирования:
Если возможностей vFactory маловато, можно подключить по протоколу Modbus RTU любую другую SCADA. Например, в ролике с термопарой, я применил SCADA Trace Mode 6 Base.
Можно в Ace запрограммировать и собственный протокол передачи данных, этому посвящен отдельный видоурок.
ПЛК Ace в домашней автоматизацииДумаю, этот контроллер хорошо себя покажет в системе «умный дом». Плюсы контроллера: маленький размер, малое энергопотребление, питание всего от 5 В, множество дискретных выходов, возможность подключения термопар, 2 порта связи с внешними устройствами, легкость программирования, большое количество разных программных блоков.
Если контроллер Ace понравился, но 6 дискретных входов маловато, можно присмотреться к серии Branch — тот же Ace, только с возможностью подключения модулей расширения (до 450 входов/выходов). Впрочем, это уже без меня — мне пока хватит поиграться Ace.