- BrainTools - https://www.braintools.ru -

Разработка IDE для ПЛК. Механика печатной машинки для графики бесконечных вложений электроцепей

Разработка IDE для ПЛК. Механика печатной машинки для графики бесконечных вложений электроцепей - 1

Как ИИ проигрывает человеку. Это непопулярная тема в эпоху хайпа вокруг нейросетей, ведь принято считать, что они «заменят человека». Скажу сразу: я не типичный инженер. По второму диплому я преподаватель живописи и графики. Моя биография — это не только запах [1] гари и припоя, но и запах масла, титановых белил и кадмиевых красок в старых паркетных аудиториях. Гипсовая анатомия, драпировки, подсохшие цветы в керамике — хорошо знакомо художникам.


Когда я ставил перед собой задачу создать графический движок для отрисовки Ladder-программ, я сформулировал следующие требования:

  • Бесконечные вложения веток друг в друга.

  • Автоматическая прорисовка размещения. То есть не так, как в OpenPLC или Beremiz, где всё нужно передвигать руками, а как в системах от Allen-Bradley.

  • Корректный перевод всей этой структуры в ассемблерные, линейные инструкции.

Конечно, первое, о чём я подумал, — это графы и рекурсия. То же самое мне начал советовать и ИИ. Он написал мне тонны псевдокода, и я этому типичному сценарию какое-то время следовал. Только вот мне постоянно казалось: как-то всё это сложновато. Была интуиция [2], что система должна работать намного проще.

Формула Эйнштейна, описывающая устройство Вселенной, помещается в несколько символов. Формулы Ньютона, описывающие движение планет и гравитацию, тоже состоят всего из нескольких переменных и констант. А какая-то траектория отрисовки Ladder-цепей должна занимать сотни строк?

И тут я подумал: а как же механическая печатная машинка? Она ведь двигается только в сторону и вниз. Может ли печатная машинка разместить символы в такой же последовательности, как идет Ladder-программа? Откройте Блокнот на ПК: уверен, что над каждым функциональным блоком можно поставить символ и обойтись при этом только пробелом и переходом на новую строку.

Тестируем корректность  трансляции двумерных веток в последовательность машинных инструкций.

Тестируем корректность трансляции двумерных веток в последовательность машинных инструкций.

Так я перешёл на стековую модель: начало ветки — кладём координаты в стек, конец ветки — достаём обратно. Нужно вставить ветку внутрь другой ветки? Просто «выкидываем лист» из печатной машинки и переписываем всё заново по тем же правилам: с помощью пробелов и переходов на новую строку.

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

Не хочу сказать, что я придумал что-то принципиально новое — подобные механизмы использовались в истории человечества много где. Но моя история — о меж доменном мышлении [3], творчестве [4] и прямолинейности ИИ. С чего бы искусственному интеллекту [5] проводить параллели между Ladder-программой и печатной машинкой? Почему не с фонарным столбом или почтовым ящиком? Если ИИ начнёт перебирать абсолютно все случайные варианты, ему не хватит ни ОЗУ, ни энергии, ни разумного промежутка времени, чтобы сделать хоть какие-то выводы. А человек — может.

Зимний Этюд. Бумага /Акварель.

Зимний Этюд. Бумага /Акварель.

О моем сквозном проекте разработки ПЛК, можно почитать тут:

https://habr.com/ru/articles/1027424/ [6]

https://habr.com/ru/articles/1103196/ [7]

Автор: zoshytlogic

Источник [8]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/38036

URLs in this post:

[1] запах: http://www.braintools.ru/article/9870

[2] интуиция: http://www.braintools.ru/article/6929

[3] мышлении: http://www.braintools.ru/thinking

[4] творчестве: http://www.braintools.ru/creation

[5] интеллекту: http://www.braintools.ru/article/7605

[6] https://habr.com/ru/articles/1027424/: https://habr.com/ru/articles/1027424/

[7] https://habr.com/ru/articles/1103196/: https://habr.com/ru/articles/1103196/

[8] Источник: https://habr.com/ru/articles/1103706/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1103706

www.BrainTools.ru

Rambler's Top100