RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/radiofan_technology/budget_controller_canny_part_1.html

Бюджетный контроллер на CANNY (часть 1)

Когда возникает необходимость решения задач по автоматизации различных объектов малой степени сложности, специалисты АСУТП традиционно применяют контроллер, например такой, как Siemens Logo!, а радиолюбители-самодельщики сами изготавливают устройства на интегральной или дискретной электронной базе. Сложность этих устройств варьируется от простейших схем на диодах, реле и транзисторах до схем на цифровых микросхемах и/или микроконтроллерах.

Стоимость же самого дешёвого промышленного контроллера - не менее 10000 руб. даже при наличии бесплатного программного обеспечения для написания прикладных программ.

Сделать бюджетное устройство на релейных или интегральных компонентах - оптимальный вариант, пока задача не содержит более нескольких временных задержек или счётчиков. С увеличением функционала сложность такой схемы возрастает в геометрической прогрессии.

В то же время отечественная фирма Canny (г. Москва) выпускает линейку бескорпусных микроконтроллеров под таким же наименованием CANNY Эти микроконтроллеры предназначены для работы в системах безопасности, автотранспорте, экспериментальном, лабораторном и учебном оборудовании, промышленной автоматике и прочем оборудовании. Отличительные особенности микроконтроллеров - встроенные средства отладки и загрузки программ в микроконтроллер и наличие бесплатной программы CannyLab для работы с этим микроконтроллером. Интегрированная среда CannyLab - это инструмент для разработки прикладных программ с использованием языка функциональных блоковых диаграмм CFD. Она предназначена для написания, отладки и записи прикладной программы во внутреннюю память программируемых логических микроконтроллеров CANNY. Для радиолюбителей, занимающихся цифровой техникой, написание программы не доставит затруднений - вплоть до полного переноса один к одному физической цифровой схемы в программный вид.

В состав CannyLab входит также и симулятор работы отлаживаемой программы. Другими словами, можно написать программу и до загрузки её в микроконтроллер предварительно проверить работу на симуляторе. Программа CannyLab работает в ОС Windows 7 и младше. В Windows XP она тоже будет работать, но связаться с микроконтроллером из-под неё не получится! Установка программы проста - скачиваете последнюю версию программы на сайте [1] и устанавливаете. Для начала работы с программой есть подробное описание на сайте. Там же находится форум [2], на котором вы можете задать свой вопрос в случае затруднений. Сотрудники отвечают весьма оперативно и подробно.

Процесс написания прикладной программы прост - вы просто выбираете на панели функциональных блоков подходящий блок, перетаскиваете его на рабочую область и соединяете мышкой его входы и выходы, согласно задуманному алгоритму. Также можно на любом этапе запустить отладчик-симулятор для тестирования программы. В нём возможно как циклическое (непрерывное) выполнение программы, так и пошаговая отладка с заданием точек останова и возможностью принудительно задать какие-либо значения на входах блоков. По окончании разработки полученная программа загружается в микроконтроллер. Для этого соединяют компьютер и микроконтроллер кабелем USB-micro и нажимают на кнопку загрузки. Питание на микроконтроллер при программировании подавать не нужно.

Для основы описываемой ниже конструкции взят микроконтроллер CANNY 3 Tiny PRO. Он представляет собой миниатюрную плату с установленными на ней микроконтроллером, дискретными компонентами и USB-разъёмом для внутрисхемного программирования. К микроконтроллеру можно подключать до 21 канала, которые настраиваются как на ввод, так и на вывод дискретных сигналов. А также 14 десятиразрядных аналоговых каналов ввода для напряжения 0...5 В (значения от 0...1023). Два канала микроконтроллера могут работать в режиме широтно-импульсной модуляции, что позволяет реализовать аналоговое управление. Микроконтроллер имеет один пятиразрядный канал ЦАП с 32 уровнями установки напряжения в интервале от 0 до 5 В. Девять каналов микроконтроллера могут работать в режиме асинхронных входов-счётчиков с индивидуальными параметрами подсчёта импульсов: счётчик фронтов импульсов, счётчик спадов импульсов, счётчик фронтов и спадов; два канала микроконтроллера могут работать в режиме определения длительности импульсов с разрешением 1 мкс. Микроконтроллер имеет 64 ячейки EEPROM, в которых пользовательская программа может сохранять информацию при отключении питания. На плате CANNY 3 Tiny PRO находится стабилизатор напряжения +5 B, поэтому микроконтроллер можно питать как от стабилизированного источника напряжением 5 В, так и от нестабилизированного напряжением 12 В. Для этого на плате предусмотрены отдельные выводы. Два светодиода на плате красного и зелёного свечения подключены к девятому и восьмому каналам соответственно.

CANNY3 Tiny PRO можно свободно приобрести через поставщиков в Интернете. Микроконтроллер поставляется в комплекте с двумя 14-штырьковыми PLS-разъёмами. Для использования его в конструкции эти разъёмы надо впаять на плату в специально предусмотренные отверстия со стороны, противоположной микроконтроллеру и USB-разъёму (рис. 1).

Рис. 1.

 

Контроллер представляет собой плату, на которой находятся источник питания, реле и элементы согласования входных сигналов для микроконтроллера. При необходимости можно установить плату в специальный открытый корпус на дин-рейку. Размеры платы подогнаны под корпус Sanhe 23-59 (100 мм).

