Upload
romy-stillings
View
108
Download
0
Embed Size (px)
Citation preview
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?
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Vorlesung Automatisierungsprojekte Seite 8/26
Aufgabe 1
Fehleranalyse desAusschnitts einesRT-Modells einer Lagerverwaltung
Strukturierte Analyse /Realtime Modeling (SA/RT)
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)
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)
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)
Vorlesung Automatisierungsprojekte Seite 8/30
Aufgabe 2 Modellierung einer Tankanlagensteuerung mit der RT MethodeLösung: Kontextdiagramm
Strukturierte Analyse /Realtime Modeling (SA/RT)
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)
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)
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)