Step 7 Problem mit Ethernetverbindung über PN/DP CPU

Lipperlandstern

Level-3
Beiträge
6.005
Reaktionspunkte
1.726
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Experten.

Ich habe hier eine Waage die über ein Firmennetzwerk und einen Lantronix (Ethernet-RS232-Wandler) zum ausgeben des Gewichtes aufgefordert wird. Der String zur Waage ist 25 stellig und das ganze funktioniert schon seit Jahren.

Jetzt soll die Waage mit einer PN/DP-CPU kommunizieren. Ich habe also mit T-Concect usw. eine Verbindung zu dem Lantronix aufgebaut und schicke den String zur Waage. Es passiert an der Waage aber nix.

An einem Laptop mit Hyperterminal kann ich sowohl den String vom Firmennetzwerk als auch den String von der CPU sehen. Die sind völlig identisch. Wir haben heute mit Etherreal den Datenstrom zu dem Lantronix überprüft und da sieht man das die 25 Zeichen übertragen werden.

Was kann den der "unsichtbare" Unterschied zwischen Firmennetzwerk und Siemensnetzwerk sein ?



Ich ( und nicht nur ich ) bin ein wenig ratlos. Hat noch jemand Tipps was man noch versuchen könnte ?
 
Wie war der Lantronix am PC denn eingerichtet, mit einer virtuellen seriellen Schnittstelle, oder wurden die Daten auch über eine TCP-Verbindung mit einem eigenen Programm versendet?

Ich meine bei dieser virtuellen Schnittstelle werden nicht nur die Daten sondern auch Steuersignale (über UDP?) übertragen.
Probier doch mal vom PC aus mit einer Software wie Hercules oder Telnet die Daten an den Lantronix zu schicken, und guckst ob dann was ankommt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie war der Lantronix am PC denn eingerichtet, mit einer virtuellen seriellen Schnittstelle, oder wurden die Daten auch über eine TCP-Verbindung mit einem eigenen Programm versendet?

Ich meine bei dieser virtuellen Schnittstelle werden nicht nur die Daten sondern auch Steuersignale (über UDP?) übertragen.
Probier doch mal vom PC aus mit einer Software wie Hercules oder Telnet die Daten an den Lantronix zu schicken, und guckst ob dann was ankommt.


Die Daten vom Firmennetzwerk werden auch über eine TCP-Verbindung gesendet. Ich habe vergessen zu erwähnen das ich 2 Lantronix habe die aber bis auf die IP-Adresse exakt gleich eingestellt sind. Ich habe über mein Laptop den String mit Realterm an die Waage geschickt und promt ein Ergebnis bekommen.

Ich habe also 3 Wege von denen 2 funktionieren und einer (der über die Siemens CPU) nicht
 
Und die Daten kommen auch wenn du von der SPS aus versendest aus dem Lantronix auf RS232-Seite heraus?
Vielleicht sendet dein PC einen Zeilenumruch oder Wagenrücklauf am Ende des Strings mit, was bei der SPS fehlt. Solche Sonderzeichen bekommst du im Windows Hyperterminalprogramm nicht mit.
 
Und die Daten kommen auch wenn du von der SPS aus versendest aus dem Lantronix auf RS232-Seite heraus?
Vielleicht sendet dein PC einen Zeilenumruch oder Wagenrücklauf am Ende des Strings mit, was bei der SPS fehlt. Solche Sonderzeichen bekommst du im Windows Hyperterminalprogramm nicht mit.

Ja. Die Daten kommen auch von der SPS am Lantronix auf der RS232-Seite raus. CRLF .. hmmmm... die Spezifikation der Waage sagt das der String mit ETX(02) anfängt und mit STX(03) aufhört. Von CRLF steht da nichts. Aber das könnte ich mal versuchen. Aber dann wäre der String ja nicht mehr 25 Zeichen lang sondern 27.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das String Format der SPS hast du bedacht? Die ersten beiden Bytes sind Längen und dürfen nicht mit in den Send Bereich des TSEND > Offset + 2.
Es wird nicht sofort nach dem SEND ein DISCON aufgerufen? Wenn doch testweise mal rausnehmen.
 
Das String Format der SPS hast du bedacht? Die ersten beiden Bytes sind Längen und dürfen nicht mit in den Send Bereich des TSEND > Offset + 2.
Es wird nicht sofort nach dem SEND ein DISCON aufgerufen? Wenn doch testweise mal rausnehmen.

Das mit dem String ist auf jeden Fall ok. Ein DISCON wird nicht aufgerufen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zeichne doch bitte die beiden Datenströme mal mit Wireshark auf. Und dann poste doch mal die Logs wo die Strings inkl. ein paar Zeilen davor wie danach drin sind.

http://www.wireshark.org/download.html

mfG René


Heute haben wir nur das Siemensnetz kontrolliert. Das sah soweit ok aus. Mal sehen ob ich morgen mal ins Firmennetz darf.... Ich find das ganze alles sehr seltsam......
 
.
Hallo Axel !

