Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: libnodave: was tun am Ende?

  1. #1
    Registriert seit
    16.11.2007
    Ort
    Karlsruhe
    Beiträge
    11
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle!

    Ich bin gerade am Testen der libnodave, weil ich sie u.U. in einem Projekt einsetzen will und zwar mit ISO-over-TCP.

    Nun frage ich mich, was ich im Fall von Netzwerkproblemen machen soll.
    Am Anfang macht man openSocket(...), danach in etwa:

    di = daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
    dc = daveNewConnection(di,2,0, 2); // insert your rack and slot here

    Allokieren diese beiden Methoden irgendwelchen Speicher, den ich später (am Ende oder bei Fehlern) wieder freigeben muß (um mem leaks zu vermeiden) ?

    Gleiche Frage stellt sich, wenn ich die Verbindung zur SPS regulär beende.

    Ich wollte eigentlich so programmieren, dass die Verbindung zur SPS bei Bedarf aufgebaut wird, nach Gebrauch wird die Verbindung wieder beendet.

    Das Spielchen sollte sich so "quasi endlos" wiederholen ......
    Zitieren Zitieren libnodave: was tun am Ende?  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Kandiszucker Beitrag anzeigen
    Hallo an alle!

    Ich bin gerade am Testen der libnodave, weil ich sie u.U. in einem Projekt einsetzen will und zwar mit ISO-over-TCP.

    Nun frage ich mich, was ich im Fall von Netzwerkproblemen machen soll.
    Am Anfang macht man openSocket(...), danach in etwa:

    di = daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
    dc = daveNewConnection(di,2,0, 2); // insert your rack and slot here

    Allokieren diese beiden Methoden irgendwelchen Speicher, den ich später (am Ende oder bei Fehlern) wieder freigeben muß (um mem leaks zu vermeiden) ?
    Ja. Freigeben:
    in C mit free(dc), free(di)
    von VBA,Pascal, Delphi oder PERL: daveFree(di), daveFree(dc)
    .NET: Das macht der Destruktor des Wrapper-Objekts spätestens nach Programmende.

    Anmerkung: daveFree ist nur ein "wrapper" für free(). Es ist nur da, damit man von anderen Sprachen darauf zugreifen kann. Es prüft NICHT ob der übergebene Zeiger gültig oder NULL oder wirklich ein daveXXX ist. Es ist nicht besser und nicht schlechter als free()...
    Gleiche Frage stellt sich, wenn ich die Verbindung zur SPS regulär beende.

    Ich wollte eigentlich so programmieren, dass die Verbindung zur SPS bei Bedarf aufgebaut wird, nach Gebrauch wird die Verbindung wieder beendet.

    Das Spielchen sollte sich so "quasi endlos" wiederholen ......
    daveDisconnectPLC()
    daveDisconnectAdapter()
    Die machen bei TCP/IP zwar nicht wirklich etwas, aber:
    1.Dein Programm funktioniert genauso für MPI
    2. Bei disconnectPLC könnte sich das ändern, das es doch mal was machen wird..

  3. Folgender Benutzer sagt Danke zu Zottel für den nützlichen Beitrag:

    Kandiszucker (22.11.2007)

Ähnliche Themen

  1. Prüfung ende Januar
    Von marcel1990 im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 09.01.2011, 18:13
  2. Motor Wicklungsanfang und Ende
    Von oliver2306 im Forum Antriebstechnik
    Antworten: 10
    Letzter Beitrag: 26.11.2006, 22:49
  3. S7 Distributed-Safety --> PG am Ende?
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.11.2005, 08:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •