а мой пример можете адаптировать к Вашему методу, а то появляется много вопросов
т.е. пример загнать 16 бит в слово и потом это слово снова разложить на 16 бит
вот мое предположение как это должно выглядеть:
Код:
(*заполняем биты (библиотека UTIL)*)
Bit1:=1;
Bit2:=0;
Bit3:=0;
Bit4:=0;
Bit5:=0;
Bit6:=0;
Bit7:=0;
Bit8:=0;
Bit9:=1;
Bit10:=0;
Bit11:=0;
Bit12:=0;
Bit13:=0;
Bit14:=0;
Bit15:=0;
Bit16:=0;
(*упаковываем биты в байты*)
IF Bit1 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit2 HEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit3 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit4 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit5 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit6 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit7 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit8 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit9 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit10 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit11 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit12 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit13 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit14 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit15 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
IF Bit16 THEN Var_Word:=Var_Word OR 1024; ELSE Var_Word:=Var_Word AND NOT 1024; END_IF;
(*ОБРАТНАЯ ПРОЦЕДУРА*)
(*байты раскладываются на биты*)
IF (Var_Word AND 1024)<>0 THEN Bits[1]:=TRUE; ELSE Bits[1]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[2]:=TRUE; ELSE Bits[2]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[3]:=TRUE; ELSE Bits[3]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[4]:=TRUE; ELSE Bits[4]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[5]:=TRUE; ELSE Bits[5]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[6]:=TRUE; ELSE Bits[6]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[7]:=TRUE; ELSE Bits[7]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[8]:=TRUE; ELSE Bits[8]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[9]:=TRUE; ELSE Bits[9]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[10]:=TRUE; ELSE Bits[10]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[11]:=TRUE; ELSE Bits[11]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[12]:=TRUE; ELSE Bits[12]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[13]:=TRUE; ELSE Bits[13]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[14]:=TRUE; ELSE Bits[14]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[15]:=TRUE; ELSE Bits[15]:=FALSE; END_IF;
IF (Var_Word AND 1024)<>0 THEN Bits[16]:=TRUE; ELSE Bits[16]:=FALSE; END_IF;
(*все получили массив Bits заполненный (другая переменная чтобы легче было оценивать результат) *)