[ <<< | Содержание, 1, 2 | 3 - 5 | 6, 7 | 8, 9 | 10, Литература | >>> ]


3. Выходы автомата

Вместо булевых переменных, образующих выходной алфавит АНС логического управления, в БПСА указываются подпрограммы (операторы). Приведем примеры выходов БПСА, являющихся подпрограммами, то есть действиями, заключенными в фигурные скобки:

Вместо единственного выходного алфавита в ПСА могут иметь место три выходных алфавита.

Рассмотрим рис.1, где изображена вершина графа переходов БПСА и несколько исходящих из нее дуг переходов и петля.

Вершина указана прямоугольником, внутри которого в верхней части показывается обозначение состояния, в данном случае “a”; в нижней части показывается обозначение подпрограммы, всегда выполняющейся в данном состоянии и которую будем называть подпрограммой – телом состояния. В общем случае тело состояния необходимо для определения переменных, используемых при вычислении событий. (В [3] все переменные, входящие в булевы формулы на дугах графов переходов, определяются вне программы, реализующей автомат.) Кроме того, в теле состояния могут инициализироваться и завершаться операции типа открытия-закрытия файлов, ввода-вывода записей файлов, определения-уничтожения объектов классов, реализации вложенных ПСА и так далее. Тело состояния будем обозначать символом Zi, где i – обозначение состояния. Тело состояния соответствует выходу автомата Мура. Множество обозначений тел состояний образует первый выходной алфавит Z = {Z1,…,ZN}, где N – число состояний БПСА, например: Z = {Za, Zb, Zc, Zd}.

Подпрограммы-выходы, указываемые на дугах переходов к другим вершинам, в данном случае на дугах ab и ac, будем обозначать символом Yij, где i и j – обозначения состояний “откуда – куда”, соответственно. Эти подпрограммы также будем считать бесповторными, что дает возможность обозначать их символом Yk, где k – порядковый номер дуги перехода (исключая петли) в БПСА. Такие подпрограммы соответствуют выходам автомата Мили и образуют второе множество выходов Y = {Y1,…YL}, где L – число дуг переходов БПСА, исключая петли.

Третьим типом выходов БПСА будем считать подпрограммы, указанные на петлях и обозначаемые Wi, где i – обозначение состояния (рис. 1). Такие отметки (подпрограммы) образуют третий выходной алфавит W = {W1,…,WN}, где N – число петель (состояний БПСА).

4. Состояния автоматов

Состояния образуют алфавит S = {S1,…,SN}, где S1 = ‘a’, S2 = ‘b’,…, например: S = {a, b, c, d}. Начальное состояние S1. Назначение тела состояния Zi заключается в следующем: во-первых, последовательно сформировать текущие значения аргументов логических выражений, и, во-вторых, инициировать необходимое очередное событие.

Рассмотрим подробнее тело Zi i-го состояния ПСА, изображенного на рис. 2.

Подпрограмма Zi начинается выполнением ряда инициирующих действий, общих для всех активизирующих действий и логических выражений, используемых для определения очередного перехода в другое состояние. Эти действия заключены в подпрограмме PRi. Последнюю будем называть прологом тела состояния, в котором выполняются, например, такие действия как открытие или чтение записи файла, ввод данных с периферийных устройств, реализация функций объекта класса, вызов вложенного ПСА и прочие инициализирующие операции.

Далее следует последовательность подпрограмм, которые на рис. 2 выделены пунктиром и которые будем называть бинарными трехполюсниками. Каждый бинарный трехполюсник состоит из необязательной активизирующей подпрограммы (AKi_1, AKi_2,…,AKi_Mi, где Mi – число бинарных трехполюсников в теле i-го состояния ПСА, или число событий, инициируемых в i-ом состоянии) и проверки истинности логического выражения (Xi_1, Xi_2,…,Xi_Mi). Активизирующая подпрограмма подготавливает необходимые данные для проверки логического выражения. Бинарный трехполюсник (n-й по порядку) имеет один вход и два выхода: первый выход означает истинность логического выражения и соответствует инициации события Ti_n, второй выход соответствует невыполнению логического условия Xi_n и связан со входом следующего по порядку бинарного трехполюсника. (Второй выход последнего бинарного трехполюсника рассмотрим далее.)

Совокупность бинарных трехполюсников образует бинарный многополюсник. Последний вкупе с прологом и эпилогом и составляет тело Zi состояния i.

Перейдем к рассмотрению действий, показанных на рис. 2 справа от бинарных трехполюсников. Пусть, например, в результате проверки логического условия Xi_1 инициировано событие Tij_1, в результате чего ПСА должен перейти в состояние j_1 c одновременной реализацией подпрограммы (выхода) Yij_1. Для реализации этого выполняется следующая подпрограмма: вызывается подпрограмма Yij_1, затем выполняется присваивание s = = j_1, где s – переменная, в которой запоминается текущее состояние ПСА. Указанные в прямоугольниках (в правой части рис. 2) действия выполняются для каждого события, соответственно инициированного бинарными трехполюсниками.

Второй выход последнего (Mi-го) бинарного трехполюсника соответствует случаю, когда ни одно из событий Tij не инициировано. Этот выход связан с реализацией подпрограммы Wi, выполняющейся на петле у i-й вершины.

Бинарные трехполюсники, показанные на рис. 2, будем называть активными. Если в бинарном трехполюснике отсутствует активизирующая подпрограмма (AKi_n), то такой трехполюсник будем называть пассивным. В последнем предполагается, что все данные для вычисления значения соответствующего логического условия получены в подпрограмме – прологе (PRi) или вне подпрограммы ПСА.

Завершает подпрограмму Zi подпрограмма-эпилог EPi, в которой выполняются операции по завершению функционирования действий, реализованных в подпрограмме-прологе, например, закрываются файлы, удаляются объекты классов и прочие.

5. Структура последовательно-событийного автомата

Перейдем к рассмотрению блок-схемы программной реализации подпрограммы ПСА в целом (рис. 3). Подпрограмма ПСА начинается выполнением пролога PRA, в котором открываются файлы, вводится информация с периферийных устройств, создаются новые объекты классов и реализуются другие действия, которые позволят выполнить прологи тел всех состояний, активизирующие действия и проверять логические выражения. Соответственно подпрограмма ПСА завершается эпилогом EPA, в котором отменяются инициирующие действия пролога.

В подпрограммах ПСА, не являющимися БПСА, может присутствовать подпрограмма общих переходов (ОРА) из так называемых обобщенных состояний (см. ниже).

Основным компонентом подпрограммы ПСА является конструкция множественного выбора, в которой в зависимости от текущего значения переменной состояния s (a, b, c) выполняется соответствующая (рассмотренная ранее) подпрограмма – тело состояния (Za, Zb, Zc).

Начальное значение переменной состояния присваивается при первой инициализации подпрограммы ПСА.


[ <<< | Содержание, 1, 2 | 3 - 5 | 6, 7 | 8, 9 | 10, Литература | >>> ]