|
FupCheck - Toolbox Funktionsplanprüfung
- alle Rechte vorbehalten -
Dr. Geitner ETI/TU Dresden |
Diese MATLAB-Toolbox ermöglicht die
Prüfung
graphisch mit der SIMULINK Erweiterungbibliothek
FUP
programmierter Funktionspläne zur Realisierung
ereignisdiskreter zeitkontinuierlicher
mehrdimensionaler Bewegungsabläufe.
Nach Prüfung mit dieser
Toolbox können die Funktionspläne
statisch
mit manual switch Blöcken
und
dynamisch
mit Prozeßmodellen unter Einschluß
digitaler Regler
(z.B. mittels
BOD
oder
EEZ
) getestet werden. Hieran schließt sich die
Generierung von
Echtzeit Maschinenkode
mit xPC Target (z.B. für embedded
controller) und die Laborerprobung.
Die Prüffunktionen der Toolbox stehen vorzugsweise über ein GUI, bei Bedarf
aber auch über m-File Scripte zur Verfügung. Die Scripte TEST_PARA, TEST_SYNT,
TEST_SACK, TEST_WEIT entsprechen funktionell den vier weiter unten beschriebenen
Teilprüfschritten und enthalten in geringem Umfang Anwenderdialoge. Das GUI wird
durch Eingabe von FupCheck am MATLAB Prompt aufgerufen und verwendet als
Anfangseinstellung die gültige Arbeitsdirektory.
Das GUI-Eröffnungsfenster bietet drei
Auswahlmöglichkeiten:
- Direktory-Auswahl mit Eingabe eines Pfades und Laufwerkswechsel
- File-Auswahl mit Wechsel im Verzeichnisbaum und vollständiger Anzeige
des Verzeichnisinhalts
- Funktionsplan-Auswahl mit Anzeige der Funktionsplannummer falls ein File
mehrere Funktionspläne enthält
folgende Einstellmöglichkeiten:
- Prüfschrittauswahl mit nachfolgender Auswahl von Parameter-, Syntax-,
Sackgassen- oder Rückführschleifenprüfung. Die Voreinstellung ist
Parameterprüfung.
- Vollständige Prüfung mit Vorgabe aller vier Teilprüfschritte.
Wird danach einer der Prüfschritte erneut geklickt, so erfolgt die Umschaltung auf
Teilschrittauswahl mit Vorgabe des ausgewählten Prüfschritts.
- Mit Kommentaren werden alle Analyse-, Hinweise- und Warnungsrückmeldungen
ausgegeben.
- Ohne Kommentare erfolgt nur die Ausgabe von Fehlermeldungen, wenn vorhanden,
und Prüfschrittabschluß.
und die Bedienfunktionen:
- Die Start-Taste löst die gewünschte Prüfvariante aus. Ein
neues GUI-Fenster öffnet sich. Diese Taste wird erst freigegeben, wenn
ein Funktionsplan ausgewählt ist. Nach Wechsel der Einstellmöglichkeiten
muß die Starttaste des
GUI Hauptfensters erneut betätigt werden.
- Die Hilfe-Taste führt zur Anzeige dieses Textes.
- Die Ende-Taste schließt das GUI nach einer
Sicherheitsabfrage.
Voraussetzungen für den Einsatz dieses Prüfwerkzeuges sind:
- Keine Vorgabe "Break Library Link" für FUP-Bibliotheksblöcke
- Keine Teilsystemnamen mit Namen von FUP-Blöcken definieren
- Keine Veränderung von Namen der FUP-Bibliotheksblöcke, Namensverlängerung zulässig
- Keine Blocknamen mit ENTER o.ä. abschließen
- Keine Verbindung von FUP-Teilsystemen mit Konnektorblöcken (Tags), FUP-
Teilsystemdefinitionen zulässig
- Keine "signal rounting blocks" innerhalb von FUP's, d.h. keine Mux, Demux, Goto, From ...
- Verwendung der Fileendung "mdl" für die Kodierung der Projektfiles (für aktuelle Version)
Prüfmöglichkeiten: Übersicht
| | Parameter | |
| | Syntax |
| | Sackgassen |
| | Rückführschleifen |
| | Vollständige Prüfung |
Prüfmöglichkeiten: Details
- Prüfschritt: Parameter
Im GUI-Unterfenster können beliebige
Kombinationen folgender Prüfungen eingestellt werden:
FN - |
Haben alle verwendeten Zustandsblöcke die
gleiche, im GUI-Hauptfenster
ausgewählte, Funktionsplannummer? Fehlerhafte Blöcke werden aufgelistet.
|
ZN - |
Haben alle verwendeten Zustandsblöcke des
ausgewählten Funktionsplanes eine andere Zustandsnummer?
Fehlerhafte Blöcke werden aufgelistet.
|
KB - |
Ist an allen Zustandsblöcken des ausgewählten Funktionsplanes
ein KB-Block angeschlossen und sind alle KB-Blöcke mit dem Ausgang
eines Zustandsblocks verbunden? Fehlerhafte Blöcke werden aufgelistet.
|
FVZ - |
Sind die im ausgewählten Funktionsplan verwendeten FVZ-Blöcke
richtig angeschlossen und parametriert?
|
- Anschluß am enable Eingang eines EX-Blocks
- Übereinstimmung von FN mit nachfolgendem Zustandsblock
- Verwendung einer FN von anderem FUP im Projekt
- Unzulässiger Anschluß an EX-Blöcke des Normalablaufs
- Unzulässiger Anschluß an EX-Blöcke nicht unmittelbar nach ZF-Block
- Verwendung von FVZ-Blöcken ohne Programmierung eines ZF-Blocks
- Fehlende FVZ-Blöcke an EX enable Eingang nach ZF-Block
FUV - |
Sind alle im Projekt in FUV-Blöcken verwendeten Variablen
auch in KB-Blöcken definiert?
Bei Freigabe der Kommentare im GUI-Hauptfenster
erfolgt eine Auflistung der vereinbarten Variablen und ein Hinweis auf
mehrfach von FUV-Blöcken empfangene Variablen.
|
VAR in KB - |
Sind alle im Projekt in KB-Blöcken verwendeten Variablen
auch in VAR-Blöcken definiert?
Für Variablen die nur ein einziges mal in einem KB-Block gesetzt werden
erfolgt eine Warnung.
|
ZN in FVZ - |
Werden alle Zustandsnummern des Normalablaufes
in der Fehlerbehandlung verwendet?
|
- Auflistung der Fehlerbehandlungszustände
- Fehlende Zustände des Normalablaufs
- Falsche - zur Fehlerbehandlung gehörige - Zustandsnummern
- Nicht existente Zustandsnummern
Insbesondere beim Kopieren von Teilabläufen zwischen verschiedenen Projekten,
sowie innerhalb eines Projektes in Subsystemen sind die FN- und ZN-Prüfung zu
empfehlen.
Der Umfang der Prüfergebnisausgabe wird im
GUI-Hauptfenster mit den
Kommentareinstellmöglichkeiten festgelegt.
- Prüfschritt: Syntax
Im GUI-Unterfenster kann zur Anzeige fehlerhafter
Verbindungen zwischen
"SIMULINK Blocknamen" (Voreinstellung) und "Blocktyp mit FN/ZN" umgeschalten
werden. Geprüft wird die Syntax nach VDI/VDE-Richtlinie 3684 "Beschreibung
ereignisgesteuerter Bewegungsabläufe mit Funktionsplänen":
Folgende Syntaxsonderfälle sind zulässig:
- Prüfschritt: Sackgasse
Geprüft wird die Existenz von Zustandskombinationen im ausgewählten Funktionsplan
die kein Weiterschalten mehr ermöglichen (sogenannnte Verklemmungen). Im
GUI-Unterfenster kann zwischen der Prüfung auf eine
erste Sackgasse (Eine Sackgasse
finden) und vollständiger Prüfung (Alle Sackgassen finden) gewählt werden.
Bei Freigabe aller Rückmeldungen (GUI-Hauptfenster:
Mit Kommentaren) wird die
jeweilige Anzahl der durch Reduktion bzw. Kompression eliminierten Zustandsübergänge
sowie die Anzahl danach untersuchter Zustände angezeigt. Mit Auswahl "Ohne Kommentare"
im GUI-Hauptfenster ist die Anzeige der
Kompressionsläufe nicht abschaltbar.
Die Ausgabe erkannter Sackgassen erfolgt zeilenweise anhand sortierter
Kombinationen von Zustandsnummern (ZN).
Beispiel - Für "
b3_ko2t.mdl
" mit FN=7 resultiert folgende vollständige
Ausgabe:
Schritt 1: Analyse von Funktionsplan 7
Anzahl der Zustandsblöcke{ZA, ZX, ZE, ZF} = 13
Zustandsnummer Anfangszustand(ZA) = 100
Schritt 2: Prüfung auf Sackgassen
Anzahl durch Reduktion eliminierter Zustandsübergänge: 1
Kompressionslauf 1: 1 Zustände eliminiert
Kompressionslauf 2: 2 Zustände eliminiert
Kompressionslauf 3: 1 Zustände eliminiert
Summe durch Kompression eliminierter Zustandsblöcke: 4
Anzahl der Zustandssackgassen dieses Funktionsplanes: 1
Zustandskombinationen =
30 31
Die Anzahl untersuchter Zustände beträgt: 120
Prüfung abgeschlossen!
- Prüfschritt: Rückführschleifen
Das GUI-Unterfenster enthält keine weiteren
Einstellmöglichkeiten. Geprüft
wird die Entkopplung von Rückführschleifen. Prinzipiell können Rückführschleifen
in jedem Simulations- bzw. Gleichungssystem zu arithmetischen Schleifen führen.
Bei Anwendung der SIMULINK Erweiterungsbibliothek FUP muß deshalb in jeder
Rückführschleife ein Block ZA (Anfangszustand) oder ZE (Zustand mit Entkopplung)
vorhanden sein.
Bei Freigabe aller Rückmeldungen (GUI-Hauptfenster:
Mit Kommentaren) werden die
Anzahl der Normalablauf- und Fehlerablaufrückführschleifen, die ermittelten
Rückführpfade insgesamt, sowie fehlerhafte Pfade angezeigt. Die Pfadausgabe
erfolgt zeilenweise in der Reihenfolge der zu durchlaufenden Zustandsnummern (ZN).
Beispielausgabe
Insgesamt wurden 3 Normalablauf- und 0 Fehlerablauf-Rückführschleifen ermittelt.
Ermittelte Rückführschleifen Normalablauf insgesamt:
--> |
100 | 11 | 13 |
2 | 3 |
--> |
13 | 2 | 3 |
12 |
--> |
100 | 4 | 2 | 3 |
Warnung: Folgende Normalablauf-Pfade enthalten mehr als einen Block ZE oder ZA!
Pfad1 | = |
100 | 11 | 13 |
2 | 3 |
Pfad2 | = |
13 | 2 | 3 |
12 |
Bei gestraffter Ausgabe (Auswahl: Ohne Kommentare im
GUI-Hauptfenster) erscheinen
nur fehlerhafte Pfade und eine Abschlußmeldung.
- Vollständige Prüfung
Das GUI-Unterfenster enthält keine weiteren
Einstellmöglichkeiten. Alle Prüfschritte
werden automatisch nacheinander ausgeführt. Folgende Voreinstellungen sind gültig:
- Parameter: Alle Teilprüfungen auswählen
- Syntax: SIMULINK Blocknamen verwenden
- Sackgassen: Eine Sackgasse finden
- Rückführschleifen: keine
Die Steuerung der Rückmeldungen über "Hinweise" im
GUI-Hauptfenster ist wirksam. Die
einzelnen Prüfschritte sind numeriert und weisen jeweils ein Endemeldung auf.