# Probleme mit ModBus



## Pinguino (4 April 2009)

Ich habe eine Anlage 1 die durch Modbus zum Leitsystem kommuniziert.
Die Anlage 1 und 2 ist als Slave definiert. Ab und zu bekommt das Leitsystem keine Daten von meiner Anlage mehr. Wenn ich die Hardwarekonfiguration auf der SPS herunterlade, dann plötzlich funktioniert es wieder. Dann bekommt das Leitsystem die Daten wieder. Karte ist eine 6ES7 341-1CH02-xxxx mit + Dongel/Treiber, die Steuerung ist eine S7-300 CPU 314.
Ich habe im Onlinebetrieb den Diagnosenpuffer der CP341 abgespeichert, aber konnte bei Hilfefunktion kein hilfreicher Ansatz finden um diesen Problem zu lösen. Kann mir jemanden weiterhelfen, oder mindestens erwähnen was ich machen sollte?
Bei der Anlage 2 habe ich den gleichen Phänomen. Die Anlage 2 ist genau gleich aufgebaut wie Anlage 1.

Anlage 1 ist die Datei Diagnose Dialyse 01.txt
Anlage 2 ist die Datei Diagnose Zentrale 00.txt


----------



## uncle_tom (4 April 2009)

Servus,

wenn ich mir die Diagnosedateien so anschaue, dann tippe ich hier mal auf einen "schlampigen"-Modbustreiber im Leitsystem

- Zeichenverzugszeit --> Master (Leitsystem) braucht zu lange für das Antworttelegramm
- Bytezähler zu kleiner --> fehlerhaftes Antworttelegramm vom Master (Leitsystem)

versuch doch mal anstelle des Leitsystems einen Mastersimulator zu betreiben. http://www.modbustools.com/



Evtl. liegt es auch an der Busleitung (Länge, Abschlusswiderstand).

Evtl. Zeichenverzugszeit im Modbustreiber erhöhen (Hardwarekonfig).

Durch die fehlerhaften Telegramme hängt sich vermutlich der Siemens-Treiber auf.


----------



## Pinguino (5 April 2009)

Was wäre den Zeichenverzugszeit im Modbustreiber zu erhöhen in der Hardwarekonfiguration? Beim Protokoll ist 9600 kBits/s eingestellt, ist das gemeint? Ich brauche den FB80 für die Kommunikation, dort kann man ein Timer und die Timerzeiteinstellen wenn ich dort die Zeit erhöhe wird es besser gehen? Momentant ist 5Sekunden eingestellt


----------



## uncle_tom (5 April 2009)

Hallo,

schau dir doch mal das Handbuch zum Modbus-Slave Treiber von Siemens an.

Das sollte eigentlich bei deiner Modbus-Lizenz dabeigewesen sein. Alternativ kann man sich das Handbuch auch bei Siemens herunterladen.

Link

Dort sind die Einstellungen der Hardwarekonfig (CP-Parametrieren) beschrieben. Bzgl. Zeichenverzugszeit kann man dort einen Multiplikator einstellen. Weiterhin kann dort die Betriesart auf "Störungsunterdrückung" eingestellt werden.

Die Zeitangabe und der Timer beim FB80 sind nur für die "Startüberwachung" während der Anlaufphase des CP341.

Mfg
uncle_tom


----------



## Pinguino (5 April 2009)

Was kann ich machen wenn bei dieser Meldung : Bytezähler zu kleiner --> fehlerhaftes Antworttelegramm vom Master (Leitsystem) auftritt? Was würdest du mir Vorschlagen?


----------



## uncle_tom (5 April 2009)

Ich hab doch in meinem 1. Beitrag bereits vorgeschlagen, das Leitsystem mal abzuklemmen und an dessen Stelle einen Modbus-Master Simulator zu betreiben, der die gleichen Modbusadressen liest/schreibt wie das Leitsystem.

