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

Пользователь

Отправить сообщение

Еще немаловажно, что все это можно легко повторить и через год, и через два, если вдруг понадобиться модернизировать алгоритм. А еще, программу легко обсуждать с заказчиком/руководством, которые зачастую в программировании ничего не понимают, но в визуальном виде хотя бы воспринимают что там происходит. Это тоже очень важно, так как много раз сталкивался, что заказчик сам не знает чего хочет, откуда вытекают многочисленные доработки. Но даже "дорабатывать" программу в визуальном виде гораздо проще. Для этого есть даже специальная фича: перенумерация состояний (пункт 2 в меню трансляции). Т.е. вставили блок номер 11 между блоками 10 и 20, а затем:

Расширение номеров вершин
Расширение номеров вершин

И получили номера 10, 20, 30, все остальные также сдвинулись. И, забегая вперед, так же сдвинулись номера внутри блоков GOTO.

Использование блока GOTO для сокращения длины переходов
Использование блока GOTO для сокращения длины переходов

Это к вопросу о длиинных дугах, что идут через весь лист и пересекаются во многих местах.

Если Вы загляните внутрь папки Github, то обнаружите там еще одну папку, где лежат остальные файлы проекта. В том числе, файл, который и создает "светофор с анимацией". Установив соответствующее ПО (его название начинается на Pro..), Вы получите ту же анимацию. Мало того, сможете добавить кнопку и запустить расширенный до "мигания желтым" проект от gt-fox. Название ПО не пишу по очевидной причине, и Вас прошу этого не делать.

Остальные анимированные картинки - GIF, сделано при помощи LICEcap - полностью бесплатной программы. Скриншоты - LightShot, также бесплатно.

Разумеется! Вы можете изменять алгоритм произвольным образом, ведь это всего лишь учебный пример. Но, да, о желтом мигающем я и не вспомнил, спасибо.

О! Прошу прощения, не понял что это был ответ на пост hardtop , а не замечание к статье.

Да, V2S так же опирается на Switch-технологию, обратите внимание, что автор ее тоже А.Шалыто )).

Даже блок для обозначения автоматов у нас с Вами похожий (корни то одни).

Вот только задачи различаются - у Вас это управление ПЛК, а у меня - создание программ для встраиваемых микроконтроллеров. Поэтому и идут такие различия.

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

В практической деятельности поступаю ровно наоборот - создаю граф (автомат), а затем заполняю его кодом. Получается наглядно и позволяет держать весь проект перед глазами.

Первый лист системного автомата микроконтроллерной системы контроля "Топаз"
Первый лист системного автомата микроконтроллерной системы контроля "Топаз"
Первый лист системного автомата микроконтроллерной системы контроля "Топаз"

Начиная с третьего абзаца Вашего поста текст можно скопировать и вставить в аннотацию статьи. Ибо полностью разделяю! Увы мне, старался, но не сумел раскрыть.

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

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

В статье рассмотрен так называемый SW_Fast_Automat, которых на листе с десяток может быть. А в базовом варианте на лист устанавливается блок SW_Auto и весь лист становится одним большим автоматом. Мало одного листа? Этот же блок ставится на следующие листы и сложность автомата возрастает дальше. Вот где ад! Но куда деваться? Программа с тем же функционалом вообще не воспринимается посторонними, а в графическом варианте ее можно обсуждать хоть с руководством, хоть с заказчиком.

Спасибо, загляну. Хотя ПЛК это не совсем то, для чего предназначена V2S. В ней упор сделан скорее на написание программ взаимодействия с оператором (всякие меню), поддержка протоколов передачи данных и прочее, где наиболее сильны именно конечные автоматы.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Embedded Software Engineer
Senior
От 5 000 ₴