33
Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu eeur Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu eeur Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu eeur 0 Speicher a1 a2 a3 a4 b1 b2 C 1 2 3 4 3.1 3.2 3.3 Strukturierte Analyse /Realtime Modeling (SA/RT) Erweiterung SA Bisher SA Alle Prozesse laufen datengetrieben ab: Start bei Vorliegen von Eingabedaten Dynamik also z.B. B liegt vor: kein Prozess läuft. A liegt vor: 3 läuft, erzeugt a3 und a4. Wenn a3 erzeugt, läuft 1 und erzeugt ??1. Wenn a4 erzeugt, läuft 4 (wenn Speicher mind. einmal von 1 beschrieben) und erzeugt ??2. Dann läuft 2 und erzeugt C.

Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Embed Size (px)

Citation preview

Page 1: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/1

AC

B

a3

x

e1

e2

a4

Zwiziwzrrg fdggg oi oiwOihdshf öhjfsodf pweufrPwoijdlkjdsljflj eiurowifr8 ifiOiroiroiurouroufdjdljdlu eeurZwiziwzrrg fdggg oi oiwOihdshf öhjfsodf pweufrPwoijdlkjdsljflj eiurowifr8 ifiOiroiroiurouroufdjdljdlu eeurZwiziwzrrg fdggg oi oiwOihdshf öhjfsodf pweufrPwoijdlkjdsljflj eiurowifr8 ifiOiroiroiurouroufdjdljdlu eeur

0

Speicher

a1

a2

a3

a4

b1

b2C

1 2

3 4

3.1

3.2

3.3

Strukturierte Analyse /Realtime Modeling (SA/RT)

Erweiterung SA

Bisher SA

Alle Prozesse laufen datengetrieben ab: Start bei Vorliegen von Eingabedaten

Dynamik also z.B.

B liegt vor: kein Prozess läuft.

A liegt vor: 3 läuft, erzeugt a3 und a4.

Wenn a3 erzeugt, läuft 1 und erzeugt ??1.

Wenn a4 erzeugt, läuft 4 (wenn Speichermind. einmal von 1 beschrieben) und erzeugt ??2.

Dann läuft 2 und erzeugt C.

Reaktion der Verarbeitung auf Ereignisse?

Page 2: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/2

Erweiterung SA

Dynamik der Verarbeitung anhand von Ereignissen:

Steuerung der Prozesse durch Kontrollflüsse

SA/RTDatenflussdiagramme werden um Kontrollflüsse erweitert. Flussdiagramm (FD): um Kontrollflüsse erweitertes DFD Erweiterung des Data Dictionary um Definitionen der Kontrollflüsse:

Requirements Dictionary (RD) Kontrollflüsse sind diskrete Signale, z.B. Knopf1 = [gedrückt | nicht gedrückt]

Worauf reagieren die Prozesse ? Kontrollflüsse werden im Diagramm als gestrichelte Pfeillinie dargestellt. Ablauf der Prozesse definiert durch Zustandsdiagramm und/oder

Prozessaktivierungstabellen (analog Entscheidungstabellen): Kontrollspezifikation (Cspec). Wie reagieren die Prozesse ?

Knopf1

Batterie

Knopf2

Display

0StelleUhr

Knopf1 gedr.Knopf2

gedr.

Start AnzeigeBlinken

Kontextdiagramm„Digitaluhr“

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 3: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/3

Funktions-Baum

Datenfluss-diagramm

DataDictionary

Entscheidungs-tabelle

Entscheidungs-bäume

Pseudo-code

SA 1979

FunktionaleHierarchie

Informations-fluss

Daten-strukturen

Kontroll-strukturen

Kombination der Basiskonzeptein RT

EntityRelationship

EntitätstypenBeziehungen

Zustands-automat

EndlicherAutomat

RT 1987

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 4: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/4

Knopf1

Batterie

Knopf2

Display

0StelleUhr

Knopf1 gedr.Knopf2

gedr.

Start AnzeigeBlinken

Kontextdiagramm„Digitaluhr“

Kontrollflüsse

• Kontrollflüsse beschreiben das Eintreten von Ereignissen.• Weiterhin werden Datenflüsse verarbeitet.• Kontrollflüsse werden nicht verarbeitet.• Kontrollflüsse haben Signalcharakter und keinen kontinuierlichen Wertebereich.• Kontrollflüsse beeinflussen nur die Verarbeitung in ihrem Ablauf:

• Umschalten von internen Systemzuständen• Aktivierung von Prozessen (die Daten transformieren)

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 5: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/5

Knopf1

Batterie

Knopf2

Display

0StelleUhr

Knopf1 gedr.Knopf2

gedr.

Start Anzeigeblinken

Kontextdiagramm„Digitaluhr“

Kontrollflüsse, Kontrollbalken und Requirements Dictionary

1Zeit nullstellen

9Zeit aktu-

alisier. 8Stundenblinken

7Std. einsErhöh.

6Minutenblinken

5Min. eins

erhöh.

4Sekunden

blinken

3Sek. nullstellen

2Normalzeit

Anz.

ZeitNull

Sek.

Akt.

Sek.

Erh

. M

in.

Akt. Min.

Erh.Std.

Akt.

Std.

FD0 von„Digitaluhr

Knopf1 gedr. = [ja|nein]Knopf2 gedr. = [ja|nein]Start = [Strom|keinStrom]Blinken = [an/aus]Anzeige = Std.+ Min.+ Sek.Zeit = Std.+ Min.+ Sek.Akt. Std. = Std.Erh. Std. = Std.Akt. Min. = Min.Erh. Min. = Min.Akt. Sek. = Sek.Erh. Sek. = Sek.Std. = 0, 1, ..., 23Min. = 0, 1, ..., 59Sek. = 0, 1, ..., 59

Kontrollbalken

blinke

n

blinkenblinke

n

Knopf1 gedr.

Knopf2 gedr.

Start

blinken

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 6: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/6

Kontrollspezifikation

Kontrollbalken gibt an,welche KontrollflüsseProzesse des FD steuern(Pfeil zum Balken),bzw. von CSpec (oder Prozessen) desFD erzeugt werden(Pfeil vom Balken weg).

Zu einem Kontrollbalkengehört eine

Kontrollspezifikation (CSpec):• Gibt an, wie die Prozesse von den Kontrollflüssen gesteuert werden.• Beschreibung durch Zustandsautomaten oder Prozessaktivierungstabellen.

1Zeit nullstellen

9Zeit aktu-

alisier. 8Stundenblinken

7Std. einsErhöh.

6Minutenblinken

5Min. eins

erhöh.

4Sekunden

blinken

3Sek. nullstellen

2Normalzeit

Anz.

ZeitNull

Sek.

Akt.

Sek.

Erh

. M

in.

Akt. Min.

Erh.Std.

Akt.

Std.

Knopf1 gedr.

Knopf2 gedr.

Start

blinken

FD0 von„Digitaluhr

blinke

n

blinkenblinke

n

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 7: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/7

KontrollspezifikationZustandsdiagramm und Prozessaktivierungstabelle

1Zeit nullstellen

9Zeit aktu-

alisier. 8Stundenblinken

7Std. einsErhöh.

6Minutenblinken

5Min. eins

erhöh.

4Sekunden

blinken

3Sek. nullstellen

2Normalzeit

Anz.

ZeitNull

Sek.

Akt.

Sek.

Erh

. M

in.

Akt. Min.

Erh.Std.

Akt.

Std.

Normal-zeit

Min.stellen

Sek.stellen

Std.stellen

StartInitialisierung

Knopf1 gedr.Std. blinken

Knopf2gedr.Std. erh.

Knopf2 gedr.Min. erhöhen

Knopf2gedr.Sek. stellen

Knopf1 gedr.Min. blinken

Knopf1 gedr.Sek. blinken

Knopf1 gedr.Normalzeit anzeigen

KontrollflüsseKontrollaktionen

blinke

n

blinkenblinke

n

Knopf1 gedr.

Knopf2 gedr.

Start

blinken

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 8: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/8

Kontrollspezifikation1

Zeit nullstellen

9Zeit aktu-

alisier. 8Stundenblinken

7Std. einsErhöh.

6Minutenblinken

5Min. eins

erhöh.

4Sekunden

blinken

3Sek. nullstellen

2Normalzeit

Anz.

ZeitNull

Sek.

Akt.

Sek.

Erh

. M

in.

Akt. Min.

Erh.Std.

Akt.

Std.

Normal-zeit

Min.stellen

Sek.stellen

Std.stellen

StartInitialisierung

Knopf1 gedr.Std. blinken

Knopf2gedr.Std. erh.

Knopf2 gedr.Min. erhöhen

Knopf2gedr.Sek. stellen

Knopf1 gedr.Min. blinken

Knopf1 gedr.Sek. blinken

Knopf1 gedr.Normalzeit anzeigen

blinke

n

blinkenblinke

n

Prozesse 1 2 3 4 5 6 7 8

Kontroll-aktionen Zeit null stellen

Normalzeit anzeigen

Sek. null stellen

Sek. blinken

Min. eins erh.

Min. blinken

Std. eins erh.

Std. blinken

Initialisierung 1 2 0 0 0 0 0 0

Std. erh. 0 0 0 0 0 0 1 2

Min. erh. 0 0 0 0 1 2 0 0

Sek. stellen 0 0 1 2 0 0 0 0

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 9: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/9

Kontrollspezifikation (CSpec)

Dynamikbeschreibung bisher:Z.B. Batterieeinlegen führt zu Ereignis „Start“.• Nachsehen in FD0: Kontrollfluss „Start“ führt auf Balken CSpec• Nachsehen im Zustandsautomaten der Cspec: „Start“ führt zum Zustandsübergang nach Normalzeit. Verbundene Aktion (unterm Strich): Initialisierung.• Nachsehen in Prozessaktivierungstabelle: Erst (1) Prozess Zeit Null stellen, dann (2) Prozess Normalzeit anzeigen aktivieren, alle anderen inaktiv (0).

Ständig laufende Prozesse (im Beispiel Zeit aktualisieren) tauchen in der CSpec nicht auf.

Nicht verfeinerter Prozess: PSpec (MiniSpec mit Zeit in RT)z.B. Angabe über Folgeverhalten eines Prozesses nach Aktivierung.

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 10: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/10

Prozessspezifikation (PSpec)

Nicht verfeinerter Prozess: PSpec (MiniSpec mit Zeit in RT)

Beispiel:PSpec 1; Zeit Null stellen

Issue Zeit := 0 + 0 + 0PSpec 2; Normalzeit anzeigen

Anzeige := ZeitPSpec 3; Sek. Null stellen

Issue Nullsekunde := 0PSpec 4; Sekunde blinken

blinkende Sekunden := aktuelle Sekunden...PSpec 9; Aktualisiere Zeit

Zeit lesen, um eine Sekunde erhöhen, zurückschreiben

In der PSpec kommt der ständig laufende Prozess 9 vor.

Issue: ausfertigenProzess beendet sich nach Durchführung selbst

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 11: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/11

Resultierende Prozesssteuerung

1. Prozess läuft während der gesamten SystemlaufzeitPSpec 9; Aktualisiere Zeit

Zeit lesen, um eine Sekunde erhöhen, zurückschreiben Darf in keiner CSpec erscheinen.

2. Prozess wird aktiviert und beendet sich dann selbst Aktivierung durch Zustandsübergang oder Eintreten einer PAT-Bedingung Selbstbeendigung durch Schlüsselwort Issue in Pspec (oder auch vor Prozessnamen im FD).

PSpec 1; Zeit Null stellenIssue Zeit := 0 + 0 + 0

3. Prozess wird aktiviert und beim nächsten Zustandsübergang deaktiviertPSpec 2; Normalzeit anzeigen

Anzeige := Zeit

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 12: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/12

Cspec mit PAT

Eingabe Ausgabe Prozess

C2 C3 C4 1 2 3

0 0 Ein 1 1 0

0 1 Ein 1 2 2

1 0 Ein 3 2 1

1 1 Ein 1 0 0

1

3

2A

B

C1

C

D

E

F

C5

C6

C2

C3C4

Alle Ein- und Ausgabepfeile desBalkens im FD erscheinen in der PAT

