Siemens S7-300 als Modbusmaster

eYe

Level-1
Beiträge
759
Reaktionspunkte
80
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

habe bisher immer mit Profibus gearbietet aber bei einem aktuellen Projekt sollen die Daten über Modbus ausgelsen werden.

Nun würde ich gerne wissen was ich dafür benötige, wäre Klasse wenn jemand der das schon gemacht hat mir die Antworten geben könnte und ich mir so stundenlagens suchen erspare :)

1)
Die Slaves unterstützen RS485 und RS422, welche Kommunikationsbaugruppe benötige ich dafür? Oder wäre es möglich die Modbusanbindung orgendwie über den MPI zu realisieren?
(Momentan ist eine 315-2 PN/DP geplannt, welche nur einen MPI/DP Anschluß hat welches genutzt wird. Ethernet ist für die Visu vorgesehen. Müßte falls Modbus über MPI möglich ist also geändert werden)


2)
Welche Vorgefertigten Funktionen kann ich für Functioncode 03 / 06 nutzen um Daten zu lesen und zu schreiben?
Muss ich dabei etwas beachten?
(Habe vor kurzem eine Moduskommunikation mit einer Schneider SPS aufgebaut und habe lange spielen müssen bis alles lief, war um einiges schwieriger als der gute alte Profibus :( )

Schonmal Danke für alle Ratschläge :)
 
Der CP341 kann Modbus.
Dafür muss man eine extra Lizenz erwerben und man erhält dann einen Dongle + Handbuch + Software
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Modbus für S7

Eine Alternative wäre noch ein Step7-Treiber für den Modbus Master bzw. Slave , der auf allen Siemens-CP's und der CPU mit Integrierter PTP-Schnittstelle sowie der Saia-Burgess PCD xx7 läuft.
Mit diesem Baustein ist es einfach.
http://holgerbischoff.onlinehome.de/html/modbus.html
Wenn noch Interesse besteht, bitte melden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
VIPA hat Modbus on board

Hallo schau doch unter:

http://www.vipa.de/de/produkte/system-300s/cpus/

Dort findest du CPUs die den Modbus - Master schon on board haben und die lassen sich auch noch mit STEP 7 programmieren.

Da eine detailiertere Darstellung nicht erwünscht ist bleibt dir nur der angegebene Link.

Viele Grüße
micha732
 
Hallo Holger,

...Mit diesem Baustein ist es einfach...
Das sagen alle ;) . Wie einfach ist es denn wirklich?

Könntest du eventuell mal ein kurzes Bsp. presentieren?
Ist der Code deiner Bausteine nachvollziehbar und kommentiert, oder Blackbox?


@all
Ich habe ein Projekt in Aussicht, bei dem ich mit 90 Modbus-Slaves mit jeweils ..zig Registern kommunizieren müsste. Die meisten Register brauche ich im Normalfall nicht. Es wäre jedoch günstig, einige zum Konfigurieren über den Bus ansprechen zu können (per Option im S7-Programm). Ansonsten benötige ich in der Sparversion mindestens 8byte Ein- und Ausgänge pro Slave.

Da ich ein etwas kleineres Modbus-Projekt bereits über einen Anybus-Communicator (DP/Modbus) realisiert habe, dachte ich auch hier an diese Lösung, allerdings mit drei Stück der PN/Modbus-Variante (Schnittstelle ist größer). Ein Problem mit dem Anybus ist die enorme Datenmenge, die zusammen kommt. Ich kann noch nicht abschätzen, ob ich überhaupt genügend Blöcke in der HW-Konfig vereinbaren kann. Nebenbei benötige ich auch noch Adressbereich für normale DP-Slaves mit viel Analogbaugruppen.

Daher suche ich nach Lösungen, die nicht den Peripherie-Adressbereich belasten. Ich werde natürlich weiter recherchieren. Falls jemand allerdings Erfahrungen mit so etwas hat, wäre ich für Tipps dankbar.

Optimal wäre, wenn ich über den Anybus-Communicator die Slaves nacheinander über denselben Adressbereich ansprechen könnte (alle vom gleichem Typ). Gibt es hierfür eine Lösung?

- Wieviele Slaves sind an einem Simatic-CP möglich?
- ..Repeater?
- ..Busumlaufzeit?
- ..Diagnose?
- ..Fragen über Fragen


Gruß, Onkel
 
Zuletzt bearbeitet:
gateway Modbus / Profibus DP

@onkel dagobert,
die 90 Modbus Teilnehmer kannst Du nicht mit einem "normalen" Gateway Modbus / Profibus ansprechen. Dann brichst Du Dir echt einen ab mit der Konfiguration. Was aber funktionieren könnte ist eine sogenannte "Data Station Plus" Dies ist ein Gateway / Datenlogger / Visualiserer. Damit kannst Du zentral in einem Gateway alle 90 Teilnehmer bzw. deren Register einfach konfigurieren, und zusammenhängent zentral zu dem Profibus übertragen. Auch ist es möglich, div. Steuerungsaufgaben direkt in der DSP zu verwalten.
siehe http://www.wachendorff.de/wp/pgr_gpw_dsp_dsp.html
Denke das könnte so was sein was Du suchst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Onkel Dagobert,

als gültige Modbusadressen sind laut Modbusspezifikation die Adressen von 1 - 247 definiert. 0 = Broadcast; 248 - 255 = reserviert.

Der serielle 2-Draht Modbus basiert ja auf einer RS485 Topologie.
Somit dürfen in einem Segment 32 Teilnehmer (incl. Master) angeschlossen sein. Bei deinen 90 genannten Slaves müsstest du auf jeden Fall Repeater einsetzen.

Im Prinzip könntest du also mit 1 Siemens-CP (34x/44x) alle 90 Teilnehmer ansprechen. Jedoch müsstest du dann mind. 2 Repeater einsetzen was vermutlich zu höheren Signallaufzeiten führen wird.

Weiterhin kann der Master ja seine Slaves nur der Reihe nach "abarbeiten".
Unter Umständen brauchst du ja vielleicht auch mehrere Aufträge pro Slave. Somit hast du also mind. 90 Aufträge.

Da der Modbus ja eh nicht der schnellste ist (19200, 9600 Bit/sec) schätze ich mal pro Auftrag mind. 1 Sekunde -- das macht also 1,5 Minuten für alle Aufträge.

Ich würde die 90 Teilnehmer auf 3 Einzelsegmente aufteilen.


Eine Möglichkeit ohne die seriellen CP´s auszukommen währe noch die Variante via Modbus TCP / Modbus RTU Gateways.

z.B. sowas Link

Auf Siemens-Seite bräuchtest du dann halt nen Ethernet-CP oder ne PN-CPU und den entsprechenden Modbus TCP Treiber

Infos zum Modbus TCP Treiber von Siemens Link


Das Modbus Protokoll ist eigentlich recht simpel aufgebaut. Die Spezifikationen kann man sich bei modbus.org runterladen. Link

Ich hab mir vor kurzem selbst nen Modbus TCP Client und nen Modbus TCP Server zusammengebastelt. Mittlerweile hab ich mir auch noch nen CRC-Check zurechtgelegt und das ganze für Modbus-RTU aufgesetzt.

Weitergeben kann ich den Treiber jedoch nicht, da mir sonst mein Chef auf die Finger klopft.

Wenn man sich nämlich mal anschaut was Siemens mit seinem RTU Treiber abliefert, dann ist das ganze eigentlich ne Frechheit was einem da für den Preis geboten wird. Sofern du nämlich als Modbus-Master mehrere Aufträge zu verarbeiten hast, dann musst du dir erstmal selbst ne Routine zurecht legen. Im CPx41 werden vom "Treiber" lediglich noch die vorbereiteten Bytes zusammengebastelt und der CRC-Check durchgeführt.

So das war vielleicht ein bissel viel auf einmal, aber ich hoffe dir geholfen zu haben.

Mfg
uncle_tom
 
Besten Dank euch beiden für die nützlichen Tipps und links. Das eröffnet mir eventuell ganz neue Dimensionen.

..Weitergeben kann ich den Treiber jedoch nicht, da mir sonst mein Chef auf die Finger klopft...
Aber mit deinem Chef könnte mein Chef ggf. verhandeln, oder? Ich bräuchte mit Sicherheit auch mehrere Tage oder sogar Wochen, um so etwas zu begreifen und zu entwickeln.

Diese DSP von Wachendorf sehe ich mir demnächst mal genauer an, die Spezifikation von modbus.org natürlich auch. Und dann warte ich mal ab, ob wir den Auftrag bekommen.


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Tomcat,

ich will ja nicht meckern, aber

1. funktioniert dein Link nicht

und

2. hab ich in meinem Beitrag bereits auf die Modbus-TCP Bibliothek von Siemens hingewiesen.

;-)
 
Hallo,
den Link hab ich grade nochmal neu eingefügt.

Stímmt, hab eben gesehen, dass in Deiner Antwort auch die Lösung mit der PN-CPU drin steht.
War gestern wohl doch nix mehr für meine müden Augen... :sm26:
 
Zurück
Oben