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

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

Thema: TCP Socketverbindung zu S7/300 CP343-1 Lean

  1. #11
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hier ist der vollständige quellcode:

    http://pvbrowser.org/pvbrowser/sf/ma...2116d9336de89e

  2. Folgender Benutzer sagt Danke zu pvbrowser für den nützlichen Beitrag:

    ssound1de (18.02.2011)

  3. #12
    Avatar von ssound1de
    ssound1de ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard

    Hi pvbrowser,

    Danke für Deine Antwort.

    Habe den Quellcode durchgeackert. Das hilft mir schon etwas weiter.

    Habe aber doch noch ein paar Fragen dazu.

    Ich sehe/finde keine Eventhandler.
    1. Woher weiß ich ob ein Client connecten will um dann accept auszuführen?
    2. Woher weiß ich ob neue Daten angekommen sind? read über timer-interval aufrufen?
    3. Worauf verweist "(struct sockaddr *) &sockaddr[0]" in Line 00307? Einfach ein Zeiger auf sockaddr? (Bin leider kein C-ler)

    Sorry für die vielen Fragen

    Danke und Gruß

  4. #13
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Zitat Zitat von ssound1de Beitrag anzeigen
    Ich kann doch nicht der einzige sein, der dieses Problem hat ...

    @argv_user
    Mein Testprog hat nur eine Form. Programmstart = Formload und Form unload = Ende und close.
    Das ist dann ja ziemlich eindeutig: Du musst jedenfalls warten bis die
    Steuerung wieder kann. Eventuell beim Formstart die Sanduhr einblenden.

    Die von Dir genannte Zeit geht kann ich bestätigen.
    Und das Problem liegt nicht beim PC!

  5. #14
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Zitat Zitat von ssound1de Beitrag anzeigen
    Hi pvbrowser,
    Habe aber doch noch ein paar Fragen dazu.

    Ich sehe/finde keine Eventhandler.
    1. Woher weiß ich ob ein Client connecten will um dann accept auszuführen?
    2. Woher weiß ich ob neue Daten angekommen sind? read über timer-interval aufrufen?
    3. Worauf verweist "(struct sockaddr *) &sockaddr[0]" in Line 00307? Einfach ein Zeiger auf sockaddr? (Bin leider kein C-ler)
    (1,2):
    Das ist eine Bibliothek für Socket Kommunikation, da ist kein Eventhandler drin.
    Ich mache immer einen extra Thread auf, der auf dem Netzwerk wartet.
    Dann weiss er auch immer wann Daten gekommen sind.
    Man kann aber auch mit select auf Daten warten (mit timeout).
    http://pvbrowser.org/pvbrowser/sf/ma...6cbb40bdc6596a

    (3):
    Das ist eine Member Variable von rlSocket.
    s = accept(os, (struct sockaddr *) &sockaddr[0], &socklen);
    Da steht dann u.a. drin von welcher adresse aus versucht wird zu connecten. Du könntest da z.B. nur Adressen aus dem lokalen Subnetz akzetieren, um das sicherer zu machen.

  6. #15
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Unter Windows gibt es noch eine nicht Posix kompatible Socket Schnittstelle, die mit asynchronen Aufrufen arbeitet.
    Meine Bibliothek soll aber gerade portabel sein und verwendet daher nur portierbare Funktionen. Die einzelnen Betriebssysteme werden innerhalb der Methoden über #ifdef unterschieden.

    Achtung: accept() wartet blockierend bis sich ein Client verbindet. Das wäre tödlich für jeden Eventloop. Daher mache ich accept() in einem eigenen Thread, wenn ich GUI Anwendungen habe.

    Genauer gesagt verwende ich Qt für GUI Programme. Der separate Thread überwacht dabei das Netzwerk, während das Hauptprogramm den Benutzer bedient. Wenn dann Daten angekommen sind, wird ein Qt Signal emittiert und das Hauptprogramm kann sich die Daten abholen. Dazu braucht es sich nur mit connect an das emittierte Signal hängen.

    Meine Bibliothek verwende ich mit und auch ohne Qt.
    Sie enthält evtl. Klassen die auch hier von Interesse sein könnten.
    (u.a. SPS Kommunikation)
    Siehe:
    http://pvbrowser.org/pvbrowser/sf/ma...l/classes.html

  7. Folgender Benutzer sagt Danke zu pvbrowser für den nützlichen Beitrag:

    ssound1de (25.02.2011)

  8. #16
    Avatar von ssound1de
    ssound1de ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wow - hab nicht gedacht, dass ichs noch hinkriegen würde, aber jetzt läufts.

    Vielen Dank an Alle - speziell @pvbrowser

    Das ganze sieht jetzt wie folgt aus ...

    Code:
    'Vorbereitung
    wsastartup (...)
    <snip>
    socket (...)
    <snip>
    setsockopt (...)
    <snip>
    bind (...)
    <snip>
     
    listen (...)
    <snip>
    wsaasyncselect (...) Event für accept festlegen
    <snip>
     
    'Connection Request
    accept (...)
    <snip>
    wsaasyncselect (...) Event für receive festlegen
    <snip>
     
    'Receive/Send
    recv (...)
    <snip>
    send (...)
    <snip>
     
    'Beenden
    closesocket (...)
    <snip>
    wsacleanup ()
    Habe in meiner Test-S7 jetzt 2 CP's (343-1 Lean).
    Beide verbinden sich zügig mit dem socket. Auch nach Programm Neustart.

    Danke nochmal und Gruß.

Ähnliche Themen

  1. CP343-1 lean CP343-1 Lean
    Von M.R. im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.06.2010, 11:46
  2. Cp343-1 lean
    Von franzlurch im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.10.2008, 14:01
  3. Biete CP343-1 LEAN
    Von WendeMarkus im Forum Suche - Biete
    Antworten: 4
    Letzter Beitrag: 14.05.2008, 16:34
  4. CP343 Lean an S7 300 CPU
    Von Jochen Kühner im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.03.2007, 01:08
  5. 315-2DP und CP343-1 Lean
    Von tremendo im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 10.04.2006, 13:25

Lesezeichen

Berechtigungen

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