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

Zuviel Werbung?
-> Hier kostenlos registrieren
Moin. Ich habe jetzt beidseitig def. einen Widerstand von 330 Ohm. Bei dem Gerät handelt es sich um ein Wago Energiezähler. Die Einstellungen des Gerätes sind im Anhang.
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.
heißt?
 

Anhänge

  • Screenshot_20220908-063227_WAGO Energy Meter Configurator.jpg
    Screenshot_20220908-063227_WAGO Energy Meter Configurator.jpg
    150,2 KB · Aufrufe: 25
Der Modbus_Comm_Load beendet den Anlauf mit Done und ohne Status 0000. Der Modbus Master endet mit einem Error 80C8.
TIA Hilfe zu Modbus_Master: Fehlermeldungen
Kommunikationsfehler - Modbus_Master
16#80C8Der Slave antwortet nicht innerhalb der eingestellten ZeitÜberprüfen Sie die Datenübertragungsgeschwindigkeit, Parität und die Verdrahtung des Slave.

Heißt also: zunächst Verdrahtung RS485 überprüfen und korrigieren, die Abschlußwiderstände auf 120 Ohm verkleinern, Busadresse und Busparameter überprüfen, und mal mit einem Modbus Master Testprogramm auf PC die Kommunikation versuchen, evtl. auch mal den Busverkehr sniffen.


Kannst du mal deine beiden Bausteine (Load und Master) zeigen? Ich denke, da passt ein Wert nicht. Habe den gleichen Fehlercode bekommen und bei mir war es die falsche Adresse.
Sein Programm hat Farinin in dem Modbus.pdf im Beitrag #14 "versteckt"

Harald
 
Moin,
Moin. Ich habe jetzt beidseitig def. einen Widerstand von 330 Ohm. Bei dem Gerät handelt es sich um ein Wago Energiezähler. Die Einstellungen des Gerätes sind im Anhang.

heißt?
0x5000 -> 20.480
Als Adresse wirst Du dann 400001 + 20480 = 420481 nehmen müssen. Mit einer Länge von 2 Wörtern.

Gruß
 

Anhänge

Hmm, ist das tatsächlich so, daß dieses Wago-Gerät bei Anfragen mit falscher Registernummer überhaupt gar nicht antwortet? :unsure:

Harald
Ich denke nicht. Da scheint zunächst es einmal noch grundsätzlich ein Problem zu geben. Die Adresse wird dann aber das nächste sein.

Hat sich alles etwas überschnitten.

Gruß
 
Was ich an den Janitza Geräten mit der Modbus- oder auch Profinet/Profibus-Kommunikation ja sehr unglücklich finde, ist, dass die Energiezähler nur als 32 Bit Float in der Einheit Wh übermittelt werden. D.h irgendwann habe ich auch keine kWh-Auflösung mehr bei den übertragenen Werten. Ich habe das beim Janitza Support auch schon einmal angemerkt, ob das nicht sinnvoll wäre, das einmal anders zu übetragen. Man war sich des Problems überhaupt nicht bewusst.

Ich behelfe mir da einer absoluten Krücke, indem ich einen digitalen Ausgang als kWh-Impuls mit entsprechend langer Dauer parametriere, den Ausgang mit entsprechend externer Spannungsversorgung wieder auf den Eingang lege, und diesen Eingang dann im SPS-Programm auswerte. Bei Profibus lässt sich nämlich nicht der Zustand des Ausgangs lesen. Und mit dem Impuls kann ich dann immer kWh-genau zählen.

Ist das noch niemandem aufgefallen, oder gibt es da eine andere vernünftige Lösung?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Als Ergänzung: Bei den UMG96 mit Profibus, lässt sich über Profil 11 der Zustand der Ausgänge wenigstens zurücklesen. Das ist bei den UMG96 Profinet nicht möglich, dort muss man zusätzlich hardwaremäßig auf den Eingang zurückverdrahten. Ich finde das grundsätzlich unglücklich, weil für die Auswertung dann immer eine SPS notwendig ist. Wenn man z.B. die Geräte direkt an ein PLS über Modbus anbindet, wird die Auswertung von solchen Impulsen immer sehr schwer. Bei Gridvis von Janitza dürfte das Problem doch auch vorliegen, oder da wird ein anderes Protokoll verwendet.
 
