ПЛК на минималках: Начало
ฝัง
- เผยแพร่เมื่อ 31 ม.ค. 2024
- Начало цикла роликов о создании "ПЛК на минималках" от платы до прошивки.
Пример использования библиотеки хранения параметров для ESP-IDF (на котором судя по всему мы и будем писать прошивку): github.com/MoonFox2006/Params...
PS: C++ будет использован без фанатизма (я не программист на ++), так что не ждите новомодные фишечки и сверхвысокоуровневые типы. Свой код пусть и кривей, но родненький же :) - วิทยาศาสตร์และเทคโนโลยี
Привет Алекс, спасибо тебе за труд! Твои видео очень познавательны и хороший звук! Прости что не ставлю лайки, я твои видео скачиваю и смотрю и пересматриваю в командировках.
Здравствуйте. Очень интересно, жду продолжения сериала по ПЛК ) Alex, а вы не пробовали случайно отладку Esp32 через другую Esp32 ? Я недавно стал счасливым обладателе парочки Esp32-S3, у них вроде всё для этого имеется
У S2/S3/C3 имеется USB/JTAG, так что если вы не используете USB, то можно отлаживаться через него и вторая плата не нужна. Иначе просто JTAG, но не знаю, есть ли код для JTAG адаптера под ESP32, но сомневаюсь, учитывая что Espressif продает свой JTAG отладчик.
53 на 39.... Хорошая шутка! Супер!
Думаю многие просто не знали о голосовании)
Думаю, многие просто не уважают ардуино, как и я.
@@manul88 как можно уважать или нет? Это что, человек или это подростковые гормоны играют? Для всего есть своя ниша, люди которые одним пользуются, а другое обирают, просто слабые и слишком узко мыслят. Это все из той же оперы что и вечный срач, что Линукс лучше Винды, или как динозавры в свое время рассказывали, что писать программы нужно только на ассемблере, а на Си писать это "неуважение" и слишком "большие программы", ну кто так думал, там и остался, потому что никто в здравом уме не будет сейчас писать программу с GUI на ассемблере. Потом был срач что нужно только на Си писать, а Python это для детей и прочее. Я тоже не считаю питон уместным во многих вещах, ибо язык для интерпретатора, но это не значит,что этим нельзя пользоваться.
По такому же принципу, нужно писать для микроконтроллеров только на ассемблере, "по взрослому", да это будет уважительно и что? Кому нужно ждать от вас реализацию такой прошивки год? А поддержка или доработка, ещё год? Вот вам и ответ. Если это работает стабильно и это быстро делается, значит сейчас это то, что будут уважать
@@manul88 Нет. Ардуино все по прежнему уважают, но его время проходит ;)
В первую очередь откажитесь от большого реле, если ток нужен поставте внешне, и реле минимальные у панасоника малые есть на 220 контакт, без этажерок вам не обойтись используйте шлейф
Согласен, китайцы шлёпают огромные из экономии - они проще в производствае. Большие токи нужны далеко не всегда. В прототипе, который делал в декабре применял миниатюрные реле из серии HFD3, их можно даже в чипе дипе купить. Если разобрать какой нибудь контроллер тёплого пола, то можно там обнаружить 2-3 реле таких же размеров, которые умудряются коммутировать нагрузку в несколько ампер при напряжении 230 В переменки!
Кроме того тут нужно определиться какие дискретные входы и сколько их хотите нужна ли оптоизоляция? Тоже касается и аналоговых входов выходов, лучше делать под унифицированные сигналы. Ну в общем раз замахнулись на ПЛК ТОГДА нужно пошевелиться
У GSM-модема 2А только в пике. Дальше этот ток делится на число выделенных тайм-слотов. Для голосового канала - один тайм-слот, а это значит делим на 8. Для передачи по GPRS - в зависимости от доступной скорости, обычно 2 тайм-слота или иначе говоря делим на 4. Это предельный ток, если связь хорошая, после соединения модем ток снизит. Если резюмировать - установка внутрь достаточно мощного буфера способного вытянуть ток между тайм-слотами(к примеру небольшой АКБ) снижает требования к блоку питания примерно до 5В 0.5...1А Ну или на меньший в 2.5 раза ток если на 12В.
2А и электролит на 1000+ мкФ и не думать ни о каких пиках, чтобы не ловить перезагрузки модема. Хотя сам GSM я только для SMS планирую использовать, но на всякий случай...
@@alexmorozov73 Ток 2А за 0.6мс(время одного тайм-слота) просадит 1000мкФ примерно на 1.3В. Т.е. если эта емкость со стороны 12В это допустимо, а если со стороны модема (4.2В) то явно недостаточно. Там максимально допустимые провалы 0.3В.
@@alexgavs Ничего они не закрывают. У типовых ионисторов столь малой емкости ESR порядка 1 Ом и больше. Даже специальные мощные имеют ESR порядка 0.1 Ом. Т.е. при токе в 2А на внутреннем сопротивлении таких ионисторов упадет гораздо больше требуемых 0.3В. По части резервного питания их тоже недостаточно - за 5 секунд мало что успеешь сделать. Там нужны ионисторы минимум раз в 10 больше.
@@ArtemKAD1 Ну и поставить со стороны первичного питания, до стабилизатора напряжения один и после один с хорошим ESR. Микросхемы стабилизаторов питания тоже не мгновенно отрабатывают броски тока по нагрузке, без кондюков на их выходе по любому не обойтись!
Лет 10 назад делал GSM модем с питанием от USB порта. Повышал 5в до 6,5в с ограничением тока до 0,5А. Затем - конденсатор на 1500uF, потом линейный интегральный lowdrop-стабилизатор на 3,6в 3А. Все работало прекрасно.
Блок с контроллером к нему через разъем подключаются шлейфом периферия. Как у промышленных плк.
Привет, Alex! Хотел спросить, а вы не смотрели в сторону плк Митсубиши (fx1, fx2, fx3 и.т.д). Китайци их давно на stm собирают. И исходники есть в сети. Может имеет смысл что-то подобное к ESP адаптировать? Там ведь среда для написания плк программ есть и бесплатная.
Добрый день. Не думали о выводе на торец ПЛК SPI/I2C интерфейсов для возможности подключения каких-либо дополнительных модулей в будущем? Видел такое в промышленных ПЛК.
Будет I2C на несиловом торце в виде XH2.54.
И это все-таки будет "ПЛК", а не ПЛК. :)
Предлагаю назвать проект ПЛАК - Программируемый Логический Аскетичный Контроллер.
Можно просто расшифровывать наш "ПЛК" как Пародию на Логический Контроллер :)
А можно ШЛАК, так веселее 🤣
Привет. Espressif IDE пробовал использовать?
На мой взгляд, это лучшее для есп32.
Не пробовал, но все подобные бесплатные IDE обычно базируются на Эклипсе, а он, ява-тормоз, у VS Code по скорости и удобству проигрывает.
@@alexmorozov73к тому же там нет авто подстановки кода. Хотя может для кого-то это не проблема.
Небольшое замечание по GSM модемам, с которыми мне приходилось работать. Они действительно могут потреблять до 2А, но ток этот можно назвать импульсным - это резкие броски тока в момент установки соединения. Лечится установкой электролитов вблизи цепей модема. Средний ток потребления модема невелик и двухамперный источник питания для него ставить необязательно. Кстати у ESP 32 в момент подсоединения к WiFi тоже нехилые броски по потреблению случаются!
Будет и электролит у модема, но и БП с запасом. Разумнее наверное сделать посадочные места для БП на 2А и на 1А в одном месте.
@@alexmorozov73 если это ПЛК, то и питание, и выводи/вводы должны быть расчитаны на 24в
А может пока еще не поздно посмотреть на raspberry pico w ??? вроде сам про rp2040 хорошо отзывался.
Во-первых, меня смотрят много ЕСПшников, им другие архитектуры не особо нужны.
Во-вторых, цена Pico W увеличит окончательную себестоимость устройства вдвое.
И в-третьих, я хорошо отзывался о PIO в RP2040, сам чип неплох, но без встроенных беспроводных интерфейсов применим далеко не везде. И как раз его в варианте а-ля ESP-12 нет в принципе, что очень жаль. Хоть сам делай такой, но нужен выход на фабрику :)
Где платы заказать?
в корпус 54мм спокойно можно уместить располагая платы вертикально.
В юности слышал иную версию шутки про демократию.
- Что такое демократия?
- Demos в переводе значит "народ". Следовательно демократия - власть народа.
- Нет. Демократия это власть демократов!
;)
Не хочется автору навязывать свое мнение, но порекомендовал бы реле вынести отдельно. А лучше поставить контактор на DIN-рейке. Тащить 30А(6кВт) в прибор не очень безопасно. На место реле поставить литиевый аккумулятор, которого хватит и для работы модуля и для отправки смс о пропаже питания.
Алекс, на счёт модуля с мелким шагом: если тебе девайсов надо не очень много (ну скажем до десятка, двух десятков). Могу предложить помощь, так как имею доступ к линии мелкосерийной сборки.
То есть если будут платы и модули в том числе с компонентами рассыпухой (но если что-то мелкое - лучше лентой) могу собрать и отправить транспортной компанией.
За свои услуги денег не возьму конечно.
Ну просто как вариант.
Модули с мелким шагом всё таки чуть более функциональные по моему. Хотя-бы просто из-за большего количества ног.
Спасибо, у меня ESP32-S и т.п. пока получается паять лапами.
Давайте сначала простое устройство сделаем и отладим, а потом можно будет и на модуль МК помногоножнее перейти. Код в любом случае будет во многом общий.
@@alexmorozov73 принял.
Но если что - предложение в силе в любом случае.
Может БП внешним оставить, а в самом блоке только DC-DC c 12...60V входного?
Хочется одно устройство на рейку, чтобы никакая уборщица не смогла разъем питания выдернуть. :) Тем более с входа питания на выход реле скорее всего на практике будет короткая петля брошена, но именно на выводы реле тянуть 220 В по плате не хочу, пускай будет отдельное силовое реле.
Конечное устройство кроме меня возможно немногим подойдет, но надеюсь по серии роликов каждый для себя сам идеальный бомж-плк сделать сможет.
Поддерживаю, у Овна плк со встроенным бп менее надежные обычно.
Спасибо
Могу прислать чережи и литографию корпуса на дин рейку под печатные платы самодельного плк. Корпус печатаю на 3д принтере. Его можно сделать под разные размеры. Если надо пишите или смотрите мой гитхаб.
Если уж мудрить с 3D печатью, то сначала проектируется плата под разумную компоновку, а потом под нее проектируется корпус.
Но вот 3D принтеры еще не в каждом доме, так что вариант со стандартным готовым корпусом универсальнее.
@@alexmorozov73 Я тоже так думал.
Алексей, а STM32 не рассматриваешь???
А WiFi/BT у него есть?
Это если что риторический вопрос.
@@alexmorozov73 Ну так то да, нет блютузов и т.п. Но ты же ставишь, как я понял, SIM800...
2G модем для GPRS? Серьезно? :) Я ставлю GSM модем для SMS информирования, основное управление (Web/MQTT/Telegram) будет через WiFi.
@@alexmorozov73 Понял)) А так, хорошая затея, лайк за начинания( и за предыдущие ролики тоже респект)! Будет интересно, и полезно посмотреть
Обычно плк с выходами на малый ток или дополнительные модули.
Раз уж ставить мощное э/м реле, то предлагаю добавить SSR, чтобы увеличить ресурс э/м реле
"Какой-то добрый комментарий..."
Просили конструктивный! :)
"Какой-то конструктивный комментарий... "
Диод, я бы припаял (питание 5 сигнал 3) и потестил, возможно проблемы были из-за проводов макетных….
Адресные светодиоды питаются от 5 В, напряжение сигнала минимум 0.7 VDD, т.е. 3.5 В, а тут 3.3 В. Лучше уж (имхо) конвертер уровней, чем снижать напряжение на светике.
@@alexmorozov73 ну да, соответствовать даташиту лучше.
Спасибо за ролик! Код для меня сложный, надо пожалуй больше практиковаться с С++, а не умные ролики смотреть)
Ролик получился несколько сумбурным, у меня аура перед мигренью, голова не очень соображает, но другого времени может не быть.
Лечение мигрени возможно только одним лекарством, но оно запрещено в России. Правда употребляют его в стране в проммасштабах
зачем в крестах практиковаться вообще? К чему этот оверхед? Тем более в микроконтроллерах
@@torcher5023 для общего развития, я мелкий софт люблю писать для компов, да и вообще, на мой взгляд, С++ это лучшее что изобрело человечество
А почему не PlatformIO, а голый ESP idf?
Вот сейчас PIO для ESP-IDF как раз базируется на 5.1.2, но попробуйте сделать проект на ESP32-C2... Его не только нет в списке, но даже если вы лапами в platformio.ini оформите плату как надо, среда все равно не знает, какой надо компилятор использовать.
Использовать кастомный пакет ESP-IDF? Ну как-то хочется из коробки чтобы работало.
И с C6 в PIO у меня была проблема: код с WiFi собирается, но падает в крешдамп, этот же код этой же версией SDK плагином ESP-IDF собирается и работает. Не хочу разбираться почему и как.
PlataformIO не скрепно, проект украинский.
Ага, сколько лет назад парни, создавшие PIO, покинули Украину? Тогда и Гугл наш, там же Брин среди основателей есть. :)
@@alexmorozov73 но банер на оф.странице проекта конечно об этом умалчивает. )) Кстати, Брин себя русским никогда не считал, и вообще считал Россию "снежной Нигерией".
ethernet будет?
В первом варианте нет, WiFi/BT?/GSM/485 мне хватит, для остального не хватит ног МК в легкопайком корпусе.
Я голосования не видел. Проголосовал бы за ардуино.
Никто не мешает проголосовать сейчас
Это не ПЛК, для ПЛК нужен runtime.
Вам кавычки ни о чем не говорят в названии проекта? :)
И потом, вы по фото невыбранного корпуса и по ненаписанному ПО можете классифицировать оборудование? Научите меня! :)
Да, это будет "ПЛК", кому нужен именно ПЛК - купят готовый надежный сертифицированный, благо рынок большой.
Побежал на али покупать корпус с esp-шками.
Не спешите, мы же еще не выбрали героев нашей повести в N томах
@@alexmorozov73 ESP то в принципе можно уже покупать..С корпусом да можно и подождать, а вот МК можно прикупить.
зачем лезть в плк с ардуинами? Плк это пром, пром это жёсткие условия, вплоть до отслаивания дорожек pcb, если что и взлетит, то только fpga на специализированных чипах. Оно и взлетает, у брендов и оч дорого.
Всех кто голосовал за Ардуино надо на учёт поставить.
Почему? Как не странно, в плане дальнейшего сопровождения кода (т.е. добавления собственных хотелок) их выбор более верен. Для ESP-IDF придется для многого изобретать велосипеды снова и снова. Например сходу нет DNS сервера, а он нужен для Captive Portal. Ну и привычные им библиотеки для конкретных датчиков тоже придется самостоятельно портировать.
Так что не судите строго... :)
вы хотели сказать "повесить".