Mikrocontrollerprogrammierung mit EasyKit

Werbung
Programmieren von Mikrocontrollern mit EasyKit
© Festo Didactic GmbH & Co. KG
1
Mikrocontrollerprogrammierung mit EasyKit
Stand:
03/2010
Autoren:
Reinhard Pittschellis, Monika Bliesener
© Festo Didactic GmbH & Co. KG, 73770 Denkendorf, 2010
Internet: www.festo-didactic.com
E-Mail: [email protected]
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts verboten,
soweit nicht ausdrücklich gestattet. Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte
vorbehalten, insbesondere das Recht, Patent-, Gebrauchsmuster- oder Geschmacksmusteranmeldungen
durchzuführen.
Hinweis
Soweit in dieser Broschüre nur von Lehrer, Schüler etc. die Rede ist, sind selbstverständlich auch
Lehrerinnen, Schülerinnen etc. gemeint. Die Verwendung nur einer Geschlechtsform soll keine
geschlechtsspezifische Benachteiligung sein, sondern dient nur der besseren Lesbarkeit und dem
besseren Verständnis der Formulierungen.
2
© Festo Didactic GmbH & Co. KG
EasyKit
Inhaltsverzeichnis
Inhaltsverzeichnis ............................................................................................................................................ 3
Bestimmungsgemäße Verwendung ................................................................................................................. 5
1 Didaktische Hinweise .................................................................................................................................... 6
2 Einführung .................................................................................................................................................... 8
2.1 Historischer Rückblick ............................................................................................................................ 8
2.2 Anwendungen von Mikrocontrollern ...................................................................................................... 9
2.3 Funktionsweise von Mikroprozessoren .................................................................................................. 9
3 Kennenlernen von EasyKit........................................................................................................................... 12
3.1 Auspacken............................................................................................................................................ 12
3.2 Das Board mit dem Mikrocontroller ..................................................................................................... 12
3.3 Installation von EasyLab....................................................................................................................... 14
3.4 Installation des Lernprogramms Mikrocontroller ................................................................................. 14
4 Erste Schritte mit EasyLab........................................................................................................................... 15
4.1 Grundlagen: Signalarten ...................................................................................................................... 15
4.2 Grundlagen: Blockschaltbilder ............................................................................................................. 17
4.3 Funktionsblöcke in EasyLab - Datenflussdiagramme ........................................................................... 18
4.4 Bedienung von EasyLab ....................................................................................................................... 19
5 Variablen und Schrittketten ........................................................................................................................ 21
5.1 Variablen und Konstanten .................................................................................................................... 21
5.2 Schrittketten ........................................................................................................................................ 21
6 Logische Verknüpfungen ............................................................................................................................ 23
7 Programmieren mit Flip-Flops ..................................................................................................................... 24
7.1 Flankenerkennung................................................................................................................................ 24
7.2 Flip-Flops .............................................................................................................................................. 24
8 Binäre und Gleitkommazahlen .................................................................................................................... 26
8.1 Grundlagen: Binäres Zahlensystem und Gleitkommazahlen ................................................................ 26
8.2 Typumwandlung ................................................................................................................................... 27
8.3 Signalgenerierung ................................................................................................................................ 28
8.4 Multiplexer und Demultiplexer ............................................................................................................. 29
9 Analog-Digital-Wandler ............................................................................................................................... 30
9.1 Grundlagen: Phototransistor ................................................................................................................ 30
9.2 Grundlagen: Analog-Digital-Wandler.................................................................................................... 30
9.3 Analoge Eingangskanäle in EasyKit ...................................................................................................... 31
10 Ansteuerung von Gleichstrommotoren ..................................................................................................... 34
10.1 Grundlagen: Digital-Analog-Wandler.................................................................................................. 34
10.2 Grundlagen: Gleichstromotore ........................................................................................................... 35
10.3 Grundlagen Pulsweitenmodulierter Ausgängskanale......................................................................... 37
11 Schnelle Zählereingänge ........................................................................................................................... 38
11.1 Grundlagen: Lichtschranken .............................................................................................................. 38
11.2 Schnelle Zählereingänge .................................................................................................................... 38
12 Regelungstechnik mit EasyKit ................................................................................................................... 39
12.1 Grundlagen: Steuern und Regeln ....................................................................................................... 39
12.2 Reglertypen in EasyLab ...................................................................................................................... 43
13 Übersicht über die Funktionsblöcke in EasyKit ......................................................................................... 45
Arbeitsblatt 1 ................................................................................................................................................. 46
© Festo Didactic GmbH & Co. KG
3
Mikrocontrollerprogrammierung mit EasyKit
Arbeitsblatt 2 ................................................................................................................................................. 48
Arbeitsblatt 3 ................................................................................................................................................. 50
Arbeitsblatt 4 ................................................................................................................................................. 52
Arbeitsblatt 5 ................................................................................................................................................. 54
Arbeitsblatt 6 ................................................................................................................................................. 56
Arbeitsblatt 7 ................................................................................................................................................. 58
Arbeitsblatt 8 ................................................................................................................................................. 60
Arbeitsblatt 9 ................................................................................................................................................. 62
Arbeitsblatt 10 ............................................................................................................................................... 64
Arbeitsblatt 11 ............................................................................................................................................... 66
4
© Festo Didactic GmbH & Co. KG
EasyKit
Bestimmungsgemäße Verwendung
Der EasyKit Starter ist nur zu benutzen:
•
für die bestimmungsgemäße Verwendung im Lehr- und Ausbildungsbetrieb
•
in sicherheitstechnisch einwandfreiem Zustand
Die Komponenten des Pakets sind nach dem heutigen Stand der Technik und den anerkannten
sicherheitstechnischen Regeln gebaut. Dennoch können bei unsachgemäßer Verwendung Gefahren für Leib
und Leben des Benutzers oder Dritter und Beeinträchtigungen der Komponenten entstehen.
Das Lernsystem von Festo Didactic ist ausschließlich für die Aus- und Weiterbildung im Bereich
Automatisierung und Technik entwickelt und hergestellt. Das Ausbildungsunternehmen und/oder die
Ausbildenden hat/haben dafür Sorge zu tragen, dass die Auszubildenden die Sicherheitsvorkehrungen, die
in diesem Arbeitsbuch beschrieben sind, beachten.
Festo Didactic schließt hiermit jegliche Haftung für Schäden des Auszubildenden, des
Ausbildungsunternehmens und/oder sonstiger Dritter aus, die bei Gebrauch/Einsatz dieses Gerätesatzes
außerhalb einer reinen Ausbildungssituation auftreten; es sei denn Festo Didactic hat solche Schäden
vorsätzlich oder grob fahrlässig verursacht.
© Festo Didactic GmbH & Co. KG
5
Mikrocontrollerprogrammierung mit EasyKit
1 Didaktische Hinweise
Dieser Band ist Teil des Lernsystems EasyKit. EasyKit ist das Ergebnis eines vom Bundesministerium für
Bildung und Forschung geförderten Verbundprojektes, das das Ziel verfolgte, ein einfach handhabbares
System für die Erstellung von Embedded Controllern zu entwickeln.
Das Ergebnis war so positiv, dass das BMBF sich entschlossen hat, eine große Anzahl von Starterkits zu
finanzieren, welche dann an Schulen verteilt werden konnten. Das Ergebnis halten Sie nun in Händen.
Die Idee von EasyKit ist es, Steuerungen mit Mikrocontrollern nicht mehr aus einzelnen Chips aufzubauen
(was immer Experten erfordert), sondern diese einfach aus konfektionierten Bausteinen
zusammenzusetzen. Im Starterkit ist dies so realisiert, dass die Ein- und Ausgangsbeschaltungen des
Mikrocontrollers durch EasyKit-Bausteine einfach auf das EasyBoard aufgesteckt werden.
Ein einfacher Hardwareaufbau ist aber nur sinnvoll, wenn die Programmierung anschließend auch einfach
zugänglich ist. Nun kommt man beim Programmieren nie ohne irgendwelche Fachkenntnisse aus, aber bei
EasyLab – so heißt die Software, die im Rahmen des Projektes entstanden ist – kann man sich beim
Programmieren viel stärker auf die zu realisierende Aufgabe konzentrieren als auf Programmiertechniken,
weil EasyLab mächtige Funktionsbausteine zur Verfügung stellt, mit denen selbst Regelungstechnik relativ
einfach umsetzbar wird. EasyLab erlaubt die Programmierung von Schrittketten oder
Datenflussdiagrammen. Beide Beschreibungsverfahren sind in der Technik üblich, um Abläufe zu
beschreiben.
Dieses Arbeitsbuch enthält einen Theorieteil. Jedes Kapitel wird eingeführt durch die zugehörigen Lernziele
sowie einen Hinweis, welches Arbeitsblatt zum Kapitel gehört. Die Informationen sind zum einen
Basisinformationen, die ganz allgemeinen Charakter haben (z.B. Drehzahlmessung), zum anderen
spezifische Anleitungen, wie in EasyLab programmiert wird. Am Ende dieses Arbeitsbuches befinden sich die
Arbeitsblätter mit eingedruckten Lösungen (in rot). Diese Lösungen haben oft nur Vorschlagscharakter,
denn oft gibt es mehrere Möglichkeiten, ein technisches Problem zu lösen. Wenn die Lösung der Schüler die
Aufgabe erfüllt, ist diese richtig! Die in den Lösungen angesprochenen Beispielprogramme finden Sie
ebenfalls auf der CD.
Die Arbeitsblätter enthalten Verständnisfragen, welche dazu dienen, Wissen abzufragen und einzuüben, und
Aufgaben, die mit der Programmiersoftware EasyLab und dem EasyBoard gelöst werden müssen.
Die beiliegende CD enthält EasyLab. Sie dürfen die Software so oft installieren, wie sie möchten. EasyLab
verfügt über einen Simulationsmodus. Daher können die Schüler Ihre Lösungen auch ohne das EasyBoard
testen. Allerdings ist die Simulation nicht perfekt, das Zeitverhalten, das die Programme zeigen, wenn es auf
dem Mikrocontroller ausgeführt wird, kann nicht richtig wiedergegeben werden. Logische Fehler im
Programmablauf lassen sich in der Simulation aber gut finden und eliminieren.
EasyLab kann mit oder ohne Beispielprogramme installiert werden – dies können Sie während der
Installation entscheiden.
Ob sie die Theorieteile des Arbeitsbuches komplett oder teilweise ausdrucken und den Schülern zur
Verfügung stellen, bleibt Ihnen überlassen. Sie können die Schüler auch mit dem pdf des Buches arbeiten
lassen. Allerdings ist es nicht erlaubt, die Copyrightvermerke zu entfernen! Ob die Schüler sich die Inhalte
aus dem Buch selbst erarbeiten oder Sie als Lehrer diese vortragen, obliegt ebenfalls Ihrer Entscheidung.
Die Arbeitsblätter enthalten auf der ersten Seite immer einen sehr kurz gefassten Abriss des notwendigen
Theoriewissens (meist in Tabellenform), auf der zweiten Seite die Aufgaben.
Weiterhin enthält die mitgelieferte CD ein Lernprogramm, das Sie ebenfalls beliebig oft installieren dürfen.
Es führt in anschaulicher Form in die Thematik ein und erläutert, was Mikrocontroller sind, wozu sie benötigt
werden und wie Sie funktionieren. Das Lernprogramm ist allerdings keine Einführung in das Programmieren
6
© Festo Didactic GmbH & Co. KG
EasyKit
mit EasyLab. Die Lernzeit beträgt ca. 45 min.
Alle Erläuterungen in diesem Buch gehen davon aus, dass die Schüler grundlegende Kenntnisse in der
Bedienung eines PC mitbringen. Begriffe wie Anklicken, Ziehen, Fenster oder Menue sollten den Schülern
vertraut sein.
Ein möglicher Unterrichtsverlauf könnte also folgendermaßen aussehen:
1. Einführung in das Thema durch Leitfragen
o Wo werden Mikrocontroller eingesetzt?
o Wer nutzt Mikrocontroller?
o Wer stellt sie her?
o Wer programmiert sie?
2. Die Schüler können dann individuell (z.B. als Hausaufgabe) das Lernprogramm bearbeiten
3. Einführung in die grundsätzliche Arbeitsweise durch Vorführung, am besten mit PC mit EasyLab, Beamer
und einem EasyBoard
4. Dann können die Schüler in kleineren Gruppen die Arbeitsblätter bearbeiten. Dabei können Sie als
Lehrer jeweils eine kleine Einführung in die jeweils notwendigen Wissensgebiete geben oder die Schüler
das selbst erarbeiten lassen. Wenn die Schüler selbst das Wissen erarbeiten, können sie anschließend
die Ergebnisse der Gruppenarbeit präsentieren.
Dazu benötigen die Schüler auf jeden Fall einen PC mit EasyLab und natürlich die Arbeitsblätter. Falls
nicht genügend EasyBoards für jede Gruppe zur Verfügung stehen, können die Schüler zunächst ihr
Programm im Simulationsmodus testen. Wenn es in der Simulation zufriedenstellend arbeitet, können
sie eines der EasyBoards nutzen und das Programm real testen.
Die Arbeitsblätter sind so gestaltet, dass eine Doppelstunde zur Bearbeitung ausreichen sollte (jeweils mit
kurzer Einführung, eigenständiger Bearbeitung und Test mit dem EasyBoard).
Über die Aufgabenstellung der Arbeitsblätter hinaus können viele weitere Aufgaben mit EasyKit gelöst
werden. Alle mitgelieferten Aufgaben beziehen sich nur auf das EasyBoard und das Applikationsboard.
Natürlich können auch andere Hardwarekomponenten mit EasyKit gesteuert werden. So lassen sich
natürlich Taster, Schalter, Sensoren, Lampen, LED’s und viele andere Dinge mit EasyKit steuern. Diese
müssen Sie dann aber selbst beisteuern. Wollen Sie mit Mehr Ein- und Ausgangskanälen arbeiten, kann das
EasyBoard durch weitere Bausteine erweitert werden, so dass insgesamt bis zu 4 digitale Eingangskanäle, 4
digitale Ausgangskanäle, 4 analoge Eingangskanäle sowie 4 analoge Ausgangskanäle zur Verfügung stehen.
Es sit möglich, das EasyBoard konventionell mit C++ zu programmieren. Der entsprechende Compiler und
die notwendige Toolchain wird mit EasyLab installiert. Auf der CD ist ein File „easykit-starter-c.pdf“
enthalten, dass die Vorgehensweise beim Programmieren mit C knapp darstellt. Allerdings ist dies eher für
Experten empfehlenswert. EasyKit ist eigentlich zur Programmierung mit Easylab gedacht.
Nun wüschen wir Ihnen viel Erfolg mit Ihrem EasyKit Starter!
© Festo Didactic GmbH & Co. KG
7
Mikrocontrollerprogrammierung mit EasyKit
2 Einführung
2.1 Historischer Rückblick
Bereits im 16. Jahrhundert haben sich Mathematiker mit dem Entwurf von Rechenmaschinen beschäftigt. So
hat Gottfried Wilhelm Leibniz um 1670 eine Rechenmaschine konstruiert, die nicht nur addieren und
subtrahieren, sondern auch multiplizieren und dividieren konnte. Diese Maschine war sehr kompliziert und
konnte erst in unserer Zeit tatsächlich hergestellt werden. Im 16. Jahrhundert waren noch keine Maschinen
verfügbar, die die mechanischen Einzelteile mit der benötigten Präzision herstellen konnten. Die Maschine
hat aber tatsächlich funktioniert. Sie basierte im Übrigen bereits auf dem von Leibniz endeckten binären
Zahlensystem.
Die ersten Computer wurden Ende des zweiten Weltkrieges entwickelt, basierten zunächst auf Relais, dann
Elektronenröhren. Sie waren sehr teuer, sehr groß und ausschließlich von Spezialisten zu bedienen.
Kennzeichnend für diese Computer war und ist die von-Neumann-Architektur. Diese ist gekennzeichnet von
einer schrittweisen Befehlsausführung und die Verwendung binärer Zahlen. Daher sind bis heute die
Taktfrequenz (d.h. die Anzahl der pro Sekunde ausgeführten Befehle) und die Anzahl der gleichzeitig
bearbeitbaren Bits (binary digit – 0 oder 1) die wichtigste Leistungsmerkmale aller Computer geblieben.
Eine Taktfrequenz von 1 MHz bedeutet z.B., dass pro Sekunde 1 Million Befehle ausgeführt werden. Spricht
man von einem 8 Bit Prozessor, bedeutet das, dass der Mikroprozessor in einem Rechenschritt 256
verschiedene Zahlen unterscheiden kann. In den Computerwissenschaften wird beim Zählen üblicherweise
mit Null begonnen, so dass ein 8-Bit Mikroprozessor also Zahlen zwischen 20 (=0) und 28-1 (=255)
unterscheiden kann.
1949 wurde der Transistor erfunden. Mit dem Transistor ist ein kontaktloses Schalten wie bei der
Elektronenröhre möglich. Der Transistor ist aber viel kleiner, verbraucht weniger Strom und ist zuverlässiger
als eine Röhre. 1961 gelang, mehrere Transistoren auf einem Siliziumchip unterzubringen und damit den
Platzbedarf und Stromverbrauch nochmals zu verringern. Diese integrierten Schaltkreise waren die
Grundvoraussetzung für die preiswerte Massenproduktion von Computern, die bereits 20 Jahre späte
einsetzte.
Nur 10 Jahre später, also 1971, konnte man bereits die komplette CPU (Central Processing Unit Rechenwerk) eines Computers auf einem Chip unterbringen. Damit war der Mikroprozessor geboren.
Der erste Mikroprozessor (der 4004 von Intel) hatte ein nur 4 Bit breites Rechenwerk und eine Taktfrequenz
von unter einem Megahertz und war entsprechend leistungsschwach. Moderne Mikroprozessoren haben ein
32 oder 64 Bit Rechenwerk und arbeiten mit Taktfrequenzen über 1 GHz, d.h. es werden mehr als eine
Milliarde Befehle pro Sekunde ausgeführt. Solche Mikroprozessoren übertreffen die Leistung vieler
Großcomputer der Vergangenheit um ein Vielfaches.
Es ist naheliegend, Mikroprozessoren auch für Steuerungszwecke einzusetzen. Dabei müssen
typischerweise digitale oder analoge Signale von Sensoren oder Tasten gelesen und an Aktuatoren
(Antriebe) oder andere Ausgabegeräte wie Displays oder Signallampen übertragen werden.
Verfügt ein Mikroprozessor über entsprechende Ein- und Ausgangskanäle und zudem über einen
Programmspeicher, spricht man von einem Mikrocontroller. Es gibt mittlerweile eine Vielzahl von
unterschiedlichen Mikrocontrollern für unterschiedlichste Anwendungen, welche sich durch Rechenleistung
und die Anzahl der Ein- und Ausgangskanäle unterscheiden. Viele Mikrocontroller verfügen zudem bereits
über Schnittstellen zu Bussystemen, wie z.B. I2C, CAN oder Ethernet und können damit in einfacher Weise
mit übergeordneten Steuerungen kommunizieren.
8
© Festo Didactic GmbH & Co. KG
EasyKit
2.2 Anwendungen von Mikrocontrollern
Mikrocontroller finden sich heute fast überall. Überall, wo gesteuert wird, werden Mikrocontroller
eingesetzt. Hier seien beispielhaft einige wenige Anwendungsbeispiele genannt:
•
Steuerung von Motoren und Getrieben in Kraftfahrzeugen:
Die Zündung und die Kraftstoffeinspritzung von modernen Verbrennungsmotoren geschieht heute
immer elektronisch. Mikrocontroller messen wichtige Parameter des Motors (Last, Temperatur,
Abgaswerte) und wählen aus einem vorher ermittelten und im Speicher des Mikrocontrollers abgelegten
Kennfeld den richtigen Zeitpunkt der Zündung und die richtige Kraftstoffmenge aus. Ebenso wird bei
automatischen Getrieben der Schaltzeitpunkt und der richtige Gang gewählt.
•
Mobiltelefone enthalten Mikrocontroller, die unter anderem die Kommunikation mit dem Nutzer
steuern.
•
Haushaltsgeräte wie Kaffee-Vollautomaten enthalten Mikrocontroller, welche die Komponenten wie
Pumpen, Heizung, Mahlwerk und Anzeigefunktionen steuern.
•
Mobile Roboter dargestellt, enthalten zahlreiche Mikrocontroller, um Messwerte von
Navigationssensoren aufzunehmen (Sensoren für Raddrehzahl, Abstand, Beschleunigung oder die
Kamera), daraus einen Weg zwischen Hindernissen auf ein bestimmtes Ziel zu berechnen und durch
richtige Ansteuerung der Aktoren (Gleichstrommotore) zu erreichen.
2.3 Funktionsweise von Mikroprozessoren
Mikrocontroller bestehen aus dem Mikroprozessor als zentraler Steuereinheit sowie zahlreichen Ein- und
Ausgangskanälen, die zur Kommunikation mit dem (physikalischen) Prozess notwendig sind, der durch den
Mikrocontroller gesteuert werden soll. Im Folgenden wird die grundsätzliche Funktionsweise eines
Mikroprozessors dargestellt.
Ein Mikroprozessor dient zur schrittweisen Abarbeitung einfacher Befehle. Der Ablauf bei der Ausführung
eines Programmschrittes ist im Wesentlichen bei allen Mikroprozessoren gleich und läuft prinzipiell wie folgt
ab (vgl. Abb. 2-1).
Im Programmzähler PC steht die Speicheradresse des nächsten auszuführenden Befehls, welcher im RAM
oder ROM des Computers stehen kann. Der Wert des Programmzählers wird an den Adressdecodierer MUX
übertragen, der die Adresse über den Adressbus an den externen Speicher überträgt. Der externe
Speicherbaustein stellt daraufhin den Inhalt der Speicheradresse auf dem Datenbus zur Verfügung. Damit
kann dieser Inhalt (also der nächste Befehl) in das Befehlsregister IR übertragen werden. Hier wird der
Befehl decodiert und der Programmzähler PC um 1 erhöht, damit dieser auf den nächsten Befehl zeigt.
Die Befehle können den Inhalt von Speicherzellen aus dem RAM in den Akkumulator laden oder diese Daten
verarbeiten. Die Datenverarbeitung findet in der Arithmetisch-Logischen Einheit ALU statt.
Dort werden die an den beiden Eingängen anliegenden Daten verarbeitet, z.B. addiert, subtrahiert oder
miteinander verglichen. Das Ergebnis wird wieder im Akkumulator abgelegt. Der Akkumulator ist ein
spezieller Speicherbaustein innerhalb des Prozessors. Der Mikroprozessor kann neben dem Akkumulator
noch viel mehr Register zur Datenspeicherung enthalten. Register innerhalb des Prozessors können
wesentlich schneller zugegriffen werden als externer Speicher. In unserem einfachen Fall gibt es nur den
Akkumulator.
© Festo Didactic GmbH & Co. KG
9
Mikrocontrollerprogrammierung mit EasyKit
Abb. 2-1: Prinzipieller Aufbau eines Mikroprozessors
IR
Befehlsregister
PC
Programmzähler
Status
Statusregister
ALU
Arithmetisch-Logische Einheit (Rechenwerk)
MUX
Adressdecodierer
RAM
Random Access Memory (Schreib-Lese-Speicher)
ROM
Read Only Memory (Nur-Lese-Speicher)
Das Statusregister Status besteht aus einer Reihe von Status-Bits, welche das Ergebnis einer
Rechenoperation im Akkumulator enthalten. Typisch sind:
•
Bit Z: Zerobit, wird immer gesetzt, wenn das Ergebnis der Operation Null beträgt
•
Bit N: Negativbit, wird immer gesetzt, wenn das Ergebnis negativ ist
•
Bit C: Carry-Bit, wird immer gesetzt, wenn die Rechenoperation einen Übertrag ergeben hat
(also innerhalb der 8 Bit nicht mehr darstellbar ist)
Mit Hilfe des Status-Registers Status kann der Programmablauf abhängig vom Ergebnis einer
Rechenoperation gesteuert werden.
Die Taktfrequenz des Prozessors gibt an, wie viele Befehle der Prozessor pro Sekunde ausführen kann. Eine
Taktfrequenz von 1 MHz (Megahertz) bedeutet, dass der Prozessor 1 Million Befehle pro Sekunde ausführen
kann. 1 GHz (Gigahertz) steht für 1 Milliarde Befehle pro Sekunde.
Der Befehlssatz des Mikroprozessors besteht aus sehr einfachen Operationen, wie z.B.:
10
•
Lade den Inhalt einer Speicherzelle in den Akkumulator
•
Addiere den Inhalt des Akkumulators mit dem einer Speicherzelle
© Festo Didactic GmbH & Co. KG
EasyKit
•
Vergleiche den Inhalt des Akkumulators mit dem einer Speicherstelle
•
Wenn Statusbit N gesetzt ist, springe zu einer bestimmten Speicherstelle
Da die Befehle eines Mikroprozessors so einfache Operationen sind, benötigt dieser für sinnvolle
Operationen sehr viele Befehle. So kann eine Multiplikation von zwei Kommazahlen bereits die Ausführung
von mehreren hundert Befehlen erfordern.
Die Angabe 8, 16 oder 32 Bit bezieht sich auf die Anzahl Bits in den Registern des Mikroprozessors. Verfügt
der Prozessor über 8 Bit, kann er in einem Rechenschritt Zahlen im Bereich von 0 bis 255 (=28-1)
verarbeiten. Größere Zahlen müssen in mehreren Schritten verarbeitet werden. Ein 16 Bit Prozessor
dagegen kann Werte zwischen 0 und 65535 (=216-1) verarbeiten und benötigt daher weniger Operationen
für die gleiche Rechenoperation.
© Festo Didactic GmbH & Co. KG
11
Mikrocontrollerprogrammierung mit EasyKit
3 Kennenlernen von EasyKit
3.1 Auspacken
Wenn Sie den Systainer mit EasyKit auspacken, sollten Sie folgende Dinge finden:
•
Easyboard - die Platine mit dem Mikrocontroller
•
Applikationsboard – ein kleines Applikationsboard mit einem DC-Motor
•
2 EasyKit Steckbausteine DIO 1.1 und AIO 1.1
•
CD mit EasyLab, Lernprogramm Mikrocontroller und Lernunterlagen
•
USB-Anschlusskabel
•
Schraubendreher
•
Litze zum Anschluß von EasyBoard und Applikationsboard
3.2 Das Board mit dem Mikrocontroller
Abb. 3-1: Draufsicht auf EasyBoard
1
USB-Anschluss
2
Taster und LED
3
Resettatster
4
Steckplatz 1
5
Klemmleiste für Steckplatz 1
6
Steckplatz 2
7
Klemmleiste für Steckplatz 2
8
Anschluss für externe Stromversorgung
9
Mikrocontroller
Abb. 3-2: EasyKit-Bausteine
In Abb. 2-1 ist eine Prinzipskizze des EasyBoards zu sehen. Das Herz der Platine ist ein leistungsfähiger
Mikrocontroller mit folgenden technischen Daten:
12
© Festo Didactic GmbH & Co. KG
EasyKit
•
32 bit Kontrollerkern
•
8 MhZ Taktfrequenz
•
64 MByte Flash Memory
Der Mikrocontroller verfügt über zahlreiche Ein- und Ausgangskanäle. Diese sind jedoch nicht direkt
geeignet, externe Geräte wie LED’s, Taster, Motore oder andere Sensoren direkt anzuschließen. Dazu sind in
der Regel Treiber- bzw. Schutzbeschaltungen notwendig (z.B. Freilaufdioden, Verstärkerstufen usw.). Beim
EasyBoard sind diese Treiber bzw. Schutzbeschaltungen in den Steckbausteinen untergebracht und können
je nach Bedarf auf den Steckplätzen 4 und 6 eingesteckt werden. Jeder Baustein (Abb. 3-2) ist mit einer
anderen Klemme der Klemmleisten 5 und 6 verbunden. Derzeit stehen die in der Tabelle
zusammengefassten Bausteine zur Verfügung:
Baustein
Funktion
Klemme
AIO 1
Analoger Spannungsein- und ausgang, 0 – 5 V, überspannungsgesichert
A-In 1 / A-Out 2
AIO 2
Analoger Spannungsein- und ausgang, 0 – 5 V, überspannungsgesichert
A-In 2 / A-Out 2
DIO 1
Digitaler Ein- und Ausgang, o – 5 V (TTL-kompatibel), überspannungsgesichert
D-In 1 / D-Out 1
DIO 2
Digitaler Ein- und Ausgang, o – 5 V (TTL-kompatibel), überspannungsgesichert
D-In 2 / D-Out 2
ILT 1
Digitaler Ausgang, Treiber für induktive Lasten, Schaltspannung entspricht der des
angeschlossenen Netzteils (12..24V)
D-Out 1
ILT 2
Digitaler Ausgang, Treiber für induktive Lasten, Schaltspannung entspricht der des
angeschlossenen Netzteils (12..24V)
D-Out 2
Das EasyBoard enthält weiterhin drei Taster, drei farbige LED (2) sowie einen Resetknopf (3). Mit dem
Resetknopf kann das EasyBoard in den Ursprungszustand zurückgesetzt werden.
Der Stromanschluß 8 wird für alle in diesem Lehrgang beschriebenen Versuche nicht benötigt. Falls aber an
einem Kanal eine höhere Spannung als 5 V benötigt wird, kann dies erreicht werden, indem der Baustein ILT
zusammen mit einer entsprechenden Stromversorgung genutzt wird.
1
DC-Motor
2
Klemmleiste
3
Lichtschranke
4
Phototransistor
5
Jumper
6
Jumper zum Umschalten von Lichtschranke auf Photodiode
Abb. 3-3: Prinzipdarstellung des Applikationsboards
Das Applikationsboard (Abb. 2-2) enthält einen DC-Motor (1), einen zugehörigen Verstärkerbaustein, eine
© Festo Didactic GmbH & Co. KG
13
Mikrocontrollerprogrammierung mit EasyKit
Lichtschranke (3) sowie einen Phototransistor (4).
Das Applikationsboard wird mit dem EasyBoard mit Hilfe der beiliegenden Kabel verbunden. Je nach
Versuch müssen andere Kontakte der Klemmleiste (2) verbunden werden. Es ist möglich, die beiden
lichtempfindlichen Sensoren digital oder analog auszulesen. Dafür gibt es am Applikationsboard zwei
Kontakte.
Um zwischen der Lichtschranke und dem Einzelsensor umzuschalten, muss der Jumper JP 2 (6) umgesteckt
werden.
3.3 Installation von EasyLab
Der PC sollte folgende Voraussetzungen erfüllen, um die Programmiersoftware EasyLab ausführen zu
können:
•
1x USB-Schnittstelle
•
Windows XP, Vista oder 7
•
mindestens 256MB Arbeitsspeicher
•
mindestens 1024x768 Bildschirmauflösung
Um EasyLab zu installieren, legen Sie die mitgelieferte CD in das CD-Laufwerk Ihres Computers und starten
Sie das Programm EasyLab_setup.exe. Folgen Sie den Anweisungen des Installationsprogramms.
EasyLab kommuniziert mit dem Mikrocontrollerboard über die USB-Schnittstelle des PC. Um die dazu
notwendigen Treiber zu installieren, verbinden Sie bitte EasyBoard mit Hilfe des mitgelieferten USB-Kabels
mit einer der USB-Schnittstellen Ihres PC (Achtung: Vorher muss EasyLab installiert worden sein). Nach
einigen Sekunden wird das Betriebssystem mit einem Dialogfenster nach den Treibern fragen. Wählen Sie
nicht die Option, im Internet nach den Treibern zu suchen, sondern die automatische Suche (bei der
Installation von EasyLab wurden die Treiber bereits auf Ihre Festplatte kopiert). Die Treiber werden dann
vom Betriebssystem gesucht und installiert. Manchmal muss dieser Vorgang einmal wiederholt werden.
Danach ist EasyKit einsatzbereit.
Starten Sie Easylab und verbinden Sie das EasyBoard mit dem mitgelieferten USB-Kabel mit der USBSchnittstelle Ihres PC, falls Sie es noch nicht getan haben. Nach einigen Sekunden sollte Ihr Bildschirm so
wie in Abb. 3-4 aussehen. Die blau eingekreisten Funktionsblöcke erscheinen automatisch, wenn EasyLab
mit EasyBoard kommuniziert.
Easylab kann nun mit dem EasyBoard kommunizieren und Sie können mit dem Programmieren beginnen.
Hinweis: in Ausnahmefällen kann es notwendig sein, manuell im Systemmenue (Start -> Einstellungen ->
Systemsteuerung -> System -> Hardware -> Geräte-Manager) die COM-Schnittstelle des USB-Serial
Converters zu verändern, damit EasyLab das Gerät findet.
3.4 Installation des Lernprogramms Mikrocontroller
Rufen Sie das Programm „Setup_231_Lernprogramm_Mikrocontroller_1330.exe“ auf der EasyKit-CD auf
und folgen Sie den Anweisungen. Das Lernprogramm muss freigeschaltet werden. Dazu ist eine
Internetverbindung notwendig (nicht notwendigerweise auf dem Rechner, auf dem das Lernprogramm
installiert werden soll). Eine telefonische Freischaltung ist ebenfalls möglich. Zur Freischaltung ist die auf
der CD aufgedruckte Product ID notwendig. Das Lernprogramm kann beliebig oft installiert werden.
14
© Festo Didactic GmbH & Co. KG
EasyKit
4 Erste Schritte mit EasyLab
Lernziele:
•
Binäre Signale
•
Blockschaltbilder und Datenflußdiagramm
•
Bedienung EasyLab
•
Taster und LED in EasyLab

Arbeitsblatt 1
4.1 Grundlagen: Signalarten
Mikrocontroller müssen Informationen (z. B. Taster betätigt bzw. nicht betätigt) auswerten und
weiterverarbeiten. Die Information wird deshalb durch Signale dargestellt. Ein Signal ist eine physikalische
Größe, z. B.:
• der Druck an einer bestimmten Stelle einer pneumatischen Anlage
• die Spannung an einer bestimmten Stelle einer elektrischen Schaltung
Ein Signal ist die Darstellung von Informationen. Die Darstellung erfolgt durch den Wert oder den
Werteverlauf einer physikalischen Größe.
Analoges Signal
Ein analoges Signal ist ein Signal, bei dem einem kontinuierlichen Wertebereich des
Informationsparameters Punkt für Punkt unterschiedliche Information zugeordnet sind (DIN 19226, Teil 5).
Anwendungsbeispiel
Bei einem Manometer ist jedem Wert des Druckes (= Informationsparameter) eine bestimmte Anzeige (=
Information) zugeordnet. Steigt oder fällt das Signal, ändert sich die Information kontinuierlich.
Digitales Signal
Ein digitales Signal ist ein Signal mit einer endlichen Zahl von Wertebereichen des Informationsparameters.
Jedem Wertebereich ist eine bestimmte Information zugeordnet (DIN 19226, Teil 5).
Anwendungsbeispiel
Eine Druckmesseinrichtung mit Digitalanzeige zeigt den Druck in Schritten von 1 bar an. Bei einem
Druckbereich von 7 bar ergeben sich 8 mögliche Anzeigewerte (0 bar bis 7 bar), d. h. 8 mögliche
Wertebereiche des Informationsparameters. Steigt oder fällt das Signal, ändert sich die Information
stufenförmig.
Binäres Signal
Ein binäres Signal ist ein digitales Signal mit nur zwei Wertebereichen des Informationsparameters, die
meist als 0 und 1 bezeichnet werden (DIN 19226,Teil 5).
Anwendungsbeispiel
Mit einer Kontrollleuchte wird angezeigt, ob eine pneumatische Anlage ordnungsgemäß mit Druckluft
versorgt wird. Liegt der Versorgungsdruck (= Signal) unter 5 bar, so ist die Kontrollleuchte ausgeschaltet
© Festo Didactic GmbH & Co. KG
15
Mikrocontrollerprogrammierung mit EasyKit
(Schaltzustand 0). Liegt der Druck über 5 bar, ist die Kontrollleuchte eingeschaltet (Schaltzustand 1).
Signal/physikalische Größe
Druck
7
bar
5
4
3
2
1
0
Zeit
Information
a) analog
Zeigerstellung
7
6
5
4
23 45
1
6
0
7
8
3
2
1
0
Zeit
b) digital
Anzeige
7
6
5
4
3
2
1
0
3
Druck
bar
Zeit
c) binär
Druck
ja
Versorgungsdruck
1
nein 0
Zeit
4-1: Signalarten
Binäre Zustande lassen sich mit Hilfe der Elektronik besonders einfach und sicher erfassen, übertragen und
speichern. Daher sind die binären Signale die Grundlage praktisch aller Mikroprozessoren.
Auch in der Automatisierungstechnik gibt es viele Beispiele von Geräten, die binäre Signale liefern oder die
mit binären Signalen gesteuert werden:
16
•
Taster oder Schalter
•
Lichtschranken
•
Glühlampe
•
Elektromagnet
© Festo Didactic GmbH & Co. KG
EasyKit
4.2 Grundlagen: Blockschaltbilder
Ingenieure nutzen gern Blockschaltbilder, um komplexe Sachverhalte darzustellen. Blockschaltbilder
werden verwendet, um Wirkungen zwischen mehreren Bauteilen zu verdeutlichen, die in Wechselwirkung
zueinander stehen. Die Verbindungen stellen aber nicht echte Leitungen (wie im elektrischen Schaltplan),
sondern Wirkungen, Stoff-, Energie- oder Informationsflüsse dar. Das eben dargestellte Programm ist ein
sogenanntes Datenflussdiagramm, weil es darstellt, wie Informationen zwischen den Funktionsblöcken
ausgetauscht werden. Dafür wird nur eine Verbindung gezeichnet, obwohl die Daten in der Realität auf
vielen elektrischen Leitungen fließen mögen.
In Abb. 3-1 sind zwei Beispiele für Blockschaltbilder dargestellt. Bild a.) stellt das Prinzip einer Steuerung
dar. Sensoren liefern Signale an eine Steuerung, die wiederrum einen Aktor ansteuert, z.B. einen
Elektromotor. Die Pfeile deuten an, in welche Richtung die Signale fließen. In b.) ist das Prinzip eines
Fahrzeugantriebs dargestellt. Der Motor erzeugt ein Drehmoment, dass über ein Getriebe an die
Antriebsräder fließt. Mit einem Blockschaltbild kann also nicht ein Daten- , sondern auch ein Energie- oder
Materialfluss dargestellt werden. Bild a.) bezeichnet man auch Datenflußdiagramm.
Bild c.) schließlich zeigt das Prinzip eines Netzwerks. Die Computer sind mit einem Router verbunden und
tauschen mit diesem birektional (d.h. in beide Richtungen) Informationen aus. Wie man sieht, dürfen
Blockschaltbilder auch nicht nur „Blöcke“ enthalten.
Abb. 4-2: Beispiele für Blockschaltbilder
© Festo Didactic GmbH & Co. KG
17
Mikrocontrollerprogrammierung mit EasyKit
4.3 Funktionsblöcke in EasyLab - Datenflussdiagramme
Auch in EasyLab wird in Form von Datenflussdiagrammen programmiert. Wird die Programmiersoftware
EasyLab gestartet und EasyBoard an die USB-Schnittstelle des Programmier-PC angeschlossen, sieht nach
wenigen Sekunden der Bildschirm aus wie Abb. 3-4.
Abb. 4-3: Startbildschirm von EasyLab mit angeschlossenem EasyBoard
Auf der rechten Seite im Fenster Funktionsblöcke finden sich alle Bausteine, aus denen sich das Programm
zusammensetzen wird. Diese Liste ist unterteilt in allgemeine Funktionsblöcke und spezifische Blöcke für
das Starterkit. Durch Anklicken der Symbole
und
können die Unterordner mit den Funktionen geöffnet
oder geschlossen werden.
In den Ordnern LEDs und Taster befinden sich Funktionsblöcke, die durch Anklicken und Ziehen auf die
Programmieroberfläche geholt werden können. Auf dem Bildschirm sehen diese Funktionsblöcke so aus:
Die Funktionsblöcke haben an der linken bzw. rechten Seite hellblaue Quadrate. Dies sind die Anschlüsse
der Funktionsblöcke. Die Funktionsblöcke liefern bzw. empfangen Daten. Merke:
Anschluss auf der rechten Seite:
Datenausgang
Anschluss auf der linken Seite:
Dateneingang.
Durch Anklicken des Ausgangs des einen Funktionsblocks und Ziehen auf den Eingang des anderen
Funktionsblock werden beide Funktionsblöcke verbunden. Der Funktionsblock Taste liefert ein binären
18
© Festo Didactic GmbH & Co. KG
EasyKit
Wert. Wenn die Taste gedrückt wird, ist der Wert TRUE, ansonsten FALSE.
Erhält der Funktionsblock LED den Eingangswert TRUE, wird die LED eingeschaltet, ansonsten ist sie
ausgeschaltet.
Durch Anklicken der Funktionsblöcke mit der rechten Maustaste kann in einem Kontexmenue eine Hilfe zu
jedem Funktionsblock aktiviert werden.
4.4 Bedienung von EasyLab
Nach dem Start zeigt EasyLab folgenden Starbildschirm. In der nachfolgenden Tabelle sind die wichtigsten
Komponenten der Oberfläche erläutert.
Abb. 4-4: Startbildschirm von EasyLab
Nr.
Bedeutung
1
Arbeitsfläche zur der Erstellung der Programme
2
Programmbausteine für die Unterprogramme (Funktionsbibliothek)
3
Hinzufügen neuer Hardware (geschieht normalerweise automatisch)
4
Kontrolltasten zur Ablaufsteuerung (siehe Abb. 3-4)
5
Reiter zum Umschalten zwischen Haupt- und Unterprogrammen
EasyLab hält sich bei der Bedienung weitestgehend an den Windows-Standard, d.h. die üblichen
Funktionen wie Speichern, Drucken usw. findet man in der Symbolleiste oben im Programmfenster. In der
Steuerleiste werden dagegen die Programmierspezifischen Funktionen von EasyLab gesteuert.
EasyLab kann ein erstelltes Programm simulieren (das geht auch ohne angeschlossenes EasyBoard) oder
kompilieren und auf den Mikrocontroller übertragen, der das Programm dann ausführt.
Simulation
Um das Programm in der Simulation zu testen, muss der Umschalter 1 der Steuerleiste auf
Simulationsmodus stehen. Durch Anklicken der grünen Pfeiltaste (3) in der Steuerleiste wird die Simulation
© Festo Didactic GmbH & Co. KG
19
Mikrocontrollerprogrammierung mit EasyKit
des Programms gestartet.
Simulation bedeutet, dass das Programm nicht auf den Mikrocontroller des EasyBoard übertragen wird,
sondern nur auf dem Programmier-PC nachgebildet wird. Daher gibt es natürlich auch keine Eingangswerte,
da ja keinerlei Hardware wie Tasten oder LED angeschlossen sind. Die Eingabewerte müssen manuell
nachgebildet werden.
Codeerzeugung
Um das Programm auf den Mikrocontroller zu übertragen, muss am Umschalter 2 in der Steuerleiste auf
den Codeerzeugungsmodus umgeschaltet werden und wieder die Start-Taste (3) gedrückt werden. Das in
EasyLab erstellte Programm wird nun zuerst in C übersetzt und dann in Maschinensprache umgesetzt
(kompiliert) und schließlich über das USB-Kabel auf den Mikrocontroller übertragen. Dies wird durch ein
Dialogfenster und das Blinken einer roten LED auf dem EasyBoard angezeigt.
Live-Debugging
Sobald das Dialogfenster verschwindet, läuft das Programm auf dem Easyboard. Gleichzeitig wird der
Zustand der Funktionblöcke auch auf dem Bildschirm angezeigt. Diese Fähigkeit von EasyLab nennt man
Live-Debugging. Sie wird dadurch erreicht, dass neben dem eigentlichen Programm noch ein
Kommunikationsprogramm auf dem Mikrocontroller installiert wird, dass alle Daten zum Programmier-PC
überträgt. Besonders nützlich ist das Live-Debugging für die Fehlersuche in komplexeren Programmen.
Stand-Alone-Betrieb
Nachteil dieses Modus ist, dass das Programm auf dem Mikrocontroller nur läuft, wenn der PC
angeschlossen ist. Will man ein fehlerfreies Programm auf dem EasyBoard allein ausführen, so muss durch
längeres Klicken auf die grüne Starttaste der Modus EasyKit Starter Standalone ausgewählt werden. In
diesem Modus wird das Programm ohne zusätzliches Kommunikationsprogramm übertragen. Das
Programm wird dann jedes Mal gestartet, wenn EasyLab an die Stromversorgung angeschlossen wird
Abb. 4-5: Steuerleiste in EasyLab
Nr.
Bedeutung
1
Umschalten auf Simulationsmodus
2
Umschalten auf Codeerzeugungsmodus
3
Start Simulation bzw. Kompilieren
4
Einfrieren der Programmausführung
5
Stop der Programmausführung
6
Anzeigen der Werte der FunktionsblockAnschlüsse
7
Anzeigen der Beschreibung der
Funktionsblock-Anschlüsse
8
Umschalter für Anfänger- und
Expertenmodus
20
© Festo Didactic GmbH & Co. KG
EasyKit
5 Variablen und Schrittketten
Lernziele:
•
Schrittketten
•
Verzweigungen
•
Konstanten und Variablen

Arbeitsblatt 2
5.1 Variablen und Konstanten
Variablen sind Funktionsblöcke, die Daten speichern. Damit können
diese Daten an andere Stelle des Programms verwendet werden.
Variablen werden definiert, indem im Fenster Funktionsblöcke mit
der rechten Maustaste auf die Zeile Variable geklickt wird. Es
erscheint ein Pull-Down-Menu, in dem auf Hinzufügen geklickt
wird. Im dann erscheinenden Dialogfenster wird der Name der
Variablen eingegeben.
Die neue Variable erscheint im Fenster Funktionsblöcke, und zwar
als Leser- und Schreiber-Block. Diese Funktionsblöcke dienen dazu,
entweder etwas in die Variable hineinzuschreiben oder den Inhalt
herauszulesen. Die Anschlüsse sind dementsprechend einmal auf
der linken oder auf der rechten Seite der Funktionsblöcke.
Die entsprechenden Funktionsblöcke werden wie gewohnt auf die
Programmfläche gezogen.
Konstanten können ähnlich wie Variablen Daten speichern, nur sind
diese während des Programmablaufes unveränderlich.
5.2 Schrittketten
Neben den kontinuierlich laufenden Prozessen gibt es auch Abläufe, die einen schrittweisen Charakter
haben. Solche Abläufe werden in der Technik als Schrittkette bezeichnet.
EasyLab macht die Programmierung von Schrittketten sehr einfach. Dies geschieht durch Umschalten auf
den Reiter Hauptprogramm. Das Hauptprogramm besteht aus Zuständen oder Schritten, die durch
Weiterschaltbedingungen oder Transitionen getrennt sind.
In Abb. 4-1 ist ein Hauptprogramm mit drei Schritten abgebildet. Die Schrittkette beginnt mit einem
Startschritt Init (1), der keine weitere Funktion hat. Den Schritten Step1 bis Step3 sind jeweils
Unterprogramme zugeordnet, welche selbst Datenflussprogramme sind. Ein Schritt ist aktiv, bis die
Weiterschaltbedingung erfüllt ist. Diese kann entweder direkt true oder false sein (wie beim Übergang von
Init zu Step1) und damit immer erfüllt oder nicht erfüllt sein. Oder die Weiterschaltbedingung wird mit Hilfe
von Variablen definiert wie beim Übergang von Step1 zu Step2. Dieser Übergang findet statt, wenn die
Variable Taste1 den Wert true annimmt. Dieser Wert wird der Variable im Unterprogramm Step1
zugeweisen.
© Festo Didactic GmbH & Co. KG
21
Mikrocontrollerprogrammierung mit EasyKit
Nr.
Bedeutung
1
Startschritt
2
Zustand oder Programmschritt
3
Weiterschaltbedingung
4
Einfügen Schritte
5
Variablenliste
6
Reiter des Hauptprogramms
Abb. 5-1: Schrittkette in EasyLab
Den Schritten werden Unterprogramme zugewiesen, indem die Unterprogrammliste innerhalb des Schrittes
angeklickt und das gewünschte Unterprogramm ausgewählt wird (vgl.Abb. 4-2).
Abb. 5-2: Zuweisen eines Unterprogramms zu einem
Abb. 5-3: Verzweigung im Hauptprogramm
Schritt
Neue Schritte können in die Schrittkette eingefügt werden, indem man einen Schritt anklickt und dann in der
Auswahlliste einen neuen Schritt auswählt. In gleicher Weise können auch Verzweigungen eingefügt werden
(vgl. Abb. 4-3). In diesem Fall muss jedoch vorher eine Weiterschaltbedingung angeklickt werden.
22
© Festo Didactic GmbH & Co. KG
EasyKit
6 Logische Verknüpfungen
Lernziele
•
Logische Verknüpfungen

Aufgabenblatt 3
Logische Verknüpfungen sind Funktionblöcke, welche aus binären Eingangswerten gemäß einer
Funktionstabelle einen Ausgangswert erzeugen. Diese Funktionsblöcke findet man unter Mathematik ->
Logische Operationen:
Benennung
Funktionstabelle
Funktionsblock in
EasyLab
Nicht
Und
Oder
Exklusiv-Oder
Im Hauptprogramm können binäre Variablen ebenfalls mit logischen Operatoren verknüpft werden. Diese
werden dann so geschrieben:
•
Und
&&
Beispiel: Variable1&&Variable2
•
Oder
||
Beispiel: Variable1||Variable2
•
Negation
!
Beispiel: !Variable1
Einfache mathematische Operatoren wie +, -, *, / dürfen ebenfalls verwendet werden.
Das folgende Bild stellt dar, wie z.B. eine Und-Verknüpfung als Weiterschaltbedingung genutzt werden
kann:
taste1 und taste2 sind integer-Variablen
© Festo Didactic GmbH & Co. KG
taste1 und taste2 sind boolesche Variablen
23
Mikrocontrollerprogrammierung mit EasyKit
7 Programmieren mit Flip-Flops
Lernziele
•
Flankenerkennung
•
Flip-Flops mit und ohne Flankenerkennung

Arbeitsblatt 4
7.1 Flankenerkennung
Manchmal ist es notwendig, nicht das eigentliche Signal, sondern die Änderung eines Signals zu erkennen.
Dazu gibt es den Baustein Flankenerkennung (Funktionsbibliothek -> Signalverarbeitung -> Filter):
Legt man ein Signal an den Eingang „Eingabesignal“, so wird immer dann der obere Ausgang True liefern,
wenn der Eingangswert sich stärker als die eingestellte Toleranz erhöht. Der untere Ausgang reagiert
entsprechend, wenn das Eingangssignal sich stärker als die eingestellte Toleranz erniedrigt (fallende
Flanke). Durch Anklicken des Funktionsbausteins öffnet ein Dialogfenster, in dem die Signaltoleranz und der
Typ des Signals eingestellt werden kann.
7.2 Flip-Flops
Flip-Flops dienen als Signalspeicher. Sie verfügen in der Regel über einen Setz- und einen Löscheingang.
Ein positives Signal am Setzeingang erzeugt ein positives Signal am Ausgang Q, das solange gahlten wird,
bis der Eingang Zurücksetzen ein positives Signal erhalt. Der Ausgang !Q zeigt jeweils das gegenteilige
Verhalten.
Zu finden ist das sogenannte RS-Flip-Flop oder RS-Kippstufe in der Funktionsbibliothek zu finden unter
Signalverarbeitung-> Flip Flops:
Im gleichen Verzeichnis findet man die T-Kippstufe oder T-Flip-Flop:
Die beiden Ausgänge zeigen jeweils das gegenteilige Signal (true oder false), wobei jeder Signalwechsel mit
steigender Flanke am Eingang Takt den logischen Zustand der beiden Ausgänge wechselt. Insofern ähnelt
der Baustein dem Baustein Flankenerkennung. Zusätzlich zu diesem speichert er aber das Signal bis zum
nächsten Flankenwechsel.
24
© Festo Didactic GmbH & Co. KG
EasyKit
Die nachstehende Tabelle gibt einen Überblick über die wichtigsten Flip-Flops
Abbildung
Name
Funktion
Ordner
Flankenerkennung
Der Block gibt bei jeder
Signalverarbeitung -> Filter
Signalveränderung am Eingabesignal,
welche oberhalb der Toleranzgrenze
ist, einen Impuls aus. Wird der Wert
des Signals größer, wird ein Impuls an
Steigende Flanke erkannt ausgegeben.
Wird der Wert des Signals kleiner, wird
ein Impuls an Fallende Flanke
ausgegeben. Der Funktionsblock kann
auch dazu verwendet werden, Flanken
in Booleschen Signalen
RS-Kippstufe
Liegt am Eingang S der Wert True an,
Signalverarbeitung -> Flip-Flops
wird der Ausgang Q auf True gesetzt.
Durch Setzen des Löscheingangs R
wird der Ausgang Q wieder gelöscht.
Der Ausgang _Q zeigt jeweils das
inverse Signal
T-Kippstufe
Mit jeder steigenden Flanke am
Eingang C wechseln die Ausgänge
ihren logischen Zustand. Es ist immer
genau einer der beiden Ausgänge
wahr, während der andere falsch ist.
Initial besteht der Zustand falsch für Q
und wahr für _Q
Signalverarbeitung -> Flip-Flops
Flankengesteuerte
RS-Kippstufe
Diese Baustein arbeitet wie ein RSKippstufe, jedoch findet ein
Umschalten nur statt, wenn am
Eingang C eine steigende Flanke
anliegt.
Signalverarbeitung -> Flip-Flops
© Festo Didactic GmbH & Co. KG
25
Mikrocontrollerprogrammierung mit EasyKit
8 Binäre und Gleitkommazahlen
Lernziele
•
Duale Zahlen
•
Gleitkommazahlen
•
Arbeiten mit Variablen
•
Typumwandlung
Arbeitsblatt 5 und 6

8.1 Grundlagen: Binäres Zahlensystem und Gleitkommazahlen
Neben binären Signalen (ein/Aus) gibt es eine Vielzahl von Größen mit kontinuierlichen Verläufen, z.B.
• Temperatur
• Geschwindigkeit
• Lichtstärke
• Füllstände
Diese können binär nicht dargestellt werden. Der Mikrocontroller kann aber nur mit binären Signalen
arbeiten. Die technische Lösung heißt binäres Zahlensystem.
Charakteristisch für das im Allgemeinen benutzte dezimale Zahlensystem ist die Struktur der Stellen und der
Wertigkeit dieser Stellen. Die Zahl 4344 zum Beispiel lässt sich darstellen als:
4344 = 4 x 1000 + 3 x 100 + 4 x 10 + 4 x 1
Die Zahl 4 ganz links hat also eine andere Bedeutung als die Zahl 4 ganz rechts.
Grundlage des dezimalen Zahlensystems ist das Vorhandensein von 10 verschiedenen Ziffern (dezimal: von
decem (lat.) = 10). Mit diesen 10 verschiedenen Ziffern kann von 0 bis 9 gezählt werden. Soll über die Zahl 9
hinausgezählt werden, wird ein Übertrag zur nächsten Stelle gebildet. Diese Stelle hat die Wertigkeit 10, ist
die 99 erreicht, erfolgt der nächste Übertrag.
Beschränkt man sich auf genau 2 Ziffern pro Stelle einer Zahl, dann wird ein Zahlensystem so aufgebaut:
27 = 128
26 = 64
25 = 32
24 = 16
23 = 8
22 = 4
21 = 2
20 = 1
1
0
1
1
0
0
0
1
Das Prinzip ist genau gleich der Methode, eine Dezimalzahl zu bilden. Allerdings stehen nur zwei Ziffern zur
Verfügung, weshalb die Wertigkeit einer Stelle sich nicht als 10x berechnet, sondern als 2x. Also hat die
niederwertigste Stelle ganz rechts die Wertigkeit 20 = 1, die nächste Stelle 21 = 2 usw.. Wegen der
Benutzung von ausschließlich zwei Ziffern wird dieses Zahlensystem das binäre oder auch das duale
Zahlensystem genannt.
Mit acht Stellen kann bis maximal 28 – 1 = 256 – 1 = 255 gezählt werden, das wäre die Zahl 11111111 im
Dualsystem. Eine Dualzahl mit 8 Stellen nennt man Byte, die einzelne Stelle ein bit. Weil Dualzahlen
zunächst nur ganze Zahlen abbilden können, nennt man sie auch integer (kurz int).
Dualzahlen werden innerhalb von Mikrocontrollern mit Vorzeichen benutzt. Die erste Stelle steht dann für
das Vorzeichen (1 bedeutet minus), daher hat dann ein integer den Wertebereich -127 bis +127. Nutzt man
zwei Byte (also 16 Stellen) zur Darstellung, erweitert sich der Wertebereich eines integer16 (oder kurz:
int16) auf -32768 bis +32768, für den unsigned integer 16 (kurz: uint16) auf 0 bis 65536.
Es ist wichtig zu wissen, was passiert, wenn Rechenoperationen Ergebnisse liefern, die außerhalb des
26
© Festo Didactic GmbH & Co. KG
EasyKit
Wertebereiches des gewählten Datentypes liegen. In diesem Fall gibt es einen Überlauf und das Ergebnis
wird falsch sein!
Beispiel:
Zwei Zahlenwerte mit dem Wertebereich uint8 sollen addiert werden:
Binär:
11111111
+
00000001
=
00000000
Dezimal:
255
+
1
=
0
Das Gleiche geschieht, wenn ein uint8 hochgezählt wird. Die auf 255 folgende Zahl ist nicht 256, sondern 0!
Dies muss unbedingt beachtet werden, wenn mit unterschiedlichen Wertebereichen gearbeitet wird.
Zur Darstellung von Kommazahlen werden Gleitkommazahlen verwendet. Diese bestehen aus Mantisse und
Exponent in der Form: Mantisse mal Basis hoch Exponent. Beispiele für Gleitkommazahlen sind:
3,5
=
3,5*100
3500
=
3,5*103
35,7
=
3,57*101
Je nachdem, wieviele Bits für die Darstellung von Mantisse und Exponent verwendet werden, spricht man
von Gleitkommazahlen einfacher oder doppelter Genauigkeit. Das Problem des Überlaufs tritt bei
Gleitkommazahlen nicht auf, jedoch kann es zu Rechenungenauigkeiten kommen.
Generell sollte der „kleinste“ Datentyp ausgewählt werden, der für die Aufgabe ausreichend ist, weil
dadurch der Speicherbedarf sinkt und die Ausführungsgeschwindigkeit des Programms steigt.
Unter anderem stehen in EasyLab folgende Datentypen zur Verfügung:
Typ
Erläuterung
Wertebereich
bool
Logische Werte
True , false
Int8
Integer mit 8 Bit Genauigkeit
Ganze Zahlen zwischen -128
und 127
Int16
Integer mit 16 Bit Genauigkeit
Ganze Zahlen zwischen -32768
und 32768
Vorzeichenloser Integer mit 8 Bit
Ganze Zahlen zwischen 0 und
Genauigkeit
255
Vorzeichenloser Integer mit 16 Bit
Ganze Zahlen zwischen 0 und
Genauigkeit
65535
float
Fließkommazahl (32 bit)
-3,14
double
Fließkommazahl (64 bit)
-3,14
uint8
uint16
8.2 Typumwandlung
Manchmal kann es erforderlich sein, Daten von einem Typ in den anderen umzuwandeln. Dazu dient der
Baustein Typumwandlung:
Der Eingangswert wird in den Datentyp umgewandelt, den der am Ausgangskanal Ziel angeschlossenen
Baustein benötigt wird.
© Festo Didactic GmbH & Co. KG
27
Mikrocontrollerprogrammierung mit EasyKit
8.3 Signalgenerierung
Für viele Anwendungen werden periodische Signale benötigt:
•
Blinklicht
•
Zeitmessung
EasyLab stellt einige grundlegende Funktionen zur Verfügung. Zum einen gibt es den Funktionsbaustein
PWM-Signal. Dieser Baustein liefert ein binäres Ausgangssignal, dessen Periodendauer und
Einschaltfrequenz man durch die beiden Eingangsparameter bestimmen kann:
Die Periode legt die Periodendauer in Millisekunden fest, das Tastverhältnis das Verhältnis zwischen Einund Ausgeschaltetem Zustand des Ausgangssignals.
Der Funktionsbaustein Schrittfunktion erzeugt ein treppenartiges Signal und kann auch als Zähler oder Uhr
aufgefasst werden.
Wenn das Programm gestartet wird, ist das Signal 0. Der Parameter interval gibt an, nach wie vielen
Programmschritten das Ausgabesignal um den Wert step inkrementiert wird. Wenn am Reset-Eingang der
Wert true anliegt, so wird das Signal zurückgesetzt. Ein Programmschritt hat normalerweise die die Dauer
von 10 ms (dieser Wert kann im Hauptprogramm verändert werden – Zeitscheibe setzen).
Der Funktionsbaustein Sägezahnsignal erzeugt, wie der Name schon sagt, ein Sägezahnsignal. Der
Parameter Periodendauer gibt die Länge einer Periode an, der Parameter Maximum die Amplitude.
Die Parameter können entweder als Eingangswert von außen eingegeben werden (z.B. über andere
Funktionen) oder fest eingetragen werden. Dazu muss der jeweilige Funktionsbaustein durch Doppelklick
geöffnet werden. Es erscheint ein Dialogfenster, in dem die Parameter eingetragen werden können:
28
© Festo Didactic GmbH & Co. KG
EasyKit
Die nachfolgende Tabelle gibt einen Überblick über die Signalgenerierungsbausteine:
Abbildung
Name
Funktion
Ordner
Schrittfunktion
Zählt den Ausgangswert in
Signalgenerierung
vorgegebenen Inkrementen hoch
PWM-Signal
Erzeugt ein Pulsweitenmoduliertes
Signalgenerierung
Signal vom Typ Boole
Sägezahnsignal
Erzeugt einen Sägezahnimpuls von
Signalgenerierung
Typ integer oder float
8.4 Multiplexer und Demultiplexer
Mit dem Funktionsbaustein Multiplexer kann von mehreren Eingängen ein einzelner ausgewählt werden. Die
Daten, welche als Ausgabedaten am Multiplexer anliegen sind die Daten, welche am ausgewählten Eingang
anliegen
Beispiel: Eine Variable soll aus mehreren Quellen beschrieben werden.
Mit dem Funktionsblock Demultiplexer kann ein Wert in Abhängigkeit von einer Ausgangsauswahl auf
mehrere Ausgänge verteilt werden. Der Wert liegt an höchstens einem Ausgang an, alle anderen Ausgänge
haben den Vorgabewert.
Abbildung
Name
Funktion
Ordner
Multiplexer
Auswahl mehrerer Eingänge
Verschiedenes
Demultiplexer
Verteilen eines Wertes auf mehrere
Ausgänge
Verschiedenes
© Festo Didactic GmbH & Co. KG
29
Mikrocontrollerprogrammierung mit EasyKit
9 Analog-Digital-Wandler
Lernziele
•
Analog-Digital-Wandler
•
Analogwertverarbeitung mit EasyLab und EasyBoard

Aufgabenblatt 7
9.1 Grundlagen: Phototransistor
Transistoren sind Halbleiterbauelemente zum Schalten und Verstärken elektrischer Signale ohne
mechanische Kontakte. Phototransistoren sind Transistoren, bei denen die Verstärkerwirkung durch einen
externen Lichteinfall verändert wird. Die Lichtphotonen lösen beim Auftreffen auf den Halbleiter des
Transistors Elektronen aus dem Kristallgitter und erzeugen so einen kleinen Photostrom. Dieser wird etwa
100-fach verstärkt. Das Schaltzeichen des Phototransistors ist:
9.2 Grundlagen: Analog-Digital-Wandler
Analoge Sensorsignale müssen in einen Digitalwert umgewandelt werden, bevor der Mikrocontroller sie
verarbeiten kann. Dies geschieht in sogenannten Analog-Digital-Wandlern (ADC). Dabei muss der
Analogwert in einem bestimmten Bereich liegen, z.B. zwischen 0 und 10 V. Ist das nicht der Fall, muss der
Spannungswert an die maximalen und minimalen Eingangswerte des ADC angepasst werden, z.B. mit Hilfe
eines Spannungsteilers. Der ADC wandelt den Analogwert in eine Digitalzahl um. Dabei bestimmt die Anzahl
Bits das Auflösungsvermögen des ADC. Handelt es sich z.B. um einen 8 Bit ADC, wird die Höchstspannung
10 V binär als 1111111 (=255) und die kleinste Spannung als 00000000 (=0) dargestellt. Der Wertebereich
beträgt also 0 bis 255. Bei einem 10 Bit ADC liegt der Wertebereich zwischen 0 und 1023. Die binäre
Darstellung benötigt dann 10 Nullen und Einsen.
In Abb. 9-1 ist ein einfacher ADC nach dem Komparatorprinzip mit 3 Bit Auflösung dargestellt. Dazu werden
8 Komparatoren benötigt, die bei Überschreiten einer Spannungsschwelle eine 1 ausgeben. Im Umcodierer
wird daraus ein Binärsignal. Da 8 Komparatoren nur 8 Zustände unterscheiden können, reicht ein 3 Bit
Signal zur digitalen Darstellung aus (23 = 8). Ein Signal von 0 bis10 V kann damit nur in Schritten von 1,43 V
aufgelöst werden.
30
© Festo Didactic GmbH & Co. KG
EasyKit
Abb. 9-1: Funktionsprinzip eines einfachen 3 Bit Analog Digital Wandlers (Komparatorprinzip)
Input
Komparatoren
Output
B
C
D
K1
K2
K3
K4
K5
K6
K7
22
21
20
Dez
0,0–1,25 V
0
0
0
0
0
0
0
0
0
0
0
1,25–2,5 V
1
0
0
0
0
0
0
0
0
1
1
2,5-3,75 V
0
1
0
0
0
0
0
0
1
0
2
3,75-5,0 V
0
0
1
0
0
0
0
0
1
1
3
5,0-6,25 V
0
0
0
1
0
0
0
1
0
0
4
6,25-7,5 V
0
0
0
0
1
0
0
1
0
1
5
7,5-8,75V
0
0
0
0
0
1
0
1
1
0
6
8,75-10,0V
0
0
0
0
0
0
1
1
1
1
7
UM [V]
Tabelle 3: Übersetzung der Eingangsspannung UM in ein Digitalwert
9.3 Analoge Eingangskanäle in EasyKit
Abb. 9-2: EasyBoard
© Festo Didactic GmbH & Co. KG
31
Mikrocontrollerprogrammierung mit EasyKit
Damit ein externes Signal von Mikrocontroller empfangen werden kann, muss ein Analogbaustein auf die
dafür vorbereiteten Steckplätze4 und 6 auf dem EasyBoard (Abb. 8-1) aufgesteckt werden. Die
entsprechenden Signale können an den Klemmen 5 und 7 abgegriffen werden. Die folgende Tabelle zeigt,
mit welchem Baustein welche Signale an welcher Klemme nutzbar sind. Die zugehörigen
Funktionsbausteine aus EasyLab sind ebenfalls dargestellt.
Bausteincode
Klemme an
Basisplatine
Ordner
Digitaler Ausgang
DOut1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
Digitaler Eingang
Din1
EasyKit Starter Basisboard ->
Funktion
Softwarebaustein
DIO 1.1
Stapel 1->Digitale E/A
Analoger
AIO 1.1
AIn1
Ausgangskanal
Analoger
Eingangskanal
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
AOut1
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Abb. 9-3: Applikationsboard
Auf dem Applikationsboard (Abb. 8-2) gibt es zwei Sensoren:
•
Einen Phototransistor (4)
•
Eine Lichtschranke zur Drehzahlmessung am Motor (3)
Diese können über einen Verstärker als Analogsignal oder über einen Schmitt-Trigger als Digitalsignal
eingelesen werden. Die Zuordnung hängt von der Einstellung des Jumpers 2 (6) ab:
Kontakt 1-2 geschlossen: Lichtschranke
Kontakt 2-3 geschlossen: Phototransistor
Das Signal des gerade angeschlossenen Sensors kann an der Klemmleiste 2 als Analogsignal an der Klemme
32
© Festo Didactic GmbH & Co. KG
EasyKit
Verstärker OUT und als Digitalsignal an der Klemmer Schmitt-Trigger OUT abgegriffen werden (Abb. 8-3)
Abb. 9-4: Schaltplan des Applikationsboards
© Festo Didactic GmbH & Co. KG
33
Mikrocontrollerprogrammierung mit EasyKit
10 Ansteuerung von Gleichstrommotoren
Lernziele
•
Analoge Ausgangskanäle
•
Digital-Analog-Wandler
•
Pulsweitenmodulation
•
Gleichstrommotore

Arbeitsblatt 8
10.1 Grundlagen: Digital-Analog-Wandler
Digital-Analog-Wandler (DAC) wandeln eine digitale Zahl in einen analogen Spannungswert um. Abb. 10-1
zeigt das Funktionsprinzip eines einfachen 4 bit DAC. Ein digitales Eingangssignal an den Eingängen A bis D
wird über ein Widerstandsnetzwerk in einen Analogwert umgesetzt.
Aufgrund der schrittweisen Abarbeitung in einem Mikrocontroller geschieht die Umsetzung von Analog zu
Digital bzw. umgekehrt nicht kontinuierlich, sondern getaktet. Zudem besitzen viele Mikrocontroller nur eine
begrenzte Anzahl von ADC und DAC. Um trotzdem mehr Kanäle bedienen zu können (also mehr Sensoren
auszulesen oder mehr Aktoren anzusteuern) als physikalisch vorhanden sind, wird der DAC oder ADC
zwischen mehreren Ein- und Ausgangskanälen umgeschaltet (Multiplexen). Die Abtastrate in Hz gibt dann
an, wie oft pro Sekunde der entsprechende Kanal angefragt und in einen Digitalwert umgewandelt wird. Für
die Leistungsfähigkeit von DAC und ADC sind demnach die Abtastrate und die Auflösung in Bit
entscheidend.
Da das Ausgangssignal der analogen Kanäle meist auf einen Spannungsbereich von 0 bis 10 V und eine
maximale Stromstärke von wenigen mA beschränkt ist, benötigt man entsprechende Leistungsverstärker,
um Aktuatoren wie DC-Motore, Servoventile oder Heizungen anzusteuern.
Die analogen Eingangskanäle benötigen ebenso wie die digitalen Schutzbeschaltungen, um sie vor
Überspannungen oder Kurzschlüssen zu schützen.
Abb. 10-1: Funktionsprinzip eines einfachen 4 Bit Digital Analog Wandlers
34
© Festo Didactic GmbH & Co. KG
EasyKit
Input
D
C
B
A
ID
[mA]
IC
[mA]
IB
[mA]
IA
[mA]
IG
[mA]
UA
[V]
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
2
0
0
1
0
0
0
2
0
2
2
3
0
0
1
1
0
0
2
1
3
3
4
0
1
0
0
0
4
0
0
4
4
5
0
1
0
1
0
4
0
1
5
5
6
0
1
1
0
0
4
2
0
6
6
7
0
1
1
1
0
4
2
1
7
7
8
1
0
0
0
8
0
0
0
8
8
9
1
0
0
1
8
0
0
1
9
9
10
1
0
1
0
8
0
2
0
10
10
11
1
0
1
1
8
0
2
1
11
11
12
1
1
0
0
8
4
0
0
12
12
13
1
1
0
1
8
4
0
1
13
13
14
1
1
1
0
8
4
2
0
14
14
15
1
1
1
1
8
4
2
1
15
15
Tabelle 4: Umrechnungstabelle zu 9-1
10.2 Grundlagen: Gleichstromotore
Befindet sich ein Leiterdraht, der von einem Strom I durchflossen wird, in einem Magnetfeld B, so wirkt auf
diesen Draht eine Kraft F. Die Richtung dieser Kraft kann man mit der sogenannten „Drei-Finger-Regel“
ermitteln. Dabei geht man davon aus, dass die magnetischen Feldlinien vom Nord- zum Südpol des
Magneten gerichtet sind und der Strom im Draht vom Plus- zum Minuspol der Stromquelle fließt. Die drei
Finger Daumen, Zeige- und Mittelfinger werden im jeweils rechten Winkel zueinander ausgerichtet, so dass
sie ein kartesisches Koordinatensystem bilden.
Zeigt dann der Daumen in Richtung des Stromflusses (also von Plus- zum Minuspol), der Zeigefinger in
Richtung des Magnetfeldes (Nord/Süd), zeigt der Mittelfinger in Richtung der wirkenden Kraft. In Abb. 10-2
würde der Draht sich also nach vorn aus der Blattebene heraus bewegen.
Abb. 10-2: Lorentzkraft
© Festo Didactic GmbH & Co. KG
35
Mikrocontrollerprogrammierung mit EasyKit
Die Größe der Kraft hängt von der Stärke des Magnetfeldes, der Stromstärke und der Länge des Drahtes im
Magnetfeld ab. Der Gleichstrommotor nutzt diese Kraftwirkung aus, um eine Drehbewegung zu erzeugen.
Dazu wird eine Leiterschleife drehbar zwischen zwei Magnetpolen (Nord/Süd) angeordnet (Abb. 10-3).
Der Strom fließt durch die beiden Hälften der Leiterschleife in entgegengesetzter Richtung. Daher ist auch
die Kraftwirkung auf die Hälften der Leiterschleife entgegengesetzt gerichtet. Es bilden sich auch hier ein
Nord- und ein Südpol heraus, die von den Polen des Permanentmagneten angezogen (Nord/Süd bzw.
Süd/Nord) oder auch abgestoßen (Süd/Süd bzw. Nord/Nord) werden. Beide Kräfte erzeugen ein
Drehmoment, das die Leiterschleife weiterdreht. Nach höchstens einer halben Umdrehung der Leiterschleife
wird durch den mechanischen Kommutator (Stromwender) der Strom umgepolt und der Vorgang wiederholt
sich.
Abb. 10-3: Funktionsprinzip des Gleichstromotors
Der Kommutator ist hier das wesentliche Bauteil, da erst er aus dem einmaligen Vorgang der Kraftwirkung
auf einen Strom durchflossenen Leiter eine Drehbewegung macht. Er besteht aus zwei metallischen, von
einander isolierten Halbschalen, auf die durch Kohlebürsten der Strom übertragen wird.
Abb. 10-4: Kennlinie eines DC-Motors
Ein DC-Motor wandelt elektrische Energie in mechanische Energie um. Elektrische Leistung ist das Produkt
aus Strom I und Spannung U, mechanische Leistung ist das Produkt aus Drehmoment M und Drehzahl n.
Abb. 10-4 zeigt die Drehzahl-Drehmoment-Kennlinie eines DC-Motors. Es ist eine Gerade.
Bei gegebener Spannung U und ohne mechanische Belastung wird der Motor mit der leerlaufdrehzahl n0
drehen. Wird der Motor durch ein äußeres Drehmoment an der Motorwelle belastet, sinkt die Drehzahl ab,
bis der Motor zum Stillstand kommt. Dann erzeugt der Motor das Stillstands- oder Haltemoment MH. Dabei
steigt die Stromaufnahme des Motors kontinuierlich an. Soll die Drehzahl bei gegebener Belastung steigen,
36
© Festo Didactic GmbH & Co. KG
EasyKit
muss die Spannung U erhöht werden.
10.3 Grundlagen Pulsweitenmodulierter Ausgängskanale
Abb. 10-5: Ansteuerung eines DC-Motors mit einem Transistor (Prinzip)
Die Ansteuerung von Verbrauchern wie DC-Motoren oder elektrischen Heizungen kann mit analogen
Ausgangssignalen geschehen, wie sie von einem DAC bereitgestellt werden. Da der Mikrocontroller
normalerweise zu wenig Strom liefern kann, um die Verbraucher direkt zu versorgen, werden
Verstärkerstufen zwischengeschaltet. In Abb. 10-5 ist dies prinzipiell dargestellt.
Der Transistor und der Verbraucher (hier ein DC-Motor) sind in Reihe geschaltet. Je nach Steuerspannung US
wird der Transistor hoch- oder niederohmig. Also verändert sich die am DC-Motor anliegende Spannung
ebenfalls. Da die Drehzahl von der am Motor anliegenden Spannung abhängt, wird sich die Motordrehzahl
abhängig von der Steuerspannung US verändern.
Nachteil bei diesem Verfahren ist jedoch, dass die elektrische Leistung sich gemäß der Verhältnisse der
Widerstände von Motor und Transistor verteilt. Es können daher erhebliche Verlustleistungen am Transistor
entstehen. Diese Verlustleistungen heizen den Transistor auf und können ihn zerstören. Verlustleistungen
sind generell unerwünscht, weil Energie verschwendet wird.
Besser ist dagegen die Ansteuerung mit einem pulsweitenmodulierten Signal (PWM). Dabei wird der
Transistor nicht kontinuierlich angesteuert, sondern mit einer hohen Frequenz voll geöffnet bzw.
geschlossen. Die Steuerspannung US schaltet also nur zwischen dem Maximalwert und Null. Daher ist der
Widerstand des Transistors entweder sehr groß (es fließt (fast) kein Strom) oder sehr klein (es fließt der
volle Motorstrom, aber der Leistungsabfall am Transistor ist aufgrund des kleinen Widerstandes auch sehr
klein.
Die pulsweitenmodulierte Ansteuerung reduziert die Energieverluste ganz erheblich und ist daher die
Standardmethode zur Ansteuerung von Verbrauchern mit großen Strömen.
Voraussetzung für die Anwendung ist jedoch, dass der Verbraucher viel langsamer reagiert als die PWMSpannung umgeschaltet wird. Bei Heizungen und Motoren ist das in aller Regel der Fall. Daher besitzen viele
Mikrocontroller einen oder mehrere PWM-Ausgänge.
© Festo Didactic GmbH & Co. KG
37
Mikrocontrollerprogrammierung mit EasyKit
11 Schnelle Zählereingänge
Lernziele
•
Drehzahlmessung
•
Schnelle Zählereingänge

Arbeitsblatt 9
11.1 Grundlagen: Lichtschranken
Lichtschranken bestehen aus einer Lichtquelle und einem lichtempfindlichen Sensor, z.B. einem
Phototransistor. Wird der Strahlengang abgedeckt, ist das Ausgangssignal False, ansonsten True.
Lichtschranken können auch zur Drehzahlmessung an Elektromotoren verwendet werden.
Dazu wird mit einer Lichtschranke der Hell-Dunkel-Übergang an einer Strichscheibe erfasst wird. Solche
Sensoren nennt man auch Inkrementalencoder.
Abb. 11-1: Prinzipieller Aufbau eines Inkrementalencoders
11.2 Schnelle Zählereingänge
Liefert ein Encoder z.B. 256 Signale pro Umdrehung des Motors, müssen bei einer Drehzahl von 3.000
U/min bereits 12.800 Signale pro Sekunde erfasst werden. Wenn Signale so schnell erfasst werden müssen,
sind spezielle Eingangskanäle notwendig. Sie heißen schnelle Zählereingänge.
In EasyLab gibt es auch einen solchen Zählereingang:
Der Funktionsblock fragt ebenfalls den digitalen Eingang ab, der durch den Baustein DIO bereitgestellt wird,
liefert jedoch als Rückgabewert den Abstand zwischen zwei steigenden Flanken in Mikrosekunden.
38
© Festo Didactic GmbH & Co. KG
EasyKit
12 Regelungstechnik mit EasyKit
Lernziele
•
Steuern und Regeln
•
Zweipunktregler
•
Dreipunktregler
•
PID-Regler

Arbeitsblatt 10
12.1 Grundlagen: Steuern und Regeln
An Maschinen oder Anlagen müssen oft Größen wie Druck, Temperatur oder Durchfluss auf vorgegebene
Werte eingestellt werden. Zusätzlich sollen sich diese eingestellten Werte auch bei auftretenden Störungen
nicht verändern. Solche Aufgaben werden von einer Regelung übernommen.
Die Regelungstechnik beschäftigt sich mit allen Problemen, die im Zusammenhang mit dieser Aufgabe
auftreten.
Damit eine zu regelnde Größe einem selbsttätig arbeitenden Regler als elektrisches Signal zur Verfügung
steht, wird sie zunächst erfasst und entsprechend umgewandelt. Dies übernehmen in der Regel Sensoren.
Dann muss diese Größe im Regler mit dem vorgegebenen Wert oder Werteverlauf - der Führungsgröße verglichen werden. Aus dem Vergleich muss abgeleitet werden, wie in die Anlage eingegriffen wird.
Schließlich muss in der Anlage eine geeignete Stelle gefunden werden, über welche man die zu regelnde
Größe beeinflussen kann (z. B. der Steller einer Heizung). Dazu ist es wichtig zu wissen, wie die Anlage sich
verhält.
Die Regelungstechnik versucht, allgemeingültige Zusammenhänge zu finden, die für verschiedene
Technologien gleichermaßen gelten. Die meisten Lehrbücher erklären dies mit Hilfe höherer Mathematik. Im
vorliegenden Kapitel sollen grundlegende Begriffe und Kenntnisse der Regelungstechnik so erläutert
werden, dass auf Mathematik weitgehend verzichtet werden kann.
Steuern
Die deutsche Norm DIN 19226 definiert: Steuern ist ein Vorgang an einem System, bei dem eine
Eingangsgröße (oder mehrere Eingangsgrößen) andere Größen als Ausgangsgröße aufgrund der dem
System eigentümlichen Gesetzmäßigkeit beeinflussen.
Kennzeichen für das Steuern ist der offene Wirkungsablauf, d. h. die Ausgangsgröße wirkt in keiner Weise
auf die Eingangsgröße zurück.
Regeln
Die Norm DIN 19226 definiert: Regeln ist ein Vorgang an einem System, bei dem die zu regelnde Größe
(Regelgröße) fortlaufend erfasst und mit dem vorgegebenen Wert (Führungsgröße) verglichen wird.
Abhängig vom Ergebnis dieses Vergleichs wird die Eingangsgröße des Systems derart beeinflusst, dass die
Ausgangsgröße an den vorgegebenen Wert trotz störender Einflüsse angeglichen wird. Durch diese
Rückwirkung erhält man einen geschlossenen Wirkungsablauf.
Führungsgröße
Die Führungsgröße W wird auch als Sollwert der Regelgröße bezeichnet. Sie gibt den gewünschten Wert der
Regelgröße vor. Die Führungsgröße kann über die Zeit konstant sein; sie kann sich aber auch über die Zeit
ändern. Der tatsächliche Wert der Regelgröße wird Istwert genannt.
© Festo Didactic GmbH & Co. KG
39
Mikrocontrollerprogrammierung mit EasyKit
Beim Regeln geht es darum, die zu regelnde Größe auf einem vorgegebenen Wert zu halten oder einem
vorgegebenen Werteverlauf nachzufahren. Dieser vorgegebene Wert heißt Führungsgröße.
Regelgröße
Definition:
Ziel einer Regelung ist es, eine Größe auf einem vorgegebenen Wert
oder Werteverlauf zu halten. Diese zu regelnde Größe wird als
Regelgröße x bezeichnet.
Dieses Problem stellt sich in Anlagen und Maschinen der unterschiedlichsten Technologien. Die zu regelnde
Größe wird dabei Regelgröße genannt.
Beispiel Drehzahl eines DC-Motors
Regelgrößen können z. B. sein:
•
der Druck in einem pneumatischen Druckspeicher
•
der Druck in einer hydraulischen Presse
•
die Temperatur in einem Galvanisierbad
•
der Durchfluss von Kühlmittel in einem Wärmetauscher
•
die Konzentration einer Chemikalie in einem Rührkesselreaktor
•
die Geschwindigkeit eines Vorschubes in einer Werkzeugmaschine mit elektrischem Antrieb
•
Drehzahl eines Motors
Stellgröße
Eine selbsttätige Regelung kann nur dann erfolgen, wenn an der Maschine oder Anlage eine
Eingriffsmöglichkeit besteht, die Regelgröße zu beeinflussen.
Die Regelgröße lässt sich in jeder Anlage durch einen Eingriff beeinflussen. Erst mit einem solchen Eingriff
kann die Regelgröße derart eingestellt werden, dass sie dem vorgegebenen Wert entspricht. Die Größe, die
einen solchen Eingriff bewirkt, wird Stellgröße y genannt.
Stellgrößen können z. B. sein:
•
die Stellung der Abluftdrossel am pneumatischen Druckspeicher
•
die Stellung des hydraulischen Druckregelventils
•
die angelegte Spannung an der elektrischen Heizung des Galvanisierbades
•
die Stellung der Drossel in der Kühlmittelleitung
•
die Stellung des Ventils in der Chemikalienzuflussleitung
•
die Spannung am Anker des Gleichstrommotors
Störgröße z
An jeder Regelstrecke greifen Störungen an. Diese machen die Regelung oft erst notwendig. Diese
Störeinwirkungen werden als Störgrößen z bezeichnet.
Die Regelstrecke ist der Teil der Maschine oder Anlage, in dem die Regelgröße auf den vorgegebenen Wert
gebracht werden soll und an dem die Stellgrößen die Störgrößen ausgleichen. Eine Regelstrecke hat nicht
nur die Stellgröße als Eingangsgröße, sondern Störgrößen treten ebenfalls als Eingangsgrößen auf.
Regeldifferenz xd
Der Vergleich von Führungs- und Regelgröße wird als Regeldifferenz xd bezeichnet. Sie berechnet sich aus
der Differenz:
40
© Festo Didactic GmbH & Co. KG
EasyKit
xd = e = W - x
Regelverhalten
Das Regelverhalten besagt, wie die Regelstrecke auf Eingangsgrößenänderungen reagiert. Die Ermittlung
des Regelverhaltens ist Ziel der Regelungstechnik.
Regler
Der Regler hat die Aufgabe, die Regelgröße so nahe wie möglich an der Führungsgröße zu halten. Im Regler
wird der Wert der Regelgröße ständig mit dem Wert der Führungsgröße verglichen.
Aus diesem Vergleich und dem Regelverhalten wird der Wert der Stellgröße ermittelt und ausgegeben.
Regeldifferenz xd
Regelgröße x
(Istwert)
Regelverhalten
(Algorithmus)
+
Stellgröße y
Führungsgröße W
(Sollwert)
Stellglied und Stellantrieb
Das Stellglied verändert die Regelgröße. Das Stellglied wird meist durch einen besonderen Stellantrieb
betätigt. Ein Stellantrieb ist immer dann erforderlich, wenn der Regler nicht in der Lage ist, das Stellglied
unmittelbar zu betätigen.
Messglied
Um dem Regler die Regelgröße zugänglich zu machen, muss sie durch ein Messglied (Sensor,
Messumformer) erfasst und in die physikalische Größe umgewandelt werden, die der Regler als Eingang
verarbeiten kann.
Regelkreis
Der Regelkreis beinhaltet alle Komponenten des geschlossenen Wirkungskreises, die zu einer selbsttätigen
Regelung notwendig sind.
Störgröße
Befehlsgeber
Sollwert w
Führungsgröße
Messort
mit Sensor
Stellglied
Vergleichsstelle
e
w
x
Regler
Regeldifferenz
y
Regelstrecke
Stellgröße
x
Istwert x
Regelgröße
Regelstrecken
Die Regelstrecke ist der Teil der Maschine oder Anlage, in dem die Regelgröße auf den vorgegebenen Wert
gebracht werden soll und an dem die Stellgrößen die Störgrößen ausgleichen. Eine Regelstrecke hat nicht
nur die Stellgröße als Eingangsgröße, sondern Störgrößen treten ebenfalls als Eingangsgrößen auf.
© Festo Didactic GmbH & Co. KG
41
Mikrocontrollerprogrammierung mit EasyKit
Um einen Regler für eine Regelstrecke festzulegen, muss zunächst das Verhalten der Regelstrecke bekannt
sein. Der Regelungstechniker interessiert sich nicht für die technologischen Abläufe im Inneren der
Regelstrecke, sondern ausschließlich für das Systemverhalten.
Zeitverhalten eines Systems
Besonders wichtig für die Regelungstechnik ist das Zeitverhalten eines Systems (auch dynamisches
Verhalten genannt). Das ist der zeitliche Verlauf der Ausgangsgröße (Regelgröße) bei Änderungen der
Eingangsgrößen. Hierbei kommt es vor allem auf das Verhalten bei Stellgrößenänderungen an.
Der Regelungstechniker muss sich stets darüber klar werden, dass nahezu jedes System ein ausgeprägtes
dynamisches Verhalten hat.
Sprungantwort bzw. Übergangsfunktion
Das Verhalten eines Systems bei einem Sprung der Eingangsgröße wird als Sprungantwort oder
Übergangsfunktion bezeichnet. Mit dieser Sprungantwort wird jedes System charakterisiert. Sie dient auch
dazu, Systeme mit mathematischen Gleichungen zu beschreiben.
Dynamisches Verhalten
Diese Beschreibung eines Systems wird auch dynamisches Verhalten genannt. Die Abbildung verdeutlicht
diesen Zusammenhang. Hierbei wurde die Stellgröße y sprungartig vergrößert (siehe unteres Diagramm).
Die Sprungantwort der Regelgröße x ist ein Einschwingvorgang mit kurzzeitigen Überschwingern.
y
x
t
Stellgröße y
t
Regelstrecke
Regelgröße x
Beharrungszustand
Eine weitere Kennzeichnung von Systemen ist das Verhalten im Beharrungszustand des Systems, das
statische Verhalten.
Statisches Verhalten
Das statische Verhalten eines Systems ist dann erreicht, wenn alle Größen sich über der Zeit nicht mehr
ändern. Der Beharrungszustand wird damit erst nach Abklingen aller Einschwingvorgänge erreicht. Er kann
beliebig lang aufrechterhalten werden.
Auch im statischen Verhalten ist die Ausgangsgröße von der Eingangsgröße abhängig. Diese Abhängigkeit
wird durch die Kennlinie eines Systems aufgezeigt.
Regler
Der Regler ist die Einrichtung im Regelkreis, die den Vergleich zwischen der gemessenen Größe (dem
42
© Festo Didactic GmbH & Co. KG
EasyKit
Istwert) und dem vorgegebenen Wert, dem Sollwert, durchführt und daraus die Stellgröße berechnet und
ausgibt.
Im vorhergehenden Abschnitt wurde deutlich, dass sich Regelstrecken sehr unterschiedlich verhalten. Es
gibt schnelle Strecken; es gibt Strecken mit starkem Verzögerungsverhalten; und es gibt Strecken mit
Speicherverhalten.
Für jede dieser Strecken muss der Eingriff auf die Stellgröße y auf andere Weise erfolgen. Deshalb gibt es
unterschiedliche Regler mit unterschiedlichen Regelverhalten. Die Aufgabe des Regelungstechnikers ist es,
für eine Strecke das optimale Regelverhalten des Reglers zu bestimmen.
Regelverhalten
Als Regelverhalten bezeichnet man die Art und Weise, wie der Regler aus der Regeldifferenz die Stellgröße
ableiten muss.
12.2 Reglertypen in EasyLab
In der Regelungstechnik haben sich verschiedene Reglertypen durchgesetzt, die für unterschiedliche
Aufgaben genutzt werden können. Sie unterscheiden sich Ihren Regelalgorithmus.
Zweipunktregler
Dreipunktregler
Proportionalregler
Ein Zweipunktregler besitzt nur zwei Ausgangswerte: ein und aus. Wenn der Istwert über dem Sollwert liegt,
ist der Ausgangswert aus, liegt der Istwert unter dem Sollwert, ist der Ausgangswert ein. Zweipunktregler
sind besonders dann geeignet, wenn die Stellgröße sich nicht stetig verändern, sondern nur zweiWerte
annehmen kann (eben an oder aus). Ein Beispiel hierfür ist ein Thermostat, der die Heizung je nach
Temperatur ein oder ausschaltet. Der Nachteil des Zweipunktreglers ist, dass er niemals zur Ruhe kommt.
Der Dreipunktregler hat drei Ausgangszustände. Liegt das zu verarbeitende Signal oberhalb der oberen
Grenze, wird der Ausgang auf den positiven Wert (Output Level) eingestellt. Liegt es hingegen unterhalb der
unteren Grenze, wird der Ausgang auf den negativen Wert (Output Level) eingestellt. Falls das Signal
zwischen beiden Grenzen, so wird der Ausgang auf 0 gesetzt. Beispiele dafür sind Lageregler, die vorwärts
und Rückwärts fahren oder stillstehen können. Es können aber auch Stellgrößen mit zwei Intensitätsstufen
angesteuert werden.
Der Proportionalregler liefert hingegen ein kontinuierliches Ausgangssignal. Der Ausgabewert ist dabei
proportional dem Abweichung zwischen Soll- und Istwert. Der Proportionalitätsfaktor ist der wichtigste
Einstellparameter des Proportionalreglers oder P-Reglers. Ist der Faktor groß, führen kleine
Regelabweichungen bereits zu starken Reaktionen des Reglers, kleine Faktoren hingegen lassen den Regler
weniger stark reagieren. Abb. 10-1 zeigt das Verhalten eines Regelkreises mit P-Regler und kleinem (links)
© Festo Didactic GmbH & Co. KG
43
Mikrocontrollerprogrammierung mit EasyKit
und großem Proportionalitätsfaktor (rechts). Während im einen Fall der Regelkreis sich nur langsam dem
Sollwert W nähert und diesen nicht vollständig erreicht, wird bei zu starken Faktor der Sollwert zwar schenll
erreicht, aber überschossen. Daraufhin muss der Regler gegensteuern, überschießt wieder nach unten und
so weiter. Es kann sogar vorkommen, dass der gesamte Regelkreis sich aufschwingt und instabil wird. Dies
gilt es natürlich unter allem Umständen zu vermeiden. Man muss den Faktor finden, den besten Kompromiss
zwischen Regelgeschwindigkeit und Stabilität bietet.
Abb. 12-1: Zeitliches Verhalten eines Regelkreises mit P-Regler
Der P-Regler kann zum Proportional-Integral- oder PI-Regler erweitert werden. Der Integralanteil des Reglers
reagiert nicht auf die aktuelle Regelabweichung, sondern summiert (integriert) die Regelabweichung
ständig auf und reagiert auf die Summe der Abweichungen. Ein PI-Regler kann daher auch kleinste
Regelabweichungen beseitigen, was bei einem reinen P-Regler nicht möglich ist.
Bei einem PID-Regler reagiert der Differential-Anteil auf die Änderungsgeschwindigkeit der
Regelabweichung. Diese Regler reagieren daher sehr schnell, führen aber leicht zu Instabilitäten.
44
© Festo Didactic GmbH & Co. KG
EasyKit
13 Übersicht über die Funktionsblöcke in EasyKit
Wichtige allgemeine Funktionsblöcke
Abbildung
Name
Beschreibung
Ordner
Konstante
Liefert einen konstanten Wert zurück
Konstanten
(z.B. eine Zahl)
Addition,
Zählt Zahlen zusammen oder zieht sie
Mathematik 
Subtraktion
voneinander ab
Arithmetische Operationen
Multiplikation,
Division
Multipliziert zwei Zahlen oder teilt eine
Zahl durch eine andere
Mathematik 
Arithmetische Operationen
Größer, Kleiner,
Gleichheit
Vergleicht zwei Zahlen
Mathematik 
Vergleichsoperationen
Typ-
Wandelt eine Ganzzahl in eine
Mathematik
umwandlung
Kommazahl oder Wahrheitswert um bzw.
umgekehrt
Intervall-
Zeigt einen Zahlenwert als Balken an
Anzeige
anzeige
Minimum,
Gibt die kleinere bzw. größere von zwei
Mathematik 
Maximum
Zahlen zurück.
Funktionen
UND-/ODERVerknüpfung,
Negation
Verknüpft oder invertiert Wahrheitswerte
Mathematik 
Logische Operationen
Multiplexer
Wählt ein Signal aus einer Menge von
Signalen aus
Verschiedenes
Demultiplexer
Verteilt ein Signal auf genau einen Kanal
Verschiedenes
aus einer Menge von Kanälen
PID-Regler
Regelt z.B. einen Elektromotor, indem
Regler
eine Abweichung vom Sollwert
ausgeglichen wird
Funktionsblöcke des Geräts „EasyKit Starter Basisboard“
Abbildung
Name
Beschreibung
Rote/Gelbe/Grüne LED
Steuert die entsprechende LED auf dem Basisboard an
Taster 1/2/3
Liefert den Zustand des entsprechenden Tasters auf dem
Basisboard zurück
© Festo Didactic GmbH & Co. KG
Analoger Eingang/
Ausgang auf A-In1
Liefert den Spannungswert am analogen Eingang bzw.
definiert den Wert am Ausgang
Digitaler Eingang/ Ausgang
auf D-In1
Liefert den Zustand des digitalen Eingangs bzw. definiert den
Zustand des Ausgangs
Digitale Flanken-
Liefert die Zeit zwischen zwei steigenden Signalflanken am
erkennung auf D-In1
Eingang D-In1 zurück
45
Arbeitsblatt 1
Lernziele
Binäre Signale, Blockschaltbilder und Datenflussdiagramme, Bedienung von EasyLab, Taster und LED
Aufbau der Bildschirmoberfläche EasyLab
Nr.
Bedeutung
1
Arbeitsfläche zur der Erstellung der Programme
2
Programmbausteine für die Unterprogramme (Funktionsbibliothek)
3
Hinzufügen neuer Hardware (geschieht normalerweise automatisch)
4
Kontrolltasten zur Ablaufsteuerung (siehe Abb. 3-4)
5
Reiter zum Umschalten zwischen Haupt- und Unterprogrammen
Bedienelemente der Steuerleiste
Nr.
Bedeutung
1
Umschalten auf Simulationsmodus
2
Umschalten auf Codeerzeugungsmodus
3
Start Simulation bzw. Kompilieren
4
Einfrieren der Programmausführung
5
Stop der Programmausführung
6
Anzeigen der Werte der FunktionsblockAnschlüsse
7
Anzeigen der Beschreibung der
Funktionsblock-Anschlüsse
8
Umschalter für Anfänger- und
Expertenmodus
© Festo Didactic GmbH & Co. KG
46
Aufgabe 1
Welche Geräte können mit binären Signalen gesteuert werden bzw. abgefragt werden?
 Taste
 Raumtemperatur
 Lampe
 Potentiometer
 Wasserbehälter voll/leer
 Tür geöffnet/geschlossen
Aufgabe 2
Zeichnen Sie ein Blockschaltbild von EasyBoard
Aufgabe 3
Erstelle ein Programm, das die rote LED auf dem EasyBoard einschaltet, wenn die Taste 1 gedrückt wird.
Teste das Programm im Simulations- und Codeerzeugungsmodus.
siehe Beispielprogramm Ex1-1.easy
Aufgabe 4
Erweitere das Programm aus Übungsaufgabe 1 so, dass durch Betätigung der Taste 1 die rote und die
grüne LED eingeschaltet wird, aber durch Betätigen der Taste 2 die gelbe LED leuchtet.
Siehe Beispielprogramm Ex1-2.easy
© Festo Didactic GmbH & Co. KG
47
Arbeitsblatt 2
Lernziele
Schrittketten, Verzweigungen, Konstanten und Variablen
Schrittketten in EasyLab
Nr.
Bedeutung
1
Startschritt
2
Zustand oder
Programmschritt
Zuweisen eines Unterprogramms zu einem Schritt
48
3
Weiterschaltbedingung
4
Einfügen Schritte
5
Variablenliste
6
Reiter des Hauptprogramms
Verzweigung im Hauptprogramm
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Erläutern Sie den Unterschied zwischen Variable und Konstante.
Eine Variable dient als Speicher für Informationen. Sie hat einen bestimmten Datentyp und kann
innerhalb des Programms überschrieben und ausgelesen werden.
Eine Konstante dient ebenfalls als Speicher, kann aber während des Programablaufes nicht
überschrieben werden.
Aufgabe 2
Beschreiben Sie den Vorgang des Kaffeekochens als Schrittkette
Aufgabe 3
Erstellen Sie ein Programm in EasyLab mit folgender Funktionalität:
Die rote LED soll durch Drücken von Taste 1 eingeschaltet werden und so lange leuchten, bis auf Taste 2
gedrückt wird. Danach ist das Programm beendet.
Siehe Beispielprogramm Ex 2-1.easy
Aufgabe 4
Erstellen Sie ein Programm in EasyLab mit folgender Funktion:
Taste 1 schaltet die rote, Taste 2 die gelbe LED ein. Ein Druck auf Taste 3 löscht die jeweils eingeschaltete
LED wieder. Der Zyklus soll sich endlos wiederholen.
Siehe Beispielprogramm Ex 2-2.easy
© Festo Didactic GmbH & Co. KG
49
Arbeitsblatt 3
Lernziele:
Logische Verknüpfungen
Übersicht Logische Verknüpfungen als Funktionsbaustein
Benennung
Funktionstabelle
Funktionsblock in
EasyLab
Nicht
Und
Oder
Exklusiv-Oder
Logische Verknüpfungen als Weiterschaltbedingung im Hauptprogramm
Bennenung
Symbol
Und
&&
Oder
||
Negation
!
Beispiel:
taste1 und taste2 sind integer-Variablen
50
taste1 und taste2 sind boolesche Variablen
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Welchen Ausgangswert ergeben die dargestellten logischen Verknüpfungen?
Aufgabe 2
In einer Anlage soll ein Lüfter eingeschaltet werden, wenn die Temperatur größer als 33° ist, beide Tore
geschlossen sind und das Transportband stillsteht. Formulieren Sie die Übergangsbedingung!
Aufgabe 3
Erstellen Sie ein Programm mit EasyLab mit folgenden Eigenschaften:
Wenn Taste 1 und Taste 2 gleichzeitig betätigt werden, wird die rote LED eingeschaltet.
Wenn danach Taste 2 und Taste 3 gleichzeitig betätigt werden, wird die rote LED ausgeschaltet.
Danach beginnt der Zyklus von vorn.
a.)Nutze die Funktionsbausteine Logische Operationen innerhalb der Unterprogramme.
Siehe Beispielprogramm Ex 3-1.easy
b.)Nutze logische Operationen innerhalb des Hauptprogramms als Weiterschaltbedingung.
Siehe Beispielprogramm Ex 3-2.easy
© Festo Didactic GmbH & Co. KG
51
Arbeitsblatt 4
Lernziele:
Flankenerkennung, Flip-Flops mit und ohne Flankenerkennung
Übersicht über Flip-Flops
Abbildung
Name
Funktion
Ordner
Flankenerkennung
Der Block gibt bei jeder
Signalverarbeitung -> Filter
Signalveränderung am Eingabesignal,
welche oberhalb der Toleranzgrenze
ist, einen Impuls aus. Wird der Wert
des Signals größer, wird ein Impuls an
Steigende Flanke erkannt ausgegeben.
Wird der Wert des Signals kleiner, wird
ein Impuls an Fallende Flanke
ausgegeben. Der Funktionsblock kann
auch dazu verwendet werden, Flanken
in Booleschen Signalen
RS-Kippstufe
Liegt am Eingang S der Wert True an,
Signalverarbeitung -> Flip-Flops
wird der Ausagng Q auf True gesetzt.
Durch Setzen des Löscheingangs R
wird der Ausgang Q wieder gelöscht.
Der Ausgang _Q zeigt jeweils das
inverse Signal
T-Kippstufe
Mit jeder steigenden Flanke am
Signalverarbeitung -> Flip-Flops
Eingang C wechseln die Ausgänge
ihren logischen Zustand. Es ist immer
genau einer der beiden Ausgänge
wahr, während der andere falsch ist.
Initial besteht der Zustand falsch für Q
und wahr für _Q
52
Flankengesteuerte
Diese Baustein arbeitet wie ein RS-
RS-Kippstufe
Kippstufe, jedoch findet ein
Umschalten nur statt, wenn am
Eingang C eine steigende Flanke
anliegt.
Signalverarbeitung -> Flip-Flops
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Erstellen Sie ein Programm in EasyLab mit folgenden Eigenschaften:
Immer, wenn die Taste 1 gedrückt wird, wird die rote LED eingeschaltet.
Immer, wenn die Taste 2 gedrückt wird, wird die rote LED ausgeschaltet.
Es soll nur ein Unterprogramm verwendet werden.
Siehe Beispielprogramm Ex4-1.easy.
Aufgabe 2
Erstellen Sie ein Programm mit EasyLab mit folgenden Eigenschaften:
Immer, wenn die Taste 1 gedrückt wird, wird die rote LED eingeschaltet. Erneutes Betätigen der Taste 1
schaltet die rote LED wieder aus. Es soll nur ein Unterprogramm verwendet werden.
Siehe Beispielprogramm Ex4-2.easy.
© Festo Didactic GmbH & Co. KG
53
Arbeitsblatt 5
Lerziele
Duale Zahlen, Gleitkommazahlen, Arbeiten mit Variablen, Typumwandlung
Datentypen in EasyLab
Typ
Erläuterung
Wertebereich
bool
Logische Werte
True , false
Int8
Integer mit 8 Bit Genauigkeit
Ganze Zahlen zwischen -128
und 127
Int16
Integer mit 16 Bit Genauigkeit
Ganze Zahlen zwischen -32768
und 32768
Vorzeichenloser Integer mit 8 Bit
Ganze Zahlen zwischen 0 und
Genauigkeit
255
uint16
Vorzeichenloser Integer mit 16 Bit
Genauigkeit
Ganze Zahlen zwischen 0 und
65535
float
Fließkommazahl (32 bit)
-3,14
double
Fließkommazahl (64 bit)
-3,14
uint8
Funktionsbausteine zur Signalgenerierung, Multiplexen und Typumwandeln
Abbildung
Name
Funktion
Ordner
Schrittfunktion
Zählt den Ausgangswert in
vorgegebenen Inkrementen hoch
Signalgenerierung
PWM-Signal
Erzeugt ein Pulsweitenmoduliertes
Signalgenerierung
Signal vom Typ Boole
Sägezahnsignal
Erzeugt einen Sägezahnimpuls von
Typ integer oder float
Signalgenerierung
Multiplexer
Auswahl mehrerer Eingänge
Verschiedenes
Demultiplexer
Verteilen eines Wertes auf mehrere
Verschiedenes
Ausgänge
Typumwandlung
54
Umwandlung eines Datentyps in
einen anderen
Matehmatik
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Stellen Sie folgende Zahlen in duale Form dar (8 bit unsigned):
Dezimal
Dual (8 bit unsigned)
3
0
0
0
0
0
0
1
1
128
1
0
0
0
0
0
0
0
64
0
1
0
0
0
0
0
0
25
0
0
0
1
1
0
0
1
Aufgabe 2
Erstellen Sie ein Programm in EasyLab, dass die gelbe LED periodisch blinken lässt. Die Periode soll über
Tastendruck eingestellt werden können. Betätigen der Taste 1 soll die Blinkfrequenz erniedrigen, Betätigen
der Taste 3 die Blinkfrequenz erhöhen.
a.) Mit welchem Funktionsbaustein kann ein periodisches Signal erzeugt werden? Was bedeuten die
Eingangsparameter? Informieren Sie sich mit der Hilfefunktion von EasyLab.
Der Baustein Pulsweitenmoduliertes Signal liefert gepulste binäre Signale.
Der Eingangswert period ext definiert die Dauer eines Signals in Mikrosekunden, der Paramter
dutyCycle ext definiert den Anteil der Periode mit Ausgangssignal true (zwischen 0 und 100 %).
b.) Schreiben Sie ein Programm, dass die LED mit einer Frequenz von 1 Hz blinken läßt.
Siehe Beispielprogramm Ex5-2.easy
c.) Wie kann aus dem Ausgangssignal des Funktionsblockes Taster ein berechenbares Signal erzeugt
werden?
Mit dem Baustein Typumwandlung. Er wandelt ein Signal des Typs bool in einen integer um.
d.) Beschreibe den Rechenalgorithmus zur Veränderung der Frequenz per Tastendruck.
Ein Tastendruck erzeugt einen Signal true, das mit dem Funktionsblock Typumwandlung in einen
integer mit Wert 0 oder 1gewandelt wird. Dieser Wert wird einer Variable Frequenz hinzuaddiert oder
subtrahiert, je nachdem, welche Taste gedrückt wird. Dieser Wert wird mit 1000 multipliziert, damit
die Verstellung schnell geht.
e.) Erstelle das Programm und teste es im Simulationsmodus und auf dem EasyBoard.
Siehe Beispielprogramm Ex5-3.easy
© Festo Didactic GmbH & Co. KG
55
Arbeitsblatt 6
Lerziele
Duale Zahlen, Gleitkommazahlen, Arbeiten mit Variablen, Typumwandlung
Datentypen in EasyLab
Typ
Erläuterung
Wertebereich
bool
Logische Werte
True , false
Int8
Integer mit 8 Bit Genauigkeit
Ganze Zahlen zwischen -128
und 127
Int16
Integer mit 16 Bit Genauigkeit
Ganze Zahlen zwischen -32768
und 32768
Vorzeichenloser Integer mit 8 Bit
Ganze Zahlen zwischen 0 und
Genauigkeit
255
uint16
Vorzeichenloser Integer mit 16 Bit
Genauigkeit
Ganze Zahlen zwischen 0 und
65535
float
Fließkommazahl (32 bit)
-3,14
double
Fließkommazahl (64 bit)
-3,14
uint8
Funktionsbausteine zur Signalgenerierung, Multiplexen und Typumwandeln
Abbildung
Name
Funktion
Ordner
Schrittfunktion
Zählt den Ausgangswert in
vorgegebenen Inkrementen hoch
Signalgenerierung
PWM-Signal
Erzeugt ein Pulsweitenmoduliertes
Signalgenerierung
Signal vom Typ Boole
Sägezahnsignal
Erzeugt einen Sägezahnimpuls von
Typ integer oder float
Signalgenerierung
Multiplexer
Auswahl mehrerer Eingänge
Verschiedenes
Demultiplexer
Verteilen eines Wertes auf mehrere
Verschiedenes
Ausgänge
Typumwandlung
56
Umwandlung eines Datentyps in
einen anderen
Matehmatik
© Festo Didactic GmbH & Co. KG
Aufgabe 1
a.)Erstellen Sie ein Programm zur Typumwandlung nach folgendem Muster:
b.) Durch Doppelklick auf das Kontextmenue der Funktionsbausteine kann der Datentyp der Bausteine
eingestellt werden. Stellen Sie bei der Konstanten den Datentyp Float ein, bei der Variable test den Wert
int16 (bzw. boole). Starten Sie das Programm im Simulationsmodus, geben Sie folgende Werte für die
Konstante ein und notieren Sie den Wert, den die Variable annimmt:
Konstante
Variable Test
Konstante
Variable Test
(Typ: Float)
(Typ: int 16)
(Typ: Float)
(Typ: bool)
0
0
0
False
2,6
2
0,1
True
16,1
16
1
True
100.000
32767
16
True
-12
-12
-12
True
c.)Welche Schlussfolgerungen können Sie ziehen?
Variablentyp int16 hat den maximalen Wert 32767.
Es wird beider Umwandlung immer abgerundet.
Jeder Wert außer Null wird nimmt bei der Umwandlung zum Typ boole True an.
Aufgabe 2
Erstellen Sie ein Programm in EasyLab zur Steuerung der LED. Einmaliges Drücken der Taste 1 gefolgt von
Drücken der Taste 3 schaltet die rote LED ein, zweimaliges Drücken der Taste 1 die gelbe LED und
dreimaliges Drücken der Taste 1 die grüne LED. Drücken der Taste 3 löscht alle LED und beendet das
Programm.
Siehe Beispielprogramm Ex6-1.easy
© Festo Didactic GmbH & Co. KG
57
Arbeitsblatt 7
Lernziele
Analog-Digital-Wandler, Analogwertverarbeitung mit EasyLab und EasyBoard
Funktionsbausteine für digitale und analoge Signale
Bausteincode
Funktion
Softwarebaustein
Klemme an
Ordner
Basisplatine
Digitaler Ausgang
DOut1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
DIO 1.1
Digitaler Eingang
Din1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
Analoger
AIO 1.1
AIn1
Ausgangskanal
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Analoger
AOut1
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Eingangskanal
Aufbau des Applikationsboards
1
DC-Motor
2
Klemmleiste
3
Lichtschranke
4
Phototransistor
5
Jumper
6
Jumper zum Umschalten von Lichtschranke auf
Photodiode
Zwischen Phototransistor und Lichtschranke kann durch
Einstellung des Jumpers 2 (6) umgeschaltet werden:
Kontakt 1-2 geschlossen: Lichtschranke
Kontakt 2-3 geschlossen: Phototransistor
58
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Zur Belichtungsmessung soll das Signal des Phototransistor eingelesen werden. Welche Bausteine und
welche Funktionsbausteine werden benötigt?
 AIO
 DIO




Aufgabe 2
Damit die Signale des Phototransistor auf den Mikrocontroller übertragen werden können, muss das
Applikationsboard angeschlossen werden. Welche Kontakte der Kontaktleiste 2 des Applikationsboards
müssen mit welchen Kontakten der Klemmleiste des EasyBoards 5 verbunden werden?
Aufgabe 3
Erstellen Sie ein Programm mit EasyLab, dass abhängig von der Beleuchtungsstärke im Raum eine Lampe
(=LED) einschaltet. Testen Sie das Programm in der Simulation und mit dem EasyBoard. Ermitteln Sie einen
für die Beleuchtungsverhältnisse passenden Schwellwert (evtl. kann es nötig sein, den Phototransistor mit
einer Taschenlampe anzuregen).
Siehe Beispielprogramm Ex7-3.easy
© Festo Didactic GmbH & Co. KG
59
Arbeitsblatt 8
Lernziele
Analoge Ausgangskanäle, Digital-Analog-Wandler, Pulsweitenmodulation, Gleichstrommotore
Funktionsbausteine für digitale und analoge Signale
Bausteincode
Funktion
Softwarebaustein
Klemme an
Ordner
Basisplatine
Digitaler Ausgang
DOut1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
DIO 1.1
Digitaler Eingang
Din1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
Analoger
AIO 1.1
AIn1
Ausgangskanal
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Analoger
AOut1
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Eingangskanal
Aufbau des Applikationsboards
1
DC-Motor
2
Klemmleiste
3
Lichtschranke
4
Phototransistor
5
Jumper
6
Jumper zum Umschalten von Lichtschranke auf
Photodiode
Zwischen Phototransistor und Lichtschranke kann durch
Einstellung des Jumpers 2 (6) umgeschaltet werden:
Kontakt 1-2 geschlossen: Lichtschranke
Kontakt 2-3 geschlossen: Phototransistor
60
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Der DC-Motor des Applikationsboards soll angesteuert werden. Welche Bausteine und welche
Funktionsbausteine werden benötigt?
 AIO
 DIO




Aufgabe 2
Damit der Motor angesteuert werden kann, muss das Motorboard angeschlossen werden. Welche Kontakte
der Kontaktleiste 2 des Applikationsboards müssen mit welchen Kontakten der Klemmleiste des EasyBoards
5 verbunden werden?
Aufgabe 3
Erstellen Sie das abgebildete Programm in EasyLab und lassen es mit verschiedenen Werten für die
Konstante UM laufen. Welche Beobachtung machen Sie?
Der Motor beginnt sich bei einem Wert von ca. 30 zu drehen. Die Drehzahl steigert sich bis zu einem
Wert von ca. 50 und bleibt dann konstant.
Aufgabe 4
Erstellen Sie ein Programm mit EasyLab, mit dem die Drehzahl des Motors stufenlos durch Betätigen der
Tasten 1 und 3 verändert werden kann. Betätigen der Taste 2 soll den Motor starten oder stoppen.
Siehe Beispielprogramm Ex8-1.easy
© Festo Didactic GmbH & Co. KG
61
Arbeitsblatt 9
Lernziele
Drehzahlmessung, Schnelle Zählereingänge
Funktionsbausteine zur Ein-und Ausgabe
Bausteincode
Funktion
Softwarebaustein
Klemme an
Ordner
Basisplatine
Digitaler Ausgang
DOut1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
DIO 1.1
Digitaler Eingang
Din1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
Zählereingang
Din1
EasyKit Starter Basisboard ->
Stapel 1->Digitale E/A
AIO 1.1
Analoger
Ausgangskanal
AIn1
EasyKit Starter Basisboard ->
Stapel 1->Analoge E/A
Analoger
AOut1
EasyKit Starter Basisboard ->
Eingangskanal
62
Stapel 1->Analoge E/A
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Der DC-Motor des Applikationsboards soll angesteuert werden und die Drehzahl gemessen werden. Welche
Bausteine und welche Funktionsbausteine werden benötigt?
 AIO

 DIO




Aufgabe 2
Wie muss das Applikationsboard mit dem EasyBoard verbunden werden, wenn der Motor angesteuert und
gleichzeitig die Drehzahl erfasst werden soll?
Aufgabe 3
Der Funktionsbaustein Digitale Flankenerfassung liefert den zeitlichen Abstand zweier ansteigender Flanken
in Mikrosekunden. Wie lautet die Umrechnung in die Einheit Umdrehungen pro Minute,wenn die
Codescheibe einen Hell-Dunkel-Übergang hat?
Jeder Flankenübergang entspricht einer halben Umdrehung, da die Strichscheibe 4 Felder hat.
Zunächst muss der Abstand zwischen zwei Flanken (in Mikrosekunden) durch 1.000.000 dividiert
werden, um den zeitlichen Abstand in Sekunden zu erhalten. Teilt man 60 durch diese Zeit, erhält
man die Drehzahl in Umdrehungen/Minute. Der Faktor 2 berücksichtigt, dass die Scheibe 4 Felder hat
und damit 2 positive Flanken pro Umdrehung liefert.
n = (60 * 106)/(2*Δt)
Aufgabe 4
a.)Erweitern Sie das Programm aus Arbeitsblatt 8 durch eine Drehzahlanzeige! Verwenden Sie dazu auch
den Baustein Intervallanzeige!
Siehe Beispielprogramm Ex9-1.easy.
b.)Stellen Sie verschiedene Drehzahlen ein und verändern Sie die Lage des Applikationsboards (drehen,
kippen usw.) Was stellen Sie fest?
Eine andere Lage (besonders bei hängendem Motor) verändert die Drehzahl. Grund sind
unterschiedliche Reibungsverhältnisse.
© Festo Didactic GmbH & Co. KG
63
Arbeitsblatt 10
Lernziele
Regleungstechnik, Zweipunktregler
Reglertypen
Zweipunktregler
64
Dreipunktregler
Proportionalregler
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Beschreiben Sie den Unterschied zwischen Steuerung und Regelung.
Steuern:
Beeinflussen im offenen Steuerkreis
Regeln:
Beeinflussen im geschlossenen Regelkreis
Aufgabe 2
Zeichnen Sie in Diagramm, in dem Sie das zeitliche Verhalten eines Regelkreises beschreiben, der mit einem
Zweipunktregler geregelt wird. Bezeichnen Sie auch die Hysterese.
Wichtig: gerade Kurve mit immer dergleichen Steigung, da Zweipunktregler nur ein/aus kennt.
Aufgabe 3
a.)Erstellen Sie auf Basis des Programms aus Aufgabe 8 einen Regelkreis für die Motordrehzahl, mit dem
Drehzahl gesteuert und gemessen werden kann. Nutzen Sie zunächst einen Zweipunktregler. Nutzen Sie als
Startwerte für die Parameter des Zweipunktreglers folgende Werte.
Paramter
amplification
upper
lower
Startwert
100
500
0
b.)Versuchen Sie dann die Parameter zu verändern und ein optimales Regelverhalten einzustellen. Was
würden Sie als ein gutes Regelverhalten beschreiben?
Siehe Beispielprogram Ex 10-1.easy.
Der Sollwert wird schnell erreicht und eingehalten. Der Regelkreis schwingt nicht.
Welche Werte sind bei Ihnen optimal?
Paramter
amplification
upper
lower
Optimaler Wert
© Festo Didactic GmbH & Co. KG
65
Arbeitsblatt 11
Lernziele
Regleungstechnik, PID-Regler
Reglertypen
Zweipunktregler
66
Dreipunktregler
Proportionalregler
© Festo Didactic GmbH & Co. KG
Aufgabe 1
Erstellen Sie auf Basis des Programms aus Aufgabe 8 einen Regelkreis für die Motordrehzahl, mit dem
Drehzahl gesteuert und gemessen werden kann. Nutzen Sie PID-Regler. Nutzen Sie als Startwerte für die
Parameter des Zweipunktreglers folgende Werte.
Paramter
Startwert
pcoefficient
icoefficient
dcoefficient
0,1
0
0
Starten Sie das Programm und verändern Sie die Regelparameter. Was stellen Sie fest? Welche Parameter
bringen die besten Ergebnisse?
Paramter
pcoefficient
icoefficient
dcoefficient
Startwert
Siehe Beispielprogramm Ex11-1.easy.
P-Anteil allein bringt keine stationäre Genauigkeit. Je kleiner der P-Anteil, desto größer die
Abweichung. Kleiner I-Anteil sorgt für Genauigkeit., der Regler reagiert aber langsamer. D-Anteil sorgt
für stärkeres Schwingen.
Anmerkung: Der I-Anteil kann sich so schnell aufsummieren, dass der Regler in die Sättigung kommt
und nicht mehr funktioniert. Dies kann durch den PID-Regler mit Anti-Wind-Up vermieden werden. Bei
diesem Reglertyp wird der der Ausgangswert begrenzt.
© Festo Didactic GmbH & Co. KG
67
Herunterladen