3 Safety-Related Functions
11.03
3.10 Safe programable logic (SPL) (840D SW 4.4.18)
© Siemens AG 2003 All Rights Reserved
3-152
SINUMERIK 840D/SIMODRIVE 611 digital SINUMERIK Safety Integrated (FBSI) - Edition 11.03
The acknowledgement input Q2 can only be used if the measured time t4 is
shorter than TM1. This prevents a queued shutdown operation being
acknowledged externally via the test acknowledgement input. If A0 is 1 at the
time of the falling edge of E_AND (= ANDing of E1, E2 and E3), the time t4i is
allocated the measured time t4. For further measurements, while A0 remains at
0, a t4i is only re-saved if the measured time t4 is greater than the old value of
t4i.
The language commands SIRELIN, SIRELOUT and SIRELTIME may not be
used in synchronized actions.
The language command SIRELAY may only be used in synchronized actions of
the SPL (SAFE.SPF). The connection must be specified beforehand using the
language commands SIRELIN, SIRELOUT and SIRELTIME.
Example of an Emergency Stop implemented using NCK-SPL in SAFE.SPF:
DEF INT RESULT_IN, RESULT_OUT, RESULT_TIME
N10 DEFINE IE_NH_E
AS $A_INSE[1]
N20 DEFINE IE_NH_Q
AS $A_INSE[2]
N30 DEFINE MI_NH_Q
AS $A_MARKERSI[1]
N40 DEFINE MI_C_ABW
AS $A_MARKERSI[2]
N50 DEFINE MI_A_ABW_A
AS $A_MARKERSI[3]
N60 DEFINE MI_A_ABW_S
AS $A_MARKERSI[4]
N70 DEFINE M_STATUS_1
AS $AC_MARKER
[
1
]
;-------------------------------------------------------------------------------------------
N200 SIRELIN(1,RESULT_IN,"IE_NH_Q","MI_NH_Q","IE_NH_E")
N210
SIRELOUT(1,RESULT_OUT,"MI_C_ABW","MI_A_ABW_A","MI_A_ABW_S")
N220 SIRELTIME(1,RESULT_TIME,0.4, 2.2, 3.5)
;---------------------------------------------------------------------------------------------
N300 IDS=10 DO M_STATUS_! = SIRELAY(1)
;--------------Error handling-------------------------------------------------------
N310 IDS=11 EVERY M_STATUS_1 < > DO . . . . . .
Declaration of the function
VAR_INPUT
In1 : BOOL := True ; //Input 1
In2 : BOOL := True ; //Input 2
In3 : BOOL := True ; //Input 3
Quit1 : BOOL ; //Quit1 Signal
Quit2 : BOOL ; //Quit2 Signal
TimeValue1 : TIME := T#0ms ; //TimeValue for Output 1
TimeValue2 : TIME := T#0ms ; //TimeValue for Output 2
TimeValue3 : TIME := T#0ms ; //TimeValue for Output 3
END_VAR
VAR_OUTPUT
Out0 : BOOL ; //Output without Delay
Out1 : BOOL ; //Delayed Output to False by Timer 1
Out2 : BOOL ; //Delayed Output to False by Timer 2
Out3 : BOOL ; //Delayed Output to False by Timer 3
END_VAR
VAR_INOUT
FirstRun: BOOL ; //True by User after 1. Start of SPL
END_VAR
Limitations
Example
FUNCTION_BLOCK
FB 10