Libnodave ließt nur 30 Werte

PlutoRB

Level-2
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kollegen
Ich habe ein Problem mit einem kleinen Programm das sich in VB 6 mit Lobnodave geschrieben habe.
Das PRogramm hat die Aufgabe Daten (die ich in einer Testdatei beschreibe) zyklisch von der CPU zu lesen und dann in eine Textdatei zu schreiben.
Das ganze soll ein Datenlogger werden, der einfach über eine Textdatei parametriert werden kann.
Als CPU hab ich eine Siemens 317PN/DP und das Programm aoll über TCP/IP auf die Steuerung zugreifen.
Mein Problem ist folgendes: Wenn ich das Programm starte, dann kann ich mit Libnodave ca. 30 Werte auslesen. Dann bekomme ich keine Verbindung mehr.
Wenn ich das Programm dann beende und neu starte, dann kann ich erneut 30 Werte auslesen.
Gibt es da einen Speicher der voll läuft? Muss ich irgendwelche Speicher leeren, bevor ich im nächsten Zyklus wieder mit der CPU eine Verbindung aufbauen kann.
Danke schon mal für die Antworten.
Rouven
 
Wenn ich das richtig verstanden hab öffnest und schliesst du für jeden Lese-Auftrag die Verbindung, wenn ja solltest du das ändern, damit dein Programm beim Start die Verbindung aufbaut und beim Programmende erst wieder beendet.

In deinem Fall wird es wohl daran liegen das du die Verbindung nicht richtig beendest und deshalb die Verbindungsresourcen der SPS nicht wieder freigegeben werden und dadurch ist nach kurzer Zeit kein Verbindungsaufbau mehr möglich ist bzw. erst nach einiger Zeit wieder. Schau mal nach ob du beim Verbindungsabbau die Funktion "closeport" verwendest, wenn ja, musst du dort "closesocket" verwenden (closeport wird für serielle Verbindungen benötigt und "closesocket" für Ethernet Verbindungen).

Wenn ich jetzt nicht richtig getippt hab kannst du ja mal dein Programm bzw. den teil mit dem Verbindungsauf- und Abbau hier reinstellen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hört sich richtig an

Hallo

Danke für die Antwort.

Ich verwende die Standardprozedur die ich in dem Modul12 gefunden hab. Ich hab auch mal gsucht und das Problem liegt daran, dass der Socke nicht mehr verbunden wird.
Das kann also sehr gut sein, dass es daran liegt, dass die Verbindung nicht richtig beendet wird.

Ich werd das mal prüfen, und dann geb ich nochmal Bescheid.

Danke aber schon mal für die gute Antwort.

Bis dann

Rouven
 
Danke ... Hat funktioniert

Hallo

Danke ... es hat funktioniert.
Ich habe die Verbindung über TCP hergestellt. Ich habe die Funktionen angepaßt, aber in der Funktion Cleanup leider den closeSocket übersehen.

Danke für die gute Antwort.

Rouven
 
Zurück
Oben