Двоичные коды переменных

В вычислительной технике и автоматике принято записывать переменные в наборе справа налево, т.е. не x 1, x 2, x 3, …, xn, а xn, xn-1, …, x2, x1, и нумеровать пере­менные, начиная с i = 0, т.е. xn-1, xn-2, …, x2, x1, x0. В этом случае упорядоченный набор xi, который называется кортеж, можно рассматривать как число в двоичной позиционной системе счисления, в ко­торой вес каждого последующего разряда в кортеже в два раза больше предыду­щего*, а само число N определяется по формуле

(1)

Для трехразрядного кортежа x2, x1, x0 получим табл. 1.

Таблица 1

N                
x 2, x 1, x 0                

В данном случае номеру N соответствует определенное значение переменных в наборе, другими словами, код. Способ кодирования по формуле (1), которому соответствует табл. 1, называется двоичным позиционным кодом, или сокращенно ДПК. Кроме ДПК в системах управления широкое применение нашел так назы­ваемый соседний код, или код Грея (ДКГ), который от ДПК отличается тем, что при переходе от цифры N j к N j + 1 изменения происходят только в одном разряде кода (табл. 2). Используется также унитарный код (код с одной «1» в n разрядах), код с фиксированным m – числом единиц в n разрядах, а также большая группа кодов, допускающих обнаружение и исправление ошибки при передаче информации. Все эти коды, оставаясь двоичными, не являются позиционными, т.к. к ним не применима формула (1). Поэтому в ряде случаев отступают от этого правила обозначения и перечисляют переменные начиная с j = 1, 2, …, n.

Таблица 2

N                
ДПК                
ДКГ                

Заметим, что ДКГ, будучи двоичным, не относится к позиционной системе счисления, как ДПК, т.к. для ДКГ не применима формула (1), хотя, как видно из табл. 2, легко найти соответствие между ДПК и ДКГ.

В данном пособии приведены только примеры кодов, соответствующих целым числам. Дробные числа, а также числа с плавающей запятой подробно рассмот­рены в учебной литературе [37].

В цифровой технике используется много типов кодов, которые будут рас­сматриваться далее в соответствующих разделах пособия. В частности, сигналы двоичные по форме могут иметь основание не 2, а 3, если они представлены в виде –1, 0, +1, например, напряжение –5 В, 0, +5 В. Такая система представления сиг­налов используется при передаче информации по каналам связи (квазитроичный код). При импульсном представлении двоичных сигналов (+1 соответствует им­пульс положительной полярности, а –1 – импульс отрицательной полярности) код называется ЧПИ, т.е. код с чередованием полярности.

Троичные коды и троичная система счисления используются и в вычисли­тельной технике, однако в теории дискретных устройств принято иметь дело с двоичными переменными xi {0, 1}.

Двоичные наборы переменных xn, xn- 1, …, x 2, x 1 могут рассматриваться как комплекс двоичных переменных некоторой функции y = ƒ (xn, …, x 2, x 1), которая называется переключательной или булевой функцией, так как и { x } и y . Один и тот же набор xi, может «порождать» систему булевых функций y1, y2, …, ym. Двоичные переменные называют булевыми переменными.

1.2.1. Этот раздел параграфа, который приводится здесь, очень хорошо из­ложен в учебнике А.Я. Савельева (стр. 167–169) [37].

Две функции равносильны друг другу, если принимают на всех возмож­ных наборах переменных одни и те же значения f1 (x 1, х 2,..., xп) = = f 2(х 1, х 2, ..., хп).

Булевы переменные могут быть действительными или фиктив­ными.

Переменная xi действительна, если значение функции f (x 1, х 2, ..., xi, ...

..., хп) существенно изменяется при изменении xi.

Переменная xi фиктивна, если значение функции f (x 1, ..., xi,..., хп) не изменя­ется при изменении xi.

Логическая функция от трех переменных показана в табл. 3.

Из таблицы видно, что переменные х1 и х2 – действительные, а переменная x3 – фиктивная, так как f (x 1, x 2,0) = f (x 1, x 2,1) для всех наборов x 1, x 2.

Таблица 3

x 3 x 2 x 1 f (x 1, x 2, x 3) x 3 x 2 x 1 f (x 1, x 2, x 3)
               

Таким образом, появляется возможность сокращать или расши­рять количе­ство переменных для логических функций удалением или введением фиктивных переменных. Так как число значений переменных хi ограничено, то можно определить ко­личество N функций от любого числа переменных: N= , где n – количе­ство переменных xi.

Пример. Предположим, что имеется система кондиционирования воздуха для помещения, где установлена ЭВМ, состоящая из двух кондиционе­ров ма­лой и большой мощности и работающая при таких условиях:

1) кондиционер малой мощности включается, если температура воздуха в по­мещении достигает 19 °С;

2) кондиционер большой мощности включается, если температура воздуха достигает 22 °С (малый кондиционер при этом отключается);

3) оба кондиционера включаются при температуре воздуха 30 °С.

Пусть информация о температуре воздуха поступает от датчиков, которые соответственно срабатывают при достижении температуры 19, 22, 30 °С. Каждый из этих датчиков выдает входную информацию для устройства управления кон­диционерами. Первые три датчика определяют рабочие режимы, и их можно представить как входы управляющего автомата. Используя двоичный алфавит для задания состояний датчика (0 – нет сигнала о достижении заданного уров­ня тем­пературы, 1 – есть сигнал), функционирование системы управления кон­диционе­рами можно описать следующим образом (табл. 4):

Таблица 4

z 3 z 2 z 1 ω 2 ω 1
         

Здесь z 1 – датчик, срабатывающий при t = 19 °C; z 1= 0, если температура меньше 19 °С; z 1 = l, если температура равна или больше 19 °С; z 2–датчик, срабатывающий при t = 22 °С, z 2 = 0, если t < 22 °C, z 2= l при t ≥ 22 °С; z 3 – датчик, срабатывающий при t = 30 °С; z 3 = 0 при t < 30 °C, z 3 = l при t ≥ 30 °С; ω 1и ω 2 – соответственно управление маломощным и мощным кондиционерами (ω = 0 – кондиционер выключен, ω = 1 – кондиционер включен). Таблица описывает функционирование системы управления без нарушений работы.

Впервые теория Дж. Буля была применена русским ученым П.С. Эренфестом к анализу контактных цепей (1910 г.). Возможность описания переключательных схем с помощью логических формул оказалась весьма ценной по двум причинам. Во-пер­вых, с помощью формул удобнее проверять работу схем. Во-вторых, зада­ние условий работы любой переключательной схемы в виде формул упрощает процесс построения самой переключательной схемы, так как оказалось, что суще­ствует ряд эквивалентных преобразований, в результате которых логические формулы упрощаются. При описании переключательных схем замкнутый контакт прини­мается за истинное высказывание, а разомкнутый – за ложное, поэтому по­сле­довательное соединение контактов можно рассматривать как функцию И, а параллельное – как функцию ИЛИ.

Использование логических функций оказалось особенно полезным для опи­сания работы логических элементов ЭВМ.

ФУНКЦИИ АЛГЕБРЫ ЛОГИКИ

Булевы функции, или функции алгебры логики (ФАЛ), могут быть заданы не­посредственно в виде логического выражения, объединяющего логические пере­менные со значением x или с помощью знаков конъюнкции () и дизъюнкции (). Эти логические выражения могут быть получены также из таблиц, в строках которых перечислены все возможные комбинации значений переменных, от кото­рых зависит функция, и в столбце напротив каждой строки указано значение этой функ­ции. Такие таблицы называются таблицами истинности. Если для одних и тех же комбинаций переменных определяется несколько функций, то значения этих функций записываются в независимых столбцах.

Пусть задан набор двоичных (булевых) переменных x 1, x 2, x 3, …, xn. Функция y = ƒ (x 1, x 2, x 3, …, xn) называется булевой функцией, если она принимает значение 0 или 1 на любом из наборов переменных x 1, x 2, x 3, …, xn. Поскольку любая пере­менная xi (i = ) принадлежит множеству из 0 и 1 (xi {0, 1}), то количество набо­ров переменных равно 2­n.

Рассмотрим правило определения булевой функции на конкретном неболь­шом примере, приведенном в работе [12] на стр. 136.

Пример. Насос принудительного водоснабжения должен быть вклю­чен ав­томатически, если сработает по крайней мере один из двух дат­чиков (аварийного или предупреди­тельного падения давления на объ­екте) и датчик понижения тем­пера­туры охлаждающей воды ниже 5 °С. Кроме того, включение насо­са должно быть осуществлено авто­матически, если срабатывает дат­чик понижения уровня воды в си­стеме при условии отсутствия сиг­налов от обоих датчиков давления и от датчика температуры. В ос­тальных случаях включение насо­са не происходит.

Требуется спроектировать логи­ческое устройство, выполняющее это предпи­сание (алгоритм).

I этап. Выделим и обозначим входные переменные:

x 1– ­­сигнал от датчика, преду­преждающего о снижении дав­ления;

x 2 – сигнал от датчика аварийно­го снижения давления;

Таблица 5

№ п/п Наборы входных переменных Значения выходной функции y 1
x 1 x 2 x 3 x 4
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

x 3 – сигнал от датчика темпера­туры при t < 5 °С;

x 4 – сигнал от датчика снижения уровня воды.

Выпишем возможные набо­ры переменных столбиком в табл. 5.

Как следует из этой таблицы, зависимости значений выходной функции от последовательности по­ступления входных сигналов нет.

Запишем аналитическое выра­жение для y 1 в виде логической суммы (дизъюнкции) конъюнкций тех переменных, которые определяют единичное значение булевой функции:

II этап. Упростим эту функцию, исключив x 4 из двух последних конъюнкций, из первой и второй, а также из четвертой и пятой. После этого уберем повторяющиеся конъюнкции. Тогда получим:

На рис. 3 представлены два варианта реализации булевой функции y 1 с помо­щью комбинационной схемы на элементах логики и с помощью ПЗУ. Несколько хороших примеров даны в работе [49].

Двоичные булевы переменные могут быть сигналами от специальных датчи­ков. Например, при штамповке изделий из металлических листов манипу­лятор извлекает листы из загрузочного устройства и подает их под штамп в том случае, если штамп находится в крайнем верхнем положении. При этом форми­руются следующие логические сигналы: α1 – в загрузочном устройстве листы есть;

α2 – рука манипулятора выдвинулась до крайнего положения;

α3 – рука в левом положении;

α4 – поворот руки осуществился;

α5 – захват листа произошел;

α6 – штамп находится в верхнем положении;

α7 – штамповка осуществилась.

Рис. 3. Схема включения насоса

Вторым способом формирования логических сигналов явля­ется сравнение каких-либо величин (например напряжений) и выработка сигнала U(t) > K (питающее напряжение U(t) больше установленного максимального зна­чения K).

В системах управления различают логические переменные α и команды на исполнение каких-либо действий, например «включить электромагнит захвата листов». Чаще всего их обозначают буквами латинского алфавита: логические сигналы в алгоритмах – символом α, а команды – символом C или А. Однако и команда также имеет два значения: она есть – «1», ее нет – «0». Т.о., в общем случае в систе­мах управления можно говорить о наборе двоичных (булевых) переменных, кото­рые будем обозначать символом x, т.е. x 1, x 2, x 3, …, xn. При «абстрактном» подходе не различаются переменные α или С.


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



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