https://forum.drakon.su/viewtopic.php?f=211&t=6860#p104864А_МУР писал(а):
Попробуйте сделать схему на 200 икон и потом ее разобрать?
Увы, не попробую (особенно на 200 икон). В своей деятельности с ПЛК/встроенкой не повязан, о предметке поверхностные представления.
Для оперативной деятельности (программирование) Дракон не использую, лишь для моделей "верхнего уровня", постановок задач. И то, если не нужна "презентация", то в ходу псевдокод (или иногда реальный специализированный скриптинг) и Р-схемы, заменить их Дракон-ом всё никак не получается.
Однако позволю себе предположить, что в случае 200 и более икон необходима некая иная методика, изначально "разобранная", что ли...
А_МУР писал(а):
LCOM обратите внимание причем МАТЛАБ и Дракон
Это последняя запись по теме ИС Дракон!
Это явно не я писал!!!
Цитата:
Конечные автоматы - будущее ПЛК программирования. Обратите внимание на Matlab Simulink Stateflow. Он также умеет генерировать ST код.
В самом деле, в подобной предметке "высокоуровневые" автоматы в каком-либо виде, вроде бы, к месту.
Чтобы не плодить или уменьшить вспомогательные флаги и прочие данные для хранения предыстории "сложного" процесса и постоянно их анализировать/устанавливать при каждом такте исполнения, можно "фиксировать состояние", и в последующем уже не анализировать всё и вся каждый раз сначала. Смежные процессы должны исполняться тогда, когда нужно, и требовать минимум явной "технической обвязки" для себя (вспомогательных "управляющих" переменных и оперирование ими).
На Дракон-е с автоматами не всё так гладко, однако.
У
Степана Митькина и
Сергея Ефанова "состояния" -- ветка силуэта, с "ожиданием" в виде "выбора" или "ожидающего цикла с выходом во внешнюю среду" в начале ветки (в последнем случае истинная семантика не очевидна, о чём отмечено по последней ссылке). Так предопределяется соответствующая гранулярность алгоконструкций -- если внутри "состояния" возникает необходимость разделить операции по веткам (снять возникающее пересечение линий, выстроить "деревья решений" в данной алгоситуации), то необходимо выделять функционал в отдельную схему/схемы и внедрять/вставлять внутри ветки-"состояния".
Возникают вопросы по поводу непосредственно вычислительной модели. У Зюбина кроме "состояний" есть и "логический параллелизм" процессов через их "ручной" запуск/останов -- если под "процессами" эмулировать применение ФБ, то моделирование тогда оторвано от "традиционного" использования ФБ или предполагается иной стиль работы. Однако не стоит сразу же отбрасывать "чужеродное" -- не так уж просто по-другому вырулить на Дракон-е...
У Ефанова, к примеру, задействована модель на базе
switch-технологии от Шалыто, где есть "задержка результатов" на один такт исполнения системы согласно политики диспетчеризации процессов -- не от хорошей жизни. К тому же в этом случае возникают обвязки в виде отдельных переменных-"сообщений" (требующих специализированной инфраструктуры, т.е. набора операций или "фреймворка" для своей поддержки) -- в дополнение к имеющимся "свойствам" ФБ (их входам/выходам, если внедрять такую модель поверх ФБ).
А_МУР писал(а):
Кстати давно на форуме не было нашего глубоко уважаемого коллеги Ситникова Владимира, а вот на форуме Овен он активен сейчас!
Помнится, он критиковал модели автоматов выше, небезосновательно. Предлагал использовать "паузу" как границу "такта" (или "автоматного состояния") в алгоритме, если не ошибаюсь, под впечатлением методики реализации корутин в Kotlin.
Но в целом методология так и не была обозначена в какой-то более-менее целостной форме.
А_МУР писал(а):
1702-2020-00745. Предоставление (передача) на условиях неисключительной лицензии прав на использование программ для электронно-вычислительных машин и поставка (передача в собственность) сертификата на техническую поддержку ПО ANSYS на период до 31.12.2022 г.
Вот у ANSYS, в тамошней SCADE, автоматы очень-таки толково выглядят.
А_МУР писал(а):
Опять же я повторю самое главное отличие Дракона и Других языков:
Дракон - это поток управления,
Другие языки -поток данных.
Таким образом нужно использовать сильную сторону Дракона - объективность управления
Можно воспользоваться некоторыми фундаментальными принципами от упомянутой "многолимонной" SCADE и внедрить их, но уже в "наколенную" императивщину "для бедных". Ключевое:
- автомат как гиперфункция (на манер терминологии от Зюбина выше) -- функции/процессы могут изменять своё поведение во время работы в качестве реакции на один и тот же вход -- полиморфный гиперпроцесс с "переключением" или выбором функций во время исполнения;
- иерархическая и параллельная композиция автоматов с "вытеснением" -- прекращением работы автоматов или переводом их в иное состояние;
- так называемый "модульный reset" -- операция вида "сброс состояния" или "начинать сначала", "в исходное" или т.п., распространяемые косвенно в разрезе нужной композиции процессов.
Нужна оценка, насколько может быть усложнён язык моделирования и оправданно ли...
Далее в общих чертах накидаю некую методику. Во всяком случае -- как почва для анализа особенностей Дракон-а, хотя бы...