From 5ef568fa05fa300e6a36073428bb83589ac8b2a8 Mon Sep 17 00:00:00 2001 From: Markus Rosenstihl Date: Wed, 8 Mar 2017 17:23:39 +0000 Subject: [PATCH] Doku added --- pfg_security.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 pfg_security.md diff --git a/pfg_security.md b/pfg_security.md new file mode 100644 index 0000000..bbbe575 --- /dev/null +++ b/pfg_security.md @@ -0,0 +1,45 @@ +PFG Arduino basierte Sicherheitsschaltung +========================================= + +Dieses Arduino Sketch dient zur Sicherheitsüberwachung der PFG Spule. Es werden +dabei folgende Parameter überwacht: + +* Kühlmitteldurchflussmenge +* Temperatur (TODO) + +Durchflussmenge +=============== + +Zur Durchflussüberwachung dient ein Durchflussmesser der im Rücklauf des Wasser- +kreislaufs angebracht ist. Er liefert mit Hilfe eines Hallsensors Pulse welche +proportional des Durchfluss sind. + +In diesem Sketch wird der Abstand zweier Pulse gemessen. +Zur Messung wird der timer1 (der 16bit timer) des Arduino verwendet. +Der Signalausgang des Durchflussmessers ist mit dem Interrupt 0 des Arduino +verbunden. Dieser ist so konfiguriert dass er bei einer steigenden Impulseflanke +auslöst und die Zeit zum letzen Puls in ein Array abspeichert (Periodendauer). +Der Counter des timer1 wird danach immer auf 0 gesetzt. + +Falls innerhalb eines konfigurierbaren Zeitintervals *kein* Puls gemessen wird +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). + +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 +auf ULONG_MAX gesetzt (höchster Wert für unsigned long). Damit wird der Durchfluss im Rahmen der +Rechengenauigkeit 0 l/min und ein Fehler wird ausgelöst. + +Temperatur Überwachung +====================== + + + +Copley Verstärker Interlock +=========================== +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 +Störung behoben ist geht der PIN wieder auf HIGH. + + +