- Voraussetzungen
Zur Entwicklung, Untersuchung und Beschreibung ereignisgesteuerter Bewegungsabläufe
mit der Blockbibliothek Funktionsplan müssen folgende Voraussetzungen erfüllt sein:
- Basis-Software
Konzipiert als Erweiterungs-Blockbibliothek für
Simulink muß das Softwarepaket
MATLAB/Simulink installiert sein. Andere Zusatz-Blocksets oder
-Toolboxen sind für den Einsatz der Blockbibliothek Funktionsplan nicht erforderlich.
- Erweiterungs-Software
Zur Generierung von Echtzeitkode werden die
MATLAB/Simulink Zusatzsoftware
Simulink Coder
(früher: RTW, Real-Time Workshop), ein Kompiler für die Zielhardware und notwendige
Hardwaretreiber benötigt. Bei Einsatz PC-basierter Hardware wird der MATLAB Kompiler und
xPC Target
als Target Support und Hardwaretreiber-Bibliothek empfohlen.
- Vorkenntnisse
Der Anwender sollte Grundkenntnisse zur Bedienung von
Simulink besitzen.
- Aktivierung
Für die Verwendung der Zusatzbibliothek ist keine Installation im eigentlichen
Wortsinn notwendig. Nach der wie folgt beschriebenen Aktivierung sind die Blöcke
der FUP Blockbibliothek gleichberechtigt mit den standardmäßigen
Teilbibliotheken verfügbar.
2.1 Aktuellere Versionen von MATLAB/Simulink
Ein File slblocks.m bewirkt die automatische Aufnahme der Anwenderbibliothek
in die Simulink Blocksammlung. Nach Kopieren von Direkrorie "Fup_V32" an eine
beliebige Stelle der Festplatte und Erweiterung des MATLAB/Simulink Suchpfades
um mindestens "~/Fup_V32/BibV32" steht die Zusatzblockbibliothek Funktionsplan
zur Verfügung. Für ältere FUP Versionen ist "V32" gegen "Vxy" auszutauschen.
Andere sinnvolle Erweiterungen des Suchpfades sind in ReadMe.txt angegeben.
2.2 Ältere Versionen von MATLAB/Simulink
- Schritt 1
Nach dem Befehl "Unlock Library" im Menü "Edit" des Fensters der "Simulink Block Library"
kann die Ikone der Erweiterungsbibliothek Funktionsplan aus dem mitgelieferten,
geöffneten File "FUP_Bibxy.mdl" in das Fenster der "Simulink Block Library"
kopiert werden. Dabei steht "xy" für die Versionsnummer der Erweiterungsbibliothek. Nach
Positionierung der neuen Bibliotheksikone an gewünschter Stelle muß
Simulink
zunächst geschlossen werden, um die gesamte "Simulink Block Library" wieder zu sperren.
- Schritt 2
Im zweiten Schritt muß eine neu eingerichtete Direktory mit frei wählbarem Namen
in den MATLAB Suchpfad aufgenommen und mit den mitgelieferten Files *.dll geladen werden.
Die Anzahl dieser Files ist versionsabhängig und im mitgelieferten "readme.txt"
angegeben.
- Gesamtstruktur
Die Gesamtstruktur zur Modellierung eines Bewegungsablaufes setzt sich prinzipiell aus
den Teilen Funktionsplan - meist vorteilhaft in Teilfunktionspläne
zerlegt - , Prozeßmodell und Prozeßanpassung zusammen. Im
einfachsten Fall besteht das Prozeßmodell nur aus Einzelantrieben
(Bewegungszellen) zur Ausführung von Stellbewegungen.
In der Gesamtstruktur können außerdem typisch Schalter zur Steuerung des
Bewegungsablaufes (Auswahl von Varianten, Simulation von Fehlern etc.) sowie Blöcke
zur Anzeige und Datenspeicherung angeordnet sein.
- Funktionsplan/Teilfunktionspläne
Der gesamte Funktionsumfang einer Bewegungssteuerung kann grob in verschiedene
Betriebszustände unterteilt werden. Für jeden dieser Betriebszustände
wird ein Teilfunktionsplan entworfen. Jeder Einzelzustand der Teilfunktionspläne
kann einmalig pro Aktivierung über einen zugeordneten
Kommentarblock
(KB)
Steuerinformationen an die Einzelantriebe (Bewegungszellen) übermitteln.
Der Funktionsplan erhält einen Ereignisvektor (EV) von der
Prozeßanpassung. Ist der Funktionsplan in Teilfunktionspläne aufgeteilt, so ist
auch eine Aufteilung des Vektors EV in Teilereignisvektoren, die den
Teilfunktionsplänen zugeordnet sind, sinnvoll. Je nach Anwendungsfall kann der
Funktionsplan einen Zustandsvektor mit ausgewählten Zustandsinformationen
(ZV_FUP) an die Prozeßanpassung zurückliefern.
- Prozeßmodell / Einzelantriebe (Bewegungszellen)
Die vom Funktionsplan/Teilfunktionsplan durch
Kommentarblöcke
(KB)
übermittelten Steuerinformationen werden mittels
FUP_Variablenblöcken
(FUP_V)
von den Einzelantrieben (Bewegungszellen) empfangen und interpretiert. Die Bedeutung dieser
Steuerinformationen kann dabei in Abhängigkeit von den verwendeten Einzelantriebsmodellen
bzw. Modellen der Bewegungszellen unterschiedlich sein. Grundsätzlich können sowohl
Schaltinformationen (z.B. Start eines Rampengenerators mit vordefinierten Parametern),
als auch Parameter selbst (z.B. Anstieg und Endwert einer Rampe) vorgegeben werden.
Für die Prozeßanpassung müssen die Einzelantriebe (Bewegungszellen) einen
Zustandsvektor des Bewegungsablaufes (ZV_Pro) zur
Verfügung stellen. Typische Elemente dieses Zustandsvektors können z.B.
Soll- und Istwerte für Lage, Drehzahl und Beschleunigung sein.
- Prozeßanpassung
Die Prozeßanpassung bildet aus Vektor ZV_Pro und Vektor ZV_FUP
den Ereignisvektor (EV) bzw. die Teilereignisvektoren (EV_x). In
der Regel werden die Elemente von ZV_Pro in logischen Gleichungen verknüpft
(Nutzung der erweiterten Ereignisgeneratoren, z.B.
EGE_w) und die Elemente von ZV_FUP zum Start von
Zeitgebern (ZG) verwendet.
- Ereignistabelle
Die zum Weiterschalten im Funktionsplan notwendigen Ereignisse werden entsprechend
VDI/VDE Richtlinie 3684 in einer Ereignistabelle übersichtlich zusammengetragen.
- Fehlerbehandlung
Hinsichtlich der Programmierung und Beschreibung von Fehlerbehandlungsabläufen für
ereignisgesteuerte Bewegungsabläufe existieren grundsätzlich zwei Möglichkeiten:
- Spezieller Fehler
Kann ein spezieller Fehler nur an einer bestimmten Stelle im Funktionsplan auftreten und
ist bei entsprechender Reaktion ein Weiterarbeiten möglich, so ist es sinnvoll,
diesen Teilablauf in den vorhandenen Funktionsplan aufzunehmen.
- Allgemeiner Fehler
Für Fehler, die an beliebiger Stelle auftreten können und zum Abschalten
führen, steht der Block
Allgemeiner Fehlerzustand
(ZF)
zur Verfügung. Nach Aktivierung dieses Blockes und ereignisabhängiger
Verzweigung in unterschiedliche Fehlerfunktionsabläufe ist der Anfangszustand oder ein
beliebiger anderer sinnvoller Zustand erneut aktivierbar. Verzweigungen in
unterschiedliche Fehlerfunktionsabläufe in Abhängigkeit der vor dem Auftreten
des Fehlers aktiven Blöcke können mit Hilfe des Blockes
Fehlervorzustand
(FVZ)
über die Berechnung Boolscher Gleichungen erfolgen.
- Blockparametrierung
Jeder Block der
Blockbibliothek Funktionsplan
ist durch ein Blockkürzel gekennzeichnet. Durch die Nähe der graphischen
Darstellung zur
VDI /
VDE
Richtlinie 3684 und die Gestaltung der Ikonen der über
die Richtlinie hinausgehenden Blöcke, können diese Blockkürzel bereits nach
kurzer Einarbeitungszeit unsichtbar geschalten werden (nach Blockmarkierung Befehl "Hide Name"
im Menü Format). Damit wird der Informationsgehalt der graphischen Darstellung auf
den eigentlichen Funktionsinhalt des Bewegungsablaufes beschränkt.
- Auswahl
Wie in
Simulink
üblich können die Blöcke beliebig oft aus einer Bibliothek in ein neues
File kopiert werden. Hierzu wird der gewünschte Block, nach Öffnung der
Bibliothek durch Doppelklick auf die Bibliotheksikone, markiert und mit gedrückter
linker Maustaste in ein anderes Bildschirmfenster gezogen. Die Verbindung der Blockein-
und -ausgänge erfolgt anschließend ebenfalls mittels Maus. Die graphische Anordnung
der Blöcke, insbesondere bei Verzweigungen, ist nach individuellen Anforderungen frei
gestaltbar.
- Parametrierung
Nach Doppelklick auf einen Block öffnet sich ein für jeden Block spezielles
Eingabefenster mit
Blockname und Blockbeschreibung.
In diesem Fenster erfolgen die blockspezifischen Einstellungen, wie z.B. Vorgabe von
Zustandsnummer und Funktionsplannummer für Blöcke
ZX
(Allgemeiner Zustand),
einer Stringvariablen und eines Anfangswertes für Blöcke
FUP_V
(FUP_Variablenblock),
oder einer Zeit für Blöcke
ZG
(Zeitgeber).
Die ausführliche On-line
Blockhilfe
ist ebenfalls über dieses Fenster erreichbar. Dieser Hilfetext liefert alle notwendigen
Informationen zur Anwendung eines Blockes, wie z.B. Einsatzbedingungen, Angaben zu den Ein-
und Ausgängen oder Randbedingungen für Eingabeparameter.
- Standardblöcke
Auf die Gestaltung der Antriebe (Bewegungszellen) in
Simulink
wird an dieser Stelle nicht näher eingegangen. Hierfür stehen u.a. die
Blockbibliotheken Discete, Linear, Nonlinear und Power System Blockset zur Verfügung.
Im Zusammenhang mit der
Blockbibliothek Funktionsplan
ist der Einsatz bestimmter Standardblöcke typisch. Das geht auch aus den
11 Beispielen
hervor. Diese Standardblöcke und ihre Aufgaben sind:
- Mux: Zusammenfassen von Skalaren und/oder Vektoren zu Vektoren
- Demux: Vereinzeln von Vektoren zu Skalaren und/oder Vektoren
- Display: Zahlenwertanzeige für Skalare und Vektoren
- Scope: Aufnahme und Anzeige (Lupenfunktion) von Kurvenverläufen,
sowie Bereitstellung linearer Zeitablaufdiagramme für
Dokumentationszwecke
- Constant: Vorgabe von Skalaren und Vektoren für
Testzwecke und Schaltaufgaben
- Digitel Clock: Diskrete Zeitausgabe - Zählimpulse für
Zeitgeber
(ZG)
- Konnektoren: Unsichtbare Verbindung von Blockein- und
-ausgängen
- Manual Switch: On-line Umschaltung per Mausklick für
Testzwecke und Schalthandlungen
- Kommentarblock
Der
Kommentarblock
(KB)
kann als einziger Block der
Blockbibliothek Funktionsplan
in verschiedenen Erscheinungsformen auftreten:
- Ausschließlich Wertevorgaben
|
- Wertevorgaben und Kommentar
|
|
|
|
|
- Zustandsanzeige
Zur Anzeige aktiver Zustände eines Funktionsplanes stehen zwei Möglichkeiten
zur Verfügung:
- Anzeige aller aktiven Zustände eines Funktionsplanes
Hierbei entsteht der geringste Aufwand. Pro Funktionsplan wird ein mit der jeweiligen
Funktionsplannummer parametrierter Block
Aktive Zustände
(AZFx)
an einen
Display Block
angeschlossen. Dabei ist zu beachten, daß die Anzahl der angezeigten Zustände wegen
einer durch
Simulink
bedingten Einschränkung zur Zeit fest eingestellt werden muß. Die eingestellte
Anzahl von 7 Zustandsnummern kann nach Rücksprache verändert werden.
- Anzeige ausgewählter Zustände, auch unterschiedlicher
Funktionspläne
Hierfür müssen die interessierenden und über einen Block
Mux zu einem Vektor
zusammengefaßten Zustandsausgänge an den Eingang Vek_ZA des Blockes
Dekodierung Anzeige
(DA)
geführt werden. Dieser Block liefert am Ausgang ZA einen Vektor mit den
entsprechenden binären Zustandsinformationen und am Ausgang Anz_AkZu die Summe der aktiven
interessierenden Zustände. Durch den Eingang NrAkZu kann einer der aktiven Zustände
über seine Elementenummer im Vektor der interessierenden Zustände (beginnend
mit 1) ausgewählt und die zugehörige Funktionsplan- und Zustandsnummer
über die Ausgänge FN und ZN zur Anzeige gebracht werden.
- Test
Nach Entwurf und Programmierung eines Funktionsplanes muß zuerst ein statischer Test
ohne Prozeßmodelle und
Prozeßanpassung erfolgen. Andererseits sollten die für den
anschließenden dynamischen Test des Funktionsplanes verwendeten
Prozeßmodelle bereits ausreichend
geprüft sein.
- Statischer Test
Zur Durchführung statischer Prüfungen von Funktionsplänen ist die
Simulation von Ereignissen zum Weiterschalten im Funktionsplan durch Blöcke
Constant deren Elemente direkt während des Simulationslaufes
veränderbar sind oder über Blöcke Manual Switch mit
skalaren Blöcken Constant von fester Einstellung logisch
"0" und "1" an jeweils einem Eingang möglich.
Im ersten Fall kann eine Gruppierung der Ereignisse in Vektoren die
Übersichtlichkeit erhöhen. Die Zuführung des Ereignissignales zum Block
Ereignis
(EX)
erfolgt dann über Vereinzeln (Block Demux) und
Konnektoren, d.h. es sind nicht unbedingt soviele
Blöcke Constant notwendig bzw. sinnvoll wie Ereignisse zu
simulieren sind. Im zweiten Fall entspricht die erforderliche Anzahl der
Blöcke Manual Switch der Ereignisanzahl. Jeweils ebensoviele
skalare Blöcke Constant mit logisch "0" und "1" werden
zur Speisung der Manual Switch Eingänge benötigt.
Wärend der Prüfung sollten die Ereignisse unmittelbar nach einem Übergang
in einen neuen Systemzustand rückgesetzt werden. Mit dieser Vorgehensweise bleibt
der Überblick über das Gesamtsystem erhalten und aus dem Testlauf
resultierende Fehler werden vermieden. Für statische Tests ist die Einstellung
"Stop time" = inf im Menü Simulation/Parameters/Solver notwendig.
- Dynamischer Test
Zur dynamischen Prüfung von Funktionsplänen müssen die Ereignisse
aus dem zeitabhängig veränderlich verstandenen
Zustandsvektor des Bewegungsablaufes (ZV_Pro)
generiert werden. Dabei ist zu beachten, daß die Ereignissignale eine bestimmte
Mindestlänge aufweisen und ein rechtzeitiges Rücksetzen erfolgt.
Hierfür stehen die
Ereignisgenerator
-Blöcke
(z.B. EG_w) zur
Verfügung. Zwischen zwei Blöcken
Ereignis
(EX) mit dynamischen
Ereignissignalen ist ein Block
Ereignis
(EX) mit statischem
Ereignissignal zulässig. Auf diese Weise ist z.B. die Auswahl von Varianten
realisierbar. Hierfür, wie zur Bereitstellung von Start-/Stopumschaltern etc.,
können die unter Punkt statischer Test bereits erwähnten Blöcke
Manual Switch
mit skalaren Blöcken Constant von fester Einstellung logisch
"0" und "1" an jeweils einem Eingang sinnvoll eingesetzt werden.
- Kodegenerierung
Ab Version 3.0 sind auf Basis der Blockbibliothek Funktuionsplan programmierte
Bewegungssteuerungen in C übersetzbar. Damit kann bei Verfügbarkeit
entsprechender C Kompiler Echtzeitkode für unterschiedliche Hardwareplattformen
erzeugt werden. Der Nutzer muß lediglich die Bibliotheksfiles *.lib von
Funktionsplan in seiner Target Support Software anmelden. Vorhandene Make-Files
können weiter genutzt werden.
Unterstützt die Target Support Software die on-line Datenübertragung
zwischen Host und Target in beiden Richtungen, so bietet sich der Einsatz von
MATLAB/Simulink
zur Entwicklung von Bedienoberflächen an. In der Regel kann auch
weitgehend auf den Einsatz von Oszillographen verzichtet werden, da die Target Support
Software typisch umfangreiche Scope Funktionen zur Verfügung stellt. Erfolgt
dabei die Kommunikation innerhalb der konzipierten Bewegungssteuerung über ein schnelles
Bussystem, dann sind auf diese Weise z.B. auch geräteinterne Daten (z.B. von
Servoantrieben oder Steuerungen) parallel zu Ereignissen und
Prozeßzustandsgrößen visualisierbar.
Ein ganz oder teilweiser Schrittbetrieb kann durch Vorgabe der Ereignisse mittels
Simulink
standard on-line Schaltern
auch in Echtzeit erfolgen, wenn die Technologie des
Bewegungsprozesses das zuläßt. Technologisch und /oder gerätetechnisch
bedingt kann auch der Entwurf hierarchischer Systeme ausgeführt werden.
- Dokumentation
Eine Einführung mit Zusammenfassung von wesentlichen Eigenschaften und Anwendungshinweisen,
sowie Beschreibung ausgewählter Beispiele und Blockbeschreibungen in Tabellenform ist als
PDF Dokumentation zur obsoleten Version 2.3 verfügbar.
Wobei die Angaben in den Unterpunkten "Software" und "Installation" dieser PDF Dokumentation
dementsprechend nicht für die aktuelle Version 3.2 gültig sind - vgl. Info unter
"2. Aktivierung" oben.