Con questi 2 blocchi funzione è possibile dividere e concatenare una variabile a 32 bits in 32 variabili BOOL di cui viene fornito al FB l’indirizzo di allocazione.
DWSplitBitToVar
Questo blocco funzione divide il valore a 32 bits In, valorizzando con lo stato di ogni bit del valore la corrispondente variabile BOOL il cui indirizzo è indicato in bxx.
Descrizione
In (DWORD) Valore a 32 bits da dividere.
b00 (@BOOL) Indirizzo variabile cui trasferire stato bit 00.
b01 (@BOOL) Indirizzo variabile cui trasferire stato bit 01.
…
b31 (@BOOL) Indirizzo variabile cui trasferire stato bit 31.

DWMergeVarToBit
Questo blocco funzione concatena 32 variabili BOOL nella variabile a 32 bits Out, valorizzando ogni bit del valore con lo stato della corrispondente variabile il cui indirizzo è indicato in bxx.
Descrizione
b00 (@BOOL) Indirizzo variabile il cui stato è trasferito su bit 00.
b01 (@BOOL) Indirizzo variabile il cui stato è trasferito su bit 01.
…
b31 (@BOOL) Indirizzo variabile il cui stato è trasferito su bit 31.
Out (DWORD) Valore a 32 bits concatenato.

Esempi
Come utilizzare gli esempi.
ST_DWSplitBitToVar: Una variabile DWORD viene suddivisa in variabili BOOL.
ST_DWMergeVarToBit: Variabili BOOL vengono concatenater in una variabile DWORD.
LogicLab (Ptp114, ST_DWSplitBitToVar)
PROGRAM ST_DWSplitBitToVar
VAR
DWValue : DWORD; (* Value to split *)
BVar : ARRAY[0..31] OF BOOL; (* BOOL variables *)
DWSplit : DWSplitBitToVar; (* FB split *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_DWSplitBitToVar"
// *****************************************************************************
// Splits a 32 bits DWORD value to 32 BOOL variables.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// SPLIT VALUE
// -------------------------------------------------------------------------
// Split the value.
DWSplit.b00:=ADR(BVar[0]); //Bit 00
DWSplit.b01:=ADR(BVar[1]); //Bit 01
// Define all other BOOL variables.
DWSplit.b30:=ADR(BVar[30]); //Bit 30
DWSplit.b31:=ADR(BVar[31]); //Bit 31
DWSplit(In:=DWValue); //FB split
// [End of file]
LogicLab (Ptp114, ST_DWMergeVarToBit)
PROGRAM ST_DWMergeVarToBit
VAR
DWValue : DWORD; (* Merged value *)
BVar : ARRAY[0..31] OF BOOL; (* BOOL variables *)
DWMerge : DWMergeVarToBit; (* FB merge *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_DWMergeVarToBit"
// *****************************************************************************
// Merges 32 BOOL variables to a 32 bits DWORD value.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// MERGE VALUE
// -------------------------------------------------------------------------
// Split the value.
DWMerge.b00:=ADR(BVar[0]); //Bit 00
DWMerge.b01:=ADR(BVar[1]); //Bit 01
// Define all other BOOL variables.
DWMerge.b30:=ADR(BVar[30]); //Bit 30
DWMerge.b31:=ADR(BVar[31]); //Bit 31
DWMerge(); //FB merge
DWValue:=DWMerge.Out; //Merged value
// [End of file]