4.2.6 Hauptplatine - Hans-Sachs-Berufskolleg
4.2.6 Hauptplatine - Hans-Sachs-Berufskolleg
4.2.6 Hauptplatine - Hans-Sachs-Berufskolleg
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Füllstandsregelung<br />
eines drei<br />
Behältersystems<br />
Projektteilnehmer:<br />
Patrick Prgjanac<br />
Stefan Fockenberg<br />
Projektdokumentation<br />
2007<br />
2008<br />
Projektbetreuung:<br />
Herr Grüger
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
Inhaltsverzeichnis:<br />
Seite 2<br />
Seite<br />
1 VORWORT 4<br />
2 PROJEKTBESCHREIBUNG 4<br />
3 AUFGABENSTELLUNG 5<br />
4 DURCHFÜHRUNG 6<br />
4.1 Untersuchung des zweiten Anlagenaufbaus 6<br />
4.2 neuer Anlagenaufbau 7<br />
4.2.1 Behälter Befestigung 7<br />
4.2.2 Festverrohrung 8<br />
4.2.3 Pumpen- und Motorenbefestigung 9<br />
4.2.4 Plattenkondensator 10<br />
4.2.5 Störgrößenpumpe und Motor 10<br />
<strong>4.2.6</strong> Aufnahme für das Leybold-System 11<br />
<strong>4.2.6</strong> <strong>Hauptplatine</strong> 12<br />
4.2.7 Relaisplatine 13<br />
5 Programm Änderungen 14<br />
6 SCHALTPLÄNE 23<br />
6.1 <strong>Hauptplatine</strong> 23
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.1.1 Behälter 1 24<br />
6.1.2 Behälter 2 25<br />
6.1.3 Behälter 3 26<br />
6.1.4 Füllstandserfassung 27<br />
6.2 Relaisplatine 28<br />
6.2.1 Hauptversorgung 28<br />
6.2.2 Hand/Auto Umschaltung 29<br />
6.2.3 Störgrößensteuerung 30<br />
6.2.4 Cassy Steuerung 1 31<br />
6.2.5 Cassy Steuerung 2 32<br />
7 Materialliste 33<br />
Seite 3
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
1 VORWORT<br />
Im Raum B 01 des <strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong>s befindet sich eine 3-Behälter-<br />
Füllstandsregelung zum Einhängen in das Stecksystem der Firma Leybold. Diese<br />
wurde von einer vorherigen Gruppe konzipiert, entsprach jedoch in ihrer Ausführung<br />
nicht den Anforderungen. Außerdem sollte sie in das entstehende Bussystem der<br />
Schule eingebunden werden, so dass sie von einem anderen Raum aus gefahren<br />
werden kann. Eine weitere Gruppe sollte den Versuchsaufbau optimieren, sie<br />
entwarf Schaltpläne um die Regelung über das entstehende Bussystem der Schule<br />
zu fahren, so dass sie von Raum 152 aus über die SPS gesteuert werden kann.<br />
2 PROJEKTBESCHREIBUNG<br />
Unsere Aufgabe ist es, eine neue Anlage zu bauen<br />
welche wie die alte Anlage in das vorhandene<br />
Stecksystem der Firma Leybold passt. Die<br />
Füllstandsregelstrecke erstreckt sich über drei Behälter,<br />
wobei Öl in den ersten Behälter gepumpt wird, von<br />
diesem über einen zweiten Behälter in den dritten fließt<br />
und zuletzt in den Auffangbehälter. Der Füllstand der<br />
einzelnen Behälter soll über Plattenkondensatoren<br />
ermittelt werden. Es sollen Störgrößen in den ersten<br />
(Versorgungsstörgröße) und in den dritten<br />
(Laststörgröße) Behälter zuschaltbar sein. Die<br />
Messergebnise werden analog oder auch digital über<br />
eine RS 232 Schnittstelle bzw. Bananenbuchsen<br />
ausgelesen, um auf einem Oszilloskop bzw. einem PC<br />
als Sprungantwort dargestellt werden zu können. Desweiteren soll über Cassy die<br />
Anlage in das Bussystem der Schule eingebunden werden. Ein sicherer<br />
Überlaufschutz soll das Beschmutzen des Aufstellortes vermeiden.<br />
Seite 4
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
3 AUFGABENSTELLUNG<br />
Es soll ein funktionsfähiger Prototyp der Anlage, für den Unterrichtsgebrauch<br />
gefertigt werden, welcher später Serienmäßig nachgebaut werden kann.<br />
Dabei sollten folgende Features in die Anlage eingebracht werden:<br />
1 Störgrößen Zugabe<br />
- In Behälter 1 (als Versorgungsstörgröße)<br />
- In Behälter 3 (als Laststörgröße)<br />
2 Über Cassy bzw Vorort steuerbar<br />
- Nullpunkt Taster<br />
- Störgrößen Zugabe<br />
- Auslesen der Plattenkondensatoren<br />
3 0 – 10 V Regelbar<br />
4 Fest verrohrt<br />
- Hauptkreis<br />
- Störkreis<br />
5 Störpumpe konstante Förderung<br />
Seite 5
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
4 DURCHFÜHRUNG<br />
4.1 Untersuchung des zweiten Anlagenaufbaus<br />
Der zweite Anlagenaufbau war leider nicht mehr zu gebrauchen, da die zusätzliche<br />
Ansaugleitung der Störpumpe, die wie die<br />
Hauptansaugleitung fest verrohrt werden sollte,<br />
nicht in die Behälterwand einzubringen war.<br />
Desweiteren mussten die Ablaufrohre<br />
umgesetzt werden, damit das Öl nicht mehr<br />
über die Kondensator-Platten der einzelnen<br />
Behälter laufen konnte. Als nächstes musste<br />
der zweite Behälter weiter nach rechts<br />
verschoben werden, da bei Betrieb das Öl auf<br />
der gegenüberliegenden Seite heraus spritzte.<br />
Als letztes und wichtigstes Manko stellten wir<br />
fest das die vorhandene Art die Behälter auf<br />
der Platte zu befestigen nicht dicht war.<br />
Seite 6
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
4.2 Neuer Anlagenaufbau<br />
4.2.1 Behälter Befestigung<br />
Die Abläufe mussten so angelegt werden, dass das Öl in den vorderen Bereich des<br />
nächsten Behälters fließen kann, um später nicht über die Kondensator-Platten zu<br />
fließen. Die obersten<br />
Behälter waren alle<br />
schon mit Abläufen<br />
versehen worden, jetzt<br />
musste dafür gesorgt<br />
werden, dass auch der<br />
oberste Ablauf in den<br />
vorderen Bereich des<br />
nächsten Behälters<br />
zielt. Hierfür wurden<br />
Platten geschnitten, die auf die Platte hinter den Behälter geklebt wurden, und so<br />
den Ablauf in die richtige Lage brachten. Nun galt es, die Behälter auf der Platte zu<br />
befestigen. Es waren Kunststoffschrauben vorgesehen, die durch ein Gewinde durch<br />
die Behälterwand geschraubt wurden und gleichzeitig als Kondensator-Platten<br />
Aufnahme vorgesehen<br />
waren, die Behälter<br />
sollten durch diese<br />
Verbindung dicht<br />
bleiben. Leider stellte<br />
sich heraus, dass die<br />
Behälter nicht ganz<br />
dicht blieben. Nach<br />
mehreren Überlegungen<br />
setzten wir Gummi-<br />
dichtungen zwischen Behälter und Platte ein, desweiteren kamen Dichtungen hinter<br />
die Platte unter die Köpfe der Schrauben. Dafür mussten Trägerplatten aufgeklebt<br />
werden die den richtigen Sitz der Dichtungen in den dafür vorgesehenen<br />
Vertiefungen garantieren sollen.<br />
Seite 7
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
4.2.2 Festverrohrung<br />
Für die Festverrohrung musste erst der Mindestdurchmesser festgelegt werden. Als<br />
nächstes entschieden wir uns, die Verrohrung in Kupfer durchzuführen, da Kupfer<br />
recht preiswert, ölbeständig und gut zu verarbeiten ist. Nun musste der Anschluss an<br />
die Pumpen realisiert werden, es<br />
sollten Anschlüsse sein, die man bei<br />
Bedarf auch lösen kann, um die Pumpe<br />
zu wechseln. Da es leider keine<br />
direkten Verschraubungen für diesen<br />
Zweck gab, mussten Überwürfe<br />
angefertigt werden, die an die Pumpen<br />
angeschraubt und mit Dichtungen<br />
versehen werden konnten. Hierzu<br />
wurden Heizungsverschraubungen<br />
verwendet, deren Falze entfernt<br />
wurden, so entstand eine glatte Fläche,<br />
die sich mit einer Dichtung an die<br />
Pumpe schrauben ließ. Die Bögen an<br />
den Verschraubungen wurden hart<br />
gelötet, um beim Lösen oder Fest-<br />
ziehen die Dichtigkeit der Anlage zu<br />
gewähren. Die restliche Verrohrung<br />
wurde in 16er Kupferrohr weich<br />
verlötet, um eine Änderung oder<br />
Anpassung leichter zu ermöglichen. Es<br />
musste des weiteren die Umschaltung<br />
der Störgröße von Behälter 1 auf<br />
Behälter 3 verrohrt werden. Das<br />
Magnetventil, welches schon<br />
vorhanden war, wies zwei 1/4“<br />
Anschlüsse und einen 1/8“ Anschluss auf. Hierfür wurden jeweils passende<br />
Anschlüsse gefertigt und mit Heizungsverschraubungen versehen.<br />
Seite 8
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
Um die Störkreislauf mit Öl zu versorgen und<br />
den normalen Betrieb nicht zu stören musste<br />
eine zweite Ansaugleitung eingebracht<br />
werden. Da die zusätzliche Ansaugleitung<br />
nicht neben die vorhandene Ansaugleitung, in<br />
den Behälter, eingebracht werden, und so<br />
auch nicht verlötet werden konnte wurden die<br />
Ansaugleitungen von oben in die Behälter<br />
geführt. Die Einläufe der Versorgung und<br />
der Störgröße wurden mit 90 Grad Bögen<br />
versehen um ein kontrolliertes einfließen zu<br />
gewährleisten.<br />
4.2.3 Pumpen- und Motorenbefestigung<br />
Die Pumpenbefestigung sowie die Motorenbefestigung wurden aus dem gleichen<br />
Material gefertigt wie die Frontplatte, um eine stabile Befestigung zu bekommen.<br />
Desweiteren bekamen alle Befestigungen eine Gummiplatte als Unterlage, zur<br />
Entkopplung der<br />
Geräuschübertragung. In die<br />
Platten der Pumpenbefestigung<br />
wurden Schrauben eingearbeitet<br />
und verklebt. So entstand eine<br />
Befestigung, die auch nach<br />
mehrfacher Montage und<br />
Demontage der Pumpe noch fest<br />
sitzt.<br />
Seite 9
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
4.2.4 Plattenkondensatoren<br />
Die Plattenkondensatoren der neuen Anlage wurden aus Aluminium gefertigt, so<br />
dass die Anschlüsse nicht wie in<br />
der alten Anlage angelötet werden<br />
konnten. Wir entschieden uns, an<br />
der Seite der Platten einen Schnitt<br />
vorzunehmen, um die aus dem<br />
KFZ-Bereich üblichen Steck-<br />
verbinder nutzen zu können.<br />
4.2.5 Störgrößenpumpe und Motor<br />
Für die Störgrößenpumpe war die Pumpe SR25-300S mit Schrittmotor und<br />
Ansteuerungsplatine vorgesehen, diese wurde aus Kostengründen abgelehnt.<br />
Nach einigen Versuchen und Messungen verwendeten wir die gleiche Pumpe die wir<br />
schon im Hauptkreislauf zum Einsatz gebracht haben, nur die Übersetzung des<br />
Motors beträgt nun 1:25 und die Spannungsversorgung wurde auf 12V festgelegt.<br />
Seite<br />
10
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
<strong>4.2.6</strong> Aufnahme für das Leybold-System<br />
Die Aufnahme für das Leybold<br />
Stecksystem wurde wie die Anlage<br />
aus grauen Kunststoffplatten gefertigt,<br />
diese wurde dann an das Holz<br />
geschraubt. In dieses Holz wurden<br />
wiederum die Aufnahmen für die<br />
Platinen gefräst, sie bekamen oben<br />
und unten Schlitze, in die die Platinen<br />
gesteckt werden und an einigen<br />
Stellen passende Ausschnitte für die<br />
Anschlüsse.<br />
Seite<br />
11
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
<strong>4.2.6</strong> <strong>Hauptplatine</strong><br />
Die <strong>Hauptplatine</strong> wurde technisch nicht verändert. Das Löten der Platine wurde, wie<br />
von der Vorgruppe vorgeschlagen, mit einem Fädelstift ausgeführt. Leider waren die<br />
Ergebnisse nicht zufriedenstellend. Man kann festhalten, dass von zehn Lötstellen<br />
durchschnittlich sechs nachgelötet werden mussten, da die Isolierung der auf dem<br />
Fädelstift aufgerollten Leitung nicht geschmolzen war. Den Durchgangsprüfer sollte<br />
man bei den Arbeiten mit dem Fädelstift immer griffbereit haben.<br />
Seite<br />
12
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
4.2.7 Relaisplatine<br />
Die Relaisplatine wurde nicht mit einem Fädelstift gefertigt, was einfacher und<br />
sicherer war. Auf der Platine befindet sich die Spannungsversorgung der<br />
<strong>Hauptplatine</strong>, die Hand / Automatik Umschaltung sowie die Ansteuerung über Cassy.<br />
Seite<br />
13
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
5 Programm Änderungen<br />
Um die Änderungen zu verdeutlichen, zeigen wir hier einen Teil des alten<br />
Programmcode mit den Änderungen in rot dahinter:<br />
;***************************************************************************<br />
;*<br />
;* Lese Daten vom EEPROM<br />
;* Programmcode aus Application Note "AVR100" von ATMEL<br />
;*<br />
;***************************************************************************<br />
EERstart:<br />
EERead:<br />
;<br />
;<br />
rdup:<br />
;<br />
clr ZH<br />
ldi ZL,3<br />
ldi tmp,0<br />
mov EEard,tmp<br />
sbic EECR,EEWE<br />
rjmp EERead<br />
out EEARL,EEard<br />
sbi EECR,EERE<br />
in EEdrd,EEDR<br />
mov tmp,EEard<br />
cpi tmp,0<br />
brne rdup<br />
mov tmp,EEdrd<br />
cpi tmp,0xFF<br />
breq leer // aus dem breq machten wir einen Sprung-<br />
Befehl nach leer, um in jedem Fall den von uns gewünschten<br />
Divisor zu laden<br />
st Z,EEdrd<br />
inc ZL<br />
inc EEard<br />
cpi ZL,12<br />
brne EERead<br />
rjmp start<br />
;***************************************************************************<br />
;*<br />
;* Schreibe Standarddaten wenn EEPROM leer ist<br />
;*<br />
;***************************************************************************<br />
Seite<br />
14
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
leer:<br />
;<br />
ldi tmp,10<br />
mov per,tmp ; setze Periodenanzahl = 10<br />
ldi tmp,3<br />
mov mulL,tmp ; setze Multiplikator = 3<br />
clr mulH<br />
ldi tmp,50<br />
mov divL,tmp ; setze Divisor = 50<br />
//diesen Divisor setzten wir auf 12<br />
clr divH<br />
Das ganze war nötig, um die analoge Ausgansspannung zu erhöhen, da diese zu<br />
Beginn unserer Testläufe höchstens 2,4 Volt erreichte, und das bei überlaufendem<br />
Behälter. Dabei machten die 2,4 Volt ca. ein viertel der gewünschten 10 Volt<br />
Ausgangsspannung aus, somit war klar das wir den Divisor ebenfalls vierteln<br />
mussten und so kamen wir auf die nun im Programmcode implementierten 12.<br />
Ansonsten blieb das Programm wie folgt:<br />
;***************************************************************************<br />
;* *<br />
;* *<br />
;* ,. *<br />
;* i:;; *<br />
;* :i .;: :,ii,: *<br />
;* :::::::::ii::: .GDW######Ei *<br />
;* ;f t: j;D####EGE#####: *<br />
;* ;f ;i ,D###WL..i:K####i *<br />
;* ;f ;: ;####W: ,#####: *<br />
;* ;f,,,;. i####K: f####L *<br />
;* it:::::::::K####; .D####L: *<br />
;* ;f .####W, .jW###KitDL, *<br />
;* ;f D#####EK####E; j###L: *<br />
;* :t;;;;;;;;;iL#######KLti;;D##Git. *<br />
;* .,iii:. .,: *<br />
;* *<br />
;* *<br />
;* *<br />
;* HANS-SACHS-BERUFSKOLLEG, OBERHAUSEN *<br />
;* AM FÖRDERTURM 5 *<br />
;* 46049 OBERHAUSEN *<br />
;* *<br />
;* *<br />
;* *<br />
;* *<br />
Seite<br />
15
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;* PROJEKT: FÜLLSTANDSREGELUNG EINES 3-BEHÄLTER SYSTEMS *<br />
;* *<br />
;* GRUPPE: THOMAS ROTHSTEIN *<br />
;* JENS JANSSEN *<br />
;* MARTIN SEKULAK *<br />
;* *<br />
;* Änderungen: *<br />
;* 2008 durch Stefan Fockenberg & Patrick Prgjanac *<br />
;* mit der freundlichen Unterstützung duch *<br />
;* OSTR W. GRÜGER *<br />
;* *<br />
;* PROJEKTLEITER: OSTR W. GRÜGER *<br />
;* *<br />
;* *<br />
;***************************************************************************<br />
;<br />
.NOLIST<br />
.INCLUDE "C:\Programme\Atmel\AVR Tools\AvrAssembler\Appnotes\2313def.inc"<br />
.LIST<br />
;<br />
;***************************************************************************<br />
;*<br />
;* Konstanten setzen<br />
;*<br />
;***************************************************************************<br />
.EQU fq=4000000 ; Quarzfrequenz<br />
.EQU baud=9600 ; Baudrate<br />
.EQU bdteiler=(fq/(16*baud))-1 ; Baud-Teiler<br />
;<br />
;<br />
main:<br />
rjmp main<br />
;***************************************************************************<br />
;*<br />
;* Register Impulswerterfassung u. Datenübertragung<br />
;*<br />
;***************************************************************************<br />
.DEF stRead=R0 ; Zykluszähler<br />
.DEF trans=R1 ; Transferregister<br />
.DEF n=R2 ; Periodenzähler<br />
.DEF per=R3 ; Anzahl zu erfassender Perioden<br />
.DEF mulL=R4 ; Umrechnungsmultiplikator Low-Byte<br />
.DEF mulH=R5 ; Umrechnungsmultiplikator High-Byte<br />
.DEF divL=R6 ; Umrechnungsdivisor Low-Byte<br />
.DEF divH=R7 ; Umrechnungsdivisor High-Byte<br />
.DEF fmulL=R8 ; Umrechnungsmultiplikator für PC Low-Byte<br />
.DEF fmulH=R9 ; Umrechnungsmultiplikator für PC High-Byte<br />
.DEF fdivL=R10 ; Umrechnungsdivisor für PC Low-Byte<br />
Seite<br />
16
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
.DEF fdivH=R11 ; Umrechnungsdivisor für PC High-Byte<br />
.DEF sw=R12 ; Protokollwechsel 1 2<br />
.DEF tmp=R23 ; Universalregister<br />
.DEF impw=R24 ; Periodendauer (Wortregister)<br />
.DEF impL=R24 ; Periodendauer Low-Byte<br />
.DEF impH=R25 ; Periodendauer High-Byte<br />
.DEF subw=R26 ; Periodendauerspeicher für Nullpunkt-Setzen (Wortregister)<br />
.DEF subL=R26 ; Periodendauerspeicher für Nullpunkt-Setzen Low-Byte<br />
.DEF subH=R27 ; Periodendauerspeicher für Nullpunkt-Setzen High-Byte<br />
;***************************************************************************<br />
;*<br />
;* Register Multiplikation<br />
;*<br />
;***************************************************************************<br />
.def mc16uL =r16 ;multiplicand Low byte<br />
.def mc16uH =r17 ;multiplicand High byte<br />
.def mp16uL =r18 ;multiplier Low byte<br />
.def mp16uH =r19 ;multiplier High byte<br />
.def m16u0 =r18 ;result byte 0 (LSB)<br />
.def m16u1 =r19 ;result byte 1<br />
.def m16u2 =r20 ;result byte 2<br />
.def m16u3 =r21 ;result byte 3 (MSB)<br />
.def mcnt16u =r22 ;loop counter<br />
;<br />
;***************************************************************************<br />
;*<br />
;* Register Division<br />
;*<br />
;***************************************************************************<br />
.def drem16uL=r14<br />
.def drem16uH=r15<br />
.def dres16uL=r16<br />
.def dres16uH=r17<br />
.def dd16uL =r16<br />
.def dd16uH =r17<br />
.def dv16uL =r18<br />
.def dv16uH =r19<br />
.def dcnt16u =r20<br />
;<br />
;***************************************************************************<br />
;*<br />
;* Register für Speichern in EEPROM<br />
;*<br />
;***************************************************************************<br />
.def EEdwr =r13;data byte to write to EEPROM<br />
.def EEawr =r14;address low byte to write to<br />
;<br />
;***************************************************************************<br />
;*<br />
Seite<br />
17
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;* Register für lesen aus EEPROM<br />
;*<br />
;***************************************************************************<br />
.def EEdrd =r13;result data byte<br />
.def EEard =r14;address low to read from<br />
;<br />
;***************************************************************************<br />
;*<br />
;* Initialisierung<br />
;*<br />
;***************************************************************************<br />
;<br />
clr stRead<br />
ldi tmp,0b11111010<br />
out DDRB,tmp ; Port B initialisieren<br />
ldi tmp,0b00000000<br />
out DDRD,tmp ; Port D initialisieren<br />
ldi tmp,bdteiler ; Baudgenerator<br />
out UBRR,tmp ; Teiler setzen<br />
ldi tmp,0b00011000 ; Enable TX und RX<br />
out UCR,tmp ; an UART Control Register<br />
;***************************************************************************<br />
;*<br />
;* Lese Daten vom EEPROM<br />
;* Programmcode aus Application Note "AVR100" von ATMEL<br />
;*<br />
;***************************************************************************<br />
EERstart:<br />
EERead:<br />
;<br />
;<br />
rdup:<br />
clr ZH<br />
ldi ZL,3<br />
ldi tmp,0<br />
mov EEard,tmp<br />
sbic EECR,EEWE<br />
rjmp EERead<br />
out EEARL,EEard<br />
sbi EECR,EERE<br />
in EEdrd,EEDR<br />
mov tmp,EEard<br />
cpi tmp,0<br />
brne rdup<br />
mov tmp,EEdrd<br />
cpi tmp,0xFF<br />
rjmp leer ;von breq leer geändert nach rjmp leer 2008<br />
st Z,EEdrd<br />
Seite<br />
18
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;<br />
inc ZL<br />
inc EEard<br />
cpi ZL,12<br />
brne EERead<br />
rjmp start<br />
;***************************************************************************<br />
;*<br />
;* Schreibe Standarddaten wenn EEPROM leer ist<br />
;*<br />
;***************************************************************************<br />
leer:<br />
;<br />
ldi tmp,10<br />
mov per,tmp ; setze Periodenanzahl = 10<br />
ldi tmp,3<br />
mov mulL,tmp ; setze Multiplikator = 3<br />
clr mulH<br />
ldi tmp,12<br />
mov divL,tmp ; setze Divisor = 12 von 50 auf 12 geändert 2008<br />
clr divH<br />
;***************************************************************************<br />
;***************************************************************************<br />
;**<br />
;** Hier beginnt das Hauptprogramm<br />
;**<br />
;***************************************************************************<br />
;***************************************************************************<br />
start:<br />
;<br />
inc stRead ; erhöhe Zykluszähler um eins<br />
mov tmp,stRead<br />
cpi tmp,250 ; vergleiche Zykluszähler mit 250<br />
brlo start2 ; springe bei weniger als 250 durchlaufenen Zyklen<br />
clr stRead ; setze zykluszähler = 0<br />
rjmp EERstart ; springe zum einlesen vom EEPROM<br />
;***************************************************************************<br />
;*<br />
;* soft-Reset<br />
;*<br />
;***************************************************************************<br />
start2:<br />
;<br />
ldi tmp,0 ; setze Universalregister auf 0<br />
mov n,tmp ; lade 0 ins Periodenzählregister<br />
ldi impl,0 ; setze Periodendauerregister Low-Byte auf 0<br />
ldi imph,0 ; setze Periodendauerregister High-Byte auf 0<br />
;***************************************************************************<br />
Seite<br />
19
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;***************************************************************************<br />
;**<br />
;** Steigende Flanke auswerten<br />
;**<br />
;***************************************************************************<br />
;***************************************************************************<br />
flwait0:<br />
flwait1:<br />
;<br />
sbic PINB,0 ; springe bei 0-Signal<br />
rjmp flwait0 ; warte auf Negative Flanke<br />
sbis PINB,0 ; springe bei 1-Signal<br />
rjmp flwait1 ; warte auf Positive Flanke<br />
;***************************************************************************<br />
;*<br />
;* Impulslänge PINB0=true erfassen<br />
;*<br />
;***************************************************************************<br />
cttrue:<br />
sbis PINB,0 ; springe bei 1-Signal<br />
rjmp ctfalse ; springe zur Überprüfung der neg. Periodendauer wenn PINB0=false<br />
nop ; nops = um die Bearbeitungszyklen von true und false<br />
glech zu halten<br />
ctrst:<br />
;<br />
nop<br />
nop<br />
adiw impw,1 ; erhöhe Periodendauer um 1<br />
rjmp cttrue ; springe zur Überprüfung ob PINB0 immer noch =true<br />
;***************************************************************************<br />
;*<br />
;* Impulslänge PINB0=false erfassen<br />
;*<br />
;***************************************************************************<br />
ctfalse:<br />
;<br />
sbic PINB,0 ; springe bei 0-Signal<br />
rjmp posfl ; springe zur Überprüfung der Periodenanzahl wenn PINB0=true<br />
nop<br />
nop<br />
nop<br />
adiw impw,1 ; erhöhe Periodendauer um 1<br />
rjmp ctfalse ; springe zur Überprüfung ob PINB0 immer noch =false<br />
;***************************************************************************<br />
;*<br />
;* Zu erfassende Periodenanzahl überprüfen<br />
;*<br />
;***************************************************************************<br />
posfl:<br />
mov tmp,n ; schiebe zu oberes Register<br />
Seite<br />
20
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;<br />
cp tmp,per ; vergleiche aktuelle Periodenanzahl mit abgespeicherter<br />
brsh tnull ; springe wenn zu erfassende Periodenanzahl erreicht<br />
inc n ; Periodenzähler um eins erhöhen<br />
rjmp ctrst ; springe zur Überprüfung der nächsten Periode<br />
;***************************************************************************<br />
;*<br />
;* Taster für Nullpunkt-Setzen auswerten<br />
;*<br />
;***************************************************************************<br />
tnull:<br />
;<br />
sbis PINB,2 ; springe wenn Taster nicht gedrückt<br />
rjmp save<br />
;***************************************************************************<br />
;***************************************************************************<br />
;**<br />
;** ANFRAGEN VOM PC EMPFANGEN<br />
;**<br />
;***************************************************************************<br />
;***************************************************************************<br />
;<br />
rloop:<br />
;<br />
sbis USR,RXC ; springe wenn Zeichen im Empfangspuffer vorliegt<br />
rjmp subw ; wenn nicht gehe weiter zur Berechnung<br />
in tmp,UDR ; lade Zeichen<br />
;***************************************************************************<br />
;*<br />
;* Head = r zum übermitteln der Sendeprotokolle 1+2<br />
;*<br />
;***************************************************************************<br />
;<br />
cpi tmp,'r' ; vergleiche Zeichen mit r<br />
brne rloop2 ; wenn nicht = r dann springe<br />
ldi tmp,1<br />
mov trans,tmp ; lade 1 in Transfermerker<br />
rjmp subw ; springe zur Berechnung<br />
;***************************************************************************<br />
;*<br />
;* Head = d zum übermitteln des Sendeprotokolls 2<br />
;*<br />
;***************************************************************************<br />
rloop2:<br />
;<br />
cpi tmp,'d' ; vergleiche Zeichen mit d<br />
brne rloop3 ; wenn nicht = d dann springe<br />
ldi tmp,2<br />
mov trans,tmp ; lade 2 in Transfermerker<br />
rjmp subw ; springe zur Berechnung<br />
Seite<br />
21
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
;***************************************************************************<br />
;*<br />
;* Head = s für Abspeicherung des aktuellen Periodenwertes<br />
;*<br />
;***************************************************************************<br />
rloop3:<br />
rloop4:<br />
cpi tmp,'s' ; vergleiche Zeichen mit s<br />
brne rloop5 ; wenn nicht = s dann springe<br />
sbis USR,RXC ; springe wenn Zeichen im Empfangspuffer vorliegt<br />
rjmp rloop4 ; wenn nicht dann warte bis eins vorliegt<br />
in tmp,UDR ; lade Zeichen<br />
cpi tmp,'i' ; vergleiche Zeichen mit i<br />
breq save ; wenn = i dann springe zum abspeichern<br />
rjmp subw ; wenn nicht springe zur Berechnung<br />
;***************************************************************************<br />
;*<br />
;* Head = e zum Empfang von Daten<br />
;*<br />
;***************************************************************************<br />
rloop5:<br />
;<br />
cpi tmp,'e' ; vergleiche Zeichen mit e<br />
breq empf ; wenn Zeichen = s dann empfange Daten<br />
rjmp subw ; wenn nicht gehe weiter zur Berechnung<br />
;***************************************************************************<br />
;***************************************************************************<br />
#<br />
Seite<br />
22
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6 SCHALTPLÄNE<br />
6.1 <strong>Hauptplatine</strong><br />
ISP-Schnittstelle Setztaster für Nullpunkt Umschalter RS-232<br />
Behälter 3<br />
Behälter 2<br />
Seite<br />
23<br />
Behälter 1<br />
Kondensatorplatten Analogausgang<br />
RS-232 Schnittstelle<br />
Spannungsstabilisation<br />
Versorgungsspannung
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.1.1 Behälter 1<br />
Seite<br />
24
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.1.2 Behälter 2<br />
Seite<br />
25
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.1.3 Behälter 3<br />
Seite<br />
26
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.1.4 Füllstandserfassung<br />
Seite<br />
27
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.2 Relaisplatine<br />
6.2.1 Hauptversorgung<br />
Seite<br />
28
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.2.2 Hand/Auto Umschaltung<br />
Seite<br />
29
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.2.3 Störgrößensteuerung<br />
Seite<br />
30
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.2.4 Cassy Steuerung 1<br />
Seite<br />
31
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
6.2.5 Cassy Steuerung 2<br />
Seite<br />
32
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
7 Materialliste<br />
Bestellung / Kostenvoranschlag<br />
Pos. Menge Bezeichnung / Material Artikelnummer<br />
1 1<br />
2 2<br />
3 1<br />
4 1<br />
5 1<br />
6 1<br />
7 1<br />
Boxen 110x50x90mm, Acrylglas<br />
6mm farblos<br />
Boxen 110x50x70mm, Acrylglas<br />
6mm farblos<br />
Boxen 250x50x140mm, Acrylglas<br />
6mm farblos<br />
Zuschnitte 570x500mm, Max<br />
6mm grau<br />
Zuschnitte 300x200mm, Max<br />
6mm grau<br />
Zuschnitte 250x200mm, Max<br />
6mm grau<br />
Getriebemotor MFA 540 50:1 4,5 -<br />
15 V 222365 - 62<br />
8 1 Alublech 400x200x0,8mm 297917-62<br />
9 2 Festspannungsregler 5V 179205-66<br />
10 1 Festspannungsregler 78S12<br />
11 3 Freilaufdiode IN4007 162272-66<br />
12 10 Submini- Relais<br />
Bananenbuchse grün 4mm<br />
G6K-2P 5V<br />
13 1 vollisoliert<br />
Bananenbuchse rot 4mm<br />
BB 4GN<br />
14 12 vollisoliert<br />
Bananenbuchse schwarz 4mm<br />
BB 4RT<br />
15 12 vollisoliert BB 4SW<br />
16 1 Stufenschalter 2x6<br />
Anschlussklemmensystem, 2pol,<br />
DS 2P<br />
17 27 RM5,08<br />
Anschlussklemmensystem, 3pol,<br />
AKL249-02<br />
18 3 RM5,08<br />
Wannenstecker für AKL 249, 2pol,<br />
AKL249-03<br />
19 27 RM5,08<br />
Wannenstecker für AKL 249, 3pol,<br />
AKL220-02<br />
20 3 RM5,08 AKL220-03<br />
D- Submin- Steckverbinder<br />
D-SUB ST<br />
21 1 gewinkelt<br />
O9GW<br />
22 2 Wannenstecker 10-polig, gerade<br />
Lochrasterplatine + SUB-D,<br />
WSL 10G<br />
23 1 160x100mm<br />
Lochrasterplatine Euro,<br />
RE224EP<br />
24 1 160x100mm UP913EP<br />
25 3 Controller ATtiny2313 2313DIP<br />
Seite<br />
33<br />
Einzelpreis Lieferant<br />
46,40 € Lobotec GmbH<br />
45,24 € Lobotec GmbH<br />
52,20 € Lobotec GmbH<br />
21,46 € Lobotec GmbH<br />
5,80 € Lobotec GmbH<br />
4,64 € Lobotec GmbH<br />
Conrad Electronic<br />
22,95 € GmbH<br />
Conrad Electronic<br />
3,75 € GmbH<br />
Conrad Electronic<br />
0,56 € GmbH<br />
0,10 €<br />
Conrad Electronic<br />
GmbH<br />
2,95 € reichelt elektronik<br />
0,25 € reichelt elektronik<br />
0,25 € reichelt elektronik<br />
0,32 € reichelt elektronik<br />
1,56 € reichelt elektronik<br />
0,32 € reichelt elektronik<br />
0,46 € reichelt elektronik<br />
0,15 € reichelt elektronik<br />
0,22 € reichelt elektronik<br />
0,52 € reichelt elektronik<br />
0,06 € reichelt elektronik<br />
4,20 € reichelt elektronik<br />
3,45 € reichelt elektronik<br />
1,65 € reichelt elektronik
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
Pos.<br />
Menge<br />
Bezeichnung / Material<br />
Seite<br />
34<br />
Artikelnummer<br />
27 12 IC- Fassung 8polig GS8<br />
28 1 IC- Fassung 16polig GS16<br />
29<br />
3<br />
IC- Fassung 20polig<br />
GS20<br />
30 3 Kondensator 1μF<br />
Keramik-Scheibenkondensator 33<br />
MKS-2-5 1,0μ<br />
31 6 pF Kerko 33p<br />
32 6 Kondensator 0,1μF MKS-2-5 100n<br />
33 4 Kondensator 10μF RAD 10/63<br />
34 3 Transistor BC548C<br />
35 3 Quarz 4MHz 4,000-HC49U-S<br />
36 1 Aufsteckkörper für TO220 V FI 343<br />
B80C1500<br />
37 3 Brückengleichrichter<br />
Rund<br />
B80C3700-<br />
38 1 Brückengleichrichter<br />
WW+<br />
39 4 Kohleschichtwiderstände 150Ω 1W 150Ω<br />
40 6 Kohleschichtwiderstände 8,2kΩ 1W 8,2kΩ<br />
41 6 Kohleschichtwiderstände 1MΩ 1W 1MΩ<br />
42 10 Kohleschichtwiderstände 10kΩ 1W 10kΩ<br />
43 3 Kohleschichtwiderstände 15kΩ 1W 15kΩ<br />
44 6 Kohleschichtwiderstände 47kΩ 1W 47kΩ<br />
45 3 Kohleschichtwiderstände 2,2kΩ 1W 2,2kΩ<br />
46 3 Kohleschichtwiderstände 39kΩ 1W 39kΩ<br />
47 1 Trimmpotentiometer 1KΩ 926-20 1k<br />
48 1 Taster Taster 1100gn<br />
49 1 Frontsätze für Taster Frontsatz<br />
Wippe<br />
50 1 Wippen<br />
1801.1146<br />
Wippe<br />
51 1 Wippen<br />
1808.1102<br />
52 1 ISP- Schnittstelle Max 232 N MAX 232 CPE<br />
53 1 Low - Cost - LED gelb, 5mm LED 5mm ge<br />
4 1 Magnetventile 12V 80003<br />
Einzelpreis<br />
Lieferant<br />
0,03 € reichelt elektronik<br />
0,04 € reichelt elektronik<br />
0,05 € relektronik<br />
0,43 € reichelt elektronik<br />
0,04 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,04 € reichelt elektronik<br />
0,04 € reichelt elektronik<br />
0,20 € reichelt elektronik<br />
1,30 € reichelt elektronik<br />
0,14 € reichelt elektronik<br />
0,72 € reichelt elektronik<br />
0,15 € reichelt elektronik<br />
0,15 € reichelt elektronik<br />
0,15 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,12 € reichelt elektronik<br />
0,43 € reichelt elektronik<br />
1,65 € reichelt elektronik<br />
0,30 € reichelt elektronik<br />
0,77 € reichelt elektronik<br />
1,25 € reichelt elektronik<br />
0,40 € reichelt elektronik<br />
0,05 € reichelt elektronik<br />
29,90 €<br />
www.yatego.com
<strong>Hans</strong>-<strong>Sachs</strong>-<strong>Berufskolleg</strong><br />
Projekt: Regelstrecke<br />
Teilnehmer: Patrick Prgjanac, Stefan Fockenberg<br />
Pos. Menge Bezeichnung / Material Artikelnummer Einzelpreis Lieferant<br />
56 6 Radiatorverschraubung 1/1"<br />
57 16 Kupferbogen 90 Grad 15mm<br />
58 2 Verschraubung 1/4"<br />
59 1 Verschraubung 1/8"<br />
60 2 Kupferbogen 90 Grad 18mm<br />
61 4 Kupferbogen 45 Grad 18mm<br />
Seite<br />
35