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!
ich hätte da ein Problem mi der Datenübertragung von einem cFP-2000-Modul zu meinem Rechner. Und zwar lasse ich das Programm als Ausführungsziel auf dem cFP-2000-Modul (IP-Adresse) laufen. Ich messe damit diverse Temperatursensoren und speicher die Messdaten in einer Spread-Sheet-Datei ab. Diese Datei wird direkt auf dem cFP-Modul gespeichert. Ich kann sie auch via FTP sehen, wenn das Programm läuft.
Erreicht diese Datei eine gewisse Größe, kopiere ich sie in einen Netzwerkpfad bevor ich sie auf dem cFP-Modul lösche und dort eine neue Datei anlege.
Bei Erreichen der vorgegebenen maximalen Dateigröße wird diese Datei auch gelöscht, aber sie kommt nicht am gewünschten Ziel an. Ich weiß nicht, wohin diese Datei verschickt wird.
Starte ich das Programm im Windows-Modus, funktioniert es einwandfrei, genau wie gewünscht. Nur eben als RT-Target mit der Geräte-IP-Adresse läuft es nicht.
Kann mir vielleicht jemand einen Tipp geben, woran das liegen kann? Ich denke nicht, dass es Firewall-Probleme sind, da es auch nicht funktioniert, wenn ich diese deaktiviert habe.
Ich hoffe, ich konnte das Problem einigermaßen klar formulieren und bin über jeden Rat sehr dankbar. Bin schon langsam am verzweifeln,... :?
dass du von deinem PC auf das cFP zugreifen kannst ist klar, nur die Frage ist ob das cFP auch genug Rechte hat um die Daten auf dem Host zu speichern?!
Schon mal ueberprueft ob die Schreibrechte gesetzt sind?!
Verwendest eine aktive oder inaktive Verbindung?
FTP - vom Internet Toolkit?
sorry, dass längere Zeit nichts von mir kam.
- Also die Schreibrechte sind gesetzt.
- Ob ich eine aktive oder inaktive Verbindung nutze? - Das weiß ich gar nicht. Wie stelle ich das fest? Bzw. was ist Vor- / Nachteil einer aktiven / passiven Verbindung?
- Internet Toolkit: habe darüber einmal recherchiert und in diversen Quellen gefunden, dass ich das für die FTP-Verbindung zwingend benötige. Habe dieses Toolkit aber nicht. Gibt es vielleicht eine Alternative, wie ich den File-Transfer hinbekomme? Oder geht ohne das Toolkit nichts?
Möglich, dass ich mich auf diese eine Lösung schon ein wenig festgefahren habe und einfachere andere Wege gar nicht mehr sehe. Bin über jeden Tipp dankbar.
sorry fuer die spaete antwort - hab auf dieses topic total vergessen :-(
aem, passiv / aktiv -> je nachdem wer die verbindung aufbaut (host - fp, oder fp - host)
bezueglich der daten kopieren -> normalerweise sollte es auch mit den lowlevel funktionen aus der file i/o palette funzn...
welchen netzwerkpfad gibst du an?!
kein Thema. Ist ja wahrscheinlich auch ein nicht allzu übliches Problem.
Also die Verbindung soll vom FP zum Host hergestellt werden.
Im Prinzip versuche ich es mit einer Low-Level-Funktion aus der File I/O-Palette. Erst kopiere ich die Datei mit dem "Copy"-Befehl, dann lösche ich ihn mit "Delete"-Befehl, beide aus den "advanced file functions". Dateipfad der Quelldatei ist logischerweise der, den ich auch für die Spreadsheet-Datei verwende. Als Pfad für die Zieldatei habe ich unterschiedliches probiert:
- 192.168.0.1public (Verzeichnis auf dem Ziel-Rechner bzw. dessen IP-Adresse; Verzeichnis 'public' hat Windows-Freigabe mit allen Rechten: Lesen, Schreiben)
- Computername_Zielrechnerpublic
- c:192.168.0.1public (habe gelesen, dass ich bei einer Pfadangabe in einem FP immer ein c: davor brauche)
leider funktioniert keine der Versionen.
Ich komme von Tag zu Tag mehr zu dem Schluss, dass ich ohne das "Internet Toolkit" nicht auskomme. Leider ist das nicht Teil unsere Lizenz hier und meine Suche nach Alternativen war bisher eher weniger erfolgreich. Vielleicht ist es ja möglich, über die TCP-Palette eine rudimentäre Verbindung herzustellen, aber dazu kenne ich mich mit dem Protokoll zu wenig aus. Auch das Stichwort "Datasocket" ist im Kollegenkreis gefallen. Habe mit der Funktion leider auch noch nichts gemacht. Vielleicht hat ja noch jemand eine Idee. Bis dahin mal. Danke. Gruß Joachim
normalerweise muss das ohne internet toolkit auch funktionieren!
es macht doch keinen utnerschied ob du mittels der file i/o funktionen oder via ftp das ganze kopierst!
hast schon mal probiert abschließend noch eine ipordner
einen backslash anzugeben?
wie sieht es aus, wenn du ein vi unten laufen laesst, dass einfach einen ordner am host rechner anlegt?!
also mit zusätzlichem Backslash funktioniert es nicht, da mir LabVIEW den schon automatisch wieder aus dem Pfad löscht. Ich lege eine Pfadkostante an, nach dem Muster 192.168.0.1public und was übrig bleibt nach 'enter' ist 192.168.0.1public Also kann es daran eigentlich nicht liegen, oder?
Ich habe jetzt auch einmal versucht, Deinen Vorschlag mit dem Neuanlegen eines Ordners. Im Windows-Modus gar kein Problem und einwandfrei. Wenn ich das Programm im RT-Modus-IP-Adresse-FieldPoint starte bringt er mir den Fehler: "Error 7 occurred at New Directory in test.vi => Possible Reasons: LabVIEW: File not found. The file might have been moved or deleted, or the file path might be incorrectly formatted for the operating system. For example, use as path seperators on Windows, : on Mac OS, and / on UNIX. "
Ich habe es wieder mit mehreren Variationen versucht. Also auch mit c:IPfolder, was zum gleichen Fehler führte.
Was ich aber bei meiner Recherche im Internet noch gefunden habe zum Thema im NI Developer Forum:
Daher habe ich auch die Variante mit dem c:IP als Pfadangabe auf dem FieldPoint. Ich denke, dass genau diese beiden Beiträge mein Problem beschreiben. Ich kann aber mit dem FP FTP . vi nicht viel anfangen, weil mir ja das entsprechende Toolkit "Internet Toolkit" dazu fehlt. Laut dem zweiten Link ist das dazu erforderlich. Aber im Prinzip verstehe ich nicht, was ich dadurch am FieldPoint ändere und warum mein Kopierbefehl nicht funktioniert. Spricht der FieldPoint eine andere Sprache bzw. braucht er unbedingt FTP um Daten zu übertragen? Und kann es sein, dass nur dieses Toolkit die Sprache implementiert? Fragen, auf die ich keine Antwort weiß. Und die Aussage des hiesigen Vertriebsbeauftragten von NI war klar, dass ich das Toolkit brauche...
Also, vielleicht kommt ja beim ein oder anderen ein bisschen Licht ins Dunkel dieses Problems. Bei mir leider noch nicht.
mahlzeit!
also es gibt neuigkeiten die nicht sehr befriedigend sind, aber man kommt damit auch ueber die runden!
direkt mit dem rauf kopieren eine gespeicherten datei am cFP ist es ohne Internet toolkit wahrlich nicht moeglich :-(
aber ein workaround ist, dass du, sobald die datei eine bestimmte groeße erreicht hat (sofern es dann noch ueberhaupt sinn macht eine datei anzulegen) die datei oder werte-arrays via tcp/ip an deinen host rechner schickst!
die datei muesstest du dazu am cfp wieder oeffnen, ueber die leitung streamen und dann loeschen!
hast eine ungefaehre vorstellung wie das laufen koennte, oder soll ich dir ein beispiel proggn?
sehr schade, dass es nicht einfacher geht. Habe auch schon an TCP/IP gedacht, habe da aber zu wenig oder ehrlich gesagt keine Erfahrung damit. Wenn Du mir da ein Beispiel-Programm hättest wäre das super. Am besten ein ganz primitives, die Beispiel-VIs von LV selbst finde ich teilweise ein wenig zu überladen, wodurch sie nicht ganz einfach zu verstehen sind. Wenn Du noch vielleicht die Info dazu brauchst: ich schiebe das Array im Moment bei jedem Schleifendurchlauf in eine Spreadsheet-Datei. Danke schon mal im voraus. Gruß Joachim
morsche morsche,
anbei ein zip file die 3 vi's enthalten!
Diese wurden mit dem RT Communication Wizard erstellt und sehen evtl. auf den 1. blick etwas kompliziert aus, aber sind es absolut net.
Oeffne als aller erstes mal das NPL_ vi.
Dieses VI musst du am FP starten. In diesem VI befindet sich neben den TCPIP Funktionen noch ein SubVI. Dieses subVI hat die hoechste Prioritaet am RT System. Von diesem SubVI werden die geloggten Daten vom "DummyArray" ueber TCPIP an den Host gesendet. Im NP_ file werden dir auch 2 cases auffallen - der 1. case zum Schreiben (sprich Daten vom cFP zum Host) und der 2. case zum Lesen (einlesen des stop buttons vom Host)
In dieses SubVI vom NPL_ file (TCL_) kannst du innerhalb der while loop deine Funktionalitaet fuer das FP programmieren bzw. hinein kopieren und einfach das Array am Ende anschließen!
Im Host_ vi siehst ebenfalls wieder 2. cases (umgekehrtes spiel vom NPL_ file - > stopp button schreibst und dummyarray liest ein)
In dem case wo er ausliest, musst lediglich noch die LowLevel Funktionen fuer Datenstreaming einfuegen...
Bedienung:
NPL_ am cFP Execution Target oeffnen und starten. Anschließend Execution Target wechseln (ohne das VI zu stoppen) und auf die WindowsEbene zurueck wechseln. Host VI starten
Du kannst dich aber auch selbst mit dem RT Communication Wizard (zu finden unter Tools in LabVIEW) spielen. Beim Einstieg fragt er dich nach einem File, hier musst du jenes File angeben, dass am cFP laeuft! alles andere ist dann eigentlich selbsterklaerend...