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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Libnodave und S7Online

  1. #11
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Leuschman

    Also bei einer TCP/IP-Verbindung zu einer 317PN funtioniert das bei mir bisher problemlos, oder ist mir das nur nicht aufgefallen? Ich kann das nächste Woche mal nachprüfen. Wie oft kannst du denn deine Verbindung herstellen, bis es nicht mehr funktioniert?

    Das Problem, das ich hatte betraf die s7Online -Schnittstelle, da hat AFK wqas an der DLL geändert, ich hoffe, Zottel hat das schon von ihm bekommen. Was mir bei TCP/IP auffiel, daß mein Programm nach jedem Abbau der Verbindung zwei Handels nicht mehr hergab.

    Hallo Ralle,

    Zitat:
    Zitat von Ralle
    hab noch etwas herumexperimentiert und festgestellt, daß libnodave (deine dll, die von Zottel habe ich nicht getestet) bei TCP/IP-Verbindungen (319 PN) nach jedem Schließen der Verbindung 2 Handles nicht zurückgibt. Ich vermute jedenfalls libnodave, da das Verhalten sowohl bei meinem Programm, als auch bei deinem Demo-Programm auftritt. Hatte zwar bisher keine negativen Auswirkungen, ist aber sicher mal Wert dem nachzugehen.

    Danke für die Info, das werde ich mir mal genauer anschauen, sobald ich Zeit dazu habe.

    Gruß Axel
    Da wird er demnächst sicherlich mal nachsehen.

    PS: Teste doch mal mit dem Delphi-Beispielprogramm in Libnodave.

    @Zottel

    Hast du zu dem Problem der s7Online-Verbindung (immer nur die 1. CPU liefert die Daten, auch wenn man versucht mehrere auszulesen) irgendeine Idee?
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. #12
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Idee

    Hallo Ralle,

    Zitat Zitat von Ralle
    Hast du zu dem Problem der s7Online-Verbindung (immer nur die 1. CPU liefert die Daten, auch wenn man versucht mehrere auszulesen) irgendeine Idee?
    Ich habe dazu mal irgendwann vor mehr als einem Jahr darüber hier im Forum gelästert (Zottel, verzeih mir bitte), da stimmen irgendwie die Parameter nicht. Ich werde nochmal nachsehen, weiss das im Moment nicht mehr aus dem Stegreif.

    Gruss

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Da war noch irgendwas ....  

  3. #13
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Da wird er demnächst sicherlich mal nachsehen.
    Stimmt, wird er machen. Sobald er wieder zu Hause ist und mal ordentlich ausgeschlafen hat ...

    Schönen Gruß aus Manila
    Axel
    Man muß sparn wo mn knn!

  4. #14
    Registriert seit
    08.01.2007
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @RALLE

    Ich kann maximal 2 Verbindungen aufbauen und diese werden dann weiter offengehalten - sonst wird keine weitere Verbindung akzeptiert.
    Nehme ich die Routine in eine normale EXE (wie die Beispiele aus dem libnodave-Verzeichnis), so wird nach dem Beenden der MAIN-Funktion auch die Verbindung geschlossen. Nur hier - beim Aufruf der DLL - passiert so etwas nicht.

    @ALL
    Nur mal so als Info - ich nutze hier: WinXP, MsVC++6.0, libnodave-0.8.2

    Was mir nun mittlerweile aufgefallen ist, nachdem ZOTTEL mich auch die CloseSocket Funktion gestossen hat, dass es diese in der eigentlichen "openSocket.h" nicht gibt. ABER es ist eine "openSocketW.c" vorhanden, in der auch close-Funktionen enthalten sind...
    Und in der filelist-Datei steht:
    ...
    openSocket.c Opens a TCP/IP connection. Library source code file
    openSocket.h Library header file (UNIX only)
    openSocketw.c Library header file (Win32 only)
    ...

    Heisst dies, wenn ich hier unter Windof arbeite, dass ich die "opensocket.h" eigentlich nicht nutzen kann und dann irgendwie die "openSocketw.c" einbinden muss?

    Da meine letzten C++ Gehversuche schon ein weilchen her sind, wäre ich bei der möglichen Umstellung dann für eine kleine Hilfe recht dankbar.

    Gruss
    Marco
    Zitieren Zitieren Verbindungen  

  5. #15
    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 Leuschman Beitrag anzeigen
    @RALLE

    Was mir nun mittlerweile aufgefallen ist, nachdem ZOTTEL mich auch die CloseSocket Funktion gestossen hat, dass es diese in der eigentlichen "openSocket.h" nicht gibt. ABER es ist eine "openSocketW.c" vorhanden, in der auch close-Funktionen enthalten sind...
    Falsch. Die sind da nicht enthalten. Die Funktion closesocket() wird darin lediglich genutzt. Enthalten ist sie in winsock2.dll ! Du kannst si selbst nutzen, indem du winsock.h einbindest und dein programm mit winsock2.dll linkst.
    Dein Programm wird auch nicht größer, da Libnodave.dll eh winsock2.dll anfordert.
    Zitat Zitat von Leuschman Beitrag anzeigen
    @RALLE
    Heisst dies, wenn ich hier unter Windof arbeite, dass ich die "opensocket.h" eigentlich nicht nutzen kann...
    Du kannst, aber du mußt nicht. Weil du nicht mußt, gibt es diese separate Headerdatei: Du könntest dein socket auch "zu Fuß" aufmachen, indem du Funktionen aus winsock2.dll nutzt. Das kann nützlich sein, wenn du Eigenschaften des Sockets ändern möchtest und das nach bind() oder connect() nicht mehr geht.
    Die Funktion openSocket() bietet dir einfach den Komfort, im Standardfall nicht alles selbst schreiben zu müssen.
    Eine Funktion close() in "openSocketw.c" ein zubauen, wäre nicht so sinnvoll. Sie sähe so aus:
    Code:
    close(HANDLE h) {
     closesocket(h);
    }
    und würde den Code nur um ein paar Anweisungen aufblähen.
    Zitat Zitat von Leuschman Beitrag anzeigen
    @RALLE
    ... und dann irgendwie die "openSocketw.c" einbinden muss?
    Der (kompilierte) Code aus openSocketw.c ist Bestandteil von libnodave.dll. Da mußt du gar nichts weiter tun.

Ähnliche Themen

  1. libnodave S7Online mir .Net
    Von eloboy im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 31.08.2011, 01:57
  2. Libnodave und S7online
    Von adi im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 05.01.2011, 16:31
  3. Libnodave mit VBA und S7Online
    Von Watchdog im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.06.2010, 09:45
  4. LibNoDave + S7Online
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 05.05.2009, 19:56
  5. LibNoDave - S7Online - TCP/IP
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 09.03.2009, 12:33

Lesezeichen

Berechtigungen

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