libnodave, S7-200 -> Kommunikationsprobleme?

hik

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich verwende mehrere "Netlink Pro compact" für das Monitoring von Wasserkraftanlagen. Die Abfrage erfolgt durch ein kleines C-Programm (siehe Anhang) unter Linux. Die Daten werden in eine SQL-Datenbank geschrieben. Ein Kommandozeilen-Aufruf wäre

./nodave-ISOTCP-1.1 10.0.0.1 -mpi 4 -db 1 -i label1 -u16 0 -i label2 -f 4

Bei Steuerungen mit S7-300 gibt es keine Probleme. Die Abfrage funktioniert tadellos seit Wochen und wird alle 5 Minuten aufgerufen.

Bei bisher zwei Steuerungen mit S7-200 gibt es allerdings massive Probleme. Nach wenigen Tagen oder gar wenigen Stunden funktioniert plötzlich die Abfrage nicht mehr. Der Netlink Adapter ist zwar noch per Ping erreichbar, die Weboberfläche hingegen nicht.

Bei einer der beiden Steuerungen, die Probleme gemacht hat, setze ich nun einen ACCON-NetLink-S7 ein, der mit einer geringfügigen Protokolländerung im Source Code (IBH-Protokoll) nun auch schon 4 Wochen tadellos funktioniert.

Wieso mögen sich die S7-200 und der NL PRO compact nicht?
Gibt es Fehler im angehängten Programm oder in libnodave?
Gibt es memory leaks im Adapter?
Hat jemand ähnliche Probleme?

Bin für jede Hilfe dankbar.
Thorsten
 

Anhänge

  • nodave-ISOTCP-1.1.c.txt
    5,1 KB · Aufrufe: 25
Mhmm...

Also Ich hatte mit den früheren NetLink-Lites probleme wenn die Verbindung mal abgebrochen ist. Da der NL Lite nur 2 Verbindungen konnte, und diese irgendwie ewig bestehen blieben.
Ich hab dann immer nach einem neuen Connect Netlink Reset aufgerufen, und die Verbindung danach nochmals aufgebaut!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bitte bei unserem Support melden, damit wir die aktuelle Firmware zusenden können. Sollte es noch nicht klappen, gibt es dann ein Tool zu Analyse (allerdings unter Windows). Oder tritt das Problem nur unter Linux auf?
 
Die Abfrage für alle Anlagen soll auf Linux funktionieren. Zu Analyse-Zwecken kann ich aber Windows verwenden.

Testweise habe ich die Aufrufe von

daveDisconnectPLC(dc);
daveDisconnectAdapter(di);

am Schluss der Abfrage weggelassen. Auch mit dieser Änderung tritt das Problem auf. Offensichtlich ist das Schließen des Sockets nicht ausreichend, dass alle Ressourcen des Adapters wieder frei werden.
 
Zurück
Oben