Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно.

Всем привет.

Хотел бы с вами поделиться своим "грязным" опытом, ошибках и результатом.

Рассматривать мы сегодня будем транспортер советской эпохи состоящий из двух частей. Одна часть транспортера приводится в движение асинхронным эл.двигателем с короткозамкнутым ротором мощностью 7 кВт и скоростью 950 об/мин, вторая часть с тем же асинхронником с кз ротором но 15 кВт и 970 об/мин.

Принцип работы транспортера простой. Как только на него подают продукцию, оператор нажимает и держит кнопку "Пуск". На секунды 3 срабатывает звонок типа МЗМ-1, сигнализирующем о скором запуске транспортера. По истечению 3-ех секунд запускается транспортер, оператор отпускает кнопку "Пуск"  и в дальнейшем другие операторы сортируют продукцию по нужным ячейкам. По необходимости нажимается кнопка "Стоп" для остановки транспортера и так по кругу. При этом операторы постоянно жаловались на боль в пальце, который за 12 часовую рабочую смену очень часто нажимает и держит 3 секунды кнопку "Пуск".

Общий вид:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Управление транспортером осуществляется с 5-ти кнопочных постов:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Раньше, запуск эл.двигателей осуществляли 2 магнитных пускателя 4-ой величины типа ПМА-4100. Но так как транспортер работал в повторно-кратковременном режиме, то контакты этих пускателей долго не выдерживали даже не смотря на то, что они были взяты с запасом по току.

От пускателей отказались и я собрал тиристорный привод. Опыт показал - 10 лет безотказной работы.

Общая схема:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Возникла вторая проблема - быстро выходили из строя реле времени (в схеме RT). Максимум пол года и всё, то включались быстрее, то включались медленнее, то не включались вообще.

Реле в последнее время применялись такие:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Их ремонтировали но на долго их не хватало.

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

Для теста использовал макетку. Высокое напряжение ни как не пересекается с низким:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование
Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Два нижних оптрона PC817 фиксируют отсутствие или наличие напряжения 220В, два верхних MOC3063 открывают симисторы.

Отпишусь сразу, с текущей схемой соединения PC817 Arduino будет фиксировать колебания переменной сети. Схему переделывать не стал, а просто сделал поправки в скетче при помощи millis() чтоб эти колебания не учитывались.

Немного модернизировали старую схему:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Принцип работы: При нажатии и отпускании кнопки пуск срабатывает звонок на 3 секунды, по истечению 3-ёх секунд звонок выключается и тут же включается пускатель КМ, который сам себя подхватывает своим контактом КМ1. Важно отметить симистор, который запускает пускатель КМ, открывается лишь на 0,15 секунд и потом закрывается. Этого времени достаточно чтобы пускатель сам себя подхватил блок контактом.

Приемущества:

Внедрив Arduino в схему транспортера после всех кнопок я ни каким образом не уменьшил безопасность при каких-либо ЧП. Даже если Arduino выйдет из строя, пробьёт симисторы - всегда есть возможность экстренно остановить транспортер нажав кнопку "Стоп" и вытащить ключ-бирку КА. Отсутствует эл.магнитное реле в схеме Arduino которое имеет механически износ. Время выдержки строго фиксировано, не больше не меньше. Имеются RC-фильтры. Дешевая ремонтопригодность. Цена сборки до 500 рублей при покупки деталей в местных радиомагазинах. Заказы с али оптом - ещё дешевле.

А теперь с какими препятствиями я связался

Arduino начала давать сбои и открывать симисторы от эл.магнитных помех - исправил керамическими конденсаторами "104". Изначально на одном из пинов Arduino не работала внутренняя подтяжка резистором - отказался от внутренней подтяжки и сделал наружную.

При написании скетча вроде бы всё предусмотрел и должно работать идеально, но на деле это далеко не так.

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

Когда я писал скетч впервые, подразумевал идеально работающих работников, которые кнопку нажали, отпустили. Но нет, ведь кто-то нажмет кнопку 2 раза, кто-то её передержит, кто-то будет нажимать прерывисто и постоянно и так далее. Это всё нужно было учитывать, так как Arduino это фиксирует и работа при неправильном написании скетча может нарушится.

Как видно скетч переделывался 7 раз, а баги и ошибки в работе выявлялись чуть ли не 2 месяца, приходилось переделывать. Сейчас все ошибки исправлены, схема отрабатывает как надо.

А теперь страшное! Как выглядит ШУ:

Как Arduino запускает эл.двигатели 7 и 15 кВт одновременно. Arduino, Самоделки, Электроника, Длиннопост, Производство, Технологии, Программирование

"Соплей" много не скрываю, бюджет ограничен, да и в целом это как подопытный кролик пока что. В будущем всё доведу до ума.

---

Скачать схемы с используемыми компонентами в PDF и скетч можно на ЯндексДиск.

П.с.: может что-то не идеально, но работает как надо.

Arduino & Pi

1.4K постов20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
4
Автор поста оценил этот комментарий
Если не ошибаюсь, раньше оператору надо было держать кнопку запуска 3 секунд, и в случае возникновения не штатной ситуации достаточно было просто отпустить кнопку для предотвращения запуска. Теперь же оператор может кратковременно нажать кнопку и отойти? Мне кажется, что теперь нельзя экстренно прервать процесс запуска и вынудить оператора находиться у кнопки положенные 3 секунды. С точки зрения безопасности это серъезное упущение.
раскрыть ветку (6)
3
Автор поста оценил этот комментарий

Здравствуйте. Весь технологический процесс работы оператора привязан к его рабочему месту и он ну ни как не может отойти от своего поста так сказать. Если ЧП возникло когда оператор нажал на кнопку но транспортер не успел запуститься - оператору просто на просто нужно нажать кнопку стоп. Ардуинку я же не просто так подцепил не только к кнопке Пуск, но и к кнопке Стоп. Чтобы она отслеживала наличие переменной сети и если фаза прервалась на каком-то из постов кнопкой "Стоп", ардуинка тут же прекращает выполнение своей задачи и становится на исходную. Так же перед пуском Ардуинка следит за наличием фазы на кнопках Стоп и если фаза пропала - ни чего не поедет, хоть затыкайся в кнопку Пуск.

Автор поста оценил этот комментарий

Код смотрели? Я - нет.

Но подозреваю, что в коде может быть реализована проверка частая состояния кнопки в течении 3х секунд и вырубание?

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

Нет. В сети 50Гц, это значит что за 1 сек пройдёт 50 колебаний. 1 сек = 1000 мсек, 1000/50 = 20 мсек. Очень быстро, не так ли. В скетче я сделал выдержку 50 мсек. Т.е. если в течении 50 мсек колебаний в сети не произошло (нажали кнопку Стоп и пропало напряжение) - всё отключается. 50 мсек это очень быстро для человека!

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Привет братан, да нормальная поделка. Ну проводочки сейчас висят, не криминал если понимаешь что делаешь, потом причешешь. По коду: В теории да, но дуине тоже нужно сколько то времени на выполнение программы и сравнивание значений. Как организована задержка? (delay 50 или боярский millis?) Ошибка может копиться, в код не глядел, это учтено?(пробую ванговать) По сути можно если через каждый цикл выводить в компорт количество колебаний и настоящее время, отсюда плясать по поводу задержки.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Задержка сделана по принципу millis() - time > timeFlag;

time = millis();

Переполнение счетчика исключено. Наблюдал некоторое время за работой Ардуины через Serial - ошибок ни каких не копится, всё в норме.

Автор поста оценил этот комментарий

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку