FPGA Failsafe
Hallo liebe Leute,
für einen Brennstoffzellen-Teststand mit zwei cRio 9073 Controllern und diversen C-Modulen, u.A. mit 4 NI9505, habe ich VIs geschrieben und überlege, wie ich das ganze etwas sicherer machen kann. In den VIs, die jeweils auf den 9073ern ausgeführt werden, wird die Aktorik angesteuert und Daten bzw. der Zustand des Teststands erfasst. Im Haupt VI, das auf dem rechner läuft, werden die Daten abgerufen, manipuliert, angezeigt etc. Außerdem öffnet dieses VI zu Beginn die Referenzen der VIs, die auf den Controllern laufen und schließt diese nach Beendigung der Hauptprograms auch wieder.
Bei meinen Tests der VIs - vor allem derer, die auf den 9073ern laufen - ist mir aufgefallen, dass sich hier schlecht Sicherheitsvorkehrungen treffen lassen z.B. für den Fall, dass ich mal das VI versehentlich schließe, wenn ich es direkt ausführe...also nicht über das Haupt VI, das auf dem Rechner läuft. Dann nähmlich laufen die Motoren, die zuletzt im Betrieb waren schlagartig auf 100% Leistung anstatt abzuschalten. Das würde ich gerne vermeiden, um gefährliche Betriebszustände ala "Aktoren laufen und keine Kontrolle mehr per VI" zu vermieden.
Bei einem VI, das auf einem PC ausgeführt wird würde ich das über Eigenschaftsknoten für die Front Panel Controls machen, die zuletzt noch geschrieben werden, nachdem in einem Event Case ein Panel Close detektiert wurde. Nun stehen diese Möglichkeiten auf einem FPGA ja aber nicht zur Verfügung. Gibt es hier Möglichkeiten solche Situationen zu vermeiden? Ich hätte mal vermutet, dass das FPGA / der Controller irgendwie erkennen kann, ob das VI noch auf dem Rechner ausgeführt wird oder zu diesem noch eine Verbindung besteht aber ich komm nicht ganz zu einer Lösung. Ich bin dankbar für jeden Tipp, was in so einem Fall best practice wäre. Ein VI kann ich leider momentan nicht anhängen, da ich hier am Rechner die falsche LV Version (17) habe. Ich denke aber, dass man mir auch so helfen kann, da die Frage ja auch eher allgemein gestellt ist.
Tausend Dank für eure Mühe vorab!
Roman
|