DVD-ROM zu Elektrische Meˇtechnik -...

47
Reinhard Lerch DVD-ROM zu Elektrische Meßtechnik – Analoge, digitale und computergest¨ utzte Verfahren – 6. August 2012 Springer Berlin Heidelberg NewYork Hong Kong London Milan Paris Tokyo

Transcript of DVD-ROM zu Elektrische Meˇtechnik -...

Reinhard Lerch

DVD-ROM zu ElektrischeMeßtechnik

– Analoge, digitale und computergestutzte

Verfahren –

6. August 2012

Springer

Berlin Heidelberg NewYorkHongKong LondonMilan Paris Tokyo

Inhaltsverzeichnis

1 Hinweise zur DVD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Installation von NI LabVIEW Student Edition . . . . . . . . . . . . . . . 11.3 Installation von Wago IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Weitere Links im Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Ubungen zur rechnergestutzten Meßdatenerfassung mitNI LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1 Kurzeinfuhrung in NI LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Benutzer- und Programmierfenster . . . . . . . . . . . . . . . . . . 52.1.2 Variablentypen, spezielle Cluster und Ein-/Ausgabe-

Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.3 Die Werkzeuge und Funktionen im Diagramm-Fenster . . 72.1.4 Strukturen und Hierarchien . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.5 Datentransfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.6 Eigenschaftsknoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Programmierbeispiele in LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.1 Variablentypen, Anzeigeelemente und polymorphe

Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.2 Charakterisierung von Meßfehlern . . . . . . . . . . . . . . . . . . . 122.2.3 Meßsignalverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Spektralanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 Spektrogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 LabVIEW-Programme zur Erlauterung wichtigerZusammenhange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.1 zu Kap. 3 — Laplace-Transformation . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1 Berechnung eines Bodediagramms . . . . . . . . . . . . . . . . . . . 173.2 zu Kap. 5 — Meßfehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2.1 Dichtefunktion der Student-Verteilung . . . . . . . . . . . . . . . 173.2.2 Berechnung der Tabelle zur Student-Verteilung . . . . . . . . 18

VI Inhaltsverzeichnis

3.3 zu Kap. 13 — Meßsignalverarbeitung . . . . . . . . . . . . . . . . . . . . . . . 203.3.1 Entwurf eines Optimalfilters . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 zu Kap. 14 — Regressionsrechnung und Test . . . . . . . . . . . . . . . . 233.4.1 Berechnung von Regressionsgeraden, Test auf lineare

Abhangigkeit von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4.2 Der Chi-Quadrat-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS) 274.1 Kurzeinfuhrung in die SPS-Programmierung . . . . . . . . . . . . . . . . . 27

4.1.1 Programme, Funktionen und Funktionsblocke . . . . . . . . . 284.1.2 Objektorientierte Programmierung . . . . . . . . . . . . . . . . . . 284.1.3 Die Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2 SPS-Programmierbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Programmieren einer realen SPS . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3.1 Informationen zur aufgebauten Hardware . . . . . . . . . . . . . 364.3.2 Aufgaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1

Hinweise zur DVD-ROM

1.1 Systemanforderungen

NI LabVIEW arbeitet nur mit einem Pentium 4/M oder einem vergleichbarenProzessor. Zur Installation der Minimalversion von LabVIEW sollten minde-stens 3,3GB Speicherplatz auf der Festplatte vorhanden sein.Betriebssystem: Windows XP, Vista oder Windows7Arbeitsspeicher: min. 1GB

1.2 Installation von NI LabVIEW Student Edition

Starten Sie setup.exe im Verzeichnis \LabVIEW\Installation_LV2011 undfolgen Sie den Anweisungen.

Wahlen Sie aus der Product List LabVIEW 2011 German. Wenn Sie Gerate-treiber installieren mochten, wahlen Sie auch noch NI Device Drivers aus undverweisen Sie bei der spateren Nachfrage auf das Verzeichnis\LabVIEW\DeviceDriver_LV2011. Von dort konnen Sie die wichtigsten Gerate-treiber auch jederzeit nachtraglich installieren. Es sei an dieser Stelle ausdruck-lich darauf hingewiesen, dass sich nur die Installationsdateien fur eine deutscheLabVIEW 2011 Version mit den wichtigsten Geratetreiber auf der DVDROMbefinden.

Ohne Aktivierung wird die Software als Demoversion installiert. Die Aktivie-rung der Software zu einer Studentenversion kann mit der mitgelieferten Seri-ennummer erfolgen (auf der DVD-ROM oder auf der DVD-Hulle aufgedruckt).Achtung: Nur auf einem Rechner moglich.

Kopieren Sie den Inhalt des Verzeichnisses \LabVIEW\Aufgaben\user.lib indas entsprechende Verzeichnis im Installationsordner von LabVIEW.

2 1 Hinweise zur DVD-ROM

1.3 Installation von Wago IO

Entpacken Sie den Inhalt von\SPS_codesys\wago_io_pro\WAGO_IO_PRO_Demo_Version.zip in ein temporaresVerzeichnis.

Starten Sie dort Setup.exe.

Sie werden durch die Installation von CoDeSys der Firma 3S - Smart SoftwareSolutions GmbH [11] gefuhrt. Wahlen Sie bei der Frage nach den zu installie-renden Komponenten die Standard-Einstellungen.

Im Programm-Menu entsteht ein Verzeichnisbaum, in dem sich das Hauptpro-gramm CoDeSys V2.3 befindet.

Falls mittlerweile eine aktuellere Version als die auf der DVD-ROM vorhandeneexistiert, konnen Sie diese bei der Firma 3S-Smart Software Solutions herun-terladen:

http://www.3s-software.com

Hinweis: Die *.pro-Files, die nun mit CoDeSys verknupft sind, sollten erstauf die Festplatte kopiert werden, bevor Sie gestartet werden, da einige Dateienin dasselbe Verzeichnis geschrieben werden mussen.

1.4 Weitere Links im Internet

Firma National Instruments:

http://www.ni.com

http://digital.ni.com/worldwide/germany.nsf/main?readform

Firma Wago:

www.wago.de

1.4 Weitere Links im Internet 3

Infos auf der Homepage des Lehrstuhls fur Sensorik:

http://www.lse.e-technik.uni-erlangen.de

Hier wurde eine eigene Seite fur dieses Buch eingerichtet, auf der aktuelle In-formationen und insbesondere die neuesten Beispiele zur LabVIEW- und SPS-Programmierung vorhanden sind:

http://www.lse.e-technik.uni-erlangen.de/elektrische_Messtechnik

2

Ubungen zur rechnergestutztenMeßdatenerfassung mit NI LabVIEW

2.1 Kurzeinfuhrung in NI LabVIEW

Es sei darauf hingewiesen, daß an dieser Stelle kein Uberblick uber die ge-samte Programmierumgebung von LabVIEW gegeben werden kann. Es sollenvielmehr die wichtigsten, hier verwendeten Befehle und genutzten Eigenschaf-ten von LabVIEW herausgestellt werden. Fur eine komplette Einfuhrung wirdauf die einschlagige Literatur verwiesen [2, 1]. Eine Kurzeinfuhrung gibt dasLabVIEW-Manual, das sowohl als Download [6] als auch auf der DVDROMunter \LabVIEW\LabVIEW_manual_2010.pdf zu finden ist.

2.1.1 Benutzer- und Programmierfenster

Nach dem Starten des Programms durch Doppelklick auf das Desktop-Iconwerden zwei Fenster angezeigt: Wie bei einem realen Meßgerat wird zwischenFrontplatte (Frontpanel) und Schaltung (Blockdiagramm) unterschieden. Aufder Frontplatte werden alle Anzeigen und Bedienungselemente plaziert, imSchaltungsdiagramm wird die Verdrahtung und die Ablaufsteuerung program-miert. Am Anfang sind beide Felder leer und man befindet man sich in derBetriebsart Entwurf (Edit). Nachdem alle benotigten Komponenten (Con-trols und Functions) in den jeweiligen Fenstern plaziert und verdrahtet sind,schaltet man in die Betriebsart Laufzeit (Run), um das entworfene Gerat zutesten und um die Messungen vorzunehmen.

In beiden Fenstern findet man im Menu Datei (File) die Moglichkeit, seinenEntwurf zu speichern oder ein bereits vorhandenes virtuelles Instrument (VI)zu laden. Außerdem konnen uber dieses Menu entworfene Diagramme oderauch grafische Darstellungen von Meßdaten ausgedruckt werden.

6 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

Abb. 2.1. Frontpanel mit einem Anzeigeelement und Blockdiagramm mit der ent-sprechenden Variablen

2.1.2 Variablentypen, spezielle Cluster und Ein-/Ausgabe-Elemente

Abb. 2.2. Funktionsmenu imFrontpanel