Wenn es damit funktioniert, dann ist das Problem am Leitsystem bzw. an dessen Treiber zu suchen.

Hier noch mal der Link: http://www.modbustools.com/

Die Demoversion sollte zum testen ausreichen.



Vielleicht solltest du ab und zu mal folgendes beherzigen: 



> "...das kann man doch alles nachlesen! *Lesen* muß man können, das ist das Hauptproblem ..."


----------



## Pinguino (30 April 2009)

Was ist mit diesem Ereignis gemeint, ich finde im Handbuch kein Aussage dazu.

Diagnosepuffer der Baugruppe CP 341-RS422/485
Bestell-Nr./ Bezeichn.         Komponente                     Ausgabestand                  
6ES7 341-1CH02-0AE0            Hardware                       1                             
- - -                          Firmware                       V 2.0.0                       
Baugruppenträger:              0
Steckplatz:                    4

Seriennummer:  S C-X2V391962009

Ereignis 1 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 2 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 3 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 4 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 5 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 6 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 7 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 8 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


Ereignis 9 von 9:  Ereignis-ID 16# F1C8:020F
IF 1: Parametrierfehler
kommendes Ereignis


----------



## uncle_tom (2 Mai 2009)

Im Handbuch des CP341 steht auf Seite 189 folgendes:

Ereignisklasse 2(02H):
"Fehler bei der Initialisierung"
Ereignis-Nr.
(02)0FH
Ereignistext.
Beim Start der parametrierten Kommunikation wird eine unzulässige Parametrierung festgestellt. Die Schnittstelle konnte nicht parametriert werden.
Abhilfe.
Korrigieren Sie die unzulässige Parametrierung, und führen Sie einen Neustart durch.

Demzufolge stimmt wohl bei deiner CP-Parametrierung in der Hardwarekonfig etwas nicht.


----------



## Pinguino (6 Mai 2009)

Zwei Wochen lang lief die Anbindung am Leitsystem ohne Probleme. Seit 4 Tagen leuchtet bei der CPU die rote LED SF. Das Leitsystem bekommt keine Informationen mehr von meiner Steuerung. Ich kann bei der CP341 kein Diagnosepuffer anschauen, funktioniert nur bei der CPU. Der Diagnosepuffer der CPU ruft den OB122 siehe im Anhang.
Was könnte das sein? Liegt das Problem beim Leitsystem, CPU, oder bei CP341?


----------



## uncle_tom (6 Mai 2009)

Servus,

deine CPU liefert beim Zugriff auf deinen CP341 eine Peripheriezugriffsfehler (Peripheriebereich 256 und folgende; daher wird ja auch der OB122 aufgerufen).

So wie´s aussieht scheint dein CP341 entweder defekt zu sein oder an der Parametrierung stimmt etwas nicht.

Hast du schon mal die Hardware-Settings neu geladen ?

Der CP341 hat ja ne eigene Spannungsversorgung, ist die evtl. ausgefallen bzw. leuchtet am CP341 irgend eine LED ?

Geh mal im Step7-Manager mit der rechten Maustaste auf die CPU314 und wähl den Menüpunkt Hardware Diagnostizieren - wird da der CP341 als gestört gemeldet ?

Mfg
uncle_tom


----------



## Pinguino (7 Mai 2009)

Die CP341 besitzt eine eigene Spannungsversorgung 24VDC. Die Speisung ist nicht ausgefallen. Beim CP341 leuchtet kein LED.
Es kann doch nicht sein dass die CP341 Karte schon defekt ist, ich habe sie von etwa 2 Wochen ausgewechselt.

Was meinst du damit die Hardware-Settings neu laden?

Gute Idee, unser Mitarbeiter wird eine Hardware Diagnostik absolvieren.

Danke für deine Tipps!

Danke an euch allen für die Hilfe!!!


----------



## uncle_tom (7 Mai 2009)

> Was meinst du damit die Hardware-Settings neu laden?


In Step7 HW-Konfig den Menüpunkt "Lade in Baugruppe" anwählen.

Wenn gar keine LED am CP mehr leuchtet, dann scheint der CP vermutlich defekt zu sein. Normalerweise sollte zumindest die Rx LED blinken sobald der Modbusmaster läuft.


----------



## Pinguino (16 Dezember 2009)

Ich habe etwa im April eine neue CPU und eine neue CP341 eingebaut. Seit dem hatte ich keine Probleme mehr lief alles einwandfrei. Seit dem 10.12.2009 macht die CP341-Karte wieder Probleme. Das Leitsystem bekommt keine Rückmeldung von der CP-Karte und es leuchtet auch keinen LED mehr auch nicht die SF-LED.

Was könnte die Ursache sein?


----------



## o_prang (16 Dezember 2009)

Hi,

was sagt diesmal die S7 Diagnose?
Wenn keine LED, auch nicht die Rx, leuchtet, hört sich das für mich als defekt an. 
Kannste nochmal mit Modbus Slave Programm testen ob das Leitsystem noch geht.
Wenn die Karte wieder defekt ist, kann es sein dass es Störspitzen auf der RS485 Leitung gibt? Wie sieht es mit dem Schirm der Leitung aus. Ist der aufgelegt?


----------



## Pinguino (17 Dezember 2009)

Das Leitsystem ist der Master und sendet Telegramme an die CP-Karte, aber die Karte gibt kein Antwort zurück, das heisst dass das Leitsystem funktioniert. Der Schirm ist auf dem D-SUB Stecker 15polig aufgelegt. Was kann man machen wenn die Störspitzen auf der RS-485 Leitung die CP-Karte beschädigen?


----------



## o_prang (17 Dezember 2009)

Auf jeden Fall würde ich hingehen und den Schirm auf einer Schirmklemme auflegen. Dann biste sicher dass dort nix mehr passiert. Ich denke nicht dass es Probleme auf einem der beiden Signalleitungen sind.
Um ganz sicher zu gehen kannste natürlich noch nen RS485<->RS485 galv. Trenner (Beispiel http://www.4n-galaxy.de/de_index.html )nehmen. Aber der ist ja auch nicht gerade umsonst.

Andere Alternative:
Kannste auf Modbus TCP umsteigen?
Ich denke Deine CP ist ohnehin am Ars... 
Die Frage ist allerdings ob Du das Leitsystem anpacken willst bzw. kannst.


----------



## uncle_tom (18 Dezember 2009)

Moin,

also die Geschichte geht ja jetzt schon seit April ....

Du hast doch sicherlich mittlerweile mal den defekten CP zu Siemens geschickt - was sagt den Siemens dazu.

Weiterhin würde ich vielleicht mal ein Multimeter nehmen und sicherheitshalber mal die Versorgungsspannung 24 Volt und die Spannung am Bus messen, ob hier alles in Ordnung ist.

Bei RS485 sollten Spannungen zwischen 0 - 5 Volt meßbar sein.

Bzgl. Überspannungsschutz der Busleitung gibt es auch noch etwas von DEHN Link - ist zwar für Profibus sollte aber auch für normalen RS485 verwendbar sein.


----------



## jackjones (23 Dezember 2009)

Ist der richtige CP in der HW-Config parametriert?
Vergleiche die Nummern, lade ggf. neue GSD Datein herunter...


----------



## uncle_tom (23 Dezember 2009)

jackjones schrieb:


> Ist der richtige CP in der HW-Config parametriert?
> Vergleiche die Nummern, lade ggf. neue GSD Datein herunter...



seit wann gibt´s denn für serielle CP´s GSD-Dateien ???


----------



## Lars Weiß (23 Dezember 2009)

Gibts nicht. GSD heisst Gerätestammdatei und die gibbet bei Profibus.


----------

