LabVIEWForum.de - XML direkt aus einer TCP Verbindung verarbeiten?

LabVIEWForum.de

Normale Version: XML direkt aus einer TCP Verbindung verarbeiten?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich suche nach einer Möglichkeit um XML Daten aus einer TCP Verbindung auszulesen um sie sofort weiterverarbeiten zu können. Die TCP Geschichte ist schon am laufen.
Das größere Problem ist die Verarbeitung der XML Daten. Es gibt ja im Nicht-Echtzeit-Teil von LabVIEW den XML-Parser(Zu finden unter Funktionen->Programmierung->Datei-I/O->XML). Der funktioniert aber leider nur mit Dateien. Das einzigste was ich bisher gefunden habe ist folgende Seite: http://thinkinging.com/2008/01/21/using-xm...abview-is-hard/
Jetzt stellt sich für mich die Frage ob das auch einfacher geht? Hat von euch schon jemand ein ähnliches Problem gehabt oder eine bessere Idee? Hier im Forum sind XML-Einträge noch sehr rar und bei Google hab ich bisher nichts besseres als den obigen Link gefunden.

Freue mich über jeden Hinweis und Tipp!
Vielen Dank, mfG,
Bernhard.


P.S.: Ich benutze LabVIEW 8.6
' schrieb:P.S.: Ich benutze LabVIEW 8.6

Offtopic2
Bitte Profil ergänzen
Schau am besten mal hier.
Das könnte dir helfen:
http://jkisoft.com/easyxml/docs/
' schrieb:Hallo,
ich suche nach einer Möglichkeit um XML Daten aus einer TCP Verbindung auszulesen um sie sofort weiterverarbeiten zu können. Die TCP Geschichte ist schon am laufen.
Das größere Problem ist die Verarbeitung der XML Daten. Es gibt ja im Nicht-Echtzeit-Teil von LabVIEW den XML-Parser(Zu finden unter Funktionen->Programmierung->Datei-I/O->XML). Der funktioniert aber leider nur mit Dateien. Das einzigste was ich bisher gefunden habe ist folgende Seite: http://thinkinging.com/2008/01/21/using-xm...abview-is-hard/
Jetzt stellt sich für mich die Frage ob das auch einfacher geht? Hat von euch schon jemand ein ähnliches Problem gehabt oder eine bessere Idee? Hier im Forum sind XML-Einträge noch sehr rar und bei Google hab ich bisher nichts besseres als den obigen Link gefunden.

Freue mich über jeden Hinweis und Tipp!
Vielen Dank, mfG,
Bernhard.
P.S.: Ich benutze LabVIEW 8.6

Die XML Funktionen in der File IO Palette sind keine komplette XML Library sondern speziell auf ein Schema implementiert dass dazu gedacht ist um LabVIEW Daten als XML abzuspeichern. Als universeller XML Parser taugen die überhaupt nichts.

Die Lösung von Jim Kring ist wohl die Beste für Dein Vorhaben. Die ist in pur LabVIEW geschrieben. Die meisten anderen Lösungen basieren entweder auf der MS XML Library und verwenden ActiveX (ein absolutes NoNo unter LabVIEW RT) oder das LabXML Projekt verwendet die Gnome XML Library. Dieses Projekt wird aber nicht mehr aktiv unterstützt und ist nur für Windows und Linux kompiliert worden soweit ich weiss. Wenn Du ein Pharlap RT System hast könntest Du eventuel die Windows Variante darauf zum laufen bringen (das hängt davon ab welche C Runtime und Windows API Funktionen verwendet werden da das Pharlap OS nur ein Subset des Windows APIs unterstützt). Bei PPC basierten RT Controllern geht das halt nicht, da die erstens keine x86 CPUs verwenden und zweitens VxWorks als OS, und das macht beides ein komplet anderes Shared Library Modell notwendig so dass die LabXML Windows DLL speziell für VxWorks rekompiliert werden müsste.

Rolf Kalbermatter
Vielen Dank für die Antworten!
Werds mal mit der EasyXML versuchen(Die RT läuft auf VxWorks und somit scheidet fast alles andere aus). Werd das Ergebnis dann kund tun.

