3
0

updated documentation

This commit is contained in:
Markus Rosenstihl 2017-03-09 15:43:07 +00:00
parent 5ef568fa05
commit 9cae466da8

View File

@ -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.