Обсуждение применения Switch-технологии. Инструменты.
т.к. никто не хочет много читать, оставил только самое необходимое...
По Switch-технологии, 2 книжки и статья:
1) Шалыто А.А. Алгоритмизация и программирование задач логического управления СПбГУ ИТМО. 1998. 55 с
Книга не большая, можно и почитать
2) SWITCH-технология - автоматный подход к созданию программного обеспечения. 27 с
Все четко, ничего лишнего.
3) Вавилов К.В. Программирование за... 1 (одну) минуту. 9 с
Небольшая статья о применении
+ 2 части статьи Татарчевского В.А. по 3 листа. Часть 4 Часть 5
для общего развития:
Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию
Применение для FBD!
Книга
Реальный пример Применение для C++!
Конвертор Visio2Switch Головешин А.
Применение для C++,C#,ASSEMBLER!
MetaAuto - Преобразование графов переходов, представленных в формате MS Visio, в исходные коды программ для различных языков программирования. Канжелев С.Ю., Шалыто А.А.
Применение для ST!
Visio2ST - Предлагаю вариант реализации программы MetaAuto С.Ю. Канжелева, сконфигурированную для языка ST, для практического применения при программировании ПЛК на CoDeSys или другой среде.
В MetaAuto, для переделки выходного языка не нужно лезть в исходники – достаточно исправить конфиги. Что и было сделано.
Visio2ST
СУТЬ программы вкратце:
1. Создаем в Visio граф переходов автоматов
2. Используем программу MetaAuto для языка ST
3. Получаем текст программы
Приемущества:
1. Текст программы в точности соответствует графу переходов и вашим мыслям - они изоморфны.
2. Автоматическая генерация кода. Не тратится время на набор текста и уменьшаются ошибки.
3. Предлагаются простые и адекватные методы создания проектной документации, которая будет однозначно и полностью понятна всем: Заказчику, Технологу (Проектанту), Разработчику, Программисту, Оператору (Пользователю) и Контролеру.
SWITCH-технология применительно к ПЛК:
Основное, что хотелось бы сказать по поводу моего понимания SWITCH-технологии, применительно к программированию ПЛК это:
1. Один автомат – один CASE.
2. Нет понятий вложенность, вызываемость, событие. Все автоматы выполняются в каждом цикле ПЛК. Любое "событие" – это изменение переменной, ее и отражаем на графе. Взаимодействие автоматов – по номеру состояния.
3. Использовать реальные имена переменных, а не абстрактные x5, е20, z35. Улучшается читаемость и понимаемость текста. Описание переменных не на графе, а в экселе, которые целиком копируются в кодесис и являются частью кода.
Структура кода автомата на ST:
Каждое состояние автомата состоит из разделов:
1. (*Действия при первоначальном входе в это состояние*) (необязательный)
2. (*Действия, постоянно выполняющиеся в этом состоянии*) (необязательный)
3. (*Запускаем таймер этого состояния*) (необязательный)
4. (*Запоминаем текущее состояние перед выполнением перехода*) (необязательный, если нет предыдущих)
5. (*Проверка условий на дугах и выполнение переходов*) (обязательный)
Visio2ST - качаем тут:
_METAAUTO_VISIO2_ST_CPP_password=1.zip (42.06 Мб)
Пожелание: вопросы задавать после прочтения metaAuto.pdf и также материалов 1-3 в начале сообщения.
Также обсуждение Switch-технологии было здесь
Собратья по теории:
1) Стандартный SFC еще
2) CoDeSys Professional Edition + UML
3) Визуальный язык ДРАКОН Среда Видеоурок Форум
4) Язык Рефлекс http://reflex-language.narod.ru
5) MATLAB PLC Coder + Stateflow