LabVIEW ist eine graphische Programmier-sprache. Das bedeutet, die Funktionen wer-den wie die Bauelemente in einem elektri-schen Schaltplan angeordnet und verdrah-tet. Die Verbindungen stellen die Variablen(wie sie aus der textuellen Programmierungbekannt sind) dar. Die Farben und Struk-turen dieser Verbindungslinien geben Auf-schluß daruber, welche Variable sich dahin-ter verbirgt. In Abb. 2.2 ist das Haupt-menu mit den Ein- und Ausgabeelementen,welche im Frontpanel zur Verfugung stehen,dargestellt. Fugt man eines dieser Elementein das Frontpanel ein, so wird automatischdie dazugehorige Variable im Diagrammfen-ster erzeugt.

Die wichtigsten Variablentypen in Lab-VIEW kann man folgendermaßen zusam-menfassen:

2.1 Kurzeinfuhrung in NI LabVIEW 7

Numerisch Es werden numerische Variablen mit unterschiedlicher Komple-xitat verwendet, von vorzeichenlosen Byte-Integer (U8) bis zu reell- undkomplexwertigen Fließkommazahlen mit hochster Genauigkeit (EXT undCXT)

Boolesch Logische Variablen werden grun dargestellt und konnen im Frontpa-nel als Knopfe, Schalter bzw. Taster fur die Eingabe und als LEDs, Warn-lampen usw. entsprechend Ausgabeelementen eingefugt werden.

String Strings konnen im Frontpanel als Texteingabe und -ausgabeelementeeingefugt werden. Die Befehle, die z.B. via GPIB-Bus an die Meßgerategeschickt werden, werden den entsprechenden VIs meist als String uber-geben. Im Funktionsmenu String stehen daher unter anderem Konvertie-rungsbefehle zwischen numerischen und String-Variablen zur Verfugung.String-Variablen werden im Diagrammfenster rosa markiert.

Array Die Farbe der Arrays richtet sich nach dem Variablentyp der Elemente.Im Gegensatz zu den skalaren Variablen erscheinen eindimensionale Arraysals fette Linien und mehrdimensionale Arrays als Doppellinien.

Cluster In Clustern konnen Variablen unterschiedlichen Typs zusammenge-faßt werden. Dies geschieht z.B. mit dem Befehl Bundeln (bundle) aus demFunktionsmenu Cluster. Mit dem Befehl Aufschlusseln (unbundle) kann einCluster in seine Bestandteile zerlegt werden.

Spezielle Datenformate Dabei handelt es sich um Datenformate, die ausder klassischen Programmierung nicht bekannt sind. Dazu zahlt das For-mat Signalverlauf (Waveform). Dabei handelt es sich um ein Cluster, inwelchem ein Vektor mit den Abtastwerten des Signalverlaufs und zwei ska-lare Werte zur Markierung des Anfangs (t0) des Signalverlaufs und desAbtastintervalls (∆T) abgelegt sind. Ein weiteres Datenformat ware derPfad (path), welches logischerweise den Pfad zu einer Datei beschreibt.

Dynamischer Daten-Typ (dynamic data type) ist eine noch komplexere Va-riable. Sie wird vor allem im Zusammenhang mit Express VIs verwen-det. Letztendlich handelt es sich dabei um ein Array aus Signalverlaufs-Clustern.

2.1.3 Die Werkzeuge und Funktionen im Diagramm-Fenster

In Abb. 2.3 ist das im Diagramm-Fenster zur Verfugung stehende Funktions-menu gezeigt. Man ruft diese Palette durch den Menupunkt Anzeigen / Funk-tionspalette auf. Durch Klicken auf die einzelnen Symbole gelangt man in dieUntermenus, in denen die Funktionen in mehreren Ebenen thematisch zusam-mengestellt sind.

Zunachst sind in den ersten beiden Reihen die Werkzeuge zur Bearbeitungder wichtigen Variablentypen Zahlen, Boolean, Strings, Arrays und Cluster.Weitere wichtige Funktionsmenus sind Signalverarbeitung zur Analyse von Si-gnalen im Zeit- und Frequenzbereich und Datei-I/O zum Lesen und Schreibenvon Meßdaten.

8 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

Auch selbstdefinierte VIs konnen so aufgerufen werden. Im Untermenu EigeneBibliothek konnen benutzerdefinierte VIs aktiviert werden. Diese mussen zuvorim LabVIEW-Unterverzeichnis user.lib abgelegt werden. Außerdem kann manim Untermenu VI auswahlen per Browser nach VIs suchen.

Abb. 2.3. Funktionsmenu imDiagramm-Fenster

2.1.4 Strukturen und Hierarchien

Abbildung 2.4 zeigt die wichtigsten Struk-turen in LabVIEW. Die Struktur Sequencebesteht aus einer Anzahl von Rahmen, dienacheinander abgearbeitet werden. Dabeikonnen Daten von einem Rahmen in einennachfolgenden ubermittelt werden, indemam Rand des Rahmens sog. lokale Sequenz-variablen eingefugt werden. Durch dieseStruktur konnen Programme ubersichtlichgestaltet werden, ohne sie gleich in SubVIszerlegen zu mussen.

Die Case Structure fuhrt in Abhangig-keit vom Inhalt der Eingangsvariablen einendiesem Inhalt zugeordneten Rahmen aus.Dabei kann es sich bei der Eingangsva-riablen sowohl um eine Boolesche Variablehandeln (TRUE-FALSE Abfrage bzw. IF ...THEN ... ELSE) oder um eine numerischeoder String-Variable.

Bei der FOR-Schleife (FOR Loop) wirdder Inhalt der Schleife N-mal ausgefuhrt.Die Anzahl N der Schleifendurchlaufe wirddurch eine Integervariable ubergeben. DieZahlvariable i innerhalb der Schleife lauft

Abb. 2.4. Sequence, Case Structure und For Loop

2.1 Kurzeinfuhrung in NI LabVIEW 9

dann von 0 bis N−1. Eine Besonderheit besteht darin, daß Variablen, die uberden Rand der Schleife gezogen werden, indiziert werden konnen. Das bedeu-tet, daß bei Aktivierung dieser Indizierung die Ergebnisse aus den einzelnenSchleifendurchlaufen automatisch zu einem Array zusammengefaßt werden.

Selbstverstandlich konnen in LabVIEW auch Hierarchien aus VIs und Sub-VIs aufgebaut werden. Soll ein VI in anderen Programmen als SubVI einge-bunden werden, so sollte man zunachst die symbolische Darstellung anpassen.Dies geschieht durch Rechtsklick auf das Symbol des VIs rechts oben im Front-panel und Auswahlen von Symbol bearbeiten (Edit Icon). Die im Frontpanelals Ein- und Ausgabeelemente definierten Variablen konnen als Anschlusse desVIs zur Variablenubergabe verwendet werden. Wahlt man nach Rechtsklick aufdas Symbol Anschluss zeigen (Show Connector), so wird ein Feld mit den de-

(a) Symbol anzeigen (ShowIcon)

(b) Anschluss anzeigen (ShowConnector)

Abb. 2.5. Durch Rechtsklick auf die symbolische Darstellung (Show Icon) des VIgelangt man zur Darstellung der Ein- und Ausgange (Show Connector)

finierten Anschlussen in der jeweiligen Farbe des Variablentyps angezeigt. Mitder Kabeltrommel konnen die Anschlusse den Bedien- und Anzeigeelementenzugewiesen werden.

2.1.5 Datentransfer

Fur die Sicherung der Meßdaten werden verschiedene Dateiformate unterstutzt.Die Express-VIs in Abb. 2.6(a) erzeugen spezielle LabVIEW Measurement Filesim ASCII-Format. Neben den eigentlichen Daten konnen noch Zusatzinforma-tionen abgespeichert werden.

Etwas einfacher in der Bedienung sind die Lese- und Schreibbefehle in Abb.2.6(b). Die VIs in der ersten Zeile ermoglichen das direkte Lesen und Speichernvon Waveform-Clustern. Mit den Spreadsheet-VIs konnen ein- und zweidimen-sionale numerische Arrays als Zeile oder Matrix in einem Text-File abgelegtwerden. Mit den Sound-VIs konnen Daten im bekannten .wav-Format gelesenund gespeichert werden, welches meist fur Audiodaten verwendet wird.

10 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

(a) Lese und schreibe LabVIEW Measure-ment Files

(b) Waveform Files,Spreadsheet Filesund Audio Ein- undAusgabe

Abb. 2.6. Lese- und Schreibbefehle der verschiedenen Dateitypen

2.1.6 Eigenschaftsknoten

Bei einigen Ein- und Ausgabeelementen muß u.U. eine Vielzahl von Parameterneingestellt werden. Beispielsweise sind das bei einem Signalverlaufsgraph (Wa-veform Graph) Achsenbeschriftungen, Skalierungen, Farben, Schriften usw.Uber das Frontpanel konnen diese Parameter durch Rechtsklick auf den Graphund Aufruf des Eigenschafts-Menus von Hand eingestellt werden. Allerdingssind diese Einstellungen dann schwer nachzuvollziehen.

