Hi zusammen,
ich nutze das CompactRIO zur Messwerterfassung und -auswetrung. Passiv greife ich per FTP auf das Gerät zu.
Nach einiger Zeit komme ich per FTP nicht mehr aufs CompactRIO und der MAX zeigt das Gerät auch als "nicht verbunden" an. Die Real-Time-Applikation läuft jedoch weiterhin ohne Probleme.
Ich habe erst vermutet, dass nur max. x Verbindungen gleichzeitig zugelassen sind und das Gerät irgendwann an die Grenze kommt und keine weiteren Zugriffe mehr zulässt. Da ich die aufgebauten FTP-Verbindungen von einer Host-Applikation jedoch nach der Dateiübertragung wieder schließe, kann es eigentlich nicht daran liegen.
Woran kann es liegen, dass ich per MAX und FTP nicht mehr auf das Gerät komme und wie kann ich das ändern?
Momentan muss ich den Reset-Taster drücken, damit es wieder funktioniert.
Grüße
Wie oft öffnest du so eine TCP-Verbindung?
Gibt es noch andere TCP-Open/Close-Sachen in deiner RT-Applikation?
Ich kenne Effekte, wenn man so was zu häufig macht, dann hängt sich irgendwas im TCP-Stack vom RT-System auf.
RT-Applikation läuft zwar noch, aber Zugriff übers Netzwerk geht nicht mehr.
Gruß, Jens
Hallo Jens,
bei den aktuellen Testzwecken öffne und schließe ich die FTP-Verbindung vielleicht alle 2 Minuten.
Eine von der RT-Anwnednug dauerhaft geöffnete TCP/IP-Verbindung funktioniert auch, wenn ich per FTP/MAX nicht mehr auf das RT-System komme.
So aus dem Bauch heraus: Alle 2 Minuten ist schon oft. Aber ob das jetzt wirklich zu viel ist, genau kann ich es nicht sagen.
Was ich als Problem kenne, ist auch etwas anders gelagert. Da geht es darum, dass ein cRIO wiederholt probiert, eine TCP-IP-Verbindung zu einem Netzwerkteilnehmer aufzubauen. Und wenn das zu häufig und zu schnell gemacht wird (da Netzwerkteilnehmer nicht erreichbar), dann gibt es die beschriebenen Probleme.
Wobei das Netzwerk nicht komplett abstürzt, Pings oder Restart-Befehle per UDP gehen in der Regel noch.
--
EDIT, Nachtrag: Ach ja, FTP geht bei den mir bekannten Abstürzen in der Regel auch nicht mehr, eine vorher geöffnete TCP-Verbindung wird in der Regel noch als fehlerfrei angezeigt, aber Senden/Lesen hängt. Öffnen zusätzlicher Verbindungen oder eines Remote-Panels geht zu diesem Zeitpunkt nicht mehr.
--
Ob das jetzt direkt mit deinem Problem vergleichbar ist, sorry
Gruß, Jens
Wie sieht es mit der CPU Last aus? Wenn die am Anschlag ist, kommt der FTP-Server kaum noch zum Zug.
Mit einem guten FTP Client (z.B. Filezilla) kannst du den Timeout länger einstellen und mglw. wenigstens gaaanz langsam darauf zugreifen.
Was sich auch noch lohnt, ist sicher zu stellen, das die TCP-Verbindungen auch wirklich zu sind. Dazu z.B. mitm Process Explorer den Host Prozess anschauen und auf den TCP/IP-Tab wechseln. Falls sich da Einträge auf das cRIO häufen mit Status FIN_WAIT/FIN_WAIT2 gehen die Verbindungen nicht richtig zu und du kommst an die Grenze der max. Verbindungen des cRIO.
Mglw. hat sich auch der RT eigene FTP-Server verabschiedet. Unter LV RT 8.6.1 (Pharlab) äußert sich das z.B. mit der Terminalmeldung "FTP "Error in calling m_DataConn.Connect, err=19"". Hast du mal per Seriellkabel geschaut, ob das cRIO irgendwelche Meldungen liefert?
Als allgemeine Empfehlung würde ich den FTP für Produktiv- & Dauerbetrieb (insb. zyklische Transfers) durch eine in LV geschriebene Lösung ersetzen. Die kann man dann leichter debuggen und von der Priorität besser in die eigene SW integrieren. Ein kleiner Client/Server für Remote File List/Get/Delete ist schnell geschrieben.
Hallo,
danke für die Antworten.
Die CPU langweilt sich.
Das mit dem Process Explorer sehe ich mir an, danke.
Seriell logge ich aktuell nichts mit. Ich denke aber auch nicht, dsss während des Betriebs Statusmeldungen gesendet werden, sondern nur beim Booten.
Sonst würde bei der Verwendung der seriellen Schnittstelle im Programm alles durcheinander kommen (ich verwende sie jedoch nicht).
In meiner Anwendung kann man Messprotokolle per FTP abrufen. Zyklisch ist das nicht, sondern eher, wenn Messwerte dauerhaft abweichen. Aber gerade bei aktuellen Tests steigt der FTP-Server öfters aus. Wobei ich nicht weiß, ob das nur der FTP-Server ist. Denn im MAX sehe ich das Gerät ja auch nicht.
Bisher ging ich davon aus, dass die Verbindungen korrekt geschlossen werden, da ich keinen Fehler in meiner Hostanwendung erhalte.
Sollten Verbindungen offen bleiben, würde sich das Verhalten erklären.
Grüße