Redundante Modbus TCP Kommunikation mit S7-300

Mephisto

Level-1
Beiträge
242
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe hier eine S7-300 mit zwei Ethernet Lean-PCs. Ich benutze das Softwarepaket Open Modbus TCP für S7-300 CPs
Diese sollen mit einem redundanten Modbus TCP-Server kommunizieren. Momentan habe ich nur einfache Verbindungen eingerichtet, also CP1 kommuniziert mit Server 1 und CP2 kommuniziert mit Server 2.
Kann ich in NetPro pro CP 2 Verbindungen anlegen und somit jeden Server auf jeden CP verbinden?
Wie muss ich dann mein Programm gestalten? Ich müsste ja dann die Verbindung für die Kommunikation mit Server 1 oder Server 2 umschalten können. Ich muss zwar am Modbus CP die Verbindung angeben, jedoch geschieht dies im OB100 und der wird ja nur im Anlauf bearbeitet.
Was kann ich da machen?
Ist es möglich, dass ich in Summe vier Bausteine anlege? Also:
CP1 - Server 1
CP1 - Server 2
CP2 - Server 1
CP2 - Server 2
Und kann ich dann über Sprungfunktionen im OB 1 immer nur die beiden "korrekten" Verbindungen bearbeiten lassen?
...Grübel,Grübel...

Vielen Dank schonmal für eure Antworten!

mfg mephisto
 
Hi,
ja, Du kannst in NetPro 2 Verbindungen pro CP anlegen.

Welches Modbuspaket hast Du denn genau? Das 1MB00 oder 1MB11? So wie es aussieht, hast du 1MB00.
Wenn Du redundant kommunizieren willst, dann schlage ich 1MB11 vor. Das Handbuch ist zwar auf S7-400 ausgerichtet, aber es gibt auch ein Kapitel für S7-300 und es funktioniert auch. :)
Falls Du 1MB00 hast und schon eine Lizenz gekauft hast, dann musst du die Redundanz selber programmieren. Du musst 4 Verbindungen in NetPro anlegen, 4 Baustein-Instanzen im OB100 (mit 4 verschiedenen IDBs) und diese dann auch im zyklischen OB. Die kannst Du dann gegeneinander verschalten, je nachdem ob Du immer über alle 4 kommunizieren willst oder nur über 1 und nur umschaltest, wenn die gerade aktuelle ausfällt.

Snape
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe das Modbus Paket für den S7-300 CP.
Hat sich mittlerweile erledigt. Das Problem war wieder einmal eine Definitionssache. Irgendwer (entweder Siemens oder Honeywell) verwendet falsche Ausdrücke.
Siemens meint: Master=Server, Slave=Client, nur dass Siemens meint, dass der Client das Anforderungstelegramm sendet und der Server darauf antwortet. Somit sollte es in einem System einen Client und mehrere Server geben.
Bei Honeywell hingegen sendet der Server das Anforderungstelegramm und der Client sollte darauf antworten. Somit sollte es in einem System mehrere Clients und einen Server geben.
Kurz gesagt:
Honeywell hat seine Station als "Honeywell Server" eingerichtet und ich hab meine Station als "Siemens Server" eingerichtet und jetzt funktioniert es. Jetzt hab ich ja auch unspezifizierte Verbindungen und die Honeywell Station muss sich um die Redundanz kümmern.
@Snape: Ansonst hätte ich den selben Gedanken verfolgt wie du.

Und nun zur Definition in Modbus:
Was heißt nun Server? Der, der das Anforderungstelegramm sendet, oder der, der die Antwort sendet?
Und ist ein Server nun ein Master oder ein Slave?

mfg mephisto
 
Hallo Mephisto,
der Modbus Server ist der Slave und der passive Partner. Der Modbus Client ist der Master und ist der aktive Partner.
Der Client (= Master = aktive Partner) sendet die Telegramme und der Server (= Slave = passive Partner) reagiert nur darauf.

Innerhalb von Siemens gibt es da auch einige Definitionsschwierigkeiten, manche sagen es so - manche so.
Aber bei dem ModbusTCP-Paket 1MB00 ist das so wie eben beschrieben: Der Client/Master ist aktiv, der Server/Slave ist passiv.

Snape
 
Zurück
Oben