(c) Михайло
Предлагаемый подход автоматного программирования я называю монограф. Может быть это и не новинка в области автоматного программирования, но метод не становится от этого хуже. Если у предлагаемой концепции есть какое-то уже научное название, то ради бога, будем применять укоренившееся название. Знаком со switch-концепцией, но, к сожалению, не было времени проанализировать особенности этого метода. Поэтому все идеи по изменению терминологии и совершенствованию подхода приветствуются.
Думаю, не надо объяснять значение таких терминов, как граф, вершина (состояние), переход, условия перехода, действие. По английски: graph, state, transition, transition condition, action.
Прежде чем приступить к объяснению сущности монографа, приведу концепцию канонической формы графа. Термин также авторский, поэтому предлагайте свои идеи.
Какой граф является каноническим? Это граф, у которого:
1. В условиях переходов записаны исключительно входные сигналы, коими у ПЛК являются входные сигналы I.
2. В вершинах выполняются действия исключительно по включению/отключению выходных сигналов, коими у ПЛК являются выходные сигналы Q.
3. Промежуточные маркеры M используются только для хранения номера текущего состояния графа.
Зачем нужна каноническая форма графа?
1. Подумайте, что это за граф управления, который в условии перехода опрашивает состояние какого-либо выхода Q, который сам же устанавливает или сбрасывает??? Разве граф не может в зависимости от того, включил или выключил тот или иной выход, перейти в такое состояние, в котором опрашивать этот выход не потребуется?
2. Если граф включает какой-либо промежуточный бит, например, из области M, т.е. не относящийся к выходу, то он делает "засечку" на память для себя самого. Но ведь эти "засечки" можно делать и с помощью перехода в некоторое состояние, нахождение в котором будет означать включение того "левого" промежуточного бита.
Надеюсь понятно объяснил... Итак, канонический граф запоминает ту или иную входную, выходную или промежуточную информацию исключительно с помощью собственных состояний. На самом деле, эта форма графа обычно наиболее легко читается, т.к. не приходится держать в голове, где и что запоминается и анализировать, к каким программным последствиям то или иное запоминание приведет.
ПРИМЕЧАНИЕ: На практике область М может оказаться как входной, так и выходной информацией по отношению к графу. Это справедливо в тех случаях, когда эта память используется для коммуникационного обмена данными с панелью оператора, преобразователем и другими девайсами. В этих случаях, эти биты нужно считать соответственно входными или выходными.
<Продолжение следует.>
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Монограф
Модератор: специалисты по PLC