Метод маскирования многоместных логических функций

В практике управления часто встречаются ситуации с трудностями задания условий и выбора решений. Поведение автомата описывается при этом матрицей многоместных логических функций, в которой условия перехода задаются матрицами условий Ui,j {1,0,–}, а результаты работы представляются матрицей решений Di,j {0,1,–}, где прочерки обозначают отсутствие условий или решений.

При представлении процесса графом переход с одного состояния (S1) в другое (S2) осуществляется по дуге xi (рис. 3.3).

Рисунок 3.3 - Обозначение перехода автомата в новое состояние

Для реализации процесса необходимо знать:

· вектор условия перехода x;

· вектор решения y - информацию о том, какие сигналы автомат должен установить, какие снять и какие оставить без перемен в новой вершине;

· адрес памяти, где находятся данные по векторам условий и решений для новой вершины.

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

Во втором цикле осуществляется анализ вектора решений и формируется выходной сигнал автомата. После этого настраивается адрес новой области памяти, где сохраняются условия и информация для следующих циклов работы автомата.

Анализ условий и решений осуществляется с помощью маскирования. Для каждой дуги нужно создать четыре маски. Обозначим маски для вектора условий М1К(х) и М2К(х), а для вектора решений, соответственно, М1К(y) и М2К(у), где k=0, 1, 7 – номер разряда.

Первая маска выделяет значимые разряды байта вектора условий:

Вторая маска выделяет единичные значения:

Третья маска выделяет разряды, в которых выходные сигналы не должны изменяться:

Четвертая маска выделяет разряды, которые необходимо установить в единицу. Другие разряды сбрасываются:

Операции с масками аналогичны тем, которые были приведены выше.

Пусть дуга представлена вектором условий (0-1010-1), вектором решений (01--001-) и адресом 0926Н. При программировании автомата информация для этой дуги будет размещена в памяти в следующей последовательности:

ДУГА: 10111101 ® М1К(х)=BDH;

00101001 ® М2К(х)=29Н;

00110001 ® М1К(у)=31Н;

01000010 ® М2К(у)=42Н;

00100110 (младший байт адреса 26Н);

00001001 (старший байт адреса 09Н).

Таким образом, для описания одной дуги нужно шесть байт памяти.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: