Workaround to use variable in Bit addressing

You can use this Code-Example to use it direct in your Program or to Create a Library-Function.

The Mask can be set in Code in Various Numeric-Systems (see List below), and will select the Bits Used for the Output.

Hex: MaskUDINT := 16#01;
Binary: MaskUDINT := 2#0000_0000_0000_0000_0000_0000_0000_0001
Dezimal: MaskUDINT := 1;

BY Bitnumber 0…31: MaskUDINT := SHL(1,Number);

ST-Code:

VAR
	ValueUDINT : UDINT;
	MaskUDINT : UDINT;
	ValueBOOL : BOOL;
END_VAR

PROGRAM _INIT
	 
	MaskUDINT := 16#01; 
	
END_PROGRAM

PROGRAM _CYCLIC
	
	ValueBOOL := UDINT_TO_BOOL(ValueUDINT AND MaskUDINT);
	 
END_PROGRAM