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

Автор Сообщение
#1 / 20.11.2018 07:34
admin

Очень интересная статья с «хабра». Ссылка на первоисточник в конце.

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

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

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

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

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

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

WbN-PCjKKRI.jpg

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

17NP7dbBTMI.jpg

Состав посылки:
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 оправдал, он действительно очень маленький:

MPskfAxRNu8.jpg

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

F9uSZPSe8zQ.jpg

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

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

8cL3qdrE8mk.jpg

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

7KZMneekhiE.jpg

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

FX4HnuyZw0w.jpg

 

iAGuRWm7fvs.jpg

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

wTBqCoW9IKU.jpg

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

bQVSGP5MmxI.jpg

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

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

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

mbbZCgx8Dr0.jpg

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

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

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

iyetJByIQ-M.jpg

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

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

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

qt-CInCHSMY.jpg

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

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

hurtYMa7LIE.jpg

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

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

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

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

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

dsf1vxNHJEA.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 вот по такой схеме:

8LrU0LvWaVs.jpg

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

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

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

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

32L3u-Eq84E.jpg

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

jDQGvjZXSXA.jpg

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

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

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

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

Источник: https://habr.com/post/256911/

Сообщения: 463