INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

FPGA Failsafe



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.10.2022, 20:42
Beitrag #1

Roumaen Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2018

15, 18 & 19
2016
DE


Deutschland
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.10.2022, 10:02
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: FPGA Failsafe
Hallo,

dein Konzept hört sich ein wenig seltsam an. Wenn du schon cRIOs zur Hand hast, dann gehören darauf cRIOs RT-executables, die immer laufen, gerade da es sich um einen Prüfstand handelt. Dann kannst du da schon mal nicht versehentlich etwas schließen.

Jetzt zu deiner weiteren Frage: Das Zauberwort lautet "Watchdog". Wenn du das im FPGA einsetzen willst, dann setzt das natürlich voraus, dass du ein FPGA Programm compiliert hast und auch immer auf dem FPGAs der cRIOs laufen lässt. Über eine Watchdog-Variable (z.B. ein Integer, der hochzählt) kann das FPGA-Programm erkennen, ob die darüberliegende Ebene noch läuft oder nicht. Wenn nicht, weil sich der Zähler nicht ändert, muss der FPGA in den sicheren Zustand schalten.

Wenn du ganz auf Nummer sicher gehen willst, dann baust du in deinem Prüfstand noch ein Watchdog-Relais ein, welches z.B. die Spannungsversorgung kappt, außer es wird immer wieder angetriggert (z.B. von deinen cRIOs).

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2022, 22:21
Beitrag #3

Roumaen Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2018

15, 18 & 19
2016
DE


Deutschland
RE: FPGA Failsafe
Hallo jg,

das ist mein erstes Projekt mit LV RT bzw. FPGA...ich lerne noch Smile Besten Dank für deinen Input mit dem Watchdog. Um es nochmal zu klären; auf den cRIOs laufen eigene VIs (ich glaube aber erst nachdem sie durch das Main VI auf dem PC gestartet werden). Ein abgeschmiertes, nicht mehr laufendes oder sonst was Haupt VI soll dann von den cRIO VIs durch eine simple Watchdog Integervariable, wie von dir beschrieben erkannt werden - werd ich so umsetzen.

Worum es mir aber auch ging ist, dass ich während der Testen meiner Programme oft die VIs kompiliere und dann direkt per Klick auf das VI im LV-Projectfile ausführe....also nicht über das Main VI. Insbesondere, wenn noch kein Main VI besteht und ich zuerst die cRIO VIs erstellen und testen möchte. Wenn ich da nun das Fenster geschlossen habe oder 'Abort Execution' geklickt habe (habe gerade gelesen, dass das z.B. bad practice ist), liefen auf einmal alle zuvor aktiven Aktoren an den NI9505 (per PWM gesteuert) auf 100% anstatt abzuschalten, wie ich das für sicherer halten würde. Mir ist momentan nicht klar, was ein cRIO Controller macht, wenn man das Frontpanel bzw. die Anwendung einfach so per 'Fenster schließen' oder 'Abort Execution' Button beendet (nachdem man es wie beschrieben per Klick auf das VI ausgeführt hat). Gibt es hier für das cRIO VI auch eine Möglichkeit zu registrieren, ob das Front Panel noch geöffnet ist oder sollte ich ein VI, das auf eine cRIO läuft am besten gar nicht erst direkt ausführen sondern immer über ein Main VI ausführen und beenden?

Danke vorab und schönen Abend noch!

Viele Grüße
Roman
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2022, 07:49 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2022 07:51 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: FPGA Failsafe
Hallo Roman,

Zitat:Mir ist momentan nicht klar, was ein cRIO Controller macht, wenn man das Frontpanel bzw. die Anwendung einfach so per 'Fenster schließen' oder 'Abort Execution' Button beendet (nachdem man es wie beschrieben per Klick auf das VI ausgeführt hat).
Er reagiert wie jeder andere Computer: das Programm wird beendet…

Zitat:Gibt es hier für das cRIO VI auch eine Möglichkeit zu registrieren, ob das Front Panel noch geöffnet ist oder sollte ich ein VI, das auf eine cRIO läuft am besten gar nicht erst direkt ausführen sondern immer über ein Main VI ausführen und beenden?
Du scheinst noch nicht verinnerlicht zu haben, wie ein cRIO im Allgemeinen und dein cRIO9073 im Besonderen funktioniert…
Das ist ein "headless" Controller: das Programm darauf läuft OHNE Frontpanel. Das, was du als Frontpanel siehst, stellt dir die LabVIEW-IDE als Debugging-Tool zur Verfügung!

Ein "VI" läuft auf dem cRIO, indem du eine RTEXE erstellst und auf das cRIO deployst. Diese RTEXE wird dann (quasi) direkt nach dem PowerUp des cRIO ausgeführt und läuft idealerweise, bis du das cRIO ausschaltest! Die Kommunikation mit deinem PC erfolgt über Netzwerk-Protokolle wie UDP, TCP, NetworkStreams etc - wie in den Beispielprojekten gezeigt wird…

Zitat:Ein abgeschmiertes, nicht mehr laufendes oder sonst was Haupt VI soll dann von den cRIO VIs durch eine simple Watchdog Integervariable, wie von dir beschrieben erkannt werden - werd ich so umsetzen.
Das funktioniert auf zwei Ebenen:
1. Ebene: Kommunikation zwischen PC und cRIO: die überwachst du im RT-Teil deines cRIO.
2. Ebene: Kommunikation zwischen cRIO udn FPGA: die überwachst du im FPGA…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2022, 10:02
Beitrag #5

Roumaen Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2018

15, 18 & 19
2016
DE


Deutschland
RE: FPGA Failsafe
Hallo zusammen,

und danke für deine Antwort GerdW! Ich wollte eigentlich erst nochmal an den Teststand, bevor ich antworte aber ich komm momentan nicht dran. Ich vermute auch, dass ich die Funktionsweise des Controllers noch nicht ganz durchblicke bzw. nicht weiß, wie man so ein System üblicherweise aufsetzt. Ich habe mich bisher an die bestehende Software, die es zu erneuern galt gehalten. Hier lief auf dem RT (das wäre doch die richtige Bezeichnung für den Controller bzw. das Chassis selbst?!) gar kein VI sondern nur auf dem FPGA und dem Rechner und zwischen diesen beiden VIs wurden die Daten ausgetauscht. Ist es ratsam immer auch auf dem RT ein VI laufen zu lassen? Bisher hats auch ohne funktioniert, weshalb ich es so belassen habe.

Im Bezug auf die Problematik mit dem schließen des Front-Panel Fensters: ich vermute, dass ich bisher einfach nicht verstanden habe, dass vom Start des cRIOs an mein FPGA VI lief und daher die Aktorik selbst ohne geöffnetes Front Panel des FPGA VIs nicht unkontrolliert lief, weil im VI per Default Values alles auf 'aus' ist. Wenn ich euch richtig verstehe, beende ich mit Schließen des Front-Panel Fensters aber auch die Ausführung des FPGA VIs und der Controller bzw. die C-Module gehen in (irgendeinen?) Zustand, in dem die Aktorik voll in Betrieb geht. Macht das Sinn?

Ich leite bisher ab, dass es auf jeden Fall sinnvoller ist, auch Tests immer über ein VI auszuführen, das im Stande ist einen Abbruch (Panel Close, Freeze etc.) zu erkennen und dementsprechend zu reagieren. Also ein VI, das auf dem RT oder dem PC läuft. Ein FPGA VI ist dazu allein wohl nicht im Stande.

Besten Dank für eure Mithilfe!

Viele Grüße
Roman
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 6.834 26.10.2015 20:41
Letzter Beitrag: Felix777
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 11.476 17.03.2015 16:58
Letzter Beitrag: LauraP.

Gehe zu: