TIA Modbus Kommunikation zwischen ET200SP und Janitza UMG96-PA Mid+

philautomation

Level-2
Beiträge
8
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin neu auf dem Gebiet Modbus und stehe vor folgendem Problem:

Ich habe eine CPU1512SP F-1 PN (6ES7512-SK01-0AB0) mit einer CM PtP (6ES7137-6AA01-0BA0) und möchte damit probeweise von einem Janitza UMG96-PA Mid+ EEG Power Analyser verschiedene Daten (z.B. anliegende Spannung, etc.) via Modbus RTU auslesen. Also CPU als Master und das Janitza als Slave.

Beim Programm habe ich mich an den unzähligen Beispielen orientiert. Das sollte also soweit passen.

Wie greife ich nun von TIA auf die Werte zu und schreibe diese in meinen DB mit den Registern? Brauche ich dafür ein gesondertes Programm, um die Anfragen an das Janitza zu senden?


Viele Grüße
Phil
 
Eigentlich musst du nur die Modbus RTU Bausteine wie beschrieben in der TIA Hilfe nutzen.

Die Adressen der zu lesenden/schreibenden Wert kannst du am Gerät aus dem Modbuseditor auslesen oder eine Liste vom Hersteller beziehen. Modbus konfiguration vom Messgerät und die im PtP Modul verwendeten müssen zueinander passen.

Dann im PLC Programm den Modbus_Master Baustein (Anweisung aus aus "Kommunikationsprozessor->MODBUS (RTU)") mit den benötigten Parametern versorgen und das Programm in die PLC laden. Erst vielleicht einmal lesen von einem Wert. Also Mode auf 0=lesen, Startadresse des zu lesenden Wertes in DataADDR und die Länge des zu lesenden Wertes in Byte.

Danach sollten Wert in dem Data_Ptr DB landen. Diese muss natürlich >= der Anzahl gelesenen Bytes sein.

Wo hakt es bei dir den genau, kannst du mehr Infos liefen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anscheinend bin ich nun so weit, dass eine Modbus-Verbindung besteht und ich Daten lesen könnte. Allerdings werden diese nicht in meinen DB geschrieben. An meinem PtP Modul leuchten die TX und die RX Lampe, sobald ich eine richtige Adresse eingestellt habe. Das funktioniert also.

Bekomme jedoch auf dem MB_Master-Baustein bei Status die folgenden Fehlercodes: 16#7001, 16#7002, 16#81E2

Ich habe anhand der Fehlercordes sämtliche Einstellungen mehrfach überprüft, komme jedoch nicht darauf, wo hierbei die Fehler liegen.
 
Es scheint da ein Problem mit den Anschluss Parametern zu geben.

16#80E2
Telegramm abgebrochen: Zeichenrahmenfehler
Überprüfen Sie die Einstellungen für Startbit, Datenbits, Paritätsbit, Datenübertragungsgeschwindigkeit und Stoppbit(s).

1661185725056.png

Stimmen die Einstellungen mit denen im Messgerät überein? Abschlusswiderstände? Gibt es im Handbuch des Messgerätes ein Beispieltelegramm oder Informationen zum Aufbau?
1661186519045.png
Kannst du evtl. eine Aufzeichnung machen? Kannst du mit einem anderen Master (z.B. PC) und dem Messgerät über Modbus kommunizieren?
 
CommLoad1.jpgMaster1.jpg
DatabuffDB1.jpgMBConfigDB1.jpg
MBLoadDB1.jpg

Das ist ein Ausschnitt aus dem Programm mit den jeweiligen eingestellten Werten. Das sollte mit allen Werten übereinstimmen.

An einen Abschlusswiderstand habe ich tatsächlich nicht gedacht. Das werde ich dann ausprobieren, ob es daran liegt.

Oder fällt dir hier ein Fehler auf?
 
Hi. Ich habe eigentlich ein ähnliches todo aktuell und bin ebenfalls Modbus Neuling. Hat jemand die hilfreiche Anleitungen, Links, etc für mich, wie man Modbus RTU aufbaut und Werte aus einem Energie Meter oder ähnliches ausliest? SG Frank
 
Hi Frank,

ich habe mich ziemlich stark an folgendem YouTube Video orientiert:

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Vielleicht hilft dir das ja weiter :)

