Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

MAJOR - мажорирование двух из трех


Назначение.
Функциональный блок MAJOR определяет совпадающие входные дискретные сигналы (совпадение минимум двух из трех) и передает их значение на выход. Может использоваться для повышения достоверности поступающих дискретных сигналов, например, от модулей дискретного ввода контроллера.
 
Состав структурной переменной.
Переменная со структурным типом MAJOR будет добавлена в локальный словарь автоматически при добавлении блока MAJOR в редактор.
Описание алгоритма.
Функциональный блок сравнивает входные дискретные сигналы C1, C2, C3 и, при совпадении минимум двух их них, выводит совпадающее значение на выход Q.
Выход D=FALSE, если совпадают все три входных дискретных значения. Если одно входное значение не совпадает в двумя другими, выход D=TRUE.
На выход N передается номер несовпадающего входного сигнала. При совпадении всех входных сигналов, выход N = 0.
Зависимость состояний выходных сигналов от входных:
Зависимость выходного сигнала Q от входных сигналов
D - признак несовпадения
N - номер несовпадающего входа
Q = C1 = C2 = C3
FALSE
0
Если (С1 = С2) != С3, то Q = С1 = С2
TRUE
3
Если (С1 = С3) != С2, то Q = С1 = С3
TRUE
2
Если (C2 = C3) != С1, то Q = C2 = C3
TRUE
1
 
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MAJOR(C1, C2, C3);
//чтение совпадающего значения у входных параметров
Q := Block.Q; 
//чтение признака несовпадения
D1 := Block.D;
//чтение номера несовпадающего входного значения
N := Block.N;