Найти тему

Игры кончились... Пора работать

Этот канал посвящен программированию в сфере АСУПиТП. А в частности такому интересному направлению - виртуальное проектирование. Это относительно новое направление позволяет создавать и тестировать проекты для программируемых логических контроллеров(ПЛК) в виртуальной среде.

Factory IO
Factory IO

Одна из популярных специализированных сред разработки это Factory IO. Преимущества этой среды описывать не буду, т. к. для себя не нашел ей применения в силу её минусов. А существенными минусами можно назвать ограниченность применяемых 3D моделей и она не бесплатная, хотя и имеет пробный период. Более подробно можете ознакомиться с ней сами. У меня же знакомство состоялось в период обучения на курсах программирования Siemens в ковидные времена, т. к. курсы проводились на удалёнке. Однако, это произвело переворот в сознании, что совершенно не обязательно иметь физическую установку, которую требуется автоматизировать.

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

Воспалённое такой задачей сознание искало приемлемый выход. Вспомнив про Factory IO, я попытался выжать из него хотя бы что-то полезное, но уникальность конструкции адресных накопителей в проекте перечеркнуло всё. Желание остаться в виртуальном поле привело к игровому движку Unity.

Unity 3D
Unity 3D

Вот тут-то оказалось гораздо больше степеней свободы для "творчества". Однако, для меня сначала это показалось тёмным лесом в силу незнания языка C#, на котором в Unity всё основано, а так же не было понимания как подключить ПЛК к игровому движку для управления процессами. Изрядно помучив поисковик и ютуб в поисках различных примеров, выстроилось понимание в каком направлении двигаться дальше. Но об этом повествование можно продолжить в следующих статьях, а сейчас не об этом.

Виртуальный цех
Виртуальный цех

Получив от конструктора 3D модели будущих конструкций, я разместил их в виртуальном цеху и начал "оживлять". На этапе придания подвижности выявлялись и ошибки конструкций, что заблаговременно удалось исправить до изготовления их в "железе". Затем начался процесс программирования ПЛК. Первые впечатления как у ребенка, играющего в новую компьютерную игру. Ведь тут уже игра идёт со смыслом, т.к. конечная цель - воплощение виртуального проекта в реальном физическом мире. Забегая вперёд, скажу, что на момент написания статьи проект идёт в активной фазе. Часть его уже работает около года, а значит всё это жизнеспособно.

Адресный накопитель, 3D модель
Адресный накопитель, 3D модель

Адресный накопитель, реальный
Адресный накопитель, реальный

Теперь о главном...

Для чего же это всё нужно? С моей точки зрения, виртуализация прощает ошибки алгоритмов программы ПЛК. А теперь представьте как изделие весом килограмм за 40 падает с высоты в 6 метров в реальном мире на этапе проектирования. Даже если изделие не жалко, то вот конструкция может пострадать, а то и человек. Хорошо, что в игровом движке "работает" физика и многое даёт увидеть на внештатных случаях. А если мы "специально" отключим какие-то датчики и создадим внештатную ситуацию, то сможем увидеть что произойдет по алгоритму программы. Следовательно мы спокойно можем улучшать систему безопасности, не подвергая никого и ничего физической опасности.

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

Теперь о финансовых затратах на виртуализацию. Основные затраты - это время. Unity для этих целей бесплатный. В качестве ПЛК так же есть как реальные, так и виртуальные решения(виртуальные в каких-то случаях бесплатны). Студентам и начинающим программистам АСУПиТП это поле для развития и "творчества".

На этом обзорную статью завершаю.

Подписывайтесь на канал, ставьте палец вверх и пишите комментарии! Этим поддержите развитие канала.

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