CP 313C-2DP, CP341 als ModBus-Master

MandiNice

Level-1
Beiträge
149
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Bei meinem nächsten Projekt muss ich mehrere CP341 als ModBus-Master und Slave betreiben.
Da ich kein "perfekter Simatic-Profi" bin würde ich Euch bitten mir ein paar Fragen zu beantworten.

Das ModBus-Protokoll ist mir bekannt und mit dem ModBus-Slave habe ich kein Problem.



Frage 1 :
=========
Beim ModBus-Master habe ich das Demoprojekt geöffnet, bin aber nicht ganz klar über den Ablauf.
Ich muss einen Datenblock zum Slave schreiben und einen Datenblock vom Slave lesen.


Hier beschreibe ich wie ich mir den Ablauf vorstelle :

Schritt 1 : Daten zu Slave schreiben
Die ModBusparameter (Slaveadrese, Functionscode, Adresse, Datenlänge ) und die Nutzdaten in den DB42 schreiben
und den Baustein P_SND_RK ( FB8) aufrufen.

Schritt 2 : Antwort von Slave lesen oder TimeOut
Warten bis P_RCV_RK (FB7) Daten liefert und die Daten aus DB43 lesen
( oder Timeout )

Schritt 3 : Daten von Slave lesen
Die ModBusparameter ( Slaveadrese, Functionscode, Adresse, Datenlänge ) in den DB42 schreiben
und den Baustein P_SND_RK aufrufen.

Schritt 4 : Antwort von Slave lesen oder TimeOut
Warten bis P_RCV_RK Daten liefert und die Daten aus DB43 lesen
( oder Timeout )

Weiter bei Schritt 1


Liege ich damit richtig ?


Frage 2 :
=========
Ich muss 128 Byte Daten lesen und 64 Byte Daten schreiben.
Ist das ein Problem die Daten auf einmal zu schreiben und zu lesen ?





Frage 3 :
=========

Es handelt sich im eine CPU 313C-2DP. Es sind zwei CP341 verbaut die als ModBus-Slave arbeiten und
zwei CP341 verbaut die als ModBus-Master arbeiten sollen.
Ist die CPU damit überlastet ?




Ich Danke Euch für Eure Hilfe.

Beste Grüße
Mandi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

zu Frage 1:
du liegst richtig - so in etwa sollte das funktionieren. Wenn du mehrere Aufträge zu verarbeiten hast, benötigt man somit eine Auftragsroutine (Schrittkette, Liste, etc.) die der Reihe nach abgearbeitet wird.
Für den stolzen Preis, den Siemens für seinen Treiber verlangt könnte man sowas (Auftragsroutine) eigentlich erwarten.

zu Frage 2:
Laut Modbus Protokoll können z.B. bei FC3 bzw. FC16 maximal 128 Register pro Auftrag gelesen bzw. geschrieben werden. Diesen Protokoll Standard sollte auch Siemens mit seinem Treiber unterstützen.
128 Register sind dann ja 256 Bytes - somit sollten deine 128 Byte problemlos möglich sein.

zu Frage 3:
Die CP341 haben ja im Gegensatz zu den CP340 eigene Prozessoren, die die CPU entlasten. Die CPU muss somit nur die Daten von und zu den CP´s "schaufeln".
Ich denke mal das sollte schon so funktionieren.
 
Zurück
Oben