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 

Dieses Thema hat akzeptierte Lösungen:

Fehlersuche bei FPGA-Code mit cRIO



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!

09.09.2013, 16:06
Beitrag #1

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
Fehlersuche bei FPGA-Code mit cRIO
Hallo zusammen,

zum Ansteuern von analogen Ausgängen verwende ich ein cRIO im FPGA Modus. Dabei ist mein Programm von der Struktur her aufgebaut, wie das Bild im Anhang: Der Host(cRIO ) startet das FPGA.VI und steuert im Haupteil verschiedenen Module an. Möchte ich dies beenden, soll über einen "Frontpanel Acess" vom Host aus geschehen. Dort soll der Anwender "stop" drücken und aufgrund der Verknüpfung zum FPGA.VI der Hauptteil dessen beendet werden. Anschließend einige Kanäle auf Null gesetz werden und ein Boolean auf true gesetz werden um dem Host zu signalisieren das die Rücksetzung erfolgte. Dieses liest der Host aus und beendet sich.

Nun ist mein Programm etwas komplexer und funktioniert leider nicht einwandfrei. Klicke ich auf Beenden, tut sich zwar was, aber die Kanäle werden nicht auf Null gesetz und das Programm wartet vergeblich auf ein True bei Reset. Also muss ich annehmen das das FPGA.vi nicht bis zu der Sequenz kommt.

Da ich nicht genau weis wo es hängt und es keine Highlight Execution im FPGA Modus gibt, ist meine Frage, wie kann ich herausfinden was das Problem im FPGA oder Host.VI ist? Wie kann ich sehen bis wohin das Programm wirklich ausgeführt wurde.
Oder hat jemand eine Idee warum es sich nicht beendet?

Das Programm im Anhang funktioniert natürlich deshalb weis ich nicht warum meins es nicht tut.


Danke für Eure Ratschläge, ich bin hier am verzweifeln Sad


Angehängte Datei(en) Thumbnail(s)
   

12.0 .vi  TestHost.vi (Größe: 125,61 KB / Downloads: 286)

12.0 .vi  TEST.vi (Größe: 28,21 KB / Downloads: 271)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.09.2013, 19:05
Beitrag #2

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Hier nochmal eine vereinfachte Version meines Programme, bei dem das Beenden leider wie bei dem Original nicht funktioniert.


Angehängte Datei(en) Thumbnail(s)
   

12.0 .vi  TestminHost.vi (Größe: 361,2 KB / Downloads: 290)

12.0 .vi  TestminFPGA.vi (Größe: 142,49 KB / Downloads: 294)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2013, 19:29
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Ein paar Ideen zum Debugging:

Schleifenindex an einem Indikator anschließen, dann kannst du ihm vom RT-Teil auslesen und somit sehen, ob eine Schleife noch läuft oder nicht.
Alternative: Eine T/F-Toggle Boolean erstellen, wenn sie entsprechend langsam ist, dann kann diese auch an die FPGA-LED angeschlossen werden.

Damit kannst du feststellen, welche Schleife nicht stoppt.

Auf den ersten Blick entdecke ich keinen Fehler im FPGA-Code.

Gruß, Jens

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.09.2013, 22:07
Beitrag #4

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Also habe die Indikatoren eingebaut mit folgendem Ergebnis: beide Schleifenzähler stoppen. Der Indikator "Ansteuerung beendet?" ist ja auch true.
Wie kann das sein,das die Schleifen beendet werden, aber der nächste Schritt in der Sequenz nicht ausgeführt wird?
Im Anhang der Code mit Indikatoren.


Angehängte Datei(en)
12.0 .vi  TestminHost.vi (Größe: 371,89 KB / Downloads: 282)

12.0 .vi  TestminFPGA.vi (Größe: 145,32 KB / Downloads: 266)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2013, 07:42 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2013 07:45 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Hallo Mietze,

ich beziehe mich auf das Bild in Beitrag #2:
RACE CONDITION!

- im RT-Teil startest du den FPGA, ohne vorher "Ansteuerung beenden" auf FALSE zu setzen.
- im FPGA-Teil fragst du eben diese Variable über eine lokale Variable in der oberen Schleife ab: wahrscheinlich ist sie vom letzten Aufruf her noch TRUE (Abbruch des vorigen Aufrufs), die Schleife bricht ab
- in der Sequenz darunter setzt du diese Variable auf FALSE (wahrscheinlich zu spät für die obere Schleife), die Schleife in der Sequenz sollte eigentlich laufen

Vorschlag:
- Abbruchbedingungen explizit im cRIO/RT-Teil setzen! (FPGA-Code laden, Werte setzen, FPGA starten...)
- THINK DATAFLOW: lokale Variablen tragen immer die Veranlagung für RACE CONDITIONS in sich...

Tipp:
- Im RT-Teil setzt du "stop" in der Schleife dauernd auf FALSE. Einmal neben der Schleife zu setzen reicht völlig aus!
- Eben diese Schleife läuft ungebremst: Willst du einen Burn-In-Test des cRIO veranstalten?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2013, 09:08
Beitrag #6

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Danke für Eure Antworten.
Habe die Indikatoren hinzugefügt und das Initialsieren der Abbruchbedingung über den RT gemacht und das Setzen der Abbruchbedingung im RT für den RPFGA aus der Schleife genommen.
Leider funktioniert es immer noch nicht. Die Schleife außerhalb der Sequenz läuft einwandfrei. (Zusehen am Indikator des Schleifendurchlaufes, der läuft^^)
Habe noch einen Indikator "SchleifenEnde" eingebaut (siehe Bild). Das merkwürdige ist, das der Indikator "Ansteuerung beenden" true ist und somit die Bedingung für das beenden Schleife erfüllt ist. Aber am Indikator "SchleifeEnde"=false sieht man, das die Schleife noch nicht ausgeführt würde.
Was ist daran falsch?
Im Anhang ein Bild und die aktuellen VIs.


Angehängte Datei(en) Thumbnail(s)
   

12.0 .vi  TestminHost.vi (Größe: 368,25 KB / Downloads: 275)

12.0 .vi  TestminFPGA.vi (Größe: 139,89 KB / Downloads: 261)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.09.2013, 14:04
Beitrag #7

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO

Akzeptierte Lösung

Hi,

könnte es an deinem IRQ liegen? Der wartet auf Acknowledge, was aber nur passiert, wenn die Schleife im Host so lange läuft. Die brichst du aber ab sobald du Stopp drückst.
Jetzt könnte die Schleife auf dem FPGA nochmal loslaufen (m.E. ist das beim Timingunterschied zwischen Host und FPGA eher wahrscheinlich), bleibt dann aber am IRQ hängen, der halt wartet. Da nützt dann auch die Abbruchbedingung nicht, weil die erst greift, wenn aller Inhalt der Schleife einmal durchgelaufen ist...

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2013, 17:00
Beitrag #8

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
Perfekt!
Habe den Eingang Wait until cleared des IRQ mit der Variablen Ansteuerung beenden verbunden.
Und nun beendet es korrekt.
Danke. Der Tag ist gerettet. Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2013, 18:52
Beitrag #9

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Fehlersuche bei FPGA-Code mit cRIO
natürlich mit einem Not dazwischen. Smile
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
  RS485 Kommunikation auf FPGA Basis - cRio Nullstrom 8 10.545 02.12.2016 08:44
Letzter Beitrag: Nullstrom
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 7.934 26.10.2015 20:41
Letzter Beitrag: Felix777
  Datenübergabe parallele Schleifen FPGA cRIO Brainbug 0 5.888 16.09.2015 09:49
Letzter Beitrag: Brainbug
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 13.251 17.03.2015 16:58
Letzter Beitrag: LauraP.
  cRIO 9074 - FPGA, RT, Host Kommunikation Troy.mc.Lure 3 6.755 11.03.2013 19:05
Letzter Beitrag: jg
  FPGA Xflow Error Code 6 der_hobel 1 5.161 15.02.2011 12:20
Letzter Beitrag: Nilbog

Gehe zu: