![ABB AC500-S Скачать руководство пользователя страница 204](http://html.mh-extra.com/html/abb/ac500-s/ac500-s_safety-user-manual_2916204.webp)
FUNCTION_BLOCK SF_Startup
VAR_OUTPUT
Ready: BOOL; (* Set to TRUE if all safety modules are initialized *)
END_VAR
VAR
bTempReady: BOOL; (* Set if DI581-S safety module is ready *)
END_VAR
VAR CONSTANT
_TRUE: BOOL := TRUE; (* Constant because TRUE is a literal *)
_FALSE: BOOL := FALSE; (* Constant because FALSE is a literal *)
wdNull: WORD := 16#0000; (* Constant for Safety I/O initialization *)
END_VAR
VAR_EXTERNAL
DI581_S: PROFIsafeStack; (* External declaration *)
END_VAR
Implementation part
(* Check if Operator Acknowledge is required for F-Device *)
IF DI581_S.OA_Req_S THEN (* The module requests an acknowledgement? *)
DI581_S.OA_C := DI581_S.OA_Req_S; (* Acknowledge it, if requested *)
(* We check here that DI581_S.OA_C did not passivate the given F-Device
and no Operator Acknowledge Request is available from this module *)
(* GS_DI581_Started is the variable for all channel PROFIsafe diagnostic
bits set in Control Builder Plus / Automation Builder Plus for DI581-S
module *)
ELSIF GS_DI581_Started > wdNull THEN (* Is this module initialized? *)
bTempReady := _TRUE; (* Yes, the module is initialized *)
ELSE
bTempReady := _FALSE; (* No, the module is not initialized yet *)
END_IF;
IF bTempReady THEN (* Set proper POU output signals *)
Ready := _TRUE;
ELSE
Ready := _FALSE;
END_IF;
Configuration and programming
System configuration and programming > Programming of AC500-S Safety CPU
30.03.2017
AC500-S
204