FUNCTION_BLOCK Siemens_AWL2_src
TITLE = Ampelschaltung einfach 
// taken from the Siemens S7 Help/Instruction List examples
// Steuerung einer Ampelanlage fuer einen Fussgaengeruebergang 
// an der Hauptstrasse 

{S7_pdiag := 'true'} //Systemattribut fuer Bausteine 
AUTHOR : SIEMENS 
FAMILY : Ampel 
NAME : Siemens_AWL2_src
VERSION : 1.3 

VAR_INPUT 

starter : BOOL := FALSE; // Ueberquerungswunsch Fußgaenger 
t_dur_y_car : TIMER; // Zeitdauer Gruen Fussgaenger 
t_next_r_car : TIMER; // Zeitdauer zwischen Rot fuer Auto 
t_dur_r_car : TIMER; 
anz {S7_server := 'alarm_archiv'; S7_a_type := 'alarm_8'} :DWORD; 
// Anzahl Autos 
// anz besitzt Systemattribute fuer Parameter 

END_VAR 
VAR_OUTPUT 

g_car : BOOL := FALSE; // GRUEN fuer Autos 

END_VAR 
VAR 
condition : BOOL := FALSE; // Vormerkung Rot fuer Autos 
END_VAR 

BEGIN 
NETWORK 
TITLE = Vormerkung Rot fuer Strassenverkehr 
// Nach Einhalten eines Mindestzeitabstands wird durch 
//den Signalwunsch am Fussgaengeruebergang die 
//Vormerkung Rot fuer den Strassenverkehr gebildet. 
U(; 
U #starter; // Signalwunsch Fussgaengeruebergang und 
U #t_next_r_car; // Zeit zwischen zwei Rotphasen abgelaufen 
O #condition; // oder Vormerkung fuer Rot ("Selbsthaltung") 
); 
UN #t_dur_y_car; // und z.Zt. keine Rote Ampel 
= #condition; // Vormerkung Rot 
NETWORK 
TITLE = Gruene Ampel fuer Strassenverkehr 
UN #condition; // keine Vormerkung Rot Strassenverkehr 
= #g_car; // GRUEN fuer Strassenverkehr 
NETWORK 
TITLE = Dauer fuer Gelbphase Autos 
// weiteres Programm zur Realisierung 
// der Ampelschaltung 

END_FUNCTION_BLOCK 

FUNCTION_BLOCK FB 10 
VAR_INPUT 
para1 : bool; 
para2: bool; 
end_var 
begin 
end_function_block 

data_block db 10 
fb10 
begin 
end_data_block 

data_block db 6 
fb6 
begin 
end_data_block 