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;
|