Kontrollflüsse, die einen Prozess verlassen, heißen Datenbedingungen: Kontrollsignale, die vom Prozess durch Test seiner Eingabedaten gemäß zugehöriger PSpec erzeugt werden.

PSpecN

PSpecM

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 13: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/13

Cspec mit Zustandsautomat

1

3

2A

B

C1

C

D

E

F

C5

C6

C2

C3C4

Eingabepfeile des Balkens im FD sind die Ereignisse des Zustandsautomaten

Die Aktionen der Zustandsübergänge sind Prozessaktivierungen bzw. Ausgabepfeile des Balkens.

PSpecN

PSpecM

Zustand 1 Zustand 3

Zustand 2

C3 = 0

C3=1Aktiviere Prozess 2

C2 = 0C4 = EinC2=1

Aktiviere Prozess 1

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 14: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/14

Zeitspezifikationen

Externe Zeitanforderungen (aus Aufgabenstellung) Zeitanforderungen der Systemschnittstellen, d.h. für Signale des

Kontextdiagramms

Spezifikation von Wiederholungszyklen Eingabe-Ausgabe-Antwortzeiten

WiederholungszyklenKönnen für externe, elementare Ausgabesignale festgelegt werden, d.h.

für Ausgabekontrollflüsse im Kontextdiagramm.Werden im Requirements Dictionary durch Attribut Rate festgelegt.

z.B. Stunden = 0, 1, ..., 23 Rate: Alle 100 msMinuten = 0, 1, ..., 59 Rate: Alle 100 ms

Eingabe-Ausgabe-AntwortzeitenLegen den erlaubten Antwortzeitbereich für jedes Eingabeereignis und

das daraus resultierende Ausgabeereignis fest.Werden in eine Zeitspezifikationstabelle eingetragen.

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 15: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/15

Zeitspezifikationstabelle

Regeln:• Eingabeereignisse treten außerhalb des Systems ein.• Ausgabeereignisse sind Aktionen, die vom System ausgeführt werden.• Alle Ein- und Ausgabeereignisse sind mit erlaubten Werten im

Requirements Dictionary definiert.• Jedes externe Signal des Requirements Dictionary soll in der

Zeitspezifikationstabelle erscheinen (auch wenn zeitunkritisch)

Bei komplexen Zeitbeziehungen der Signale: Ergänzung durch Zeitdiagramme

Eingabesignal Ereignis Ausgabesignal Ereignis Antwortzeit

Knopf1 Gedrückt Blinkende Stunden Zahl anzeigen < 100 ms

Knopf1 Gedrückt Blinkende Minuten Zahl anzeigen < 100 ms

Knopf1 Gedrückt Blinkende Sekunden Zahl anzeigen < 100 ms

Knopf2 Gedrückt Blinkende Stunden Zahl anzeigen < 200 ms

Knopf2 Gedrückt Blinkende Minuten Zahl anzeigen < 200 ms

Knopf2 Gedrückt Blinkende Sekunden Zahl anzeigen < 200 ms

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 16: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/16

Beispiel Hausalarmanlage

Komponenten der Anlage:

• Glasbruchmelder an jedem Fenster• Zwei PIR-Bewegungsmelder an jeder Hausseite• Unterbrechungsschalter an Haustür• Elektrisch steuerbare Rollläden an allen Fenstern• Haustür elektrisch verriegelbar• Gemeinsam schaltbare Scheinwerfer an allen Hausseiten und –ecken• Alarmsirene und –blinklicht neben Haustür• Aktivierbarer automatischer Telefonanrufer für max. 4 Rufnummern

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 17: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/17

Beispiel HausalarmanlageKontextdiagramm

PIR-Beweg.-melder

(8)

Glasbruch-melder

(8)

Haustür-unterbrechungs-

melder

Helligkeits-sensor

Bewohner Rolläden

Haustür

Scheinwerfer

Alarmsirene

Alarm-blinklicht

Telefon-automat

0SteuereAlarm-anlage

Steuerkom

mandos

Bew

. im H

aus

Statusinform

.

Einstellungen

Infrarot-Befehl

Infrarot-Status

Glasbruch-Status

Haustür-Status

Tageslich

t-Status

Glasbruch-Befehl