Eleganter ist es, solche Parameter im Diagramm-Fenster zu programmie-ren. Durch Rechtsklick auf das Symbol des Anzeigeelements kann ein Eigen-schaftsknoten erstellt werden. Durch Rechtsklick auf diesen Eigenschaftsknotenwiederum konnen Anschlusse fur das Setzen und Auslesen der Eigenschaftenhinzugefugt werden und die zur Verfugung stehenden Eigenschaften aus Menusausgewahlt werden. In Abb. 2.7 sieht man, wie bei einem Signalverlaufsgraphdie Beschriftung der x-Achse vorgenommen wird.

Abb. 2.7. Graph-Anzeigeelement mit zugehorigem Eigenschaftsknoten

2.2 Programmierbeispiele in LabVIEW 11

2.2 Programmierbeispiele in LabVIEW

2.2.1 Variablentypen, Anzeigeelemente und polymorphe Funktionen

Polymorphe Funktionen sind eine Besonderheit an LabVIEW. Normaler-weise erwartet eine Funktion an einem Eingang einen ganz bestimmten Va-riablentyp. Wird der Eingang mit einem falschen Variablentyp verbunden, sofuhrt dies zu einem Fehler.

Polymorphe Eingange konnen dagegen mit unterschiedlichen Variablenty-pen verbunden werden und passen sich entsprechend an. Die algebraischenOperationen funktionieren z.B. sowohl mit skalaren, numerischen Eingangs-variablen als auch mit Arrays, sofern die Dimensionen so gewahlt sind, daßeine vernunftige Interpretation moglich ist. Die Multiplikation eines Arraysaus Zahlen mit einer skalaren Zahl fuhrt beispielsweise zur Multiplikation jedesElements mit der Zahl. Die Multiplikation zweier eindimensionaler Arrays istgleichbedeutend mit dem Skalarprodukt zweier Vektoren und ist naturlich nursinnvoll, wenn beide die gleiche Lange haben.

In der folgenden Aufgabe wird dies am Beispiel einer Graphikausgabe de-monstriert.

Aufgabe 2.1: Einlesen eines .wav-Files (readwav)

Es soll ein VI-entworfen werden, welches das Einlesen des Signalverlaufs eineswav-Files erlaubt. Dazu steht bereits die Funktion wav2vec1 zur Verfugung.Der Anwender soll den Pfad selbst eingeben konnen.

Die Funktion liefert ein Cluster, das Informationen uber Auflosung undAbtastrate enthalt. Man entschlussele dieses Cluster mit dem Befehl Auf-schlusseln (unbundle) aus der Cluster-Bibliothek und stelle den Inhalt alsInteger-Variablen zur Verfugung.

Der Signalverlauf soll visualisiert werden, wozu man das AnzeigeelementSignalverlaufsgraph (Waveform Graph) verwendet. Man beachte, dass dieseFunktion einen polymorphen Eingang verwendet. Es wird sowohl ein Vektorals Eingangssignal akzeptiert, als auch ein Cluster der Form Waveform. Manuberprufe den Unterschied, indem man aus den vorhandenen Informationenein Waveform-Cluster generiert. Das benotigt VI findet man in Signalverlauf /Signalverlauf erstellen.

1 Enthalt die .wav-Datei ein Stereosignal, so wird dieses in ein Monosignal umgewan-delt, so dass man auf jeden Fall einen Vektor als Ausgangssignal erhalt, wodurchweitere Fallunterscheidungen vermieden werden

12 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

2.2.2 Charakterisierung von Meßfehlern

Aufgabe 2.2: Erwartungswert und Streuung bei einer Widerstandsmessung

a) Die Dateien widerstandsmessung_x.txt enthalten Reihen von Meßwertenan einem Widerstand. Erstellen Sie ein Programm, welches die Auswahlder einzulesenden Datei erlaubt und die Meßwerte in einem Vektor ab-legt. Weiterhin soll der Erwartungswert x und die Schwankung s berechnetund ein Histogramm erstellt werden. Die zur Verfugung stehenden Dateienenthalten unterschiedlich viele Meßwerte und man erhalt so verschiedeneQualitaten der Schatzwerte und der Histogramme.

b) Desweiteren soll eine numerische Uberprufung der in Abschnitt 5.2.2 imLehrbuch

”Elektrische Meßtechnik“ dargestellten Zusammenhange durch-

gefuhrt werden. Es soll die Abhangigkeit der Schwankung sµ der Schatz-werte µ von der Anzahl N der aufgenommenen Meßwerte N (Probenlange)ermittelt werden. Bezogen auf die Schwankung sµ,0 der Mittelwerte vonStichproben mit N0 Meßwerten gilt

sµsµ,0

=

√N0

N. (2.1)

Verifizieren Sie diesen Zusammenhang. Erstellen Sie ein VI, welches ei-ne Menge gleichlanger Proben von Widerstandsmessungen an einem 1 kΩ-Widerstand uberlagert mit Gaußschem Rauschen simuliert. Der Anwendersoll die StichprobenlangeN und die Anzahl der herangezogenen Stichprobenvorgeben konnen. Stellen Sie das Ergebnis zunachst in der Form sµ = f(N)dar. Erzeugen Sie eine zweite Graphik, so daß das Ergebnis in Form einerGeraden dargestellt wird.

2.2.3 Meßsignalverarbeitung

Korrelationsmeßtechnik

Aufgabe 2.3: Ermittlung von Impulsantworten mittels Korrelationsmeßtech-nik

Abb. 2.8. Meßanordnung

2.3 Spektralanalyse 13

a) Abbildung 2.8 zeigt die Meßanordnung zur Ermittlung der Impulsantwortg(t) eines Systems mit Hilfe von weißem Rauschen. Zeigen sie mithilfe derFaltung y(t) = x(t) ∗ g(t) die Funktion des Systems.Ein solcher Aufbau zur Bestimmung der Impulsantwort soll nun in Lab-VIEW simuliert werden. Zunachst muß ein Rauschsignal mit einer Band-breite von 100 kHz und einer Signallange von 1 s erzeugt werden. Ein ent-sprechendes VI findet man im Funktionsmenu Signalverarbeitung / Signal-verlaufserzeugung. Der Anwender soll das System, dessen Impulsantwortbestimmt wird, auswahlen konnen. Er soll sich entscheiden konnen zwi-schen einem Tiefpaß und einem Hochpaß und es muß die Grenzfrequenzund der Grad einstellbar sein. Die Impulsantwort, die sich dann mithilfeder Kreuzkorrelation ergibt, soll graphisch dargestellt werden.

b) Variieren Sie das VI, indem Sie Express-VIs zur Erzeugung des Rauschensverwenden.

Aufgabe 2.4: Abstandsmessung mittels Kreuzkorrelation

In mehreren Experimenten ist ein breitbandiges Rauschsignal (Abtastfrequenzfa = 100kHz, Datei: rauschen_send.txt) mittels eines Lautsprechers ausge-sendet und die reflektierten Signale mit einem Mikrofon aufgenommen worden(rauschen_x.txt). Es soll ein VI erstellt werden, welches berechnet, in welcherEntfernung das Signal reflektiert worden ist. Es ist das in Abschnitt 13.7 desLehrbuches

”Elektrische Meßtechnik“ beschriebene Meßprinzip anzuwenden.

2.3 Spektralanalyse

Aufgabe 2.5: Anwendung der Diskreten Fourier-Transformation (DFT)

a) An dieser Stelle konnen wir das Ergebnis aus Aufgabe 2.1 erneut aufgrei-fen. Das eingelesene Signal soll mit der Funktion FFT2 in den Frequenz-bereich transformiert werden. Es interessiert nur der Betrag, so daß vomErgebnis-Vektor der Betrag gebildet werden kann. Man achte darauf, daßdie Frequenzachse und die Betragsachse korrekt skaliert werden.

b) Erstellen Sie eine weitere Version unter Verwendung des Express-VIs fur dieFourier-Transformation.

Aufgabe 2.6: Analyse stark verrauschter Signale

Die Dateien verrauschte_signale_x.wav enthalten Nutzsignale, die von star-kem, breitbandigem Rauschen uberlagert sind. Das in Aufgabe 2.5 erstellte VI

2 In LabVIEW erfolgt die Unterscheidung zwischen FFT und DFT automatisch. DasVI befindet sich im Funktions-Menu Signalverarbeitung / Transformationen

14 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

kann hier verwendet und ausgebaut werden. Neben der schon vorhandenen An-zeige des ungefilterten Zeitsignals und dessen Spektrum soll ein Schalter dasAuswahlen zwischen verschiedenen Filtertypen (Tiefpaß, Bandpaß...) ermogli-chen.

Unter der Annahme, daß es sich um Signale mit einer maximalen Signalfre-quenz von fs,max = 1 kHz handelt, soll ein entsprechendes Tiefpaßfilter einge-baut werden.

Fur den Fall, daß es sich um ein schmalbandiges 1 kHz-Signal handelt, istebenfalls ein entsprechendes Filter zu programmieren.

2.4 Spektrogramme

Die folgenden Aufgaben beschaftigen sich mit der Signalanalyse mittels Spek-trogrammen, d.h. der Auftragung des Spektrums uber der Zeit. Sie gehen uberden im Buch behandelten Stoff hinaus und sind als Erganzung gedacht. FurInformationen zu den hier verwendeten Begriffen wie Grains oder Granular-synthese sei auf die Literatur verwiesen [8].

Aufgabe 2.7: Spektrogramm eines Fledermaussignals

Hier sollen Spektrogramme von aufgezeichneten Fledermaussignalen erstelltwerden. Unter einem Spektrogramm versteht man eine Darstellung des Spek-trums uber der Zeit. Auch hier kann die Vorarbeit aus Aufgabe 2.1 ubernommenwerden.

Da man aus einem einzelnen Abtastwert kein Spektrum erstellen kann, wirddas Spektrum des um den Abtastwert liegenden, genugend kleinen Ausschnittsverwendet. Diese Ausschnitte werden als grains (Korner) bezeichnet.

Die Signale fledermaus_x.wav sind bereits in den Horbereich transponiertworden. Es steht das VI zerschneiden.vi zur Verfugung, welches das eindi-mensionale Zeitsignal Eingangs-Array in das zweidimensionale Ausgangs-Arrayumwandelt. Die Dimensionen dieses Arrays sind die Grain-Nummer und die Ab-tastwerte jedes einzelnen Grains. Die Zeitdauer eines Grains soll der Benutzerdabei selbst vorgeben konnen (typischerweise im Bereich von 50ms, so daß diekleinsten Frequenzen, die in einem Grain enthalten sein konnen, gerade nichtmehr gehort werden konnen). Als skalare Eingangsgroße muß die grainlaenge

angegeben werden. Die entstehenden Grains uberlagern sich um 50%.Danach muß von jedem Grain fur sich eine Fourier-Transformation durch-

gefuhrt werden. Die Ergebnisse sollten wieder in einem zweidimensionalen Ar-ray zusammengefasst werden.

Das entstandene Spektrogramm S ist eine zweidimensionale Funktion S =f(n, fn) in Abhangigkeit der Grain-Nummer n und der Frequenz fn. Die Dar-stellung dieser Funktion erfolgt am besten mit dem Intensity Graph, der denFunktionswert farblich kodiert uber den Eingangsvariablen darstellt.

2.4 Spektrogramme 15

Auch hier ist die Achsenbeschriftung wichtig. Da es sich beim IntensityGraph um eine sehr komplexe Funktion handelt, mussen diese Parameter ubereinen Eigenschaftsknoten (property node) eingestellt werden. Abbildung 2.9zeigt das Frontpanel der auf der DVDROM vorhandenen Losung. Es wird hierdas Spektrogramm des Signals verrauschte_signale_3.wav berechnet.

Abb. 2.9. Frontpanel zu Aufg. 2.7

Aufgabe 2.8: Frequenz- und Zeitskalierung eines Fledermaussignals

Aufbauend auf der letzten Aufgabe, bei der ein Audiosignal in einzelne Grainszerlegt worden ist, kann man nun noch die Grains zeitlich dehnen und so in derFrequenz verschieben, ohne das Signal an sich zeitlich zu skalieren. Dazu ist

16 2 Ubungen zur rechnergestutzten Meßdatenerfassung mit NI LabVIEW

bereits das VI skalierung.vi vorbereitet. Der Benutzer soll diese Verschie-bung im Frequenzspektrum (Frequenzskalierung) vorgeben konnen. Der logi-sche Eingang keep length? teilt dem VI mit, ob die Lange des Eingangsvektorsmitskaliert wird. Es ist darauf zu achten, daß auch das VI zerschneiden dieInformation uber den Skalierungsfaktor benotigt, um die Grainlange entspre-chend anzupassen. Die einzelnen Grains konnen dann mit dem VI synthese.viwieder zu einem Zeitverlauf zusammengesetzt werden.

Abschließend kann man nun noch das gesamte Signal zeitlich skalieren. Defi-nieren Sie dazu den Faktor (Zeitskalierung). Auch dieser Parameter soll vom Be-nutzer vorgegeben werden konnen. Hier kann wiederum das VI skalierung.viverwendet werden. Abbildung 2.10 zeigt das Frontpanel der auf der DVDROMvorhandenen Losung.

Abb. 2.10. Frontpanel zu Aufg. 2.8

3

LabVIEW-Programme zur Erlauterungwichtiger Zusammenhange

Die im Folgenden beschriebenen Programme befinden sich auf der DVD-ROMim Verzeichnis \LabVIEW\nach_Kapitel.

3.1 zu Kap. 3 — Laplace-Transformation

3.1.1 Berechnung eines Bodediagramms

Das Programm bode plot.vi ermoglicht die Erstellung eines Bodediagrammszu einer beliebigen linearen Ubertragungsfunktion. Die Ubertragungsfunktionwird definiert durch ihre Pole sp und Nullstellen sn sowie einen reellen Faktorf und wird nach der Formel

G(jω) = f

∏(jω − sn)∏(jω − sp)

(3.1)

berechnet. Es konnen reelle und komplexwertige Pole und Nullstellen definiertwerden. Von jedem komplexwertigen Pol- oder Nullstellenpaar muß nur einWert sn,p angegeben werden, der konjugiert komplexe Teil s∗n,p wird automa-tisch hinzugefugt. Abbildung. 3.1 zeigt die Programmoberflache. Es wurde ex-emplarisch das Bodediagramm zur Ubertragungsfunktion aus Abschnitt 3.13.1im Buch gewahlt, vergleiche dort Gl. 3.239 und Abb. 3.38.

3.2 zu Kap. 5 — Meßfehler

3.2.1 Dichtefunktion der Student-Verteilung

Mit dem Programm student density.vi kann die Student-Verteilung pt(z)berechnet und graphisch dargestellt werden. Fur z muß der Startwert, derEndwert und die Anzahl der Schritte eingestellt werden. Berechnet wird eine

18 3 LabVIEW-Programme zur Erlauterung wichtiger Zusammenhange

Abb. 3.1. LabVIEW-Programm zur Berechnung von Bode-Diagrammen

Kurvenschar mit der Anzahl der Freiheitsgrade n als Scharparameter. Fur nmuß der Startwert, das Inkrement sowie die Anzahl der insgesamt darzustellen-den Kurven eingegeben werden. Abbildung. 3.2 zeigt die Programmoberflache.Vergleichen Sie Abb. 5.3 im Buch.

3.2.2 Berechnung der Tabelle zur Student-Verteilung

Die Eintrage in Tab. 5.2 konnen mit dem Programm student table.vi nach-gerechnet werden. Es kann dort vorgegeben werden, fur welche Werte von nund fur welche Wahrscheinlichkeiten P die Tabelle angelegt werden soll. Es wer-den dann die Vertrauensfaktoren t und die bezogenen Vertrauensfaktoren t/

√n

berechnet. Fur die Berechnung muß das Integral uber die Wahrscheinlichkeits-dichtefunktion von Null bis zu einem Maximalwert cmax ausgewertet werden.Dieser Maximalwert muß großer gewahlt werden als der großte, in der zu be-rechnenden Tabelle vorkommende Vertrauensfaktor. Die Anzahl der Schrittegeht in die Genauigkeit ein, mit der die numerische Integration durchgefuhrtwird.

3.2 zu Kap. 5 — Meßfehler 19

Abb. 3.2. Berechnung der Student-Verteilungsfunktion

Abb. 3.3. Abhangigkeit des Vertrauensfaktors t von der Anzahl der Messungen nbei verschiedenen statistischen Sicherheiten P

20 3 LabVIEW-Programme zur Erlauterung wichtiger Zusammenhange

3.3 zu Kap. 13 — Meßsignalverarbeitung

3.3.1 Entwurf eines Optimalfilters

Die Abbildungen der Signale und Leistungsdichte-Spektren in Kap. 13 sindhauptsachlich mit dem Programm optimalfilter.vi angefertigt worden. Dieses

Abb. 3.4. Fenster mit den einzustellenden Parametern und dem resultierenden Meß-signal

Programm demonstriert den Entwurf eines Optimalfilters zu einem vorgegebenMeßsignal und einem Rauschsignal.Der Zeitverlauf des Meßsignals ist mit

x(t) = ε(t)

√2TS1

τe−t/τ (3.2)

fest vorgegeben. Es konnen allerdings die Zeitkonstante τ und der ParameterS1 frei gewahlt werden. Ebenso kann die Anzahl der Abtastwerte und die Ab-tastzeit dt eingestellt werden, woraus sich die Abtastdauer T ergibt (Abb. 3.4).Zur Definition des Rauschsignals kann zunachst einmal dessen spektrale Lei-stungsdichte S0 vorgegeben werden sowie die

”Anzahl der Mittelungen“. Diese

Mittelung dient dazu, das zu berechnende Optimalfilter zu glatten.Das Programm berechnet aus diesen Angaben die Ubertragungsfunktion desOptimalfilters Hopt sowie die Impulsantwort des nichtkausalen und des kausalenFilters hopt bzw. hopt,kausal. Weiterhin werden die Zeitverlaufe des gestortenSignals vor der Filterung (x(t) + n(t)) sowie nach der Filterung mit nichtkau-salem bzw. kausalem Filter (x(t) bzw. x(t)kausal) dargestellt.Besonders interessant ist die Tatsache, daß das Programm nicht nur weißesRauschen, sondern mittels einer Filterung auch farbiges Rauschen erzeugenkann. Man kann also beispielsweise dem Rauschen eher hoherfrequente oderniederfrequente Anteile geben und die Auswirkung auf die Ubertragungsfunk-tion des Optimalfilters und schließlich auf das gefilterte Signal beobachten. In

3.3 zu Kap. 13 — Meßsignalverarbeitung 21

Abb. 3.5. Erzeugung von hochfrequentem Rauschen

Abbildung 3.5 ist die Eingabemaske zu sehen, mit der die Filterung eingeschal-tet und die entsprechenden Parameter gesetzt werden. Im dargestellten Beispielwird mit einem steilflankigen Hochpassfilter hochfrequentes Rauschen mit ei-ner sehr hohen Leistungsdichte von 100V 2s jenseits von f = 50Hz erzeugt. DasLeistungsdichtespektrum ist ebenfalls dargestellt. Der Vergleich des gestortenEingangssignals und des gefilterten Signals in Abb. 3.6 zeigt, dass sich in diesemFall das Rauschen sehr schon entfernen lasst, da es in einem Spektralbereichliegt, in dem die Leistungsdichte des Meßsignals sehr gering ist.

22 3 LabVIEW-Programme zur Erlauterung wichtiger Zusammenhange

Abb. 3.6. Vergleich des gestorten Eingangssignals und des gefilterten Signals

3.4 zu Kap. 14 — Regressionsrechnung und Test 23

3.4 zu Kap. 14 — Regressionsrechnung und Test

3.4.1 Berechnung von Regressionsgeraden, Test auf lineareAbhangigkeit von Daten

Mit dem Programm berechne regressionsgerade.vi konnen zu beliebigenMeßdaten Regressionsgeraden berechnet werden. Die Daten mussen in Text-

Abb. 3.7. Berechnung von Regressionsgeraden

Files als x-y-Wertepaar zur Verfugung stehen. Einige Beispieldateien regres-sion x.txt sind im selben Verzeichnis wie das Programm abgelegt. Das Pro-gramm berechnet die beiden Regressionsgeraden y = f(x) und x = f(y). Au-ßerdem werden einige statistische Großen zu den Messdaten ermittelt (Abb. 3.7).Das Programm teste lin abh.vi pruft zusatzlich, wie wahrscheinlich eine li-neare Abhangigkeit der Daten ist, siehe dazu Abschnitt 20.2.2 im Buch.Zu erwahnen ist noch das Programm students t verteilung.vi, mit demAbb. 20.7. im Buch berechnet wurde.

3.4.2 Der Chi-Quadrat-Test

Zu dieser Thematik befinden sich drei weitere Programme auf der CDROM.Zunachst ware dies chi square density.vi, ein Programm, das die Dichtefunk-

24 3 LabVIEW-Programme zur Erlauterung wichtiger Zusammenhange

Abb. 3.8. Vertrauensgrenzen des χ2-Tests

tion der χ2-Verteilung als Kurvenschar mit dem Scharparameter n darstellt.Die Vertrauensgrenzen gemaß Abb. 20.6 im Buch konnen mit dem Programmchi square chart.vi nachgerechnet werden. In Abb. 3.8 sind die Vertrauens-grenzen fur die Signifikanzniveaus 5%, 1% und 0,1% eingezeichnet.Schließlich kann mit dem Programm chi square test example.vi ein vollstan-diger χ2-Test gemaß der Anleitung auf S. 607 durchgefuhrt werden. In die-sem konkreten Beispiel wird getestet, ob die Storung, mit der eine Reihevon Messdaten uberlagert ist, normalverteilt ist. Daten stehen in den Dateienwiderstandsmessung_x.txt in unterschiedlicher Anzahl zur Verfugung. DerAnwender muß lediglich den Dateinamen sowie die Anzahl der Klassen, indie die Daten unterteilt werden sollen, vorgeben (Abb. 3.9). Zunachst werdeneinige statistische Daten berechnet, u.a. die Anzahl der Werte, die in etwain einer Klasse liegen werden (sollte > 5 sein). Im Blockdiagramm sind dieeinzelnen Schritte, die bei der Durchfuhrung des Tests automatisch ablaufen,gekennzeichnet. Das Programm ermittelt dann die Klassengrenzen sowie dietatsachliche Anzahl der Werte in jeder einzelnen Klasse nei. Anhand der Nor-malverteilung werden dann die in jeder Klasse zu erwartende Anzahl von Wer-ten noi ermittelt. Anhand des daraus berechneten Wertes fur χ2 und der Anzahlder Freiheitsgrade nf kann mithilfe der Abb. 20.6 im Buch oder des Programmschi square chart.vi uber das Verwerfen der Hypothese entschieden werden.Im Beispiel in Abb. 3.9 liegt man mit χ2 = 5, 9 und nf = 8 in einem Bereich,in dem die Hypothese, daß die Daten normalverteilt sind, bestatigt wird.

3.4 zu Kap. 14 — Regressionsrechnung und Test 25

Abb. 3.9. Programm zur Durchfuhrung eines χ2-Tests

4

Ubungen zu SpeicherprogrammierbarenSteuerungen (SPS)

Mit der auf der CDROM zur Verfugung gestellten Programmier-Software Co-DeSys kann sowohl der Programmablauf eines SPS-Programms auf dem PC si-muliert als auch Programme in reale SPS-Steuerungen geladen und ausgefuhrtwerden.

Nach einer Kurzeinfuhrung in die SPS-Programmierung werden einige Pro-grammieraufgaben gestellt, die am PC simuliert werden konnen (Abschnitt 4.2).In Abschnitt 4.3 werden dann Beispiele gegeben, die an einer realen SPS aus-probiert werden konnen. Es kann dazu die am Lehrstuhl fur Sensorik [4] (Uni-versitat Erlangen-Nurnberg) vorhandene SPS uber das Internet programmiertund beobachtet werden.

4.1 Kurzeinfuhrung in die SPS-Programmierung

Folgende Programmiersprachen werden durch die IEC Norm 61131 definiert[5, 9]:

• Anweisungsliste AWL, instruction list IL• Strukturierter Text ST, structured text ST• Kontaktplan KOP, ladder diagram LD• Funktionsbausteinsprache FBS, function block diagramm FBD• Ablaufsprache AS, sequential function chart SFC

Auf die einzelnen Operatoren, Befehle und vordefinierte Funktionen soll hiernicht eingegangen werden. Wahrend der Programmierung konnen stets durchRechtsklick auf das Programmierfenster und Aufruf des Input Assistant, Ein-gabehilfe die zur Verfugung stehenden Moglichkeiten angezeigt werden. Sinddie Begriffe nicht selbsterklarend, so kann in der Kontext-Hilfe nachgeschlagenwerden.

Es erschien wichtiger, hier auf die Variablentypen, die Erstellung von Pro-grammen, Funktionen und Funktionsblocken sowie die damit verbundenenMoglichkeiten einer objektorientierten Programmierung einzugehen.

28 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

4.1.1 Programme, Funktionen und Funktionsblocke

Jedes Anwenderprogramm setzt sich aus Programmen, Funktionen und Funkti-onsblocken zusammen, welche als Programmorganisationseinheiten bezeichnetwerden. In der Programmierumgebung CoDeSys befinden sich alle diese Pro-grammorganisationseinheiten in dem Verzeichnisbaum im linken Fenster unterder Lasche Bausteine. Es muß auf jeden Fall ein Hauptprogramm definiert wer-den, welches mit PLC PRG bezeichnet wird. Diese Hauptprogramm wird beijedem Zyklusstart aufgerufen.

Alle Programmorganisationseinheiten bestehen aus einem Deklarationsteil,in dem die lokalen Variablen definiert werden, und einem Anweisungsteil, derden Programmcode enthalt. Eine Besonderheit ist, daß fur jede Programmor-ganisationseinheiten eine andere Programmiersprache verwendet werden kann.

Die einfachste Programmorganisationseinheiten ist sicher das Programm.In Programmen konnen globale Variablen (zu denen auch Klemmenvariablenzahlen) verandert und lokale Variablen definiert und verwendet werden, Pro-gramme besitzt aber weder Ein- noch Ausgange.

Funktionen konnen mehrere Eingangsvariablen haben, die im Deklarati-onsteil mit VAR INPUT bezeichnet werden, und eine Ausgangsvariable, welcheals Ruckgabewert der Funktion bezeichnet wird. D.h. die lokalen Variablen sindnach Abarbeiten der Funktion verloren.