Also die Produkte von Moxa u. Lantronix werden schon mal hier und da
namentlich in "S"-Unterlagen genannt, sollten also laufen.

1. Die Steuerzeichen für die Waage werden vom Umsetzer erzeugt, die
brauchst du nicht mitsenden (je nach Einstellung am Umsetzer)

2. Hast du schon mal geprüft, ob die Waage überhaupt antwortet
oder irgendwie reagiert, was du nur nicht empfängst ?
(Vielleicht auch nur mit einem Fehlercode bei falschen Empfangs-String)

3. Sendet der Umsetzer zur CPU im richtigen Protokoll ? Welches Protokoll
läuft im Firmennetz?
Die offene Kommunikation sendet/empfängt TCPnative nach RFC 793 oder
ISOonTCP nach RFC 1006.

Gruss
 
.
@Axel

4. Hast du (ist bisher noch nicht genannt worden) auch den
Empfang in der offenen Kommunikation programmiert ? ;)

Gruss
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.
@ Axel

Ich habe noch etwas geschmökert und folgendes hier im
Forum gefunden, um dir weitere Anhaltspunkte zu geben:

5. Sind die Verbindungsparameter mit dem TCON_PAR korrekt
eingestellt (War HIER schon mal Thema)

6. Falls du eine ältere CPU zum Testen benutzt oder ältere
Versionen der T_Bausteine, dann muss der lokale Port < 5000
sein, damit der Empfang klappt --> siehe HIER
 
Hallo Softmaschine.

Zu 1. In der Parametrieroberfläche des Umsetzer habe ich nichts von Steuerzeichen gesehen. Dort stelle ich die Parameter für die serielle Schnittstelle ein und die haben wir schon zig Mal mit dem Umsetzer am Firmennetz verglichen. Das Ergebnis an der seriellen Schnittstelle sieht ja auch gleich aus.

Zu 2. Ich habe den String über die SPS schon zigmal zur Waage geschickt. Es kam nie was zurück

Zu 3. Da muss ich mal nachfragen. Aber auch da habe ich beim Umsetzer nicht gesehen das ich da was einstellen kann

zu 4. Ja. Den wenn ich anstatt Waage einen Laptop mit Hyperterminal an die serielle Schnittstelle anschliesse sehe ich meinen gesendeten String und kann auch einen String zurückschicken

zu 5. Davon gehe ich jetzt mal aus ....

zu 6. Also die CPU ist brandneu ....... die Bausteine weiß ich jetzt nicht. Die sind aus einem älteren Projekt aber der Port ist auf 10001 eingestellt. Das werde ich heute mal ändern. Da hab ich natürlich noch nicht dran gedacht. Edit ..... Habe grade geschaut. Ich habe TCON ist V2,4, TSend ist V2,1 und TRCV ist V2.2
 
Zuletzt bearbeitet:
Ich würde definitiv mal mit Wireshark auf der Ethernetseite mitloggen. Achtung, dafür brauchst du einen Ethernet, Hub oder einen Switch mit Mirroring Port wo sowohl SPS wie auch Lantronix und Notebook dranhängen.

Dann mal mitlesen was auf Ethernetseite abgeht wenn sowohl SPS wie auch Drucker und Lantronix gleichzeitig dranhängen. Und wenn es geht den zustand von vorher auch mal per Hub nachstellen und im Ethernet Netzwerk mitloggen.

mfG René
 
Zuletzt bearbeitet:
Naja ich meinte eher so etwas wie utf 16 und so... Ich meine mich erinnern zu können, dass ich da schon mal Ewigkeiten gesucht habe...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen.
Ich denke dass deine Waage ein abschliessendes Steuerzeichen erwartet um den Auftrag auszuführen. Wie bereits in #4 geschrieben.
Benutze doch zur Kontrolle mal ein Terminalprogramm welches auch Steuerzeichen anzeigen kann. Evtl. hier: http://www.heise.de/download/hterm.html
Bei deinem S7 String fehlt dieses bestimmt. (CR oder LF oder beides oder evtl. auch ASCII 12 )
Grüsse Holger
 
Naja ich meinte eher so etwas wie utf 16 und so... Ich meine mich erinnern zu können, dass ich da schon mal Ewigkeiten gesucht habe...

das wäre einge Möglichkeit. Darum wäre ein mitloggen der alten Variante sicher hilfreich, da würde man dann direkt sehen ob vorher UTF-16 verwendet wurde. Der Unterschied wären ja nur die leeren Bytes dazwischen, denn die Standartzeichen haben ja den gleichen Hexwert.

mfg René
 
Du schreibst:
die Spezifikation der Waage sagt das der String mit ETX(02) anfängt und mit STX(03) aufhört.
Ich gehe mal davon aus, dass dies ein Schreibfehler ist
Normalerweise ist STX(02) der Anfang und ETX(03) das Ende.
Habt ihr mal in den Stecker der Waage geschaut (bei der funktionierenden Übertragung) ob eventuell zwischen RTS & CTS eine Brücke drin ist?
Grüsse Holger
 
Zurück
Oben