Сети Петри, графы операций и графы переходов

advertisement
Глава 11
Сети Петри, графы операций и графы переходов
11.1. Сети Петри и графы операций. Основные определения
С е т ь ю П е т р и (СП) называется двудольный ориентированный граф
N = < Р, Т, * >, где Р = {pi}, Т= {ti} — конечные непустые множества
вершин, называемые соответственно позициями (места) и переходами;
* — отношение между вершинами, соответствующее дугам графа.
Позиции изображаются кружками, а переходы — черточками (полоч­
ки). Дуги соединяют кружки с черточками и черточки с кружками, но не
однотипные вершины между собой.
М а р к и р о в к о й с е т и П е т р и называется функция Ф, которая
каждой позиции ставит в соответствие целое неотрицательное число.
Маркировка характеризуется вектором Ф = < Ф (p1),..., Ф (рп) >, где и —
число позиций сети Петри. В графическом изображении маркировке Ф
соответствует размещение меток (точки, маркеры, фишки) в позициях
сети. При этом число меток в позиции pi равно Ф (pi).
Различные маркировки сети Петри характеризуют с о с т о я н и я со­
ответствующей ей динамической системы, причем динамика изменений
состояний моделируется движением меток по позициям. Маркировка сети
может изменяться при срабатывании ее переходов.
Если каждая из входных позиций перехода tj содержит по меньшей
мере одну метку, то переход tj- может сработать (возбужден). При сраба­
тывании перехода из каждой его позиции удаляется одна метка, а в
каждую выходную позицию добавляется одна метка.
Обычно в сетях Петри считается, что если при одной и той же
маркировке возбуждено несколько переходов, то может сработать любой,
но только один из них. Это ограничение не является принципиальным и
может быть снято.
При применении сетей Петри для целей управления позициям сопос­
тавляются операции (действия), а переходам — условия, при выполнении
которых возбужденные переходы срабатывают, активизируя соответству­
ющие операции [31]. При этом попадание меток в позицию ассоциируется
с началом операции, а удаление метки — с ее окончанием. При исполь­
зовании такого предположения считают, что любая операция не может
быть повторно начата до ее завершения. Для описания таких процессов
могут применяться только б е з о п а с н ы е сети Петри, т. е. такие сети, в
288
которых при любой маркировке в каждой позиции не может быть более
одной метки.
Так как при любом течении дискретного процесса должна быть
возможность его возобновления, а любая из множества заданных операций
должна быть выполнена, то сеть Петри в таких случаях должна быть
ж и в о й , т. е. она не должна порождать такие маркировки, для которых
другие маркировки недостижимы.
Безопасные и живые сети Петри называются п р а в и л ь н ы м и . Поэ­
тому в качестве модели дискретных процессов в [31] было предложено
использовать правильные сети Петри. При этом отметим, что проверка
сети Петри на правильность является весьма трудоемкой [146].
Основное достоинство сетей Петри состоит в возможности отображе­
ния в виде одной компоненты взаимодействия нескольких параллельнопоследовательных процессов, а их недостаток заключается в том, что они
не описывают в явном виде поведение — динамику смены состояний.
Сети Петри в некотором смысле аналогичны мостиковым контактным
схемам, для которых описание их структуры отличается от описания их
поведения.
Сложность анализа поведения сетей Петри состоит в том, что прихо­
дится одновременно следить за положением нескольких точек и запоми­
нать эти ситуации. Поведение сети Петри в явном виде описывается
с помощью графа достижимых маркировок, который в некотором
смысле аналогичен эквивалентной параллельно-последовательной схе­
ме (П-схема), построенной по заданной мостиковой схеме. Основное
достоинство П-схем, определившее их широкое применение, состоит в
том, что для каждой из них структура и поведение могут быть описаны
одной и той же булевой формулой, что позволяет выполнить ее формаль­
ные преобразования с целью упрощения структуры без изменения пове­
дения.
На рис. 11.1 приведена правильная сеть Петри, а на рис. 11.2 — ГДМ,
соответствующий этой сети.
19
А. А. Шалыто
При этом отметим, что ГДМ аналогичны предложенным для анализа
асинхронных схем диаграммам переходов (диаграммы Маллера), которые,
правда, дополнительно содержат информацию о том, какие компоненты
векторов, записанные в каждой вершине, возбуждены в ней.
Несмотря на то что число вершин в ГДМ в общем случае не меньше,
чем в соответствующей сети Петри, читать ГДМ существенно проще, так
как, во-первых, в нем в каждой вершине в явном виде указаны значения
всех компонент вектора, определяющие с о с т о я н и е системы, а во-вто­
рых, он в явном виде описывает динамику изменений состояний.
Правильная сеть Петри называется а в т о м а т н о й (АСП), если все
ее переходы имеют не более одной входящей и не более одной выходящей
дуги, а в ее начальной маркировке имеется не более одной метки. На
рис. 11.3 приведена автоматная сеть Петри, а на рис. 11.4 — соответст­
вующий ГДМ.
Из рассмотрения этих графов следует, что они в некотором смысле
изоморфны, и поэтому можно утверждать, что автоматные сети Петри не
только задают структуру процесса, но и описывают его динамику. В этом
смысле такие сети аналогичны П-схемам.
Если переходы в сети Петри пометить условиями от входных пере­
менных, то такая сеть называется сетью Петри с входами. В такой сети
переход срабатывает, если он возбужден и выполняется условие, помеча­
ющее этот переход. В таких сетях при изменении значений входных
290
переменных возникает переходный процесс, ко­
торый завершается установлением равновесия,
прежде чем произойдет следующее изменение
на входе.
При использовании сетей Петри для целей
управления в них должны быть помечены не только переходы, но и
позиции. Сети Петри с помеченными переходами и позициями, помечен­
ными значениями выходных переменных, называются сетями Петри с
входами и выходами (СПВБ), или графами операций (ГО) [31]. Эти графы
могут быть изоморфно реализованы с помощью диаграмм «Графсет» [59].
Для графов операций характерно, что позиции обычно помечаются не
всеми значениями переменных, а лишь теми из них, которые изменяются
в этой позиции. Это, с одной стороны, делает описания алгоритмов весьма
компактными, а с другой — весьма сложными для понимания в случаях,
когда значения выходных переменных связаны между собой семанти­
чески.
При этом отметим, что для произвольного графа операций, выполня­
ющего в позициях в том числе и вычисления, всегда может быть построена
эквивалентная ингибиторная сеть Петри [146], содержащая кроме «пря­
мых» входов в переходы также и «инверсные» входы, и наоборот.
Несмотря на то что эти модели равномощны между собой и равномощны
с машинами Тьюринга [146], применение графов операций для рассмат­
риваемых целей предпочтительнее, так как позволяет строить компактные
и наглядные модели процессов.
Выделим в классе графов операций такой важный подкласс, как
автоматные графы операций, которые являются помеченными автоматны­
ми сетями Петри. Такие графы операций эквивалентны подклассу графов
переходов, а именно ГП автоматов Мура с двоичным кодированием
состояний. Однако так как ГП содержат вершины только одного типа и
петли, позволяющие отличать устойчивые вершины от неустойчивых, а
кроме того, обычно не содержат умолчаний значений выходных перемен­
ных, то рекомендуется в большинстве случаев вместо автоматных графов
операций применять графы переходов. Возможность использования для
описания алгоритмов разных типов ГП с различными видами кодирования
делает их применение по сравнению с автоматными графами операций
еще более предпочтительным.
19*
291
Преимущество изобразительных возможностей неавтоматных графов
операций по сравнению с графами переходов проявляется только при
необходимости отобразить в одном графе синхронизацию параллельных
процессов: если процессы запускаются переходом с одним входом и n
выходами, то они должны завершаться переходом с n входами и одним
выходом. Это имеет место, например, в версии языка «Графсет», исполь­
зуемой фирмой «Омрон» [236].
Необходимо отметить, что для каждого графа операций может быть
построена система взаимосвязанных ГП, реализующая то же поведение
(СВГП, так же как и графы операций, равномощны с машинами Тьюринга
[163]). Более того, по графу операций всегда может быть построен один
граф переходов, который (за счет увеличения числа вершин и дуг и
параллелизма по входам и выходам) позволяет реализовать параллельные
процессы. Число вершин в этом ГП равно числу состояний в ГО.
Для этого по графу операций строится граф, в котором в вершинах
указываются номера позиций, активизируемых при срабатывании перехо­
дов. Эти вершины помечаются соответствующими значениями выходных
переменных, формируемых в этих позициях, и связываются дугами,
определяемыми переходами графа операций. Получаемый граф является
ГП автомата Мура, описывающим то же поведение динамической систе­
мы, что и граф операций. Эта процедура в терминах [31] выглядит
следующим образом: по быстрой сети Петри, являющейся основой ГП,
292
построить медленную сеть Петри и сопоставить ее маркировкам вершины
графа переходов, а ее переходам — дуги этого графа.
На рис. 11.5 приведен граф операций, а на рис. 11.6 — ГП автомата
с памятью, построенный по этому графу операций в предположении о
возможности срабатывания в нем более одного перехода.
Необходимо отметить, что строить ГП по графу операций целесооб­
разно лишь в том случае, когда значения выходных переменных семанти­
чески зависимы. При отсутствии зависимости между выходными перемен­
ными в параллельных процессах строить ГП нет необходимости.
Непосредственно по графу операций (рис. 11.5), рассматривая каждую
переменную р и z как R-триггер, можно записать систему булевых
формул, реализующую этот граф:
В начальной позиции р1 = 1; р2 = р3 = р4 = р5 = р6 = р7 = 0.
Использование переобозначений переменных снимает проблему [31]
пропуска позиций, для которых пометки входных и выходных переходов
не ортогональны.
11.2. Новые методы реализации графов операций
Рассмотренный в предыдущем разделе метод строит систему булевых
формул непосредственно по графу операций. При этом каждая позиция
и выходная переменная графа операций моделируются R-триггером. Это
приводит к ограничению на класс реализуемых графов операций, т. е. не
могут быть реализованы такие графы с контурами, которые содержат
менее трех позиций, так как в противном случае условия установки и
сброса триггеров аннулируются. Это ограничение может быть снято при
использовании других методов построения программных моделей.
Реализуем граф операций на рис. 11.5 программой, применяя операторы
условного и безусловного переходов, а также операторы присваивания:
293
В этой программе используются переобозначения переменных, кото­
рые в данном случае не требуются ввиду ортогональности пометок
переходов до и после каждой позиции, но решают проблему пропуска
позиций в случае, если указанные пометки не ортогональны.
Другой метод реализации графа операций состоит в построении
системы булевых формул на основе записи условий установки единичных
значений позиций и сохранения этих значений по аналогии с тем, как это
делается для графов переходов при двоичном кодировании состояний (при
этом предполагается, что позиции графа операций (рис. 11.5) как бы
содержат петли):
В начальной позиции р1 = 1; р2 = р3 = р4 = р5 = р6 = р7 = 0.
Эта система формул при необходимости может быть минимизиро­
вана.
11.3. Области использования моделей
описания параллельных процессов
В рамках предлагаемой технологии граф переходов в большинстве
случаев строится таким образом, что число вершин в нем определяется
числомприменяемыхвалгоритмекомбинаций всех выходныхпеременных т. При этом некоторые из этих комбинаций могут использоваться
многократно. Граф переходов задает последовательное по состояниям и
параллельное по выходам поведение системы.
Если число вершин s в графе переходов существенно меньше, чем два
в степени m, а число дуг существенно меньше, чем их количество в полном
294
графе, то процесс алгоритмизации с помощью одного графа переходов
эффективен.
Если имеют место «чистый» параллелизм (общие переменные отсут­
ствуют) и семантическая независимость процессов, то целесообразно
применять систему ГП (СГП), так как единый граф переходов в этом
случае весьма громоздок.
Если параллельные процессы не имеют синхронизации между собой,
то такой алгоритм наиболее целесообразно описать системой взаимосвя­
занных ГП.
Если параллельные процессы должны быть синхронизированы между
собой, в том числе и после выполнения отдельных этапов, то вместо графа
операций целесообразно использовать граф переходов, так как зависи­
мость процессов не позволяет сильно увеличиться числу состояний
автомата.
Если параллельные процессы, синхронизируемые только в их конце
и начале, зависимы между собой семантически и если в качестве описания
алгоритма использовать граф операций или СВГП, то для их анализа
целесообразно строить весьма громоздкий граф переходов. Вопрос о том,
по какой из этих моделей проводить программирование, зависит от
требований, предъявляемых к программе.
Если независимые семантически параллельные процессы должны быть
синхронизированы между собой лишь в их начале и конце, то в этом
случае целесообразно применять граф операций или СВГП.
Если имеется несколько групп независимых процессов, каждая из
которых описывается графом операций, то говорят, что используется
система графов операций (СГО).
Для отображения иерархии процессов могут применяться системы
взаимосвязанных ГП (вызываемые (гл. 8) и вложенные (разд. 12.4) графы
переходов) и системы взаимосвязанных ГО (СВГО), построенных на базе
сложных сетей Петри, в которых используются вершины-дублеры, заме­
няющие процессы, описываемые другими графами операций.
При этом отметим, что (в отличие от [31]) для СВГО нет необходи­
мости обязательно выполнять замену дублеров соответствующими процес­
сами с целью получения одного графа операций, а можно реализовать эту
систему непосредственно, как это делается для СВГП.
Для реализации сложных алгоритмов логического управления бывает
целесообразным совместное использование ГП, СГП, СВГП, ГО, СГО и
СВГО.
11.4. Примеры реализации алгоритмов логического управления
с параллелизмом
11.4.1. Алгоритмы с параллельными процессами
и синхронизацией этапов
Рассмотрим в качестве примера алгоритм, задаваемый графом опера­
ций, в котором кроме синхронизации окончания параллельных процессов
требуется также и синхронизация этапов (рис. 11.7).
295
Этот алгоритм может быть реализован также двумя системами взаи­
мосвязанных графов переходов — иерархической и децентрализованной.
Децентрализованная (распределенная) реализация алгоритма с помощью
СВГП, состоящей из двух компонент, приведена на рис. 11.8.
Эта система может быть корректно реализована при использовании,
например, конструкций s w i t c h лишь при введении дополнительной
переменной Y11, значения которой вместо переменной Y1 устанавливаются
в конструкции switch (Y 1 ), и применении переобозначения перемен­
ных Y 1 — Y 11 , располагаемого после конструкции s w i t c h ( Y 1 ) .
Каждая из приведенных реализаций обладает тем недостатком, что
при их анализе (чтении) приходится следить одновременно за движением
нескольких точек, перемещающихся в одной или нескольких компонен­
тах.
Если по исходному графу операций построить граф достижимых
маркировок и дополнить его значениями всех входных переменных в
каждой маркировке, то формируется ГП автомата Мура (рис. 11.9).
Реализация параллельных процессов этим автоматом, последователь­
ным по состояниям, обеспечивается за счет его параллелизма по выходам.
296
Число состояний этого автомата меньше не только суммарного числа
состояний в СВГП, но и числа позиций в графе операций. Получившийся
ГП весьма прост, так как в рассматриваемом алгоритме процессы взаи­
мосвязаны с помощью синхронизации некоторых этапов.
11.4.2. Событийные алгоритмы управления двумя клапанами
Рассмотрим на примере алгоритма управления двумя клапанами без
памяти (клапаны Кл1 и Кл2) вопрос о выборе вида графовой модели для
его описания.
Алгоритм 1. При импульсном нажатии кнопки (x1 = 1) начинают
открываться оба клапана (z1 = z2 = 1). После того как они откроются
(x2 & х3 = 1; x2 = 1 — открылся первый клапан; х3 = 1 — открылся
второй клапан), управляющие сигналы снимаются (z1 = z2 = 0).
Этот алгоритм, описывающий параллельные процессы, может быть
реализован одним ГП (рис. 11.10), одним автоматным (рис. 11.11) и
одним неавтоматным графом операций (рис. 11.12). При этом отметим,
что в первых двух графах в каждой вершине задаются значения всех
выходных переменных, а в третьем графе значения всех переменных
задаются лишь в одной вершине. Реализация алгоритма с помощью ГП в
этом случае наиболее целесообразна.
Алгоритм 2. При x1 = 1 начинают открываться оба клапана
(z1 = z2= 1). После открытия любого из них (x2 - 1 или x3 - 1) соответ­
ствующий управляющий сигнал должен быть сброшен (z1 = 0 или z2 = 0).
Этот алгоритм не может быть корректно реализован одним графом
операций (рис. 11.13), так как в нем могут формироваться противополож­
ные значения одной и той же выход­
ной переменной. Например, если в
этом графе активными являются вер­
шины р1 и р2, то после х2 = 1 при
x1 = х3 = 0 активными станут верши­
ны р0 и р2, в первой из которых —
!z2, а во второй — z2 .Также некоррек­
тен и граф операций на рис. 11.14.
297
298
Графы операций на рис. 11.13 и 11.14 иллюстрируют тот факт, что в
неавтоматном графе операций параллельные процессы должны быть
синхронизированы, чего не требуется в данном алгоритме.
Заданный алгоритм корректно реализуется СВГП (рис. 11.15).
Алгоритм 3. При x1 = 1 начинают открываться оба клапана
(z1 = z2 = 1). После открытия любого из них (x2 - 1 или x3 = 1) соответ­
ствующий управляющий сигнал должен быть сброшен (z1 = 0 или z2 = 0).
После открытия обоих клапанов (х2 & х3 = 1 — условия синхронизации
окончания параллельных процессов) осуществляется возврат в исходную
позицию.
Этот алгоритм может быть реализован одним неавтоматным графом
операций (рис. 11.16), децентрализованной СВГП из двух компонент
(рис. 11.17) или иерархической СВГП из трех компонент (рис. 11.18).
Для этого алгоритма может быть также построена СВГО (рис. 11.19).
. Система взаимосвязанных ГО может быть изоморфно реализована на
языке «Графсет».
Алгоритм 4. При x1 = 1 начинает открываться (z1 = 1) первый клапан,
а когда он откроется (х 2 = 1), управляющий сигнал снимается (z1 = 0).
При x1 = 0, х4 = 1 начинает открываться (z2 = 1) второй клапан, а когда
он откроется (x3 = 1), его управляющий сигнал снимается (z 2 = 0).
Этот алгоритм реализуется СВГП, состоящей из двух компонент
(рис. 11.20). В заданном алгоритме и его реализации процессы управления
клапанами описаны независимо. Если они и на самом деле семантически
независимы, то выполнять анализ их совместной работы нет необходи­
мости. Однако если семантическая зависимость имеется или отсутствует
уверенность в их независимости, то требуется выполнить анализ поведе­
ния СВГП, состоящий в построении по системе булевых формул, опи­
сывающей СВГП, одного графа переходов, задающего в явном виде
поведение системы в целом (рис. 11.21).
Отметим, что связность СВГП по входам исключает лишь один
переход из полного графа. Таким образом, система графов переходов
реализует заданный алгоритм с учетом умолчаний о совместном поведе-
299
300
нии клапанов. Без умолчаний словесное описание в этом случае стано­
вится чрезвычайно громоздким.
Алгоритм 5. В процессе управления каждым из клапанов по алгорит­
му 4 отсутствует возможность управлять другим клапаном.
Этот алгоритм может быть реализован одним ГП (рис. 11.22) или
одним автоматным ГО (рис. 11.23). В автоматных графах операций
процессы могут не синхронизироваться. Применение ГП в этом случае
более целесообразно, так как его вершины задают состояния автомата в
целом.
301
11.4.3. Временные алгоритмы управления двумя клапанами
Покажем на примере управления двумя клапанами без памяти (клапа­
ны Кл1 и Кл2), время срабатывания которых d1k и d2k неизвестно, но не
превышает трех секунд, как «незначительное» изменение алгоритма
влияет на выбор модели для его описания.
Алгоритм 6. Предположим, что первоначально требуется реализовать
следующий алгоритм. При x1 = 1 подаются сигналы на открытие первого
клапана Кл1 (z1 = 1) и первого элемента задержки ФЭ31 (t1 = 1), время
срабатывания которого равно d1 = 3 с. По истечении этого времени
(T1 = 1) и факту открытия этого клапана (х 2 = 1) с последнего снимается
управляющий сигнал (z1 = 0) и запускается второй элемент задержки
ФЭ32 (t2 = 1), время срабатывания которого равно d2 = 2 с. После сра­
батывания последнего (Т2 = 1) подается сигнал на открытие второго
клапана Кл2 (z2 = 1), после открытия которого (х3 = 1) осуществляется
сброс всех еще не сброшенных к моменту наступления этого события
сигналов.
Этот алгоритм имеет причинно-следственный характер и поэтому
может быть реализован одним автоматом (рис. 11.24), последовательным
по состояниям и параллельным по выходам. При этом единичные значе­
ния переменных z1 и t1, должны существовать параллельно некоторое
априори неизвестное время.
Алгоритм 7. Изменим заданный алгоритм, исключив зависимость
срабатывания второго элемента задержки от факта срабатывания первого
элемента. При х1 = 1 подаются сигналы на срабатывание клапана Кл1
(z1 = 1) и первого элемента задержки ФЭ31 (f, = 1). После срабатывания
этого элемента задержки (T1 - 1) снимается управляющий сигнал с
первого клапана (z1 = 0). После открытия первого клапана (х 2 = 1) запус­
кается второй элемент задержки ФЭ32 (t2 = 1), а после его срабатывания
(Т2 = 1) начинает открываться клапан Кл2 (z 2 = 1). После открытия
второго клапана (x3 = 1) осуществляется сброс всех еще не сброшенных
сигналов.
В этом алгоритме процесс управления вторым клапаном не зависит от
факта срабатывания первого элемента задержки ФЭ31 (переменной Т1) и
поэтому реализация одним автоматом становится неестественной и весьма
сложной. Поэтому используем для описания алгоритма систему взаимо-
связанных ГП из двух параллельно
функционирующих автоматов, в пер­
вом из которых протекают параллель­
ные процессы — открытие клапана
Кл1 и запуск первого элемента задер­
жки ФЭ31 (рис. 11.25). Поведение
первого автомата зависит от значения
переменной d = d1k + d2k = d2. Если
d < 3, то с возбужденного элемента
ФЭ31 до его срабатывания (при
х3 = 1) будет снят управляющий-сиг­
нал (t1 = 0). Если d >= 3, то возбужден­
ный элемент ФЭ31 сработает (при
х3 = 0).
Приведенный алгоритм может быть назван неполумодулярным,
или неустойчивым. Это определение базируется на следующих определе­
ниях.
Сеть относится к классу полумодулярных, если в ней каждый возбуж­
денный элемент обязательно срабатывает. Это обеспечивает независи­
мость поведения сети от величин задержек элементов [13].
Сеть Петри называется устойчивой относительно некоторой марки­
ровки, если в ней выполнение входных условий для некоторого перехода
обязательно приводит к его срабатыванию [13].
Неустойчивая сеть Петри является также и неживой и поэтому не
может быть применена для построения графа операций. Таким образом,
показано, что заданный алгоритм реализуется СВГП, но не описывается
одним графом операций.
Алгоритм 8. Изменим реализуемый алгоритм с параллельными про­
цессами таким образом, чтобы он стал устойчивым, т. е. реализовался
одним графом операций.
При х1 = 1 подаются сигналы на срабатывание клапана Кл1 (z1 = 1) и
первого элемента задержки ФЭ31 (t1 = 1). После срабатывания этого
элемента задержки (T1 = 1) снимается управляющий сигнал с первого
клапана (z1 = 0). После открытия первого клапана (х2 - 1) запускается
второй элемент задержки ФЭ32 (t2 = 1), а после его срабатывания (T2 = 1)
начинает открываться клапан Кл2 (z 2 = 1)- После закрытия клапана Кл2
(х3 - 1) осуществляется возврат в исходную позицию.
Этот алгоритм, так же как и предыдущий, нецелесообразно реализовывать одним автоматом (одним ГП), в то время как он эффективно
описывается с помощью одного графа операций (рис. 11.26). Реализация
этого графа на языке «Графсет», описываемом в гл. 12, приведена на
рис. 11.27. Отметим, что в этом алгоритме синхронизация процессов не
позволяет в отличие от предыдущего случая ни при каких значениях d1k
и d2k завершить его менее чем за три секунды.
Если алгоритм 7, реализованный СВГП, не мог быть описан одним
графом операций, то алгоритм 8 может быть выполнен не только одним
графом операций, но и СВГП (рис. 11.28). Сравнение графов на
рис. 11.26 и 11.28 показывает, что в первом случае используется деком­
позиция по процессам (режимам управления), а во втором — по объектам
303
управления. Во втором случае, кроме того, обеспечивается сокращение
объема памяти, а при переходе к многозначному кодированию возможен
изоморфизм между описанием и текстом программы.
304
11.5. Особенности реализации логико-вычислительных алгоритмов
До сих пор в настоящей главе рассматривались вопросы описания
задач логического управления, при котором выходные переменные при­
нимали два значения — 0 и 1. При реализации логико-вычислительных
алгоритмов наряду с процессами, определяемыми сменой состояний
(последовательной или параллельной) в отдельных вершинах (позициях,
ситуациях, этапах и состояниях), могут протекать также последователь­
ные или параллельные п р о ц е с с
Процессы первого типа
можно условно считать про­
исходящими по вертикали, а
процессы второго типа —
происходящими по горизон­
тали. При этом единица в вер­
шине графа рассматривается
либо как факт запуска, либо
как факт наличия процесса, а
ноль — его сброс или отсут­
ствие.
Простейшим примером
процесса второго типа являет­
ся реализация в вершине
графа переходов функцио­
нального элемента задержки,
например с помощью пере­
менной, принимающей еди­
ничное значение один раз в
секунду, — импульсной пе­
ременной ПЛК (разд. 14.3.2).
При этом ФЭЗ может быть
описан, например, с помощью
ГСА, в котором понятие «со­
стояние» не используется, а
алгоритм в целом реализуется
совокупностью ГП и ГСА, ко­
торые объединяются в единую
компоненту на программном
уровне.
20
А. А. Шалыто
305
В этом примере единица в вершине указывает на необходимость
размещения процесса запуска ФЭЗ в соответствующей вершине графа
переходов, а ноль — его сброса. Если этот граф реализовать СБФ, то
единичное значение временной переменной указывает на необходимость
запуска подпрограммы, обеспечивающей реализацию ФЭЗ, а нулевое
значение этой переменной — на возврат подпрограммы в исходное
состояние.
Аналогично могут быть реализованы и другие логико-вычислительные
процессы. Если исходное описание выполнено с помощью ГСА, то его
программная реализация может выполняться на основе графа переходов,
эквивалентного заданной ГСА. На рис. 11.29 приведена ГСА, реализую­
щая алгоритм определения наибольшего общего делителя двух целых
положительных чисел (алгоритм Евклида), а на рис. 11.30 — эквивален­
тный, но более компактный ГП автомата Мили, изоморфно реализуемый
конструкцией switch.
Download