MUXD8 - дискретный переключатель на 8 входов

Назначение.
Функциональный блок MUXD8 применяется для выбора одного из 8 входных аналоговых сигналов. Переключение между сигналами осуществляется через 8 дискретных управляющих сигнала. Если на аналоговые входы передать константы, блок может использоваться для дискретного выбора одной из них.
Состав структурной переменной.
Переменная со структурным типом MUXD8 будет добавлена в локальный словарь автоматически при добавлении блока MUXD8 в редактор.

Описание алгоритма.
На вход блока могут поступать до 8 аналоговых сигналов X1..X8. Для выбора сигнала, значения которого будут передаваться на выход Y, необходимо на соответствующий вход C1..C8 передать дискретный сигнал TRUE.
Если на всех дискретных входах С отсутствует управляющий сигнал (C1..C8=FALSE), выход Y=0. При одновременной передаче управляющих сигналов TRUE на несколько входов С, приоритетом обладает вход с меньшим номером.
На выход N передается номер выбранного входа. Если ни один вход не выбран (C1..C8=FALSE), оба выхода равны нулю Y=0, N=0.
Пример синтаксиса на языке ST.
//передача входных параметров в экземпляр структуры
Block.X1 := 1.1;
Block.C1 := false;
Block.X2 := 2.2;
Block.C2 := false;
Block.X3 := 3.3;
Block.C3 := false;
Block.X4:= 4.4;
Block.C4 := true;
Block.X5:= 4.4;
Block.C5 := true;
Block.X6:= 5.5;
Block.C6 := false;
Block.X7:= 6.6;
Block.C7 := false;
Block.X8:= 7.7;
Block.C8 := false;
//вызов функционального блока
Block.MUXD8();
//чтение сигнала Y=4.4
Y := Block.Y;
//чтение номера выведенного сигнала N=4
N := Block.N; //N=4
|