Haustür-Befehl

Tageslicht-Befehl

Schlie

ßen

Verriegeln

Scheinwerfer

Alarmsirene

BlinklichtTelefonwähler

Telefonnumm

ern

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 18: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/18

Statusinformationen

Tageslicht-Status

Bewohner im Haus

Voreinstellungen

Beispiel HausalarmanlageFD0

Steuerkommando

Infrarot-Status = Alarm

Haustür-Status = Alarm

Glasbruch-Status = Alarm

Einstellungen

4Benutzer-

dialogverwalten

2Sicherungs-maßnahmendurchführen

3Alarm-

maßnahmendurchführen

1Präventiv-

maßnahmendurchführen

Bewohner im HausTageslicht-Status

Beleuchtung

Telefonnummern

Telefo

nwäh

le

r

Sch

ließ

en

Scheinwerfer

Tonfolge

Lautsprecher

Bewohner im Haus

Tageslich

t-Status Beleuchtung

Scheinwerfer

Telefonnummern

Telefonwähle

r

Alarmsire

ne

Blinklicht

Bewohner im HausTageslicht-Status

Ver

riege

ln

Scheinwerfe

r

Schließen

Infrarot-BefehlGlasbruch-Befehl

Haustür-Befehl

Tageslicht-B

efehl

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 19: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/19

Beispiel HausalarmanlageRequirements Dictionary

Alarmsirene = [Ein|Aus]Blinklicht = [Ein|Aus]Bewohner_im_Haus = [Ja|Nein|im_Urlaub]Einstellungen = stiller_Alarm + TelefonnummernGlasbruch-Befehl = Glasbruch-Befehl_1 + Glasbruch-Befehl_2 +

Glasbruch-Befehl_3 + Glasbruch-Befehl_4 + Glasbruch-Befehl_5 + Glasbruch-Befehl_6 + Glasbruch-Befehl_7 + Glasbruch-Befehl_8

Glasbruch-Befehl_n = [Aktivieren|Deaktivieren ], n = 1, ... ,8Glasbruch-Status = Glasbruch-Status _1 + Glasbruch-Status _2 +

Glasbruch-Status _3 + Glasbruch-Status _4 + Glasbruch-Status _5 + Glasbruch-Status _6 + Glasbruch-Status _7 + Glasbruch-Status _8

Glasbruch-Status_n = [Alarm|kein Alarm], n = 1, ... ,8Wiederholungszyklus: 200 ms

Haustür-Befehl = [Aktivieren|Deaktivieren ]Haustür-Status = [Alarm|kein Alarm]

Wiederholungszyklus: 200 msTageslicht-Befehl = [Aktivieren|Deaktivieren ]Tageslicht-Status = [Ja|Nein]

Wiederholungszyklus: 200 ms

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 20: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/20

Beispiel HausalarmanlageRequirements Dictionary

Infrarot-Befehl = Infrarot-Befehl_1 + Infrarot-Befehl_2 + Infrarot-Befehl_3 + Infrarot-Befehl_4 + Infrarot-Befehl_5 + Infrarot-Befehl_6 + Infrarot-Befehl_7 + Infrarot-Befehl_8

Infrarot-Befehl_n = [Aktivieren|Deaktivieren ], n = 1, ... ,8Infrarot-Status = Infrarot-Status _1 + Infrarot-Status _2 +

Infrarot-Status _3 + Infrarot-Status _4 + Infrarot-Status _5 + Infrarot-Status _6 + Infrarot-Status _7 + Infrarot-Status _8 +

Infrarot-Status_n = [Alarm|kein Alarm], n = 1, ... ,8Wiederholungszyklus: 200 ms

Lautsprecher = [Ein|Aus]Scheinwerfer = [Ein|Aus]Schließen = [Ja|Nein]Statusinformation = Glasbruch-Status + Haustür- Status + Infrarot-StatusSteuerkommando = [Einschalten|Ausschalten|Voralarm_ausschalten|Alarm_ausschalten]Stiller_Alarm = [Ja|Nein]Telefonnummer = 4{Ziffer}12Telefonnummern = 1{Telefonnummer}4Telefonwähler = [Ein|Aus]Unterbrechungsmelder_Status = [Glasbruch-Status|Haustür-Status]Verriegeln = [Ja|Nein]

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 21: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/21

