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

45 lines
792 B
Plaintext

(* @PATH := '\/Functions_Collection' *)
(* @SYMFILEFLAGS := '0' *)
FUNCTION_BLOCK MessageScroll
VAR_INPUT
msg_array : ARRAY [0..70] OF BOOL;
scroll_sec : INT;
END_VAR
VAR_OUTPUT
msg_code: INT;
END_VAR
VAR
mONS: R_TRIG ;
msg_ptr: POINTER TO BYTE;
i_sec: INT;
i_msg: INT;
msg_active: BOOL;
END_VAR
(* @END_DECLARATION := '0' *)
mONS(CLK:=gClock_1s) ;
IF i_msg < SIZEOF(msg_array) THEN
msg_ptr := ADR (msg_array[i_msg]) ;
IF msg_ptr^ = 1 THEN
msg_active := TRUE;
msg_code := i_msg ;
IF mONS.Q THEN
IF i_sec <= scroll_sec THEN
i_sec := i_sec + 1;
ELSE
i_sec := 0;
i_msg := i_msg + 1;
END_IF
END_IF
ELSE
i_msg := i_msg + 1;
i_sec := 0;
END_IF
ELSE
i_msg := 0 ;
msg_active := FALSE;
msg_code := i_msg ;
END_IF
END_FUNCTION_BLOCK