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

Ergebnis 1 bis 5 von 5

Thema: VB6 und S7 über Ethernet

  1. #1
    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
    Hi Leute,

    ich suche seit Wochen einen Fehler und verzweifle langsam...
    Ich hoffe Ihr könnte mir ein paar Tipps geben, was ich noch weiter unternehmen kann.

    Folgender Aufbau...
    Auf einem Rechner läuft ein VB6 Programm das Daten über Ethernet mit einer S7 austauscht (über CP343-1 LEAN).
    Das VB6-Proggie ist von mir, und läuft seit 6 Monaten problemlos.
    Rechner ist Server - S7 ist Client.
    In der CPU ist nur eine Verbindung projektiert.

    Der Rechner sendet an die S7
    - ca. alle 5 Min. ein Paket mit 14 Bytes

    Die S7 sendet an den Rechner
    ca. alle 5 Min. 128 Bytes
    ca. alle 1,5 Min. 160 Bytes - dieses Paket wurde vor ca. 3 Wochen neu integeriert
    ca. alle 1 Min. 22 Bytes
    Dabei vergeht zwischen den einzelnen Sendeaufträgen (nach deren Abschluss durch den LEAN = DONE) mind. 2 Sek.
    Das ist über das S7-Prog abgesichert.

    Im VB6 Programm ist ein Eventhandler auf den Ethernetport eingerichtet, der auf ankommende Daten reagiert.
    Das Ganze funktioniert oft tagelang einwandfrei.
    Aber aus unersichtlichem Grund reagiert der Eventhandler plötzlich nicht mehr auf die größeren Pakete (128 und 160 Bytes)
    Die Verbindung steht, es werden keine Fehler gemeldet, die kleineren Pakete funktionieren in Sende- und Empfangsrichtung problemlos.
    Die S7 sendet alle Pakete ohne Fehler.

    Ich habe schon mit Wireshark die Kommunikation überprüft - alle Pakete tauchen in Wireshark auf.
    Ich habe die kleinen Pakete mit den großen verglichen.
    IP stimmt, Port stimmt, alle Flags stimmen überein.
    Die Pakete unterscheiden sich lediglich in Uhrzeit, Paket-Nummer und Länge.

    Im VB6 Eventhandler hab ich schon loggings integriert. Alle Pakete von der S7 kommen rein, werden geloggt.
    Aber irgendwann fehlen die großen Pakete (128 und 160 Bytes), und zwar dauerhaft bis zum Neustart des VB6-Programms.

    Ich hoffe Ihr habt irgendeine Idee, was ich zur Fehlersuche noch tun kann.

    Danke im Voraus.
    Gruß
    Zitieren Zitieren VB6 und S7 über Ethernet  

  2. #2
    Registriert seit
    27.12.2009
    Beiträge
    93
    Danke
    4
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Hallo ssound1de,

    wenn ich mich recht an meine Anfangszeit mit S7-TCP Communikation mit PC-Winsocks errinnere, hatte ich ein ähnliches Verhalten.
    Damals übermittelte ich unter anderem Integer- und DoubleInteger-Zahlen direkt ohne Wandlung.
    Seit ich alles in Ascii-Strings umwandle (um damals die Daten mit Wireshark zu beobachten zu können), war das Phänomen weg.

    Ich erkläre mir das so, dass die Zahlen, bytemäßig betrachtet auch Werte unter 20Hex habe können, die dann
    Sowas wie EOT (End Of Text, Carrige Return, ..., sieh mal auf eine ASCII-Tabelle) enthalten können,
    kann eventuell dies, insbesonders, bei Kombinationen aus mehreren Zahlen zu Fehler kommen (muß nicht).

    Jedenfalls übermittle ich alle Werte nur in ASCII-Strings und seitdem ist das Gut.

    Viel Erfolg,
    S7_Programmer

  3. #3
    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 S7_Programmer,

    Vielen Dank für Deine Antwort.

    Das Problem das Du ansprichst tritt wohl eher in der S7-PtP Kommunikation (z.B. 3964R-RK512) - also über serielle Schnittstelle (RS232, TTY...).
    Bei TCP ist das anders.

    Ausserdem ist das komische ja, dass im VB6-Programm das Event für die ankommenden Daten nicht mehr ausgelöst wird - aber eben nur bei den größeren Blöcken.
    Die kleineren funktionieren nach wie vor.
    Dazu kommt, dass die Pakete oft identisch sind -> z.B. Paket 1213 kommt an, Paket 1214 kommt nicht an (obwohl identisch mit Paket 1213)

    Es ist fast so als würde die Firewall plötzlich diese Pakete blocken.
    Weiß jemand wo sich Wireshark reinhängt? Noch vor der Firewall, oder danach?

  4. #4
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Da müßte man jetzt wahrscheinlich doch mehr von deinem PC-Programm wissen.
    Was machst du, wenn das Event ausgelösst wurde ? Was machst du, wenn die Paketgröße nicht passt ?

  5. #5
    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
    Es wird grundsätzlich geloggt...
    Code:
    Private Sub RecTCP()  'Event wird ausgelöst, wenn neue Daten am TCP-Port angekommen sind
      'Receive bearbeiten
      Dim i&, t&, e$
      Dim WSAError As Long
      Dim RecStr As String
      Dim S7SockID As Long
      BytesRec = -1
      RecStr = ""
      
      Call LogTCPData("Rising Event 'RecTCP'")
      ...
    In LogTCPData wird der übergebene String ins LogFile geschrieben (hier vereinfacht dargestellt).
    Das läuft eine ganze Zeit i.O., bis dann plötzlich bei den 128 und 160 Byte Blöcken kein Eintrag mehr im LogFile erscheint.
    Der kleinere 22 Byte Block ist immer noch da.

    Auch wenn die Blockgröße nicht stimmt wird geloggt. Es sollte also auf jeden Fall was im LogFile stehen.
    Was ich an dieser Stelle nochmal überprüfen könnte, wäre das Errorhandling.
    Evtl. hab ich an anderer Stelle das Errorhandling nicht sauber aufgeräumt, und es tritt hier ein Fehler auf,
    wodurch es erst garnicht zum Logging kommt. Hmm...

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 03.10.2016, 23:46
  2. Antworten: 43
    Letzter Beitrag: 10.06.2012, 13:30
  3. Antworten: 6
    Letzter Beitrag: 20.02.2012, 13:42
  4. Antworten: 3
    Letzter Beitrag: 01.07.2009, 09:15
  5. S7-315 und Excel über Ethernet
    Von Anonymous im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 13.12.2005, 14:31

Lesezeichen

Berechtigungen

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