Was ich an den Janitza Geräten mit der Modbus- oder auch Profinet/Profibus-Kommunikation ja sehr unglücklich finde, ist, dass die Energiezähler nur als 32 Bit Float in der Einheit Wh übermittelt werden.
Solchen "anwenderfreundlichen" Unfug gibt es auch bei anderen Herstellern, wie z.B. E+H und HART-Kommunikation (z.B. Durchflussmesser Promag, Promass, ...). Da werden die Zählerstände der Summenzähler auch per 32 Bit Float übertragen. :rolleyes:

Damit in der WinCC Visu bis zur letzten Ziffer der selbe Zählerstand wie direkt am Gerät angezeigt wird, blende ich in der Visu bei Zählerstand > 9'999'999 einen Hinweis ein "Demnächst Zähler resetten!" Dann soll das Personal bei nächster Gelegenheit (z.B. Chargenwechsel) den Summenzähler des Durchflußmessers auf 0 resetten.

Bei den aktuellen Janitza Geräten kann man zumindest per Modbus die Zählerstände wahlweise (unter anderer Registernummer) auch als Ganzzahl (Int32 oder Long64) lesen. Da bekommt man dann ein paar Ziffern mehr Auflösung.

Harald
 
Int32 mit Einheit Wh läuft aber bei 250 kW Last auch schon nach einem Jahr über. 64 Bit Werte habe ich zumindest bei den bei uns oft vorkommenten 96RM-Varianten noch nicht gesehen.

Außerdem gehen in die Integer-Varianten angeblich die Stromwandlerverhältnisse nicht mit ein, da kann man dann noch mal selber dran herumrechnen, oder wie ist das zu verstehen? Außerdem gibt es bei den Int-Varianten auch noch 8 mal den gleichen Wert, weiß jemand was das auf sich hat?

1662717918846.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Außerdem gehen in die Integer-Varianten angeblich die Stromwandlerverhältnisse nicht mit ein, da kann man dann noch mal selber dran herumrechnen, oder wie ist das zu verstehen? Außerdem gibt es bei den Int-Varianten auch noch 8 mal den gleichen Wert, weiß jemand was das auf sich hat?
Da kann ich nichts zu sagen. Das Auslesen der UMG96RM-Geräte überlasse ich GridVis. ;)
"rate" könnte vielleicht für verschiedene Tarife sein?
Z.B. UMG103 hat LONG64 Werte (z.B. Adresse 416)

Harald
 
Zuletzt bearbeitet:
Da müsste man mal prüfen wie und was Gridvis da denn ausliest, wenn der Support das Problem mit 32 Bit float schon nicht erkennt, ist fraglich ob das in der Entwicklung jemand anderes erkennt.

Ich habe Gridvis nur zum parametrieren der Geräte verwendet, und ich bin damit gelinde gesagt nicht sonderlich zufrieden, oder ich habe das nicht ganz verstanden. Man legt ein Projekt an, in der Datenbank wird aber eine Geräteparametrierung überhaupt nicht gespeichert, sondern man muss diese separat in eine Textdatei exportieren. Offline-Parametrierung eines Geräts ist offensichtlich auch nicht möglich. Und die freie Version möchte natürlich gerne zur Abfrage der Gratislizenz gerade dann nach Hause telefonieren, wenn man auf einer Anlage ist wo es kein Internet gibt.

Dann musste ich mal bei einem Kunden in sein Gridvis-System ein paar Druckluft- und andere Energiezähler einbinden. Ich wollte dann ein paar Tage später mal nachfragen, ob ich mal in die Werte schauen kann ob alles funktioniert. Und da zeigt er mit, dass das Programm nur eine CSV Datei mit den Zählerständen rauswirft, und die Auswertung (Tages-/Wochen/Monatswerte) bastelt sich dann jemand in Excel.

Anfangs fand ich die Janitza-Geräte auch preislich ganz attraktiv, aber da sind etliche Dinge die wirklich sehr zweifelhaft umgesetzt wurden. Alleine diese 2-Tasten Bedienung der UMG96, absolut unterstes Niveau.
 
Servus,

ich habe den gleichen aufbau wie Phil. Die CPU is eine ST200SP F mit einem Cm PtP modul. Das Kommunikationsmodul ist allerdings schon in der V2.0 (6ES7 137-6AA01-0BA0) Ich habe alles probiert aber ich finde einfac dazu keine GSD Datei /Hardware konfig. hat dazu wemand och eine Idee zur Lösung?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe ein ähnliches Problem.
Ich verwende eine Siemens SPS ET 200SP (6ES7 512-1SK01-0AB0) mit einem CM PtP (6ES7 137-6AA01-0BA0) und möchte über Modbus RTU Daten aus einem Janitza UMG 96 RM lesen.
Mein Problem ist, dass ich vom Modbus Master den Fehlercode 81E2 erhalte.


