Плк ардуино своими руками

Ардуино-совместимый ПЛК CONTROLLINO, часть 1

Впервые про программируемый логический контроллер по имени CONTROLLINO мне довелось узнать году еще в 2014-м в случайной переписке с человеком, который подбирал себе ПЛК для домашней автоматизации. Я ему рекомендовал какие-то классические модели, а он в ответ сообщил, мол, видел на кикстартере некий интересный проект под названием CONTROLLINIO. Это промышленный ПЛК, который программируется так же, как Arduino, в его родной IDE.

Тот парень работал php-программером и С++ был для него не проблема. Деньги и идеи имел, а желания изучать LAD или Codesys нет. В итоге отписался, что сделал предзаказ на CONTROLLINO и больше на связь не выходил.

Не знаю, что и как у него вышло в конце концов, а вот мне через 3 года выпало поработать с этим девайсом.

Пока скрипел пером, понял, что материала будет много. Поэтому рассказ про CONTROLLINO разобью на две части: первая будет про железо, вторая про программирование.

На данный момент производится 4 модели CONTROLLINO: MINI, MAXI, MAXI-AUTOMATION и MEGA. Я работал с MAXI.

Краткие характеристики CONTROLLINO MAXI:

  • Микропроцессор ATmega2560
  • 12 универсальных дискретных/аналоговых входов
  • 12 транзисторных выходов, могут работать в режиме ШИМ
  • 10 релейных выходов,

250V/6A

  • Энергонезависимые RTC
  • Ethernet
  • RS-485
  • SPI, I2C, 2xRS-232 TTL
  • Питание 12 или 24V DC
  • Размеры 72x90x62мм
  • Корпус на DIN-рейку
  • Программно совместим с Arduino MEGA 2560
  • CONTROLLINO и ARDUINO

    Прежде всего нужно сказать о том, что CONTROLLINO это не Arduino в корпусе с клеммами вместо пинов, как некоторые могут подумать.

    CONTROLLINO это программируемый логический контроллер, ПЛК. То есть, законченное изделие, применяемое в автоматизации, с соответствующей защитой входов и выходов. Конструкцию CONTROLLINO с Arduino как таковым (то есть с отладочной платой на базе чипа atmega) роднит только используемый микропроцессор.

    Если разобрать CONTROLLINO (а мы разберем), то внутри не обнаружим спаянную с китайскими шилдами ардуину или, еще хуже, просто ардуину с проводами, закрученными на клеммы.
    Совместимость же обеспечивается на уровне ПО- CONTROLLINO MAXI можно программировать из Arduino IDE как плату Arduino MEGA 2560. И там и там один и тот же процессор- ATmega2560.

    Многие тут справедливо возразят, что стандарты ПЛК это конечно хорошо, но этот ПЛК стоит как ПЛК, а из ардуины и шилдов можно собрать под свои нужды систему намного дешевле. Не буду спорить, сам так делал и все работало. Выглядело примерно так, как фото прототипа героя статьи на страничке кикстартера.

    С другой стороны, я знаю немало тех, кто загорался возможностями платформы Arduino, покупал их, мигал светодиодами и… на этом забрасывал. Освоив азы программирования они неожиданно понимали, что нужно на порядок больше времени что бы разобраться с электроникой, довести все до ума и собрать законченное изделие. Вдруг оказывается, что твое время реально стоит денег и тратить его без видимых перспектив не хочется.

    Живущий в другом регионе одногруппник, открыл замечательный стартап. Вооружившись передовыми наработками из интернета, он перебрался за город и построил самогонный аппарат с большой производительностью. И все хорошо, продукт получался отменным(с его слов, я мало что в этом понимаю). Но технологический процесс длился 48 часов, в течении которых нужно по времени что-то включить, что-то выключить, отвинтить, закрутить и т.д. Спать доводилось урывками по два-три часа.

    Естественно, возникла идея автоматизировать производство. Обратился ко мне за советом, я ему рассказал про ПЛК и все такое. А через время набирает меня и говорит, что купил замечательную штуку, Ардуино называется. Уже помигал светодиодами- в ардуине язык си, а он его не забыл еще с того времени, как мы учились на компьютерщиков. Осталось дело за малым: прикупить шилдов, что-то спаять самому и тогда выведет производство на новый уровень.

    Но прошел год, два, еще сколько-то, а дальше светодиодов дело не пошло. Хотя, может быть мешает новое увлечение- пчеловодство.

    На мой взгляд, CONTROLLINO будет интересен тем ардуинщикам, кто не может или не хочет самостоятельно мастерить ПЛК для домашней автоматизации, а вместо этого готов купить уже готовое изделие. Тем более, что у CONTROLLINO есть все для применения в ‘умном доме’: 34 точки ввода/вывода, несколько интерфейсов связи и возможность управления всем этим из интернета.

    В конце концов, CONTROLLINO просто красив.

    Конструкция

    Внутри корпуса находятся 3 платы. Вынимаем верхнюю.

    Видим старую добрую микросхему W5100, которая обеспечивает работу Ethernet.

    Еще тут есть микропроцессор atmega16. Не то, что бы я удивился. ПЛК с несколькими микропроцессорами я уже наблюдал, например, в моделях фирмы ОВЕН. Но что этот процессор делает тут? Оказалось все просто- он отвечает за загрузку по USB. Точно так же, как и в оригинальной итальянской плате Arduino MEGA 2560.

    У вас, как и у меня, скорее всего китайский клон, а в нем на загрузке стоит обычный usb/rs232 преобразователь.

    Средняя и нижняя платы CONTROLLINO MAXI спаяны друг с другом, увы.

    На нижней ‘релейной’ плате видны реле HF41F на

    250V/6A. Среднюю плату можем посмотреть только с одной стороны.

    Видим микропроцессор ATmega2560 и обвязку входов и выходов.

    Для того, что бы найти соответствие входов и выходов CONTROLLINO пинам платы Arduino MEGA 2560, разработчик нарисовал большую схему.

    Желтым отмечены названия клемм ПЛК, а синим- названия пинов Arduino Mega 2560. Например, реле R0 на ПЛК соответствует пину 22 Arduino Mega 2560.

    Что бы замкнуть реле R0, в скетче нужно написать такие инструкции:

    Но это тема уже следующей статьи.

    12 входов, каждый можно в программе считать как аналоговый или дискретный. Два из них, IN0 и IN1, можно использовать как входы прерываний.

    Аналоговые входы вольтовые, их диапазон зависит от напряжения питания ПЛК. Если ПЛК работает от 12V, то аналоговые сигналы имеют диапазон 0. 13,2V. Если ПЛК работает от 24V, то диапазон аналоговых сигналов составляет 0. 26,4V. АЦП 10 бит.

    12 дискретных транзисторных выходов, каждый можно использовать как ШИМ.

    250V/6A. 6 Ампер как-то маловато. Предположу, что такие реле выбраны потому, что они узкие и их можно больше разместить на небольшой площади.

    Энергонезависимые часы реального времени

    В качестве часов реального времени (RTC) тут не используется привычная ардуинщикам микросхема DS1307, которая работает по шине I2C. Здесь часами трудится микросхема RV-2123-C2-TA-QC-020 с интерфейсом SPI.

    Вообще, из трех ‘дополнительных’ микросхем (Ethernet, RS-485 и RTC) в CONTROLLINO две работают по шине SPI и ни одной по I2C. Это удобно- ‘квадратная’ шина полностью свободна для подключения пользовательских устройств, например моей самодельной панели оператора с шиной I2C.

    Посмотрите на схему подключения RTC и обратите внимание на прочерки в синих полях.

    Прочерки означают, что к соответствующим контактам этой и других ‘дополнительных’ микросхем подключены те ножки микропроцессора ATmega2560, которые не выведены на пины Arduino MEGA 2560. Из Arduino IDE управлять этими ножками стандартной командой digitalWrite() нельзя, а можно только командами прямого доступа к портам. Такое схематическое решение имеет при программировании свои достоинства и недостатки(чего больше- вопрос), о чем я напишу в следующей части.

    Ни один современный ПЛК не обходится без порта RS-485 и CONTROLLINO тут не исключение. Для этого в нем установлена микросхема SN65HVD08.

    RS-485 может работать в режиме и мастера и слейва.

    Наконец-то знакомая микросхема! Чип W5100 уже стал синонимом понятия ‘подключение ардуино к интернету’. Именно W5100 обеспечивает интерфейс Ethernet в CONTROLLINO.

    То, что к контакту SCS подключена не 4 нога Ардуино, как принято в стандартных схемах подключения, а очередной ‘прочерк’, не усложняет программирование- все примеры работают без проблем.

    Экспериментируя с эзернет, я и разворачивал на CONTROLLINO веб-сервер, и делал управление этим ПЛК через смартфон с помощью андроид-приложения Blynk.

    Разъемы X1 и X2

    Некоторые сигналы микроконтроллера выведены не только на клеммы в виде входов и выходов с соответствующей обвязкой, но и напрямую на два 26-пиновых разъема X1 и X2 через защитные резисторы.


    Какие-то сигналы микропроцессора выведены и на клеммы и на разъемы, какие-то имеются только на клеммах, а какие-то только на разъемах. Например, интерфейсы SPI и I2C выведены только на разъем, сигналы релейных выходов R0. R9 есть только на клеммах, а аналоговые входы A0. IN1 есть и на разъемах и на клеммах.

    Конечно, один и тот же сигнал на клемме и разъеме подключается и используется по-разному. Например, универсальные входы A0. IN1 можно запрограммировать в программе как выходы и использовать их таковыми через разъем, но через клемму выходами они работать не смогут- обвязка помешает.

    Разъемы X1 и X2 делают использование ПЛК более гибким, позволяя подключать модули, которые привыкли применять ардуинщики в своих поделках. Скажем, датчики DTH22 или микросхемы, работающие по квадратной шине.

    Вот я сделал панель оператора, которая работает по I2C и подключается к CONTROLLINO через разъем X1.

    На этом про железо все. В следующей части я расскажу про особенности программирования ПЛК CONTROLLINO, как им управлять через интернет со смартфона из любой точки мира, как CONTROLLINO работает по ModbusRTU и о многом другом.

    Источник

    Digitrode

    цифровая электроника вычислительная техника встраиваемые системы

    ПЛК на Arduino: обзор моделей, характеристики, преимущества и недостатки

    Программируемый логический контроллер на Arduino

    Платформа Arduino была впервые представлена в 2005 году с целью предоставить новичкам и профессионалам недорогой и простой способ создания устройств, взаимодействующих с окружающей средой с использованием датчиков и исполнительных механизмов.

    До появления Arduino разработка встраиваемых систем рассматривалась как сложная тема, и любители (или инженеры) должны были найти профессионала, чтобы получить рабочую модель для своей проблемы. Например, если вам нужен простой 3D-принтер, вам нужна профессиональная помощь, поскольку существуют тысячи контроллеров с их совместимой IDE. И любитель не может узнать обо всех микроконтроллерах и способах их программирования. Эта ситуация подошла к концу, когда была введена общепринятая Arduino. И благодаря этому любители или инженеры могут проектировать и разрабатывать свои собственные проекты без особой профессиональной помощи.

    И причина того, что Arduino становится настолько общепринятым, потому что это электронная платформа с открытым исходным кодом, основанная на простом в использовании аппаратном и программном обеспечении. Платы Arduino способны считывать входные данные, такие как свет на датчике, палец на кнопке, и превращать это в программируемый вывод, такой как включение двигателя, включение светодиода и публикация чего-либо в Интернете.

    С годами платформа Arduino стала более популярной, и благодаря этому было разработано много современных плат с аналогичными целями, таких как Raspberry PI, Panda и т. д. Arduino используется в качестве мозга в тысячах проектов, от повседневных предметов до сложных научных инструментов. Студенты, любители, художники, программисты и профессионалы по всему миру собрались вокруг этой платформы с открытым исходным кодом и разработали множество проектов, тем самым накопив невероятное количество знаний, которые могут оказать большую помощь как новичкам, так и экспертам.

    Благодаря накопленным знаниям и недавнему появлению Интернета вещей (IoT), платформа Arduino сделала еще один шаг вперед, став тем самым необходимым инструментом обучения для инженеров и любителей. Теперь экосистема плат Arduino начала меняться, чтобы адаптироваться к новым потребностям и проблемам, таким как приложения IoT, носимая электроника, 3D-печать, встроенные среды и, наконец, ПЛК (программируемый логический контроллер). Здесь, в этой статье, мы узнаем о том, что такое ПЛК и как Arduino можно использовать в качестве ПЛК.

    Во-первых, давайте поймем термин «Промышленная автоматизация», прежде чем перейти к ПЛК. Как все мы знаем, использование машин для работы в отраслях более экономически выгодно, чем использование людей, поскольку машинам не нужны деньги, праздники или перерывы, поэтому, если машины используются вместо людей, то отрасли могут производить свою продукцию 24/7 без проблем. Теперь эта схема замены людей машинами или роботизированными «руками» называется «Промышленная автоматизация».

    ПЛК – это блок управления, специально разработанный для управления машинами, используемыми для промышленной автоматизации. Они рассчитаны на надежность в суровых промышленных условиях (таких как экстремальные температуры, влажность, запыленность). Применения ПЛК можно увидеть на сборочной линии завода-изготовителя, на обогатительной фабрике, роботизированной сварке, нарезании резьбы на станке с ЧПУ и т. д. Поскольку это оборудование разработано для обеспечения высокой эффективности и прочности, оно является дорогостоящим как для установки, так и для ремонта.

    ПЛК (программируемый логический контроллер) имеет много функций, аналогичных нашему персональному компьютеру дома. Они оба имеют блок питания, центральный процессор (CPU), порты входов и выходов (I/O), память ОЗУ и ПЗУ, а также управляющее программное обеспечение. Самое большое различие между ними заключается в том, что ПЛК может выполнять дискретные и непрерывные функции в жестких условиях, которые не может выполнять ПК. На рынке существует много разных типов ПЛК в соответствии с требованиями заказчика. Хотя есть много типов ПЛК, они следуют определенным стандартам, чтобы пользователь мог легко выбирать.

    Принцип работы ПЛК и его компоненты

    Для понимания основной работы ПЛК, давайте рассмотрим простой пример, как показано далее.

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

    Здесь вы можете видеть, что ПЛК подключен к шлейфу установки, удерживая переключатель закрытым. Мы можем использовать программирование для установки таймера ПЛК. Когда это будет сделано, ПЛК может непрерывно замыкать и размыкать контур, что заменяет необходимость вмешательства человека. Как только ПЛК начинает выполнение программы, он не остановится, пока не будет дано прерывание. Это всего лишь простая схема, и ПЛК может управлять гораздо более сложными процессами, такими как ШИМ-управление, считывание данных с датчиков и т. д. ПЛК обычно разрабатывается для клиента таким образом, чтобы он мог настраивать функционирование ПЛК в зависимости от применения и потребностей.

    Теперь давайте посмотрим на важные модули, представленные в ПЛК.

    Модуль источника питания. Этот модуль иногда размещается в виде отдельной установки, например, адаптера, а в других случаях он устанавливается непосредственно на основной печатной плате. Функцией модуля является обеспечение необходимой мощности всей настройке ПЛК (программируемого логического контроллера). Модуль представляет собой преобразователь, который преобразует доступную мощность переменного тока в мощность постоянного тока, которая требуется центральному процессору и другим модулям. Обычно ПЛК работает на шине 12 В и 24 В.

    Центральный процессор. Этот модуль наиболее защищен, поскольку является ядром функционирования всего ПЛК. Модуль ЦП состоит из микропроцессора или микроконтроллера, памяти программ, флэш-памяти и памяти ОЗУ. Флэш-память хранит операционную систему, драйвер и прикладную программу. ОЗУ используется микропроцессором для доступа к данным и информации.

    Модуль ввода и вывода. Модуль ввода используется для установления связи между различными датчиками и клавиатурами с процессором, а модуль вывода используется процессором для обеспечения реакции на внешний мир.

    Модуль устройства программирования: Этот модуль используется для установления связи между ПК и ПЛК. Основная функция – перепрограммирование микропроцессора ПЛК.

    Виды ПЛК

    ПЛК делятся на два основных типа: фиксированный (или компактный ПЛК) и модульный ПЛК.

    Компактный или фиксированный ПЛК: обычно это бюджетный ПЛК, который популярен во многих отраслях. Компактный ПЛК имеет фиксированное количество модулей ввода/вывода и внешних плат ввода/вывода, и они не могут быть расширены позднее для более сложной настройки. Вы можете увидеть фиксированный ПЛК на следующем изображении.

    Модульный ПЛК: модульный ПЛК допускает многократное расширение за счет параллельного размещения модулей. Порты ввода/вывода модульного ПЛК могут быть увеличены для более сложных операций в отрасли. Модульный ПЛК также проще в использовании, поскольку каждый компонент не зависит друг от друга. Этот тип ПЛК популярен во многих отраслях промышленности.

    Arduino и ПЛК: что лучше?

    Как мы упоминали ранее, важные модули ПЛК похожи на ПК (персональный компьютер) и даже больше похожи на одноплатные компьютеры, такие как Arduino. Таким образом, внутренне на определенном уровне работа ПЛК и Arduino одинакова, и мы можем использовать это Arduino для разработки ПЛК (программируемого логического контроллера). ПЛК Arduino уже представлены на рынке и доступны по сравнению с обычными ПЛК. Таким образом, ПЛК Arduino становится популярным в наши дни, и его приложения будут расти в будущем. Но есть определенные различия между ПЛК Arduino и обычным ПЛК, и некоторые из них упомянуты далее.

    Во-первых, Arduino необходимые внешние компоненты для работы в качестве ПЛК, самому ПЛК нет. Но важным преимуществом Arduino является его низкая стоимость. Для Arduino нужно научиться основам программирования, чтобы переписать программу Arduino. В случае с ПЛК необходима только базовая техника для перепрограммирования ПЛК. У Arduino удовлетворительная производительность, в то время как у ПЛК производительность для приложений промышленной автоматики значительно выше благодаря их целевой направленности. Arduino не может работать в суровых условиях, ПЛК может. Но платы Arduino легки и компактны, ПЛК тяжелые и громоздкие. И Arduino легко заменить или отремонтировать, с ПЛК это сделать сложнее.

    Модели ПЛК на основе Arduino

    Теперь давайте кратко рассмотрим популярные ПЛК на базе Arduino, которые в настоящее время присутствуют на рынке.

    Industrial Shields Arduino PLC

    Industrial Shields – это популярная компания, которая предоставляет шилды ПЛК на базе Arduino для многих промышленных применений. Широко используемые шилды кратко рассмотрены далее.

    Industrial Shields ARDBOX

    ARDBOX – это ПЛК на основе Arduino, предназначенный для малых и средних промышленных применений.

    ARDBOX разработан на основе ARDUINO LEONARDO, поэтому в основном все технические характеристики ARDBOX соответствуют спецификациям LEONARDO. Основные характеристики и технические параметры ARDBOX приведены далее.

    • Входное напряжение 12В или 24В
    • Номинальная мощность 30 Вт
    • Максимальный ток 1,5 А
    • Тактовая частота 16 МГц
    • Размер 100х45х115 мм
    • Язык программирования Arduino IDE
    • Флэш-память 32 КБ, из которых 4 КБ используются загрузчиком
    • ОЗУ 2,5 КБ
    • EEPROM 1 КБ
    • Связь I2C — USB — RS232 — RS485 — SPI – TTL
    • Точек входа 10
    • Точек выхода 10

    Industrial Shields M-Duino

    M-DUINO – это ПЛК на основе Arduino, предназначенный для малых и средних промышленных применений. Изображение ПЛК показано далее.

    M-DUINO разработан на основе платы ARDUINO MEGA, поэтому все технические характеристики платы MEGA соответствуют спецификациям M-DUINO.

    • Входное напряжение 12В или 24В
    • Номинальная мощность 40 Вт
    • Максимальный ток 0,5 А
    • Тактовая частота 16 МГц
    • Размер 101x119x70 мм
    • Язык программирования Arduino IDE
    • Флэш-память 32 КБ, из которых 0,5 КБ используются загрузчиком
    • ОЗУ 2 КБ
    • EEPROM 1 КБ
    • Связь I2C — Порт Ethernet — USB — RS485 — SPI — (3x) Rx, Tx (контакты Arduino)
    • Точек входа 13,26,36
    • Точек выхода 8,16,22

    PLDuino Arduino PLC

    PLDuino – это программируемый логический контроллер с открытым исходным кодом Arduino от Digital Loggers, который продается на рынке примерно за 150 долларов. Этот ПЛК сочетает в себе Arduino Mega (ATmega2560) с модулем Wi-Fi ESP8266 и 2,4-дюймовым сенсорным TFT-экраном, что делает его пригодным для использования в приложениях промышленного Интернета вещей и других приложениях заводской робототехники.

    PLDuino может быть легко запрограммирован с помощью простого USB-кабеля, также помимо популярной IDE Arduino PLDuino также может быть запрограммирован с использованием Lua, GNU или даже AVR Studio. PLDuino также предоставляет демонстрационные коды и библиотеки, чтобы помочь начинающим быстро начать разработку. Для опытных пользователей PLDuino также позволяет открывать исследовать все внутри ПЛК, чтобы настраивать аппаратное обеспечение в соответствии с требованиями, полные схемы и спецификации компонентов также доступны онлайн. Полные характеристики PLDuino показаны на следующем рисунке.

    Controllino Arduino PLC

    Controllino – это не что иное, как промышленно развитый Arduino. Он сочетает в себе гибкость и открытый характер экосистемы Arduino с безопасностью и надежностью промышленных ПЛК. Компания предоставляет три модуля, которые разработаны на основе трех плат Arduino.

    Controllino MINI

    Он разработан на плате Arduino Uno.

    Controllino MAXI

    Он разработан на микроконтроллере Atmel ATMEGA2560 или на плате Arduino Mega.

    Controllino Mega

    Он разработан на микроконтроллере ATMEGA2560 Atmel или на плате Arduino Mega.

    Источник

    Читайте также:  Планировка участка своими руками для начинающих
    Оцените статью
    Своими руками