
Реверс-инжиниринг, цифровой двойник и ESP32 — что эти трое забыли на производстве? Задачка со звездочкой
pitYarmoshuk 11 минут назад Реверс-инжиниринг, цифровой двойник и ESP32 — что эти трое забыли на производстве? Задачка со звездочкой Сложный 5 мин 289 Промышленное программирование * Arduino * Реверс-инжиниринг *...
Вот важная новость с фронта ИИ: pitYarmoshuk 11 минут назад Реверс-инжиниринг, цифровой двойник и ESP32 — что эти трое забыли на производстве? Задачка со звездочкой Сложный 5 мин 289 Промышленное программирование * Arduino * Реверс-инжиниринг * Производство и разработка электроники * Обзор Из песочницы Здравствуйте ХАБР. В этой, мной первый раз написанной статье, я попытаюсь рассказать про свой опыт проектирования и разработки устройства на контроллере ESP32 для мониторинга закрытой разработчиком промышленного оборудования, который является важным производственным процессом в изготовлении пластин для свинцово-кислотных аккумуляторов, что местные называют "Кюринг".
Вид шкафа управленияЗадача была следующая – реализовать удаленный мониторинг и ведение статистики работы оборудования. Из интересующих значений выделены: - Установленные и фактические влажность и температура в камере;- Общее время работы и текущее время работы шага;- Текущая программа и шаг. На борту у оборудования сборка Siemens S7-200 Smart + HMI Proface, обмен связи MPI.
Технические детали
На момент реализации, нам дали информацию, что ПЛК и HMI защищенны паролем с завода, что значительно усложнило задачу и привело меня к решению сотворить внешнее устройство “снифер” на ESP32. А может Siemens был без пароля? )В действительности, спустя год после реализации проекта, оборудование потребовало внеочередного нашего вмешательства и мы все-таки решили попробовать подключиться к ПЛК и слить с него проект для изучения.
Проблем нам это не составило, ведь никакой защиты на нем не обнаружилось. Сделай мы это раньше, устройство, речь про которое пойдет в этой статье, и не понадобилось бы, и задача закрылась бы Python + Snap7 либо NodeJS + S7Node. И так, с чего же все началось, а началось все с определение скорости MPI.
На этот момент мы уже подключились параллельно к RS485 готовым анализатором логики с использованием ПО Logic:Логический анализаторПолучив осциллограммы сигналов, я использовал инструмент программы Analyzer и начал подбирать скорость, битность, паритет и стоп-бит, чтобы получить посылки нужного вида и без ошибок. Нужный вид посылки для себя определил, почитав статью за этом же сайте , статья про создания своего slave устройства для Profibus, с нее же вышел на весьма подробное описание Profibus интерфейса от Макса Фелсера . Таким образом, спустя непродолжительный кусок времени, параметры интерфейса были определены, и типовые посылки, из статей описанных выше, стали проглядываться:В этой статье не будет подробно описан интерфейс, если вам это интересно, вы можете прочитать статьи, которые я упомянул выше.
Чтозж, после этого этапа, следует более интересный – найти в этом непроглядном количестве байт нас интересующие. Для этого, я уже подготовил ESP32 + MAX485 на Serial2, который имел примерно следующий вид:Шустро написался небольшой код на Arduino, который читал ответы ПЛК на запросы HMI, и выводил мне их в исходном байтовом виде.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