Im Gegensatz dazu konnen Funktionsblocke auch interne Zwischenwer-te speichern. Außerdem konnen Funktionsblocke mehrere Ausgangsvariablenbesitzen, die im Deklarationsteil mit VAR OUTPUT definiert werden. DieseAusgangsvariablen werden sowohl aus den Eingangsgroßen als auch aus dengespeicherten Zwischenwerten berechnet.

4.1.2 Objektorientierte Programmierung

Mit der SPS-Programmierung ist zumindest in Ansatzen eine objektorientierteProgrammierung moglich, wie man sie von der Programmiersprache C++ kennt.Die objektorientierte Programmierung berucksichtigt drei Prinzipien:

Klasseneinteilung Module, die haufig vorkommen, werden in Klassen einge-teilt, um sie wiederverwendbar zu machen.

Vererbung Die automatische Kopie dieser Klassen zur Erzeugung individuel-ler Objekte nennt man Vererbung.

Methoden Auf die Variablen einer Klasse kann nur uber bestimmte Funktio-nen und Methoden zugegriffen werden

Mit den Funktionsbausteinen kann man die Klassen nachbilden. Die erzeug-ten Instanzen eines Funktionsbausteins entsprechen den Objekten einer Klasse.Die Instanzen konnen nur uber festgelegte Schnittstellen von außen manipu-liert werden. Dabei wird nur die ausgewahlte Instanz verandert, alle anderenInstanzen des Funktionsbausteins bleiben unberuhrt. Andert sich dagegen dieinnere Struktur eines Funktionsblocks, so wirkt sich das auf alle Instanzen aus.

4.2 SPS-Programmierbeispiele 29

4.1.3 Die Variablen

Die Variablen realisieren die Kommunikation zwischen den Programmorgani-sationseinheiten und den IO-Klemmen, also der Hardware. Man unterscheidetzwischen lokalen und globalen Variablen.

Globale Variablen werden mit dem Schlusselwort VAR GLOBAL deklariertund gelten ubergreifend in allen Programmorganisationseinheiten. Sie werdendaher als Ressource bezeichnet (zu finden in der entsprechenden Lasche deslinken Fensters). Dagegen gelten lokale Variablen nur in der Programmorgani-sationseinheit, in der sie definiert wurden.

Eine Variablendefinition besteht aus (siehe 4.1):

• Variablenname, im Beispiel A,B und C,• Datentyp, im Beispiel Boolsch,• ggf. Initialwert und• ggf. Adresse (fur Klemmenvariablen).

4.2 SPS-Programmierbeispiele

In folgendem Beispiel soll ein Funktionsbaustein und gatter schrittweise er-stellt werden.

1. Starten Sie das Programmiersystem CoDeSys und legen Sie im Menu Da-tei/Neu ein neues Projekt an.

2. Wahlen Sie in dem sich offnenden Fenster Zielsystem Einstellungen CoDe-Sys SP for Windows NT Realtime!

3. Wahlen Sie in dem sich offnenden Fenster neuer Baustein PRG PLC alsProgramm mit der Programmiersprache AWL! Hinweis: Es muß in jedemProjekt mindestens ein Programm PRG PLC geben. Dieses ruft die ein-zelnen Programme des Projekts nacheinander auf arbeitet als Task alleProgramme zyklisch ab.

4. Bevor das Programm PRG PLC konfiguriert wird, erstellen Sie ein zweitesProgramm. Gehen Sie hierfur mit der Maus auf das Fenster der LascheBausteine und betatigen Sie die rechte Maustaste und wahlen Sie Objekteinfugen!

5. Geben Sie in dem sich offnenden Fenster neuer Baustein und gatter alsName, Programm als Bausteintyp und FUP als Programmiersprache an!

6. Tragen Sie im Deklarationsteil dieses Programms zwischen den Schlussel-worten VAR und END VAR die Variablen A:BOOL; B:BOOL; und C:BOOL;ein (es ist wichtig die Zeilen mit Strichpunkt abzuschließen).

7. Klicken Sie mit der rechten Maustaste auf den Anweisungsteil des Funk-tionsplans und wahlen Sie Baustein aus! Es erscheint die Funktion AND.Durch Anderung des Textes AND kann auch eine andere Funktion wie z.B.OR, XOR, ADD, etc. eingetragen werden.

30 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

Abb. 4.1. Die Programmieroberflache von CoDeSys

8. Geben Sie an den Eingangen (typischerweise anfangs mit ??? belegt) dieVariablen A bzw. B ein!

9. Klicken Sie mit der Maus hinter das AND-Gatter und wahlen Sie mit derrechten Maustaste Zuweisung! Es erscheint eine Ausgangslinie mit ??? amEnde.

10. Tragen Sie am Ausgang statt ??? die Variable C ein!11. Geben Sie nun im Programm PRG PLC in der Zeile 001 des Anweisungs-

teils den Befehl CAL und_gatter auf, durch den das Programm und_gatter

von PRG PLC aufgerufen und abgearbeitet wird!12. Wahlen Sie im Menu Online / Simulation aus!13. Wahlen Sie im Menu Online / Einloggen aus! Dadurch wird das Programm

compiliert.14. Wahlen Sie im Menu Online / Start aus (oder Taste F5)!

4.2 SPS-Programmierbeispiele 31

15. Testen Sie das laufende Programm und_gatter, indem Sie in seinem De-klarationsteil per Mausklick TRUE statt FALSE fur die Variablen A und Beintragen und dies durch Anwahl des Menupunktes Online / Werte schrei-ben (oder durch die Tasten Strg F7) ein! Das Programm setzt dann dieVariable C auf TRUE.

16. Setzen Sie B wieder auf FALSE, wird C auch FALSE.17. Durch Online / Ausloggen verlassen Sie den Online-Modus und konnen Ihre

Software andern und erweitern.18. Speichern Sie Ihr Projekt mit Datei / Speichern z.B. unter dem Namen

MeinUndGatter.pro!

Nun soll das Ergebnis einer weiteren logischen Verknupfung in einer globalenVariablen abgelegt werden und der Verlauf mit der Trace-Aufzeichnung verfolgtwerden.

1. Wahlen Sie die Lasche Resources und offnen Sie den Ordner Global Varia-bles. Erstellen Sie eine Globale Variable TEST.

2. Erstellen Sie im Programm und_gatter ein weiteres network.3. Erstellen Sie einen operator, der die Verknupfung TEST=A OR B realisiert.4. Den Verlauf der globalen Variablen TEST kann man jetzt mit dem Trace-

Fenster (Lasche resources) verfolgen. Durch Rechtsklick auf das Fensterlasst es sich konfigurieren und die Variable TEST auswahlen. Man achtedarauf, daß auto read aktiviert ist und die it sample rate genugend langsameingestellt ist, um die manuell herbeigefuhrten Veranderungen zu verfolgen.

Aufgabe 4.1: Logische Verknupfung in verschiedenen Programmiersprachen

Es soll eine logische Schaltung programmiert werden. Ein Eingang (select) sollals Freigabe fur die Ausgange A0-A3 fungieren. Die binare Zahl, die durch zweiweitere Eingange E0,E1 reprasentiert wird, soll bei Aktivierung der Freigabeeinen von vier Ausgangen auswahlen.

a) Erstellen Sie zunachst eine Wahrheitstabelle.b) Schreiben Sie das Programm in ST.c) Konvertieren Sie das Programm in AWL (IL), KOP (LD) und FBS (FBD).

Aufgabe 4.2: Verwendung von Funktionsblocken

Es soll ein Funktionsblock erstellt werden, der den Satz des Pythagoras abbildetc2 = a2 + b2 mit den beiden Eingangen a und b und dem Ausgang c. Außer-dem soll an einem weiteren Ausgang das vorherige Ergebnis solange angezeigtwerden, bis sich das aktuelle Ergebnis andert.

a) Schreiben Sie den Funktionsblock in ST.b) Schreiben Sie ein Programm, welches den Funktionsblock mindestens zwei-

mal instanziert und uberzeugen Sie sich von der korrekten Speicherung dervorausgegangenen Ergebnisse.

32 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

Abb. 4.2. Globale Variablen und Trace-Aufzeichnung

Aufgabe 4.3: Simulation eines Helligkeitssensors

Es ist ein Programmrumpf vorbereitet, der in einem Unterprogramm eine Re-gelstrecke simuliert (regelstrecke.pro). Sie besteht aus einer Lampe, diedurch die globale Integer-Variable Beleuchtung symbolisiert wird, und einemHelligkeitssensor. Die hierzu gehorige Variable stellt den verstarkten Kurz-

4.3 Programmieren einer realen SPS 33

schlußstrom einer Photodiode dar. Desweiteren kann noch eine zusatzliche Be-leuchtung als Stoerung auftreten.

Schreiben Sie ein Programm, welches die Beleuchtung ein gewisses Inter-vall durchfahren lasst und betrachten Sie mithilfe der Traceaufzeichnung dieVariablen Beleuchtung und Helligkeitssensor. Uberprufen Sie auch die Auswir-kung der Stoerung, indem Sie diese Variable wahrend des Programmablaufesverandern (force, Funktionstaste F7).

Aufgabe 4.4: Beleuchtungsregelung

Fur die eben getestete Regelstrecke soll nun ein einfacher Regler program-miert werden. Es soll ein Sollwert vorgegeben werden konnen. Die Parame-ter, die den Regler beschreiben, sollen als Variablen definiert sein. BetrachtenSie auch hier mithilfe der Traceaufzeichnung die Variablen Beleuchtung undHelligkeitssensor. Uberprufen Sie auch die Auswirkung der Stoerung und derRegler-Parameter, indem Sie diese Variablen wahrend des Programmablaufesverandern.

4.3 Programmieren einer realen SPS

Mit der auf der CD-ROM mitgelieferten Software CoDeSys konnen Sie nichtnur den Programmablauf auf ihrem PC simulieren, Sie konnen Ihre Programmeauch auf eine am Lehrstuhl fur Sensorik der Universitat Erlangen-Nurnbergaufgebaute SPS laden und dort ablaufen lassen.

Sie haben dabei zwei Moglichkeiten den Programmablauf zu beobachten.Auf der einen Seite konnen Sie in CoDeSys die Klemmenvariablen mit dertrace-Funktion beobachten und aufzeichnen. Andererseits ist eine WebCaminstalliert, mit der Sie die aufgebauten Lampen und Leuchtdioden betrachtenkonnen.

Am einfachsten ist die Abfrage der WebCam. Sie verfugt uber einen Webser-ver, so daß Sie die Bilder mit Ihrem Web-Browser abrufen konnen. Rufen Sieeinfach die Seite http://131.188.140.203 auf und loggen Sie sich mit demLogin-Namen guest und leerem Paßwort ein. Sie sehen ein aktuelle Stand-bild der WebCam. Wenn Sie uber eine halbwegs schnelle Internet-Verbindungverfugen, konnen Sie im Java-Mode auch ein bewegtes Bild anzeigen lassen. Siekonnen auch uber die Adresse http://131.188.140.217/webserv/index.htmden Web-Server der WAGO-SPS aufrufen und gelangen uber Live Pictures zurWebCam. Abb. 4.3 zeigt das Bild der aufgebauten Hardware, wie sie mit derWebCam zu sehen ist. Auf die Sensoren und Anzeigeelemente wird im nachstenAbschnitt eingegangen.

Wenn Sie CoDeSys entsprechend den Installationsanweisungen in Kap. 1.3installiert haben und eine Verbindung zum Internet hergestellt haben, konnenSie sich direkt mit der SPS verbinden. Am einfachsten geschieht dies durchOffnen des vorbereiteten Projekts Konfiguration_SPS.pro

34 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

TemperatursensorNTC

OperationsverstärkerOPA2544

LampenLa1, La2

Photodiode

Vier Leuchtdioden

Temperaturwarnung

Abb. 4.3. Bild der WebCam mit Beschriftung der Hardware

Hinweis: Die *.pro-Files, die nun mit CoDeSys verknupft sind, sollten erstauf die Festplatte kopiert werden, bevor Sie gestartet werden, da einige Dateienin dasselbe Verzeichnis geschrieben werden mussen.

Nach dem Offnen sollten Sie zunachst die Kommunikationsparameter uber-prufen. Klicken Sie dazu im Menu Online auf Kommunikationsparameter... DasFenster muß einen Eintrag entsprechend Abb. 4.4 enthalten. Wichtig ist die IP-Adresse und der Port. Jetzt konnen Sie sich durch Klicken auf Einloggen mitder SPS verbinden. Sie werden gefragt, ob Sie den neuen Programmcode hoch-laden wollen, da sich normalerweise ein anderes Programm im Speicher der SPSbefindet. Die Frage sollten Sie also bejahen. Die Fenster der Programmcodesandern sich, wie das auch bei der Simulation der Fall war, und Sie bekom-men beispielsweise im Fenster Klemmenvariablen immer den aktuellen Wertan den Ein- und Ausgangsklemmen angezeigt. Abbildung 4.5 zeigt die Klem-menvariablen im ausgeloggten Zustand; die auskommentierten Angaben bezie-hen sich auf den jeweiligen Wertebereich der Analogklemmen. Abbildung 4.6zeigt das gleiche Fenster im eingeloggten Zustand, entsprechend mit dem Inhalt

4.3 Programmieren einer realen SPS 35

Abb. 4.4. Die Einstellung der Kommunikationsparameter fur die reale SPS

Abb. 4.5. Die in CoDeSys zu verwendenden Klemmenvariablen

der jeweiligen Variablen. Auf die Verbindung der Klemmen mit der Hardwarekommen wir spater noch zuruck. Auch hier konnen Sie, wie bereits in der Simu-lation gezeigt, Variablen durch Doppelklick

’von Hand‘auf einen bestimmten

Wert setzen. Klicken Sie dann im Menu Online auf Werte schreiben (Strg+F7)

36 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

Abb. 4.6. Die Klemmenvariablen im eingeloggten Zustand

bzw. Werte forcen (F7), um die Werte auf der SPS zu aktualisieren (SchaltenSie z.B. mit A0 eine Leuchtdiode um und beobachten Sie mit der WebCam, obdas wirklich funktioniert).

4.3.1 Informationen zur aufgebauten Hardware

Abbildung 4.7 zeigt die im Schaukasten aufgebaute SPS 750-841 von Wago, dieallerdings nicht von der WebCam gesehen wird. Die Ein- und Ausgange sindteilweise mit der Schaltung verbunden, die in Abb, 4.8 zu sehen ist und auchuber die WebCam beobachtet werden kann. Die dort vorhandenen Sensorenund Anzeigeelemente sind bereits in Abb. 4.3 dargestellt worden. Im folgendensoll noch auf die eigentliche Schaltung naher eingegangen werden.

Die komplette Schaltung ist in Abb. 4.9 gezeichnet. Zum besseren Verstand-nis werden die einzelnen Schaltungsteile nun getrennt erlautert.

4.3 Programmieren einer realen SPS 37

Abb. 4.7. Die am Lehrstuhl fur Sensorik aufgebaute SPS 750-841 von Wago [12] miteinigen IO-Klemmen

Abb. 4.8. Die mit der SPS gesteuerte Schaltung

38 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)5 5

4 4

3 3

2 2

1 1

DD

CC

BB

AA

10 k bei 60°C

47 k bei 25°C

I/U Converter

Comperator

mit Hysterese

Leistungs AMP

Spannungsfolger

+/- Spannungsversorgung

Relais

Temperaturfühler

Glühbirnen 24V

U ~ T

U ~ Evis

24V

0V

A1

A2

A3

A4

Usens

Utemp

12V

Ain 0

Ain 1

Regelstrecke LA1-D1

Störgröße LA2-D1

<D

oc>

1.2

Sch

au

kaste

n

A3

11

Monday,

Decem

ber

12,

2005

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

VC

C

-VD

D-V

DD

VC

C

-VD

D

VC

C

-VD

D

VC

C

-VD

D

-VD

D

-VD

D

-VD

D

-VD

D

-VD

D

-VD

D

-VD

D

R7 10k

K1

RS

253-4

145

34 5

68 7

1 2

R12

10k

R1

4,3

k

D7 LE

D

J1

123

J5

123

R19

10k

Q2

BC

548

J3

1 2 3

IC1D

TL084

12

13

4 11

14

J2

1 2 3

RV

1N

TC

_191-2

190

R20

15k

R16

10k

C8 100n

C9

47p

D9

1N

4148

R22

10k

J4

1 2 3

R21

2,4

k

R15

10k

R3

10k

R18

10k

R2

10k

R13

2,4

k

KL2

230V

1 2 3

R23

10k

R4

1

Q1

BC

548

R5

10k

D5

LE

D_bl

R8

1

D6 LE

D

R14

10k

D2

LE

D_ro

t

D8

1N

4148

D4

LE

D_gr

D1

BP

W34

C2

47p

C4 47u

C6 47u

R11

2,4

k

LA

1

12

C5 100n

C1

1nF

R26

10k

IC2

OP

A2544

2 1

3

10

7 8

9

5116

- +

OU

T

V-

P M

O

V+V--V++ R

25

10M

C3

100n

IC1B

TL084

56

411

7

C7

100n

R10

10k

R9

2,4

k

IC1C

TL084

10 9

4 11

8

D3

LE

D_ge

IC1A

TL084

3 2

4 11

1

R24

10k

R17

2k2

LA

2

12

R6

2,4

k

KL1

123

Abb. 4.9. Schaltbild der im Schaukasten des Lehrstuhls fur Sensorik aufgebautenHardware

4.3 Programmieren einer realen SPS 39

Die SPS wird mit 24V Spannung versorgt und benotigt zunachst nur diesemonopolare Quelle. Da fur einige Schaltungsteile und auch fur die analogenAus- und Eingange ein (in der Mitte liegendes) Bezugspotential notig ist, wirdzunachst die Schaltung zur Herstellung eines Massepotentials nach Abb. 4.10

R

R

GND

-12V

+12V

Abb. 4.10. Erzeugung des Massepotentials

benotigt. Sie besteht aus einem Operationsverstarker und einem symmetri-schen Spannungsteiler, der die 24V-Versorgungsspannung teilt. Der Operati-onsverstarker dient als Spannungsfolger bzw. Impedanzwandler, der niederoh-mig ein mittleres Potential erzeugt. Bezuglich dieses Bezugspotentials liegendie Potentiale der Spannungsversorgung auf +12V bzw. -12V, so daß man nunquasi eine symmetrische Spannungsversorgung zur Verfugung hat.

Die beiden analogen Ausgange A0analog und A1analog steuern zwei Gluh-

A0analog/ A1analog -12V

+12V

R

2V

-12V

Lampe1/2

Abb. 4.11. Ansteuerung der Lampen durch zwei analoge Ausgange

lampen uber jeweils eine Schaltung gemaß Abb. 4.11. Im wesentlichen kommtauch hier ein Spannungsfolger zum Einsatz, allerdings werden Leistungs-OPsbenotigt, die den Strom durch die Lampen treiben konnen (siehe Abb. 4.8).

40 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

Die Zenerdiode ist notwendig, um die Lampe komplett abdunkeln zu konnen,da das Intervall der analogen Ausgange nur von -10V bis +10V reicht.

Die Ansteuerung der vier Leuchtdioden ist denkbar einfach, da die digitalenAusgange den Strom durch die Leuchtdioden direkt treiben konnen. Es ist nur

A0-A3

-12V

R

Abb. 4.12. Ansteuerung der vier Leuchtdioden durch digitale Ausgange

ein Vorwiderstand gemaß Abb. 4.12 notwendig.Damit kommen wir zur Beschaltung der Eingange: Als Helligkeitssensor

wird eine Photodiode verwendet (siehe Abb. 4.13). Der Operationsverstarker

Phi

R

E0analog

Au

Abb. 4.13. Messung des Photostroms

wird hier als Strom-Spannungs-Wandler eingesetzt. Durch die Eingange desOperationsverstarkers wird die Photodiode quasi kurzgeschlossen. Der Photo-strom wird dann uber den Widerstand R im Ruckkopplungszweig verstarktund man erhalt die Ausgangsspannung

uA = RiPh . (4.1)

Die Eingangsvariable E0analog in der SPS enthalt bei Dunkelheit nahe-rungsweise den Wert 0, bei voller Beleuchtung wird der Eingang ubersteuert(> 10000).

Wie erwahnt werden fur die Ansteuerung der Lampen zwei Leistungs-OPs(OPA2544) verwendet. Die Temperatur dieser OPs wird mit einem Tempe-ratursensor NTC (Negative Temperature Coefficient) gemessen. Das Daten-blatt des Temperatursensors befindet sich auf der CD-ROM im Verzeichnis\SPS-Codesys\Hardware\NTC-Kennlinien.pdf. Die Aufbereitung des Signals

4.3 Programmieren einer realen SPS 41

R 3

-12VR 1 2R

+12V

-12V

+12V

+12V

NTC 2R

UT

-12V

R 4

-12V

Temperatur-warnung

E0

R 5

+12V

4R

E1analog

Abb. 4.14. Messung der Temperatur

erfolgt mit der Schaltung nach Abb. 4.14. Dort ist zunachst ein Spannungstei-ler bestehend aus dem NTC und dem Widerstand R1 = 15 kΩ vorhanden. Dererste Teil der Schaltung fuhrt diese Spannung UT uber einen Spannungsfolgerauf den analogen Eingang E1analog und kann in der SPS als analoges Tempe-ratursignal verwendet werden. Im zweiten Teil der Schaltung wird ein digitales(Schwellwert-)Signal erzeugt. Dazu wird die Spannung UT mit der Spannung ei-nes symmetrischen Spannungsteilers aus den Widerstanden R2 verglichen. DerWiderstand R3 versieht den Komparator mit einer kleinen Hysterese. Diese Hy-sterese kann auch im analogen Signal bei Uberschreiten der Schwellspannungvon ca. 6 V beobachtet werden. Der Ausgang des Komparators schaltet dannden Transistor, so daß bei Uberschreiten der Schwellspannung die LeuchtdiodeTemperaturwarnung aufleuchtet1. Außerdem wird hier der digitale Eingang E0angesteuert, so daß auch in der SPS das Aufleuchten der Temperaturwarnungregistriert werden kann.

4.3.2 Aufgaben

Losungsbeispiele zu den folgenden Aufgabenstellungen finden sich im Verzeich-nis \SPS_Codesys\Aufgaben. Fur das Erstellen eigener Losungen verwendenSie am besten den Programmrumpf Konfiguration_SPS.

1 Die Temperaturwarnung ist hier nur zu Ubungszwecken vorgesehen, kritische Tem-peraturwerte konnen nicht erreicht werden.

42 4 Ubungen zu Speicherprogrammierbaren Steuerungen (SPS)

Aufgabe 4.5: Beleuchtungsregelung

Es soll ein Programm ahnlich der simulierten Helligkeitsregelung in Aufg. 4.4geschrieben werden. Wie aus der Beschreibung der Hardware ersichtlich, wirddie Helligkeit uber der Eingang E0analog erfasst und kann mit den beiden Lam-pen uber die Ausgange A0analog und A1analog verandert werden. DefinierenSie eine Variable Sollwert als Sollwertvorgabe und schreiben Sie eine einfacheRegelung, die mittels einer der Lampen die Helligkeit nachfuhrt. Wahrend desProgrammablaufs konnen Sie die Regelung testen, indem Sie mit der anderenLampe als Storgroße eingreifen.

Aufgabe 4.6: Temperaturanzeige

Die Temperatur des Leistungs-OPs kann uber den Eingang E1analog in Formder Temperatur-Spannung UT erfaßt werden. Diese Temperatur wird naturlichdurch die Ansteuerung der Lampen beeinflußt. Man kann sich leicht uberlegen,daß die Temperatur in Folge der Verlustleistung am OP gering ist, wenn dieLampen aus bzw. auf maximale Helligkeit geschaltet sind. Andererseits stelltsich bei einer mittleren Helligkeit die hochste Temperatur ein (Ausprobieren!).

Schreiben Sie ein Programm, das die Temperatur mit den Leuchtdiodenvisualisiert (eine LED = niedrige Temp., vier LEDs = hohe Temp.). Sie konnenauch beim Erreichen der jeweiligen Temperatur die Lampen umschalten, so daßein Zyklus durchfahren wird.

Aufgabe 4.7: Helligkeitsanzeige

Schreiben Sie ein Programm, welches mit den Leuchtdioden eine Helligkeits-anzeige realisiert (eine LED = dunkel, vier LEDs = hell). Lassen Sie eineLampe das komplette Helligkeitsintervall durchfahren, um die Funktion desProgramms zu testen.

Aufgabe 4.8: Temperaturregelung

Man kann naturlich auch versuchen, die Temperatur des Leistungs-OPs einemvorgegebenen Wert nachzufuhren. Dazu muß eine ahnliches Programm wie inAufg. 4.5 geschrieben werden. Es ist allerdings darauf zu achten, daß die Tem-peratur wesentlich trager ist als die Helligkeit, entsprechend langsam muß dieNachfuhrung sein.

Literaturverzeichnis

1. Gorgi, W., Metin, E.: Einfuhrung in LabVIEW. Carl Hanser Verlag 2006. ISBN:3-446-40400-7

2. Jamal, R., Hagestedt, A.: LabVIEW Das Grundlagenbuch. 4., uberarbeitete Aufl.Verlag: Addison-Wesley, 2004. ISBN: 3-8273-2051-8

3. Lerch, R.: Elektrische Meßtechnik. 3. Aufl. Berlin, Heidelberg: Springer-Verlag2006.

4. Lehrstuhl fur Sensorik der Universitat Erlangen-Nurnberghttp://www.lse.e-technik.uni-erlangen.de

5. Neumann, P.; Grotsch, E.; Lubkoll, C.; Simon, R.: SPS-Standard: IEC 61131. 3.Aufl. Munchen, Wien: Oldenbourg Verlag 2000.

6. National Instruments Corporation: LabVIEW-Grundlagen Munchen 2005. http://www.ni.com/pdf/manuals/373427f_0113.pdf

7. Papoulis, A.: The Fourier Integral and its Application. New York: McGraw-Hill1987.

8. Raffaseder, H.:Audiodesign Leipzig: Carl-Hanser-Verlag 2002. ISBN 3-446-21828-9

9. Seitz, M.:Speicherprogrammierbare Steuerungen. Munchen, Wien: FachbuchverlagLeipzig 2003.

10. Tietze, U.; Schenk, Ch.:Halbleiter–Schaltungstechnik. 12. Aufl. Berlin, Heidelberg:Springer 2002.

11. Homepage der Firma 3S - Smart Software Solutions GmbHhttp://www.3s-software.com

12. Homepage der Firma WAGO Kontakttechnik GmbH & Co. KGhttp://www.wago.com