Элементы языка SFC (перевод главы 2.6 стандарта МЭК 61131-3)

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение Автоматизатор »

CHANt писал(а):Структура автомата очень похожа на то что изложено в нотации А.А. Шалыто
В свое время изучал все эти работы. Особенно "metod065" - как раз делал проекты на S7-200. Не понравилось то, что поскольку у Шалыты был транслятор графов в код, то граф получается очень формальный, чтобы машина поняла. Я же допускаю большие вольности при разработке графа.

В зависимости от особенностей программы у меня граф может видоизменятся.

Показательный пример:

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

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

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение CHANt »

Автоматизатор писал(а):Пробовал решить такую задачу с помощью графов - получилось очень громозко и путанно. А если использовать алгоритмы и методы классического программирования - то просто и изящно. Поэтому я реализовал алгоритм расчета отдельной функцией, которая осуществляет проверку входных параметров и возвращает ошибку или номер упора, который требуется выдвинуть. Алгоритм работы функции изобразил прямо на графе.
Это я видел. Позиция моя проста. При разработке алгоритма/автомата/графа, поступаешь так, как требует твое понимание декомпозиции задачи. Надо, ну значит будем расчеты делать в состояниях или на переходах, вкладывать графы, параллелить. Достоинство технологии Шалыто в том, что он дал эту технологию, а мы уже адаптировали, внесли что-то свое, так как это требовала текущая ситуация. А то что автор Switch старается предлагать в жесткой нотации, ну на то он и ученый и преподаватель, ему необходимо сначала изложить и научить. Вон оппонентов сколько и без нас, и все в безапелляционной форме излагают, мы какое к этому отношеение имеем? Нам надо создавать надежные и безопасные программы, документировать ит.д.. Я, в 2004, когда разрабатывал "условно свою" версию, списывался с автором "metod065. Константин Валерьевич также отстаивал именно свой вариант и, что подчеркивал, с обязательной разработкой конвертера. Ну, он к тому моменту уже собаку съел на этом, а мне интересно было в своей интерпретации и как понимал, тем более что, я не программист по образованию и нет у меня такого вала работы, чтобы превращать разработку программы из творческого процесса в конвейер :D Я удовольствие получаю)))

Ответить