[Из песочницы] ПЛК Ace: маленький контроллер для «умного дома»

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

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

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

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

image

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

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

[embedded content]

image

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

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

Ожидания Ace 3090v5 оправдал, он действительно очень маленький:

c00ee7b34b5c4669a77fe9745f1115f0.jpg

Характеристики:

Название 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 для загрузки программ и связи с внешними устройствами.Спереди на корпусе видны светодиоды индикации питания и состояния дискретных входов и выходов:

b99103da975a4584966c6144a4f0f65a.jpg

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

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

4d42c29f3d3e468faf31d3a7e9edba0d.jpgfd31a597313b4f68a85516f156d61412.jpg

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

dcff9735bd52477d80d942a9295aec92.jpg

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

33d72f799ff04aefa26208cccc7c9f57.JPG

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

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

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

3 Ai с общей землей в порту A, диапазон входных сигналов 0… 5 V 4 Ai дифференциальных в порту F, подключение датчиков температуры (термопар) типа J, K, T, N, а так же милливольтных сигналов Вот я подключил на вход Ai F1 термопару типа «К» от китайского тестера и вывел значение температуры на ноутбук:[embedded content]Кстати, в этом примере я термопару в контроллере не калибровал. Тем не менее, показания температуры соответствовали значениям спиртового градусника, который выступал у меня в роли контрольного прибора.Ace отличается маленьким энергопотреблением: 5 В при макс. силе тока до 0.3 А. То есть, в качестве блока питания можно использовать 5-вольтную зарядку для мобильника.

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

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

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

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

9e33113a73a74b78a902a2b8c383b17d.jpg

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

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

984abcbd398a420793a7ffe726a0b6de.jpg

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

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

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

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

Если с английским совсем туго, на помощь придет переводчик браузера 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 к компьютеру и сенсорным панелям Для связи с внешними устройствами по сети в Ace 3090v5 имеется 2 порта: RS-232 и USB. Оба этих порта могут передавать данные по протоколу Modbus RTU slave. Одновременно к Ace могут быть подключены 2 мастер устройства. Например, компьютер по USB, а сенсорная панель по RS-232. Для управления с компьютера применяются специальные программы типа SCADA, но можно и на каком-нибудь визуал бейсике программу написать.RS-232 это старый добрый COM-порт компьютера. Раньше в него мыши подключались. Для подключения компьютера к Ace я и нашел старую комовскую мышь с шариком, отрезал от нее хвост и подключил его к 3-пиновому разъему RS-232 Aсe вот по такой схеме:

a4e6ffd8753b484f94831c25830c401d.jpg

Если в компьютере нет COM-порта, нужно купить любой преобразователь USB/RS-232 по цене около $8.

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

по внутреннему протоколу Ace для связи с компьютером, на котором установлена бесплатная SCADA vFactory; по универсальному протоколу передачи данных Modbus RTU для связи с компьютерами, сенсорными панелями и другими ПЛК; по собственному протоколу, реализованному программным путем в контроллере. Бесплатная СКАДА vFactory работает только с ПЛК компании Velocio, потому что использует не Modbus, а внутренний закрытый протокол контроллеров. Документации на vFactory нет, чтобы ей овладеть, достаточно одного видеоурока. Очень простая СКАДА без скриптового языка и возможности ведения архивов. Панель инструментов невелика: 3dcd9b981cd141f794a1e004f014ae37.jpg

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

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

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

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

© Habrahabr.ru