Как стать автором
Обновить

Комментарии 24

Зачётно, хотя функциональная схема выглядит ужасающей мешаниной линий и блоков. Все-таки декомпозиция — это альфа и омега любого разработчика.
Еще интересно было бы увидеть статистику по технологической программе: сколько функциональных блоков, какой размер конечного кода, какое время цикла выполнения в контроллере и т.п. Если уж заниматься писеметрией, то с цифрами в руках.
Вот картинка со статистикой.
Скрытый текст
Теперь нужна змейка полностью на LAD'е.
Не, использовать интерфейс АСУТП — это «читерство», я считаю. Надо ставить модули ввода-вывода в достаточном количестве, четыреста выходов завести на светодиоды, а кнопки — на входы — и вот тогда получится действительно змейка на ПЛК, а компьютер вообще можно будет выключить.
>четыреста выходов завести на светодиоды

жесть какая, панель оператора нужна для графики.
Только хардкор! Впрочем настоящий хардкор — это вот на таком поле в змейку поиграть при пусконаладке:


(фотку у Каганова стащил)
Это не поле светодиодов. Это кассеты со сборками ТВЭЛов реактора РБМК.
Вот сюда надо змейку:
image
На самом деле это сделать гораздо проще, чем написать программу.
Единственная загвоздка тут в 400 диодов и кто будет их распаивать и привинчивать проводки к модулям ЦДП.

Но вы же понимаете, что без АРМа управлять змейкой все равно не получится. Так что чисто на контроллер перейти не удастся.
Хотя с другой стороны у контроллера есть 4 кнопки, которые в теории можно привязать к командам.

Или кстати можно 4 кнопки завести на модули ДЦП и с них подавать команды. Тогда остается проблема только с распайкой.
Да, я это и имел ввиду — кнопки завести на входы. Если, кстати, взять ПЛК типа GE Fanuc — там индикаторы выходов сгруппированы в блоки светодиодов (8x4, кажется) — тогда можно сами ДЦП модули в качестве индикаторов использовать.
Т.к. модули маленькие, то места для светодиодов не нашлось. Да и сами модули имеют всего лишь 16 дискретных выходов.
Так что без паяльника и отвертки тут не обойтись. Но это уже не столь интересно, т.к. все уже готово, нужно только припаять и прикрутить 808 проводков.
Здесь должна быть шутка про змейку для Чака Норриса, но масштаб АСУ ТП «КВИНТ 7» заворожил и лишил чувства юмора. Автор крут.
Какая тонкая ирония.
Соглашусь с вами, действительно получился перебор.
Но это только потому, что реально обидно, когда все знают «буржуйские» системы и превозносят их до небес, в то время как отечественные разработки порой превосходят иностранные аналоги, но о них знает лишь очень и очень узкий круг специалистов.
Действительно о них ничего не слышал. А чем они Сименс превосходят? Хотел сам посмотреть, пошел по ссылкам а там даже скриншотов нет. :-(
В двух словах не расскажешь.
Хотел кинуть ссылку на брошюру с сайта НИИТеплоприбора, но потом увидел какая она ужасная в плане оформления.
Но если интересно, более подробную информацию можно найти тут.
Очень приятно увидеть ответную статью, даже был в небольшом, но приятном шоке =)

Еслм вы правда за 30 минут раскидали такую схему — снимаю перед вами шляпу, свою я писал 5 дней. Порадовал алгоритм обработки хвоста, так на самом деле логичнее. Дико непривычно видеть русскую среду программирования и имена переменных.

А так — у вас FBD почему то уже больше напоминает CFC — язык непрерывных схем. Я все хочу до него добраться, но не получется.

Может, напишете статью об истории вашей АСУТП? Было бы интересно почитать!

UPD: Оказывается, вы правоприемники Ремконта! Приятный сюрприз — изучал их в университете, наши преподаватели в его навесном шкафу коньяк прятали =)
UPD: Оказывается, вы правоприемники Ремиконта! Приятный сюрприз — изучал их в университете, наши преподаватели в его навесном шкафу коньяк прятали =)
Небось коньяк «Квинт».

Если честно, то на придумывание схемы хвоста ушло конечно же больше времени (где то в обед мне прислали ссылку на ваш пост и взяли на «слабо», и в течение вечера пока было свободное время я прикидывал как это можно сделать попроще). Уж очень не хотелось ставить 400 триггеров. Но перебирая в уме различные варианты все равно упирался в то, что без кучи запоминающих элементов не обойтись (была перспективная идея хранить не целиком хвост змеи в памяти, а только координаты точек перегиба, но в пределе длина змеи может составлять 400 клеток и точек перегиба может быть столько же, а т.к. динамической памяти в программе нет, то этот вариант отпал).
Ну а когда решение было принято, то набросать программу было уже делом техники, ведь все блоки сделаны предельно примитивно, а поддержка макросов позволяет за пару минут сделать 400 ячеек памяти. Так что фактически я написал один элемент и свернул в макрос «Ячейка_памяти». Затем сделал макрос «Упаковка» в который поместил 20 макросов «Ячейка_памяти», а затем поставил в задачу 20 макросов «Упаковка» и все готово.
Это и не FBD. Там есть поддержка типов данных, в том числе структур. Так же данные делятся на потенциальные (мгновенное значение) и команды (буферизуемые значения). Так же имеется встроенная поддержка качества значений. Можно проводить обратные связи, они выделяются зеброй. При этом в качестве начальных значений берутся значения типа данных по умолчанию (прописывается в самом типе).
В общем там вагон всего, еще я планировал впилить туда контроль порядка выполнения в виде связей и поддержку условий. Тогда был бы полный Франкенштейн из FBD, SFC и обычных блок-схем.
Это в таком виде и есть CFC от сименса) радует продуманность
Даже то, что реализовано на данный момент, полностью покрывает все задачи в АСУ ТП. Ну а чего в стандартных схемах нет, можно добавить в виде своих плюшек макросами.
Хотя слова «поддержка условий» звучат заманчиво.

PS. Спорим, что я с трех попыток угадаю кто написал комментарий выше? А скорее всего даже с одной.
С одной :)
А почему на 2м скрине значения «нет» подозрительно голубые?
Все предельно просто.
Т.к. я сначала написал прогу, а потом уже писал текст и вырезал картинки, то картинку с генератором я вырезал из программы со связями. А когда писал текст, то по ходу рассказа он должен был идти отдельно. Мне было очень лень запускать пилон, ставить отдельно макрос и делать новую картинку, поэтому я просто в паинтбраше стер входящие на алгоблок связи и дописал значения по умолчанию веселым голубым цветом. Если присмотреться, то там даже его номер (восьмой) остался как в главной программе.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.