ABB AC500-S Safety User Manual page 204

Safety programmable logic controllers system
Hide thumbs Also See for AC500-S:
Table of Contents

Advertisement

Configuration and programming
System configuration and programming > Programming of AC500-S Safety CPU
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;
204
AC500-S
30.03.2017

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents