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:

Real Time, mehrere Ports, Problem



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!

03.04.2014, 08:35
Beitrag #21

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Real Time, mehrere Ports, Problem
Ich habe noch einen Hinweis: in deiner letzten RT-Variante bist du von sende alle 6.4 Sekunden Kommandos an 1 Gerät auf sende alle 0.1 Sekunden Kommandos an ALLE Geräte gegangen. Mglw. ist 0.1 Sekunden zu kurz, um eine Antwort zu erhalten.

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
Anzeige
03.04.2014, 10:37
Beitrag #22

Hattorii Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Dec 2013

2011
2013
DE



RE: Real Time, mehrere Ports, Problem
Hi Jens,

hat leider nicht geholfen.

Trotzdem Danke!

grüße,
Hattorii
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2014, 17:47
Beitrag #23

Hattorii Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Dec 2013

2011
2013
DE



RE: Real Time, mehrere Ports, Problem
Hallo zusammen,

da ich mit dem Problem überhaupt nicht weiter gekommen bin die Hardware aber anscheinend funktioniert habe ich mal versucht eine total abgespeckte Version des Projektes zu erstellen um über FPGA-FIFO-RealTime serielle Daten zu lesen und zu schreiben.

Blöderweise funktioniert das ganze nicht so wie es soll. Denke, dass ich da bestimmt wieder so einen kleinen Code-Fehler drin habe auf den ich nicht komme...

Im RT. vi sind coercion dots zu sehen wenn es darum geht ins fifoWRITE etwas reinzuschreiben. Datentyp vom fifoWRITE ist U16 und es müsste eigentlich passen. Tut es leider nicht.

Ansonsten habe ich das Problem das Befehle nicht gesendet werden. Zudem werden nur die Anfangsteile der zu empfangenden Befehle empfangen.

Hoffe ihr könnt mir helfen.

Anbei das Projekt als zip.

Vielen Dank und Grüße,
Hattorii


Angehängte Datei(en)
0.0 .zip  Prozessleitsystem.zip (Größe: 680,49 KB / Downloads: 129)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2014, 18:45
Beitrag #24

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Real Time, mehrere Ports, Problem
Ein ganz anderer Ansatz (habe mir dein zip-File noch nicht angesehen):
Die 9870/9871 RS232 Module lassen sich auch im Scan-Engine Modus betreiben (Voraussetzung: Installation des entsprechenden Pakets auf dem cRIO). Im RT verhalten sie sich dann wie eine "gewohnte" serielle Schnittstelle (vgl. Sektion 4 cRIO Developer's Guide).

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.04.2014, 19:28 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2014 19:28 von jg.)
Beitrag #25

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Real Time, mehrere Ports, Problem
Dir fällt der Coercion-Dot auf (gut), aber wieso untersuchst und beseitigst du nicht die Ursache?
   
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
10.04.2014, 11:04 (Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2014 11:06 von Hattorii.)
Beitrag #26

Hattorii Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Dec 2013

2011
2013
DE



RE: Real Time, mehrere Ports, Problem
Hi Jens,

danke für deine Antworten.

Ja das mit dem CoercionDot war eigentlich recht simpel, schätze habe zu lange gearbeitet gestern Smile

Bevor ich das mit den ScanEngine-Mode versuche wollte ich zunächst die Hardware testen.

Dazu habe ich das Modul mit einem anderen PC verbunden und mit Hyperterminal getestet.
Zunächst funktioniert alles wunderbar und ich kann Daten senden und empfangen. Sende ich über mehrere Ports funktioniert es weiterhin.

Aber einige Sekunden nach dem ich den "Update Config"-Button betätige (serielle Konfiguration, Baud rate etc.) hängt sich das FPGA.vi auf. Es kommen zwar keine Fehlermeldungen und alles sieht danach aus, dass das VI läuft, aber es wird nichts mehr gesendet und empfangen.
Beim ersten Klick auf "Update Config" springt der Button sofort wieder auf off (das muss es laut Code auch tun). Nach einigen Sekunden (also nach dem das FPGA.vi sich aufhängt) tut er das auch nicht mehr. Ich hatte das Problem auch mit dem letzten FPGA.vi (Prozessleitsystem.zip), das heißt an den jetzigen Änderungen kann es nicht liegen.

//edit
ein Nachtrag: Das ganze funktioniert erst wieder wenn das RIO neugestartet wird. Stoppen des VI oder Neu starten von LabVIEW zeigen keine Wirkung
//

Deutet das auf ein Hardware Problem hin? Was würdet ihr vorschlagen.

Anbei das FPGA.vi und das Bild mit den Änderungen.

Vielen Dank und freundliche Grüße,
Hattorii


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  FPGA.vi (Größe: 117,57 KB / Downloads: 124)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.04.2014, 20:19
Beitrag #27

Hattorii Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Dec 2013

2011
2013
DE



RE: Real Time, mehrere Ports, Problem
Hallo zusammen,

ich habe es endlich zum Laufen bekommen ohne dass sich irgendwelche Ports überschneiden Big GrinBig GrinBig Grin. Es wird vom richtigen Port gelesen und auch auf den richtigen geschrieben. Alles funktioniert wunderbar bis auf ein Problem: Das ganze ist elendig langsam...

Bis der Inhalt des fifoWRITE über die Ports geschickt wird staut sich alles im besagten FIFO und die neu eingegeben Befehle kommen erst teils nach 1-2 Minuten an, weil in der Zwischenzeit die vorherigen Befehle mehrmals ins FIFO geschrieben wurden.

Timeout des FIFO und der Module (Modx/Portx, Write Byte) runtersetzen bringt nichts.

Wäre es eine Lösung die Größe des FIFO so zu reduzieren, dass in einem Intervall nur ein Satz der Befehle ins FIFO geschrieben wird?

Hoffe ihr habt ein paar Ideen, denke es ist nicht mehr weit bis zu einer guten Lösung.

Anbei das FPGA und RealTime.vi

Danke und Grüße,
Hattorii


Angehängte Datei(en)
11.0 .vi  FPGA.vi (Größe: 175,27 KB / Downloads: 120)

11.0 .vi  RealTime.vi (Größe: 482,86 KB / Downloads: 133)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.04.2014, 20:32 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2014 20:37 von GerdW.)
Beitrag #28

GerdW Offline
______________
LVF-Team

Beiträge: 17.411
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Real Time, mehrere Ports, Problem
Hallo Hattorii,

du hast noch einen heftigen Bug im FPGA.vi: Deine Port-Init-Casestrukturen werden nur genau einmal zum Start des FPGA.vi aufgerufen! Du hast dummerweise innerhalb deiner While-Loop andere endlos laufende While-Loops: was bedeutet das wohl für die Iterationen der äußeren Loop?
Im RT-VI der gleiche heftige Bug: du schreibst in einer ungebremsten endlos laufenden While-Loop Daten in deinen FIFO - und wunderst dich, wenn dieser überläuft…
Was soll dieser Quatsch mit endlos laufenden Schleifen innerhalb von endlos laufenden Schleifen? Von welchem NI-Beispiel-VI hast du sowas gelernt?
Hmm

Pack doch bitte Write-Loop, Read-Loop und Init-Loop im FPGA in parallele Loops! Das gleiche gilt für den RT-Host…

Im RT-VI schreibst du jeweils U16-Arrays in den FIFO, im FPGA liest du diese Arrays aber einzelwertweise aus. Bei längeren Strings schreibst du also (im FPGA) so schnell wie möglich in die seriellen Ports - ich weiß wirklich nicht, ob die das mögen…

Es gibt doch eigentlich für alle Module entsprechende Beispiel-VIs, sicherlich (und gerade) für deine Module mit den seriellen Ports. Wie wird das da eigentlich gehandhabt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2014, 16:28
Beitrag #29

Hattorii Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Dec 2013

2011
2013
DE



RE: Real Time, mehrere Ports, Problem
Hallo,

Danke für deine Antwort Gerd. War sehr hilfreich!!!

Habe die Korrekturen vorgenommen zudem schreibe ich nun nur alle 5 Sekunden ins FIFO. Habe festgestellt, dass dieser genau dann nicht voll läuft.

Ich muss die ganze Zeit Befehle senden, da in diesem Falle der Befehl "in_pv_02" dem Gerät sagt, dass er mir die Ist-Temperatur zurückschicken soll, welches aufgezeichnet werden soll. Habe es aber nun in so weit geändert, dass die anderen Befehle nur einmal gesendet werden sollen bei Änderung.


Eine letzte Frage:

Ich bekomme nun alle 5 Sekunden eine Temperatur zurückgeschickt, welches wegen der Shift Register von rechts nach links durchgeschoben wird (Port X -String Indicator). Wie kann ich diesen String so bearbeiten, dass ich daraus die richtige Temperatur erhalte in der Form: "25.03". Denn wird dieser weiter geschoben steht ja theoretisch irgendwann auch mal "5.03" und ".03" oder "03" da drin.


VIELEN DANK und beste Grüße,
Hattorii


anbei: die funktionierenden (wahrscheinlich nicht die schönste Variante Smile ) VIs


Angehängte Datei(en)
11.0 .vi  FPGA.vi (Größe: 185,75 KB / Downloads: 138)

11.0 .vi  RealTime.vi (Größe: 479,34 KB / Downloads: 117)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2014, 20:42 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2014 20:45 von GerdW.)
Beitrag #30

GerdW Offline
______________
LVF-Team

Beiträge: 17.411
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Real Time, mehrere Ports, Problem
Hallo Hattorii,

Zitat:Wie kann ich diesen String so bearbeiten, dass ich daraus die richtige Temperatur erhalte in der Form: "25.03". Denn wird dieser weiter geschoben steht ja theoretisch irgendwann auch mal "5.03" und ".03" oder "03" da drin.
- Üblicherweise werden solche Strings mit irgendwelchen TermChars gesendet, die man dann prima auswerten kann. Dummerweise löscht du die aber mit TrimWhitespace weg…
- Wenn man sich an den TermChars orientiert, wird es sehr einfach: Immer wenn ein TermChar kommt, wertet man die bisherigen Zeichen aus (die sollten dann ja eine komplette Messung darstellen) und löscht diese dann aus dem Buffer (aka Schieberegister)…

- RT: Wozu hast du eine lokale Variable "Datenspeicherung", wenn das Terminal ungenutzt rumliegt?
- RT: Um einen boolschen Wert nach 0/1 umzuwandeln gibt es eine passende Funktion in der boolschen Palette: da braucht man kein Select mit zwei Konstanten…
- RT: Wozu ein FormatIntoString, dessen Hauptaufgabe im Einfügen von Zeilenendezeichen besteht? Warum tippst du die nicht einfach im Formatstring mit ein?
- RT/FPGA: Wenn du Zahlenwerte auf einen Bereich testen willst, kann man ein "größer als", ein "kleiner als" und zwei Case-Strukturen verwenden - es gibt aber auch die InRangeAndCoerce-Funktion, die man mit einem Select kombiniert…
- FPGA: Wenn du Messwerte als FXP bekommst und diese in ein I16-Terminal schreibst, bekommst du nicht ohne Grund einen CoercionDot. Ich frage mich, ob "Systemdruck P0x" jemals einen korrekten Wert anzeigt…
- RT/FPGA: Das AutoCleanup-Tool machte für meinen Geschmack beide VIs übersichtlicher…

- Tipp: In den LV-Optionen kann man die "Symbol"-Darstellung aller Terminals im BD ausschalten - die nehmen dann weniger Platz im BD weg und man sieht sofort den Datentyp anstatt der (die meiner Meinung nach) unwichtige FP-Optik…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Real Time Probleme Joachim 4 6.832 18.09.2020 06:48
Letzter Beitrag: GerdW
  Unterschied: Real Time Debug Deployment und Real-Time Development Felix777 10 30.992 18.10.2017 17:44
Letzter Beitrag: Felix777
  Brauche ich LabVIEW FPGA zu installieren für Real-Time CAN Felix777 5 13.269 03.10.2017 17:58
Letzter Beitrag: Felix777
  Welche Strukturen sind unter LabVIEW Real Time erlaubt/nicht erlaubt? Design Pattern. Felix777 7 19.133 12.10.2015 11:19
Letzter Beitrag: jg
  Real-Time OS: ph_exec.exe nicht gefunden! El_Hefe84 0 5.957 06.03.2013 15:05
Letzter Beitrag: El_Hefe84
  "Real-Time features nicht verfügbar" bigfudge 4 8.433 16.01.2013 16:20
Letzter Beitrag: bigfudge

Gehe zu: