Pull to refresh

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

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

Для тех, кто сталкивается с этим словом впервые, поясню. ПЛК это специальный мини-компьютер, который работает так:
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 лучше всего подходят для «умных домов» и прочих систем домашней автоматизации.

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



image

Состав посылки:
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''):



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



Дискретные выхода- транзисторные, на то есть такие причины:
  • реле в корпус контроллера все равно не поместится
  • для обеспечения большого быстродействия, например при управлении шаговыми двигателями

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



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

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

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

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-портом для реализации собственных протоколов передачи данных
  • вызов подпрограмм

В качестве «быстрого хэлпа» по программным блокам используется та же страница загрузки 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 к компьютеру и сенсорным панелям


Для связи с внешними устройствами по сети в 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 с внешними устройствами:
  • по внутреннему протоколу Ace для связи с компьютером, на котором установлена бесплатная SCADA vFactory;
  • по универсальному протоколу передачи данных Modbus RTU для связи с компьютерами, сенсорными панелями и другими ПЛК;
  • по собственному протоколу, реализованному программным путем в контроллере.

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



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


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

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

ПЛК Ace в домашней автоматизации


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

Если контроллер Ace понравился, но 6 дискретных входов маловато, можно присмотреться к серии Branch — тот же Ace, только с возможностью подключения модулей расширения (до 450 входов/выходов). Впрочем, это уже без меня — мне пока хватит поиграться Ace.
Tags:
Hubs:
+18
Comments 24
Comments Comments 24

Articles