ParamManagerScripts/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP

23 lines
409 B
Plaintext

(* @PATH := '\/Functions_Collection' *)
(* @SYMFILEFLAGS := '0' *)
FUNCTION _BoolArray_To_DWord : DWORD
VAR_INPUT
i_Array : ARRAY [0..31] OF BOOL ;
END_VAR
VAR
i : INT ;
mTemp : DWORD ;
END_VAR
(* @END_DECLARATION := '0' *)
FOR i:=0 TO 31 DO
IF i_Array[i] THEN
mTemp := REAL_TO_DWORD(EXPT(2, i)) ; (* 2^i *)
_BoolArray_To_DWord := _BoolArray_To_DWord + mTemp ;
END_IF
END_FOR
END_FUNCTION