Рис. 2.

 

Схема контроллера показана на рис. 2. Источник питания собран на понижающем трансформаторе Т1, диодном мосте VD1 и сглаживающих конденсаторах С1 и С2. Полученное постоянное напряжение 12 В - нестабилизированное и используется для питания микроконтроллера, внешних цепей и реле. Контроллер имеет девять дискретных входов для плюсового напряжения, к ним можно подключить контакт от внешнего устройства, при подаче через который напряжения +12 В будет считаться сигналом лог. 1 для контроллера. Размыкание контакта будет лог. 0.

Для первого входного канала входной согласователь уровня состоит из резистора R10 и стабилитрона VD2. Он понижает входное напряжение 12 В до номинального напряжения микроконтроллера 4,7 В (лог. 1). Конденсатор С3 фильтрует возможные импульсные помехи. Светодиод HL8 и резистор R11 предназначены для индикации наличия входного сигнала. Для остальных каналов, со второго по девятый, схемы идентичны. Ещё один дискретный сигнал может быть получен от кнопки SB1, расположенной на плате контроллера, она может быть использована в прикладной программе микроконтроллера. Подтягивающий резистор к плюсовой линии питания для кнопки должен быть обязательно сконфигурирован в программе микроконтроллера. Нажатие на кнопку формирует уровень лог. 0 на входе микроконтроллера, поэтому для удобства работы с этим сигналом его нужн о инвертировать. Всё это выполнено в файле "Конфигурация.cfd".

Кроме дискретных сигналов, в микроконтроллере можно задавать два аналоговых. Для этого служат два подстроечных резистора R1 и R2. Их можно использовать для возможности регулирования выдержек таймеров прикладной программы в процессе работы, задания частоты и скважности генераторов.

Контроллер имеет семь выходных дискретных каналов Q1-Q7, управление которыми идёт через микросхему DA1. Первые шесть каналов выполнены на реле K1-K6, причём каналы Q1-Q4 объединены в группу, а Q5 и Q6 имеют полную развязку от остальных. Канал Q7 не имеет выходного реле и предназначен для частых включений и выключений маломощной нагрузки, например, реализации ШИ-модуляции для регулирования мощности электронагревателя через твердотельное реле или управление сигнальной светодиодной лампой в режиме маячка.

Микросхема DA1 представляет собой семь каналов на транзисторах, включённых по схеме Дарлингтона с нагрузочной способностью до 500 мА и служит для согласования выходных сигналов микроконтроллера А1 с нагрузками. Дополнительные диоды, интегрированные в микросхему DA1, гасят выбросы ЭДС самоиндукции на катушках реле K1-K6. Реле K5 и K6 можно не устанавливать, тем самым увеличив число транзисторных каналов за счёт уменьшения релейных выходов. Цепи HL1-HL7 и R3-R9 служат для индикации включения выходных каналов.

При использовании транзисторных выходов нужно учитывать нагрузочную способность встроенного блока питания микроконтроллера до 300 мА и принимать решение об использовании отдельного блока питания для нагрузки.

Прикладная программа для микроконтроллера пишется в программе CannyLab. В момент написания статьи была актуальна версия v2.13.

Скачиваем и устанавливаем программу. Также понадобится файл "Конфигурация.cfd". После установки запускаем программу. Программа предложит выбрать тип микроконтроллера, с каким она будет работать. Нажимаем на кнопку "Отмена". Интерфейс самой программы интуитивно понятен. Вверху находится главное меню программы. Слева - панель функциональных блоков. Для установки блока на рабочую область достаточно перетянуть блок мышкой. Соединяются блоки связями - тоже мышью. Подробное описание работы интерфейса и каждого блока можно найти в помощи программы, нажав на клавишу F1.

Далее в пункте "Файл" выбираем "Открыть". Находим на диске предварительно загруженный файл-заготовку под именем "Конфигурация.cfd". Открываем его. В верхней части рабочего поля видим уже готовый шаблон в рамке с поименованными выводами для программы, согласно принципиальной схеме контроллера (рис. 3). Какие-либо изменения в него вносить не нужно, так как это повлияет на корректность работы всей прикладной программы. Эта часть программы является обязательной, без неё контроллер неработоспособен. Ниже, вне рамки, находятся составные блоки, об их назначении чуть позже.

Рис. 3.

 

Для проверки корректности написанной программы нужно воспользоваться функцией "Сервис" - "Проверить диаграмму". После проверки можно проверить работу диаграммы на симуляторе. Для этого включаем симулятор: "Симулятор" - "Включить". Попадаем в режим симуляции диаграммы. В нём имитируем работу программы. Для этого запускаем симулятор: "Симулятор" - "Запуск". Отработка симуляции соответствует реальной работе программы в микроконтроллере. Для подачи сигнала на какой-либо вывод нужно щёлкнуть по нему правой клавишей мыши и выбрать из меню "Установить значение" (рис. 4). Для дискретного сигнала это лог. 1 или лог. 0, для аналоговых входов Т1 и Т2 с резисторов R1 и R2 - значения от 0 до 1023. Значения можно вводить как в десятичной форме, так и в шестнадцатеричной или в двоичной.

Рис. 4.

 

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

Продолжение следует

Автор: С. Рычихин, г. Первоуральск Свердловской обл.