Siemens schreibt dazu:
Mögliche Ursachen für den Status 16#81E2:

1.
Zuerst sind die Einstellungen für Startbit, Datenbits, Paritätsbit, Stopbit(s) und die Baudrate zu prüfen. Diese müssen bei allen Kommunikationspartnern identisch sein.

2. Vertauschte Leitungen oder die falsche (keine oder doppelte) Vorbelegung der Leitungen (Spannungspegel R(A) = 0V, R(B) = 5V) können zu einem fehlerhaften Signalpegel auf den Leitungen führen, was in der Folge dann auch zum STATUS = 16#81E2 führen kann.

Serielle Kommunikation (Modbus RTU oder Freeport) wird oft für Kommunikation zu Geräten von Frendherstellern verwendet. Leider ist die Dokumentation von Fremdherstellern oft nicht eindeutig. Daher empfehlen wir durch strukturiertes Testen möglicher Optionen, die korrekte Verdrahtung und die korrekte Vorbelegung der Leitungen herauszufinden. Am Beispiel von RS485 kommen folgende vier Testoptionen in Frage:
1. Verdrahtung A > A, B > B ohne Vorbelegung der Empfangsleitung (bei Modbus RTU: LINE_PRE = 0)
2. Verdrahtung A > A, B > B mit Vorbelegung der Empfangsleitung (bei Modbus RTU: LINE_PRE = 2)
3. Verdrahtung A > B, B > A ohne Vorbelegung der Empfangsleitung (bei Modbus RTU: LINE_PRE = 0)
4. Verdrahtung A > B, B > A mit Vorbelegung der Empfangsleitung (bei Modbus RTU: LINE_PRE = 2)
Alles schon überprüft, abert läuft trotzdem nicht.

Meine Einstellungen bei dem Janitza sind
Parameter 0 - 3
Parameter 1 - 1
Parameter 3 - 1


1752561510786.png
Das sind meine Einstellung in Siemens.
Mein Modbus_Comm_load
1752561596891.png

Und mein Modbus Master
1752561667025.png

Hat Jemand eine Ahnung woran es liegen könnte.

Danke schon mal im voraus.
 
Hi,

ich habe festgestellt, daß es oft an der Einstellung 'Vorbelegung der Empfangsleitung' liegt. Da sind die Siemens Kommunikationsmodule recht empfindlich.

Die Einstellung der Hardware wird aber grundsätzlich durch den Baustein Modbus_Comm_Load überschrieben, daher mußt Du die Einstellung in den Instanzdaten einstellen.

LINE_PRE := 2;


Gruß
 
Der Vollständigkeit halber: Welche TIA Version verwendest du?

• Modbus_Comm_Load ist kein "General-Reset", sondern soll nur einmal ausgeführt werden bzw. nur bei Änderungen der Kommunikationsparameter (Baud, Parität, ...) und nach Power-On oder Ziehen/Stecken des CM PtP
• Probiere mal für Modbus_Master einen eigenen Instanz-DB, keine Multiinstanz
• den EN vom Modbus_Master würde ich nicht beschalten, sondern immer aufrufen
• deine Variablen #INTERNAL... sind nicht TEMP-Variablen sondern im Instanz-DB?

• Die RS485-Hardware ist korrekt verdrahtet? Mal testweise A und B vertauscht? Flackern die LEDs TX und RX am CM PtP?
CM PtP RS485:
Klemme 12 A
Klemme 14 B
Klemme 15 GND

• RS485-Abschluswiderstände vorhanden? je 120 Ohm an beiden Enden
• Ist da nur 1 Gerät oder mehrere am RS485? Teste erstmal mit nur 1 Gerät, alle anderen vom Bus abklemmen
• Was für ein Kabel? Wie lang? Empfehlung LiYCY 2x0,22, CAT-Netzwerkkabel ist nicht geeignet

Hast du schon mal die Kommunikation mit dem UMG mit einem Modbus-Test-Client getestet z.B. Janitza Tool "Modbus Diagnostic"?
(Testweise) Problem umgehen: Hast du eventuell ein ModbusTCP-zu-ModbusRTU-Gateway z.B. UMG604 oder UMG96RM-E oder ein anderes Gateway z.B. USR-DR302 ?
 
Zurück
Oben