Viele Grüße,
Phil
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Verdrahtet auf T/RA- und T/RB+ läuft das Ganze nun!
Kannst Du bitte nochmal nachschauen und uns mitteilen, wie Du nun die RS485-Schnittstellen genau verbunden hast?
Also ET 200SP CM PtP zu UMG96-PA :
Pin 12 : T(A)/R(A) ------ ?
Pin 14 : T(B)/R(B) ------ ?


Harald
 
Ja, so müsste das gewesen sein. Es wäre schön, wenn das auch noch praktisch bestätigt würde.

Ich habe festgestellt daß nicht alle Gerätehersteller A und B gleich bezeichnen, und deshalb manchmal Gerät:A auf Bus:B (und Gerät:B auf Bus:A) verbunden werden muss. Ich hätte gern gewusst ob Janitza die A/B-Bezeichnung gleich wie Siemens vornimmt.

Harald
 
Könntet ihr euch mal mein Projekt ansehen. Ich bring das nicht zum Laufen.
 

Anhänge

  • 20220907_144320.jpg
    20220907_144320.jpg
    2,2 MB · Aufrufe: 53
  • 20220907_144310.jpg
    20220907_144310.jpg
    2 MB · Aufrufe: 55
  • 1662555637505.png
    1662555637505.png
    165,3 KB · Aufrufe: 54
  • Modbus.pdf
    87,2 KB · Aufrufe: 27
Eigentlich benötigt jede RS485-Kommunikation je einen Abschlußwiderstand an beiden Enden des RS485-Bus (beim ersten und beim letzten Teilnehmer).

Beim CM PtP ist ein Widerstand zu erkennen. Wieviel Ohm hat der? Ist der zwischen A und B?

PS: und es sieht mir auch so aus, als ob A und B gekreuzt verbunden sind. Ich würde die mal testweise an einem Ende vertauschen.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Könntet ihr euch mal mein Projekt ansehen. Ich bring das nicht zum Laufen.
Stimmen denn Deine Anschlussparameter, die weichen nämlich von den Einstellungen des TE ab, wenn ich das richtig sehe. Baudrate ist bei Dir 9600, beim TE 115200, Parität bei Dir 2 (Gerade) beim TE 0 (vermutlich none).
Nachtrag: Habe gerade gesehen, dass es bei Dir wohl um ein anderes Gerät geht, prüfe die Werte aber dennoch.
 
Zuletzt bearbeitet:
Am CP liegen 330Ohm an.
Hast Du den Widerstand mal gemessen? Die Farben der Ringe am Widerstand auf Deinem Foto sehen nur mit viel gutem Willen nach 330 Ohm aus ...
Besser: Janitza empfiehlt an beiden Enden des RS485-Bus je einen Widerstand von 120 Ohm 1/4 W

Gekreuzt habe ich schon einige mal.
Auf Deinen Fotos sieht es so aus:
CM PtP Pin 12 (A): -------- weiß -------- ModbusGerät:B
CM PtP Pin 14 (B): ------ schwarz ------ ModbusGerät:A

Was für ein Gerät hast Du denn? Das sieht nicht wie Janitza UMG96-PA aus.
Sind die Baudraten und Anzahl Datenbits und Paritätsbits übereinstimmend/korrekt eingestellt? Dein Modbus_Comm_Load stellt 9600 und Parität "Gerade" ein (und Anzahl Datenbits wird wohl 8 sein).
Ist die Busadresse 1 am Gerät eingestellt?
Erhältst Du von Deinem Programm Fehlerstatus/Fehlernummern von Modbus_Comm_Load oder Modbus_Master? Welche?
Welches Register willst Du in dem Programm lesen? MODE = 0 und DATA_ADDR = 45000 am Modbus_Master bedeutet: das Halteregister 4999 lesen - gibt es das Register in Deinem Modbus-Gerät?
Hast Du mal mit einem Modbus Testclient und RS485-Adapter einzelne Registerwerte gelesen?

Harald
 
Ist lustig, im Handbuch zu dem Wago Energiezähler steht zu Anfang: 9600 und 8N1
weiter hinten dann aber: 9600 und 8E1
1 Stopbit
Kann man aber alles, bis auf Stopbit, konfigurieren.

Adresse 4999 ist aber verkehrt. In der Liste ist 5000 (Spannung, 2 Register, Float ABCD) angegeben, das ist aber als 0x5000 zu lesen, da weitere Werte wie Strom mit Adresse 500A (2 Register, Float ABCD) angegeben ist.
 
Zurück
Oben