Я не знаю, прочитали ли вы все материалы с этого сайта, (я прочитал почти все, касающиеся этой методики), и могу сказать что в них есть ответы практически на все вопросы о "целесообразности применения данного подхода", "реализуемости", "приемуществах и недостатках".
Цитата:
Этот способ программирования, как и любой способ, связанный с автоматами, позволяет программировать функции только с малым количеством входных данных.
|
Как раз наоборот, с увеличением сложности проекта, эффективность данного метода возрастает
Примеры
А.А. Шалыто, Н.И. Туккель Проектирование программного обеспечения системы управления дизель-генераторами на основе автоматного подхода
Цитата: "
Работа иллюстрирует применение технологии автоматного программирования на примере проектирования программного обеспечения системы управления двумя дизель-генераторами.
Рассмотренный пример демонстрирует то, что разработанные программы позволяет реализовать весьма сложные алгоритмы управления. Их непросто понять, даже используя предложенную технологию, включающую различные схемы, диаграммы и протоколы. Авторам остается только догадываться, насколько возросла бы сложность программирования данной задачи и последующего понимания построенных программ при применении традиционного подхода, в котором для реализации логики используются флаги."
Вавилов К.В. LabVIEW и SWITCH-технология. Методика алгоритмизации и программирования задач логического управления
На последней странице даны количественные характиристики оъекта
Вавилов К.В., Шалыто А.А. Что плохого в неавтоматном подходе к программированию контроллеров?
Я вообще плохо себе представляю как можно программировать задачи логического управления без автоматного подхода...
Цитата:
Контроллеры пока не дожили до этого. Автомат на 20 входных событий выглядит просто чудовищно для сегодняшних ПЛК.
|
Входные события, (логические условия, разрешающие переход по дуге), реализуются стандартной логикой И, ИЛИ, НЕ и автоматы здесь не причем, структура автомата остается не изменной
Шалыто А.А. Реализация алгоритмов логического управления программами на языке функциональных блоков
а если использовать возможности создания макросов в SMLogix то все автоматы будут выглядуть просто замечательно
См. картинку: Структура всех автоматов одинакова. Число мультиплексоров = числу состояний.
Другой вопрос - возможная нехватка памяти. Этот вопрос может решится программированием на СИ (при помощи конструкции оператора switch и многозначным кодированием состояний), причем Visio2Switch сгенерирует код всей логики автоматически, по нарисованному в Visio графу переходов.
Еще один момент - не все любят и умеют программировать PLC на СИ, (в основном из за проблем с реализацией системозависимых операций. Логика программируется элементарно
), поэтому и был придуман язык ST (Pascal-е подобный), который избавляет от системозависимого программирования, и одновременно предоставляет все возможности языка высокого уровня (операторы Case, If, For), он присутствует в CoDeSys, и было бы хоро ввести его в SMLogix, что представляется мне маловероятным