Нужен мониторинг значений переменных на лету без него тяжко на пуско наладке будет.
@dimoonelectronics8 ай бұрын
Да, это все естественно будет
@DIY_PLC8 ай бұрын
Чем вам не понравился с/с++ ?)
@dimoonelectronics8 ай бұрын
Программирование ПЛК на чистом СИ плохо тем, что СИ позволяет "выстрелить себе в ногу", например, можно промахнуться с индексом массива и перезаписать какие-то данные в произвольном участке памяти, причем с непредсказуемым результатом. Еще одна проблема заключается в том, что сам алгоритм ПЛК и остальная его прошивка получается монолитной. Для отладки необходимо будет использовать программатор, при этом если поставить где-то точку останова, то остановится выполнение вей прошивки ПЛК, и у нас отвалятся все интерфейсы связи, причем для возобновления их работы в некоторых случаях потребуется сброс ПЛК. Здесь же прошивка ПЛК от алгоритма его работы (логики) отделена виртуальной машиной, которая полностью изолирует процесс логики от остальной прошивки ПЛК. В таком случае, если логика будет работать неверно, то виртуальная машина просто завершит выполнение логики, установить все выходы в безопасное состояние, и включит светодиод "Ошибка". Еще виртуальная машина позволяет реализовать отладку логики, в том числе пошаговую, изменение переменных, отправку данных в SCADA, и т.д. через любой интерфейс связи, Ethernet, RS232/485, и др. Можно было пойти по пути C/C++, который компилируется в байт-код виртуальной машины, но и здесь есть нюансы, например, если разработать свой язык, то в него можно добавить дополнительные возможности, например, объявляем переменную таким образом: retain int counter; ключевое слово retain говорит о том, что переменную counter необходимо сохранять в энергонезависимую память, и ее значение будет сохраняться после выключения питания ПЛК. Таким образом, программисту не надо будет заботиться о сохранении этой переменной в EEPROM, система все сделает сама
@DIY_PLC8 ай бұрын
Интересное решение. Это для умных домов?
@dimoonelectronics8 ай бұрын
Конкретно этот контроллер как раз и хочу использовать для простой домашней автоматизации
@alexloktionoff6833 Жыл бұрын
Почему не Arduino?
@dimoonelectronics Жыл бұрын
Если речь идет о плате Arduino, то в отличие от ПЛК, Arduino не является промышленным решением, так как в ней нет защит от помех, статического электричества, защит от превышения напряжения на входах, и т.д. Если речь о программировании ПЛК из Arduino-IDE, приведу пару примеров: 1. Нет пошаговой отладки 2. При возникновении ошибок в программе во время выполнения (переполнение стека, доступ по неверному указателю, и т.д.) ПЛК зависнет полностью, при этом управляющие сигналы могут перейти в случайное состояние, что может привести к потенциально опасным последствиям (представим, что такой контроллер управляет горелкой газового котла, последствия могут быть плачевными) SDP LogiC решает эти проблемы: 1. Возможна пошаговая отладка и мониторинг состояния через любой интерфейс связи, в том числе есть возможность сделать удаленную отладку через Интернет 2. Пользовательское приложение отделено от остальной части системы с помощью виртуальной машины, и при возникновении критических runtime-ошибок, пользовательский код будет просто остановлен, а все выходы автоматически переведены в безопасное состояние. Кроме того, можно организовать логирование и передачу на сервер подобных событий для дальнейшего анализа
@alexloktionoff6833 Жыл бұрын
Спасибо за развернутый ответ, думаю это будет полезно всем, есть над чем подумать.@@dimoonelectronics
@dekus80 Жыл бұрын
Товарищ sdp logic с емейлом на яндексе, по чем установленный альтиум покупал? Для понимания кем являешься.
@FFKbgrj Жыл бұрын
16 таймеров от 1 до 15 это 15 таймеров
@triceraptors Жыл бұрын
Кстати, да. А вот двойной цикл с задержкой внутри так впечатляет, что посмотрел этот фрагмент трижды-- медитировать самое оно ;)
@dimoonelectronics Жыл бұрын
Ошибся, там таймеры нумеруются с 0 до 15
@ИванИванов-м9щ6д Жыл бұрын
Будет ли вариант для работы с 24VDC?
@dimoonelectronics Жыл бұрын
Если проект взлетит, то в планах сделать ПЛК для промышленного применения с питанием от 24 вольт, в дальнейшем хотим сделать что-то похожее на линейку ПЛК Siemens SIMATIC, там будет основной блок CPU с Ethernet-ом и модули расширения, которые подключаются к CPU через шину
@dimoonelectronics Жыл бұрын
Конкретно этот вариант можно переделать под 24 вольта без особых проблем, там надо только выкинуть блок питания 220V->12V, и заменить реле на 24 вольтовые
@ИванИванов-м9щ6д Жыл бұрын
Надеюсь взлетит.
@sledleo Жыл бұрын
Ого-го! Пошло движение! 🎉 Ждём интересных и поучительных видосов!
@artmon2004 Жыл бұрын
Как дребезг обрабатывается?
@dimoonelectronics Жыл бұрын
Там реализован программный антидребезг, как раз на эту тему написал статью в блоге: dimoon.ru/programmirovanie/programmnyj-antidrebezg-s-obratnoj-svyazyu.html Если кратко: каждые 10мс считывается значение пина gpio. Если текущее значение 1, предыдущее 1, то считаем, что кнопка нажата, если текущее 0, и предыдущее 0, то считаем, что кнопка не нажата. Если текущее и предыдущее значения не равны друг другу, то считаем, что это переходное состояние, и флаг нажатия на кнопку не трогаем
@nicolasomsk Жыл бұрын
Я, конечно извиняюсь, но зачем мне среда с Си подобным языком, когда можно прямо на чистом Си запрограммировать STM-ку? ПЛК на мой взгляд, как раз удобно на FBD программировать.
@dimoonelectronics Жыл бұрын
Для программирование STM-ок эта среда и не рассчитана. Идея заключается в следующем. Есть у нас некое готовое устройство, логику работы которого должен определять конечный пользователь. Это могут быть не только ПЛК, а также различные интеллектуальные контроллеры для торгового оборудования, коммунального хозяйства, и тд. Не предоставлять же конечному пользователю все исходники под МК, программатор, и т.д. для решения такой задачи? Здесь было бы удобно реализовать что-то типа скриптового программирования, что и позволяет выполнить SDP LogiC. Насчет FBD. Применение языка с СИ-подобным синтаксисом для программирования ПЛК позволит реализовывать более сложные алгоритмы, и делать их более читаемыми. Та же CodeSys хоть и заточена под FBD, но все же позволяет реализовывать некоторые элементы на паскалеподобном языке, так что даже языки МЭК не избавились от классического подхода к программированию. Еще один немаловажный факт заключается в том, что человек, не имеющий никаких навыков программирования МК или ПЛК, но который умеет программировать на Java/C#/PHP/и тд., посмотрев пару обучающих видео, сможет писать качественный код под ПЛК и иные устройства, работающие на SDP LogiC. Особо интересна будет связка SDP LogiC + контроллеры для торговых автоматов, где можно будет отказаться от управляющего компьютера, и всю логику работы возложить на контроллер. В заключение несколько фишек платформы SDP LogiC: 1. Пользовательское приложение компилируется в байт-код, который выполняется на устройстве в виртуальной машине. Это позволяет изолировать пользовательское приложение от основной прошивки устройства. Если в пользовательском ПО что-то пойдет не так, то виртуальная машина сможет, к примеру, остановить приложение и перевести исполнительные устройства в безопасное состояние, перезапустить приложение, сформировать crash-report и отправить на сервер для анализа. Иными словами, это будет работать как в какой-либо операционной системе: если приложение совершило что-то не то, то ОС просто завершает его работу, при этом все остальное продолжает работать. 2. Детектировать и предотвращать опасные комбинации управляющих сигналов на выходах ПЛК. Например, в конфигурации ПЛК мы можем запретить одновременное включение выбранных реле, и если такая ситуация произойдет, то пользовательское приложение завершит работу, и будет сформирован соответствующий crash-report для дальнейшего изучения проблемы. 3. Можно реализовать обновление и полноценную отладку пользовательского ПО через rs232, ethernet, gprs, и любой другой интерфейс связи. Постарался ответить максимально развернуто, если будут какие-либо вопросы, задавайте!
@АлександрВаженин-р3б Жыл бұрын
Уровень бог. Спасибо!
@John-n5p4m Жыл бұрын
Интересно, помогает ли она реально от микробов
@dimoonelectronics Жыл бұрын
Лампа вроде как бактерицидная, по идее что-то должна обеззараживать, только производительность вентилятора маловата
@tatibelova75372 жыл бұрын
очень понравилось все понятно и доступно желаю вам успехов в будущем
@ИгорьЛосев-з9с2 жыл бұрын
Спасибо.
@escire3 жыл бұрын
Отличное видео. Спасибо!
@isakneuman99953 жыл бұрын
То что смог создать хорошо, но устройство абсолютно наxyй ненужное
@dimoonelectronics3 жыл бұрын
Мне нужно))
@olegsazonov79558 ай бұрын
Просто демонстрация , без комментариев , устройство изделия и прошива со схемой это тайна военная , поэтому первый комент негативный . Такие ролики смотрят те , кто хочет повторить творение автора , для развития навыков . Если автору приятно пересматривать собственный ролик , не неся смысловой нагрузки потенциальным подписчикам , его право , удачи в разработках , любуйся ими сам .
@katharinanovaroma25273 жыл бұрын
Спасибо! Ну и геморрой!
@aliakseikuzniatsou77173 жыл бұрын
Спасибо. Иду ковырять IAR🙈
@meyosh87343 жыл бұрын
Кажется ваш сайт лег? Это поправимо?
@dimoonelectronics3 жыл бұрын
Сервак очередной раз остался без интернета, в итоге психанул и перенес сайт на хостинг в reg ru
@meyosh87343 жыл бұрын
@@dimoonelectronics Да, я уж испугался. Сайт достаточно полезен.
@dentiger43493 жыл бұрын
А обязательно создавать группу с подключаемыми файлами, если их уже подключаешь во вкладке "препроцессор". Или так не будет работать? Также у нас данная группа уже имеется в каталоге проекта
@dimoonelectronics3 жыл бұрын
Группа в проекте - это типа одно, а то, как расположены файлы в файловой системе проекта - это другое. Просто мне как-то удобней, чтоб и там, и там было одинаково. Да, подключать файлы обязательно, хоть и в препроцессоре указали ссылку на папку с файлами. По крайней мере .c файлы обязательно надо, .h не обязательно
@dimoonelectronics3 жыл бұрын
Поговорил с нашим вторым электронщиком, и решили внести некоторые дополнения в плату, так что ожидается еще контент по этому проекту!)
@dobroliub19083 жыл бұрын
О, не ждано так) Спасибо!
@night_gryphon3 жыл бұрын
IAR она бесплатная или таблетку нужно? Где что брать что бы с нуля настроить IDE для работы с STM32 ?
@dimoonelectronics3 жыл бұрын
IAR платная, для STM32 нужна IAR ARM. Установка там не очень сложная, ну и всегда можно найти torrent edition версию
@sviatoslavstarokozhev21683 жыл бұрын
Хорошее вводное видео, я думаю, что начинать с регистров это сильно. Думаю обычные "С" функции будут понятнее и не такие сложные в освоении для новичков. Обычно работа с асмом и регистрами более к оптимизаторским штукам.
@dimoonelectronics3 жыл бұрын
Про регистры я у себя на сайте писал, там я топил за использование только CMSIS без HAL, поэтому предполагаю, что аудитория подготовлена)). А насчет Си, есть хорошие лекции, "Евгений Линский. Основы C++" на лекториуме
@dmitr81943 жыл бұрын
CubeMx не используете?
@dimoonelectronics3 жыл бұрын
не-а
@dobroliub19083 жыл бұрын
Здравствуй уважаемый автор, спасибо тебе за твой вклад, за твои статьи и теперь уже видео!! Как же мне его не хватало... А тут смотрю, о чудо - вышло видео по iar!!. ide замечательная но своей кучей настроек просто прибивает с ходу начинающего, keil в этом плане гораздо понятнее и проще .... Развития тебе и твоим проектам!)))
@openFrimeTv4 жыл бұрын
у тебя отлично получается) пили больше роликов
@ivanivanov7134 жыл бұрын
Спасибо за видео и статьи на сайте!
@MRTesla-wv9tw5 жыл бұрын
Во тьме ночной, при свете дня, Злу не укрыться от меня. Те, злые мысли в ком царят, Страшитесь света Фонаря)))
@samatsamatov55655 жыл бұрын
Молодец ! Отличная законченная разработка ! Так держать !