Aufgabenstellung
In einem Kaufhaus sollen auf einem Display zwei Texte abwechselnd angezeigt werden. Der Text soll alle fünf Minuten wechseln.
· Text 1: "Neue Kollektion - Besuchen Sie unsere Kindermodenabteilung"
· Text 2: "Unser Restaurant im 6. Obergeschoß ist geöffnet"
Lösungsweg
Die Texte werden im Datenbaustein "TEXTBIBLIOTHEK" vorgehalten. Der gerade aktuelle Text wird mit Hilfe der SFC 20 "BLKMOV" in den Displaypuffer Datenbaustein "Textausgabe" kopiert. Der Fünf-Minuten-Takt wird mit Hilfe eines Timers realisiert.
AWL-Quelle
//*************************************************************************************
Symboltabelle
BLKMOV SFC 20 SFC 20 Direct Word Move
TEXTAUSGABE DB 11 DB 11
TEXTBIBLIOTHEK DB 112 DB 112
//********************************************************************
DATA_BLOCK "TEXTBIBLIOTHEK"
TITLE = enthält die beiden anzuzeigenden Texte
VERSION : 1.0
STRUCT
Text1 : STRING[80] := 'Neue Kollektion - besuchen Sie unsere Kindermodenabteilung!';
Text2 : STRING[80] := 'Unser Restaurant im 6. Obergeschoß ist geöffnet.';
END_STRUCT ;
BEGIN
END_DATA_BLOCK
//********************************************************************
DATA_BLOCK "TEXTAUSGABE"
TITLE = Puffer für Display
VERSION : 1.0
STRUCT
Display : STRING[80];
END_STRUCT ;
BEGIN
END_DATA_BLOCK
//********************************************************************
ORGANIZATION_BLOCK OB1
TITLE =
VERSION : 1.0
VAR_TEMP
OB1_System: array[1..20] of byte;
END_VAR
BEGIN
NETWORK
TITLE =
UN M 24.3;
SPB m001;
CALL "BLKMOV" (
SRCBLK := "TEXTBIBLIOTHEK".Text1,
RET_VAL := MW 0,
DSTBLK := "TEXTAUSGABE".Display);
m001: U M 24.3;
SPB m002;
CALL "BLKMOV" (
SRCBLK := "TEXTBIBLIOTHEK".Text2,
RET_VAL := MW 0,
DSTBLK := "TEXTAUSGABE".Display);
m002: NOP 0;
NETWORK
TITLE = Umschalten von M24.3, falls fünf Minuten abgelaufen sind
UN T 10; //Timer läuft noch?
L S5T#5M;
SE T 10; //Start als Einschaltverzögerung
BEB ; //Sprung ans Bausteinende, wenn T noch läuft
R T 10;
UN M 24.3;
= M 24.3; //M 24.3 negieren
END_ORGANIZATION_BLOCK