Grüße, Bernhard.
' schrieb:Die XML Funktionen in der File IO Palette sind keine komplette XML Library sondern speziell auf ein Schema implementiert dass dazu gedacht ist um LabVIEW Daten als XML abzuspeichern. Als universeller XML Parser taugen die überhaupt nichts.

Die meisten anderen Lösungen basieren entweder auf der MS XML Library und verwenden ActiveX (ein absolutes NoNo unter LabVIEW RT) oder das LabXML Projekt verwendet die Gnome XML Library.
Stimmt das noch für LabVIEW > 8.6 ?
Dort wird doch der XML-Parser von Xerces verwendet (siehe Hilfe) und es kann nun auch ein mit einem eigenen Schema (nur DTD) validiert werden. (Dachte ich) Hatte leider damals zuwenig Zeit (hatte nur Beta), da mal etwas rumzutesten.

Ob das zur Problemlösung was beiträgt, weis ich jetzt auch nichtCool
' schrieb:Stimmt das noch für LabVIEW > 8.6 ?
Dort wird doch der XML-Parser von Xerces verwendet (siehe Hilfe) und es kann nun auch ein mit einem eigenen Schema (nur DTD) validiert werden. (Dachte ich) Hatte leider damals zuwenig Zeit (hatte nur Beta), da mal etwas rumzutesten.

Ob das zur Problemlösung was beiträgt, weis ich jetzt auch nichtCool

Diese DOM die auf Xerces basiert ist Teil des Internet Toolkits. Ich kann sie in meiner Pro 8.6 Installation ohne weitere Toolkits nicht finden!
Funktioniert auch glänzend unter Windows, und wahrscheinlich den anderen Desktop Versionen von LabVIEW. Aber leider kann ich auch nirgendwo die Portierung davon auf die RT Targets finden!

Rolf Kalbermatter
Hab diese Xerces Variante auch nicht gefunden(Internet Toolkit habe ich nicht installiert).
Habe mitlerweile EasyXML ausprobiert. Es funktioniert in der Echtzeitumgebung, macht jedoch leider nicht allzu viel Sinn. Ich habe eine Periodendauer von 10 ms und da ist der Rechner(zw. 800 und 900 MHz) dann zu 90% ausgelastet wenn er in jedem Zyklus EasyXML nutzt. Mein Baum ist realtiv klein aber ich brauche die häufige und auch schnelle Auswertung.

Hier der Baum(vom Prinzip):
<Tag1>
<Tag2>
</clientNr>234</clientNr>
<symbolLib>
<readSymbolValue>
<name>xyz</name>
<value>123</value>
</readSymbolValue>
<symbolLib>
</Tag2>
</Tag1>

Werde jetzt selbst ein kleines VI schreiben das auf meine Bedürfnisse zugeschnitten ist.

Nochmal vielen Dank für eure Hilfe.

Bernhard.
' schrieb:Diese DOM die auf Xerces basiert ist Teil des Internet Toolkits. Ich kann sie in meiner Pro 8.6 Installation ohne weitere Toolkits nicht finden!
Funktioniert auch glänzend unter Windows, und wahrscheinlich den anderen Desktop Versionen von LabVIEW. Aber leider kann ich auch nirgendwo die Portierung davon auf die RT Targets finden!
Du hast vermutlich Recht, aber so steht das (lese ich das) nicht in der Hilfe. (Habe leider kein 8.6 mehr, daher Links zur Online-Hilfe)
LabVIEW 8.6 Features and Changes
und
XML Parser VIs and Functions
Hallo, ich hatte ähnliches vor um einer statischen Datenstruktur vorzubeugen. Ging nur leider wie erwähnt wegen fehlendem XML Support auf dem RT ( cRIO) System nicht. Da ich auf Host (PC) Seite nicht auf XML verzichten wollte, habe ich mich für eine temporäre Konfigurationsdateikonvertierung (ini) entschieden. Diese können vom RT verarbeitet werden. Das Format ist zwar von vorgestern aber immer noch besser als ein Array mit fixed Positions zu verwenden. Die temporäre ini Datei wird per FTP in ein festes Verzeichnis kopiert und vom RT mit festem Namen verarbeitet. Der Zugriff erfolgt dann über die Sections und Keys.

Hope it helps !

Christian
Referenz-URLs