updated documentation
This commit is contained in:
parent
5ef568fa05
commit
9cae466da8
@ -1,45 +1,56 @@
|
|||||||
PFG Arduino basierte Sicherheitsschaltung
|
PFG Arduino basierte Sicherheitsschaltung
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
Dieses Arduino Sketch dient zur Sicherheitsüberwachung der PFG Spule. Es werden
|
Dieser Arduino Sketch dient zur Sicherheitsüberwachung der PFG Spule. Es werden
|
||||||
dabei folgende Parameter überwacht:
|
dabei folgende Parameter überwacht:
|
||||||
|
|
||||||
* Kühlmitteldurchflussmenge
|
1. Kühlmitteldurchflussmenge
|
||||||
* Temperatur (TODO)
|
2. Temperatur (TODO)
|
||||||
|
|
||||||
Durchflussmenge
|
|
||||||
===============
|
i Durchflussmenge
|
||||||
|
=================
|
||||||
|
|
||||||
Zur Durchflussüberwachung dient ein Durchflussmesser der im Rücklauf des Wasser-
|
Zur Durchflussüberwachung dient ein Durchflussmesser der im Rücklauf des Wasser-
|
||||||
kreislaufs angebracht ist. Er liefert mit Hilfe eines Hallsensors Pulse welche
|
kreislaufs angebracht ist. Er liefert mit Hilfe eines Hallsensors Pulse mit einem
|
||||||
proportional des Durchfluss sind.
|
Duty-Cycle von 50% deren Frequenz proportional zum Durchfluss ist.
|
||||||
|
|
||||||
In diesem Sketch wird der Abstand zweier Pulse gemessen.
|
In diesem Sketch wird der Abstand zweier Pulse gemessen, d.h. die Periodendauer..
|
||||||
Zur Messung wird der timer1 (der 16bit timer) des Arduino verwendet.
|
Zur Messung wird der timer1 (der 16bit Timer) des Arduino verwendet.
|
||||||
Der Signalausgang des Durchflussmessers ist mit dem Interrupt 0 des Arduino
|
Der Signalausgang des Durchflussmessers ist mit dem Interrupt 0 des Arduino
|
||||||
verbunden. Dieser ist so konfiguriert dass er bei einer steigenden Impulseflanke
|
verbunden. Dieser ist so konfiguriert dass er bei einer steigenden Impulseflanke
|
||||||
auslöst und die Zeit zum letzen Puls in ein Array abspeichert (Periodendauer).
|
auslöst und die Zeit seit dem letzen Puls in ein Array abspeichert (Periodendauer).
|
||||||
Der Counter des timer1 wird danach immer auf 0 gesetzt.
|
Der Counter des timer1 wird bei jedem Puls wieder auf 0 gesetzt.
|
||||||
|
|
||||||
Falls innerhalb eines konfigurierbaren Zeitintervals *kein* Puls gemessen wird
|
Falls innerhalb eines konfigurierbaren Zeitintervals *kein* Puls gemessen wird
|
||||||
löst der timer1 einen Interrupt Service Request aus und setzt die Periodendauer
|
löst der timer1 einen Interrupt Service Request aus und setzt die Periodendauer
|
||||||
auf den höchsten Wert (UINT_MAX, höchster Wert für unsigned int).
|
auf den höchsten Wert (UINT_MAX, höchster Wert für unsigned int).
|
||||||
|
|
||||||
Zum Ausgleich von Messfehlern werden die Periodendauern über mehrere Werte (N=16) gemittelt.
|
Zum Ausgleich von Messfehlern werden die Periodendauern über mehrere Werte (N=16) gemittelt.
|
||||||
Falls ein Wert im Array UINT_MAX beträgt wird die Mittelung abgebrochen und der gemittelte Wert
|
Falls ein Wert im Array UINT_MAX beträgt (z.B. wegen des timeouts) wird die Mittelung
|
||||||
auf ULONG_MAX gesetzt (höchster Wert für unsigned long). Damit wird der Durchfluss im Rahmen der
|
abgebrochen und der gemittelte Wert auf ULONG_MAX gesetzt (höchster Wert für unsigned long)
|
||||||
Rechengenauigkeit 0 l/min und ein Fehler wird ausgelöst.
|
und zurückgegeben. Damit wird der Durchfluss im Rahmen der Rechengenauigkeit 0 l/min und
|
||||||
|
ein Fehler wird ausgelöst.
|
||||||
|
|
||||||
Temperatur Überwachung
|
Die Durchflussmenge berechnet sich nach der Formel:
|
||||||
======================
|
|
||||||
|
flow = N/(float)total/conversion
|
||||||
|
|
||||||
|
* N ist die Anzahl der Werte im Array
|
||||||
|
* total ist die Summe der Periodendauern
|
||||||
|
* conversion ist der Konversionfaktor (Pulse/Sekunde pro l/min)
|
||||||
|
|
||||||
|
|
||||||
|
2 Temperatur Überwachung
|
||||||
|
========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Copley Verstärker Interlock
|
3 Copley Verstärker Interlock
|
||||||
===========================
|
=============================
|
||||||
Die Copley Stromquelle erwartet ein HIGH Signal am Eingang des Interlocks. Wird ein Fehler
|
Die Copley Stromquelle erwartet ein HIGH Signal am Eingang des Interlocks. Wird ein Fehler
|
||||||
ausgelöst wird der Interlock-PIN des Arduino (konfigurierbar) auf LOW gesetzt. Sobald die
|
ausgelöst wird der Interlock-PIN des Arduino (Pin konfigurierbar) auf LOW gesetzt. Sobald die
|
||||||
Störung behoben ist geht der PIN wieder auf HIGH.
|
Störung behoben ist geht der PIN wieder automatisch auf HIGH.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user