Вот пример упаковки и распаковки бит в маску, с 0 по 3, дальше до 15 бит дорисуйте сами и упакуйте в макрос 1 Упаковка распак бит.jpg
А ещё упаковать биты можно на ST, создав функцию и аналогично распаковать, создав ФБ.
Код:
function B16_Mask: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15 : bool; //входная переменная с типом данных bool
end_var
B16_Mask.0 := b0;B16_Mask.1 := b1;B16_Mask.2 := b2;B16_Mask.3 := b3;B16_Mask.4 := b4;B16_Mask.5 := b5;B16_Mask.6 := b6;B16_Mask.7 := b7;
B16_Mask.8 := b8;B16_Mask.9 := b9;B16_Mask.10 := b10;B16_Mask.11 := b11;B16_Mask.12 := b12;B16_Mask.13 := b13;B16_Mask.14 := b14;B16_Mask.15 := b15;
end_function