Doku added
This commit is contained in:
parent
dfe0c803bb
commit
5ef568fa05
45
pfg_security.md
Normal file
45
pfg_security.md
Normal file
@ -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.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user