Beispiel HausalarmanlageCSpec 0

Infrarot-Status_1

Infrarot-Status_2

... Infrarot-Status_8

Bewegungsmelder-Status

Alarm - - - Alarm

- Alarm - - Alarm

- - Alarm - Alarm

- - - Alarm Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Glasbruch-Status_1

Glasbruch –Status_2

... Glasbruch –Status_8

Haustür-Status

Unterbrechungsmelder-Status

Alarm - - - Alarm

- Alarm - - Alarm

- - Alarm - Alarm

- - - Alarm Alarm

- - - - Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Kein Alarm

Ausgeschaltet

Aktiv

Voralarm AlarmUnterbrechungsmelder-Status = Alarm

Bewegungsmelder-Status = Alarm Unterbrechungsmelder-Status = Alarm

Steuerkommando =Voralarm ausschalten

Steuerkommando =Alarm ausschalten

Steuerkommando = Einschalten Steuerkommando = Ausschalten

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 22: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/22

Beispiel HausalarmanlageCSpec 0

Ausgeschaltet

Aktiv

Voralarm AlarmUnterbrechungsmelder-Status = Alarm

Bewegungsmelder-Status = Alarm Unterbrechungsmelder-Status = Alarm

Steuerkommando =Voralarm ausschalten

Steuerkommando =Alarm ausschalten

Steuerkommando = Einschalten Steuerkommando = Ausschalten

Eingabe Prozess

Zustand 1

Präventiv-maßnahmen durchführen

2

Sicherungs-maßnahmen durchführen

3

Alarm-maßnahmen durchführen

Ausgeschaltet 0 0 0

Aktiv 1 0 0

Voralarm 0 1 0

Alarm 0 0 1

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 23: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/23

Beispiel Hausalarmanlage FD1 „Präventivmaßnahmen durchführen“

Bewohner im Haus

Tageslicht-Status = Nacht

Scheinwerfer

Verriegeln

Schließen

1.n (3-9)n-ten

Melderverwalten

1.1Singuläre

Alarmmelderverwalten

1.2ErstenMelder

verwalten

Haustü

r-Befehl

Tageslicht-B

efehl

Infrarot-Befehl_1

Glasbruch-Befehl_1

Infrarot-Befehl_n

Glasbruch-Befehl_n

Eingabe Ausgabe Prozesse

Bewohner_im_Haus

Tageslicht-Status = Nacht

Ver-rie-geln

Schlie-ßen

Schein-werfer

Prozesse 1,2,n(3-9)

J J N N Aus 1

J N N N Aus 1

N J J J Aus 1

N N J N Aus 1

Pspec 1.1 Singuläre Alarmmelder verwalten Haustür-Befehl := Aktivieren Tageslicht-Befehl := AktivierenPspec 1.2 Ersten Melder verwalten Infrarot-Befehl_1 := Aktivieren Glasbruch-Befehl_1 := AktivierenPspec 1.n (3-9) n-ten Melder verwalten Infrarot-Befehl_(n-1) := Aktivieren Glasbruch-Befehl_(n-1) := Aktivieren

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 24: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/24

Beispiel Hausalarmanlage FD2 „Sicherungsmaßnahmen durchführen“

Bewohner_im_Haus

Tageslicht-Status = Nacht

Scheinwerfer

Lautsprecher

Beleuchtung

2.1Telefonwählen

Telefonwähler

Telefonnummern

Eingabe Ausgabe

Bewohner_im_Haus

Tageslicht-Status = Nacht

Schlie-ßen

Schein-werfer

Telefon wählen

J J N Ein 0

J N N Aus 0

N J J Aus 0

N N J Aus 0

Im Urlaub - J Aus 1

Pspec 2.1 Telefon wählen Telefonwähler = Ein; for (i=1; i<5; i++)

{get Telefonnummer (i) from Einstellungput Telefonnummer (i) to Telefonautomat

} Telefonwähler = Aus;

SchließenEinstellungen

Telefonnummern

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 25: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/25

Beispiel Hausalarmanlage FD3 „Alarmmaßnahmen durchführen“

Bewohner_im_Haus

Tageslicht-Status = Nacht

Scheinwerfer

Alarmsirene

Blinklicht

3.1Telefonwählen

Telefonwähler

Telefonnummern

Eingabe Ausgabe

Stiller Alarm

Bewohner_im_Haus

Tageslicht-Status = Nacht

Alarm-sirene

Blink-licht

Schein-werfer

Telefon wählen

J J J Aus Aus Ein 1

J J N Aus Aus Aus 1

J N J Aus Aus Aus 1

J N N Aus Aus Aus 1

N J J Ein Ein Ein 1

N J N Ein Ein Aus 1

N N J Ein Ein Aus 1

N N N Ein Ein Aus 1

Pspec 3.1 Telefon wählen Telefonwähler = Ein; for (i=1; i<5; i++)

{get Telefonnummer (i) from Einstellungput Telefonnummer (i) to Telefonautomat}

Telefonwähler = Aus;

EinstellungenTelefonnummern

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 26: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/26

Aufgabe 1

Fehleranalyse desAusschnitts einesRT-Modells einer Lagerverwaltung

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 27: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/27

Lösung

Kontext-Diagramm:- Prozess "verwalte Lager" hat keine Nummer. - Nichtssagende Bezeichnungen „Schnittstelle A“ und „Schnittstelle B“.

Balancing Kontext-Diagramm - Diagramm 0:- Datenfluss "b" fließt in Prozess 0 hinein, während im Diagramm 0 die Komponente "b1" das Diagramm verlässt und die Komponente "b2" von außen in das Diagramm hineinfließt. - Datenfluss "c" fließt in Prozess 0 hinein, ist aber ein interner Datenfluss im Diagramm 0. - Kontrollfluss "d" fließt in Prozess 0 hinein, seine Komponenten "d1" und "d2" im Diagramm 0 sind jedoch Datenflüsse.

Diagramm 0:- Datenfluss "b1" verlässt den Datenspeicher "Bestand" und fließt direkt zu einer externen Schnittstelle. - Datenfluss "f2" kommt aus einer Kontroll-Spezifikation. - Prozess "kontrolliere Ausgang" hat keine Nummer.

Aufgabe 1 Fehleranalyse des Ausschnitts eines RT-Modells einer Lagerverwaltung

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 28: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/28

Balancing Diagramm 0 - P-Spec 1.1:- Nummer der P-Spec "kontrolliere Eingang" als Verfeinerung von Prozess 1 "kontrolliere Eingang" ist 1.1. Richtig wäre P-Spec 1.

- Kontrollfluss "Bedingung" fließt in die P-Spec hinein.

- Kontrollfluss "i" aus Prozess 1 wird in der P-Spec nicht generiert.

- Datenfluss "Bestand" aus Prozess 1 wird in der P-Spec nicht gebildet.

Balancing Diagramm 0 - C-Spec 3:- Nummer der C-Spec ist 3. Richtig wäre 0.

- Im Diagramm 0 verlässt ein Datenfluss "f2" die C-Spec-Schnittstelle, während in der C- Spec ein Kontrollfluss "f" generiert wird.

- In der C-Spec wird der Kontrollfluss "g" als Aktion generiert. Im Diagramm 0 fehlt ein Kontrollfluss "g", der die C-Spec verlässt.

P-Spec 1.1: keine Fehler

C-Spec 3:- Am Zustandsübergang vom Zustand "wartend" zum Zustand "Ruhe" fehlt das Ereignis als Bedingung für den Zustandswechsel.

DD: keine Fehler

Aufgabe 1 Fehleranalyse des Ausschnitts eines RT-Modells einer Lagerverwaltung

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 29: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/29

Ein einfaches Softwaresystem steuert das Füllen und Leeren eines Tanks, indem es den Flüssigkeitsstand im Tank überwacht und die Ventile entsprechend öffnet und schließt.• Es gibt ein Einlass- und ein Auslassventil.• Jedes Ventil kann zwei Zustände einnehmen: geöffnet und geschlossen.• Das Einlassventil besitzt beim Öffnen eine Zeitverzögerung von 2 sec.• Der Bediener kann das gewünschte Flüssigkeitsniveau ins System eingeben, wenn der Tank leer ist.• Das System akzeptiert folgende Kommandos:

• Tank auf das gewünschte Niveau füllen (bei leerem Tank): Beim Füllen des Tanks wird das Einlassventil geöffnet und die Flüssigkeit strömt in den Tank ein, bis die vorgegebene Füllhöhe erreicht ist. • Tank leeren (bei vollem Tank): Das Entleeren des Tanks wird mit entsprechenden Auslassventilkommandos (Auf, Zu) gesteuert.

• Ein Geber meldet den aktuellen Flüssigkeitsstand des Tanks.

Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT Methode

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 30: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/30

Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT MethodeLösung: Kontextdiagramm

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 31: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/31

Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT MethodeLösung: FD0

1SetzeSoll-

Niveau

2Prüfe ob Tank voll

3Prüfe obTank leer

7SchließeEinlass-Ventil

6Öffne

Einlass-Ventil

5schließeAuslass-

Ventil

4Öffne

Auslass-ventil

Soll-Niveau

Ist-Niveau

Ist-Niveau

Tank leer

Tank voll

AV-SollstatusEV-Sollstatus

AV-Sollstatus

EV-Sollstatus

BedienerkommandoTank leer

Tank voll

Soll-Niveau

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 32: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/32

PSpec1; setze Soll-Niveau Speichere "vorgegebenes Niveau" im Speicher "Soll-Niveau" PSpec2; prüfe_ob_Tank_voll Issue LOOP IF Ist-Niveau >= Soll-Niveau THEN Generate Tank_voll; Exit; END IF; END LOOP; PSpec3; prüfe_ob_Tank_leer Issue LOOP IF Ist-Niveau = 0 THEN Generate Tank_leer; Exit; END IF; END LOOP; PSpec4; öffne Auslaßventil Issue Generate AV_Sollstatus = Auf; PSpec5; schließe Auslaßventil Issue Generate AV_Sollstatus = Zu; PSpec6; öffne Einlaßventil Issue Generate EV_Sollstatus = Auf; PSpec7; schließe Einlaßventil Issue Generate EV_Sollstatus = Zu;

Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT MethodeLösung: CSpec0

Tank leerSchließe Auslaßventil

Kommando „Tank leeren“Öffne AuslaßventilPrüfe ob Tank leer

Tank vollSchließe Einlaßventil

Kommando „Tank füllen“Öffne EinlaßventilPrüfe ob Tank voll

Kommando „Sollwert eingeben“Setze Soll-Niveau

1Tank ist leer

3Tank ist voll

2Tank wird gefüllt

4Tank wird geleert

Strukturierte Analyse /Realtime Modeling (SA/RT)

Page 33: Vorlesung Automatisierungsprojekte Seite 8/1 A C B a3 x e1 e2 a4 Zwiziwzrrg fdggg oi oiw Oihdshf öhjfsodf pweufr Pwoijdlkjdsljflj eiurowifr8 ifi Oiroiroiurouroufdjdljdlu

Vorlesung Automatisierungsprojekte Seite 8/33

Requirements Dictionary Tankanlage

Auf =* Ventilzustand *AV_Sollstatus = [ Auf | Zu ] * Sollstatus des Auslaßventils * Bediener_Kommando = [ Soll-Niveau_eingeben | Tank_füllen | Tank_leeren ]EV_Sollstatus = [ Auf | Zu ] * Sollstatus des Einlaßventils *Ist-Niveau = * aktuelles Flüssigkeitsniveau im Tank *Soll-Niveau = * Flüssigkeitsniveau, das beim Füllen des Tanks erreicht werden soll *Soll-Niveau_eingeben = * Eingabe des Soll-Niveaus der Flüssigkeit *Tank_füllen = * Füllen des Tanks *Tank_leeren = * Leeren des Tanks *Tank_voll = [ "WAHR" | "FALSCH" ]Tank_leer = [ "WAHR" | "FALSCH" ]Zu = * Ventilzustand *

Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT MethodeLösung: Requirements Dictionary

Strukturierte Analyse /Realtime Modeling (SA/RT)