TIA Modbus Client Fehler 8384

spezidrohne

Level-2
Beiträge
31
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen,
hab eine Fronius Gen24 zuhause, der auf Float und Modbus Server gestellt ist. Meine CPU soll die aktuelle AC-Leistung lesen. Laut Excel - Tabelle von Fronius fängt die bei 40092 an und hört bei 40093 auf. Das finde ich auch so im ModScan, wenn ich die Adresse abfrage kommt auch dann die Leistung raus, im Tia liefert der MB Client aber nach 7005 und 7006 den Fehler 8384. Egal ob ich mit oder ohne 400 am Anfang die Adresse eingebe. Verbindung baut er ja offensichtlich auf? Screenshot häng ich mal mit ran. Die Variable in die er schreiben soll ist eine REAL.
Danke schonmal für die Hilfe!
1748856315279.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte ein Problem mit der MB_Unit_ID sein. Siemens Standard FF. Die Wechselrichter haben gerne ihre eigene.
Fronius denke ich 0x01.
Muss im IDB eingestellt werden.

1748885552260.png
 
Danke für die Antworten!
Jetzt hat sich was getan. Da bei mir die MB_UNIT_ID ein Byte ist, hab ich 16#01 (TIA V18) eingetragen. Sobald ich jetzt Adresse 40092 versuche, abzurufen kommt der Fehler 8383. wenn ich nun nur 92 abfrage kommt immer noch 8384. Im Modscan war es die 40092. Auch einen Versatz um +/-1 bringt nichts. Den Rest, den ich eingestellt hab, sollte ja stimmen, oder?
 
Ok, welchen Funktionscode benutzt du in Modscan? Versuch mal ab 40092 zu lesen, mit MB_MODE 103 oder 104, je nach Funktionscode.
 
Jetzt stellt sich aber folgendes: in der Doku belegt beispielsweise die aktuelle ac Frequenz 2 Adressen und hat float32 als typ.
1748939620113.png

Am mb client hab ich Len: 2 und ein real als Ausgabe. Es kommt aber nur Käse aus der real. Was kann das jetzt noch sein?
1748939804490.png
 
Habs selbst gelöst: eine Verschiebung um -1 ist nötig. Also wenn die Doku sagt 40094 muss man 40093 am Client anfordern.
 
Ich habe bei meinem Fronius stundenlang unter anderem mit dem Fehler 8384 gekämpft.
Lösung war das eintragen der Unit_ID aus #3. Hierfür erst mal vielen Dank (y)

Da ich bis jetzt wenig mit Modbus zu tun hatte und hier nur die Umsetzung beschrieben wird, habe ich mal etwas recherchiert.

Der Modbus-TCP Server im Fronius dient als Gateway, um auf die per RTU angeschlossenen internen Baugruppen zuzugreifen.
Hierfür muss man die Unit_ID der jeweiligen Baugruppe eingeben, welche bei TCP eigentlich nicht benötigt wird, da die Adressierung über die IP erfolgt. Hier ein paar Links:

https://manuals.fronius.com/html/4204102649/de.html#0_m_0000025442:
"Unit ID (1 Byte): Dieses Feld wird zur Adressierung der am Wechselrichter angeschlossenen Geräte verwendet (Gateway-Funktion).
Die Unit ID entspricht der Slave ID"

https://manuals.fronius.com/html/4204102649/de.html#0_m_0000025447:
"TCP: Die unit-id vom Wechselrichter ist immer 0x01."

SIOS Beitrag zur Modbus Unit_ID
 
Da muss man aber erst mal drauf kommen, wie es richtig geht. Ich weiß nicht, ob ich das ohne den Hinweis hier hinbekommen hätte.

Als Modbus-Laie würde mich schon interessieren, ob die Umsetzung von Fronius so exotisch ist, dass der Parameter nicht auf die Schnittstelle gelegt wurde.
 
Nein, das ist durchaus nicht exotisch. Es war nur leider eine Entscheidung von Siemens, die Unit ID nicht auf die Baustein-Schnittstelle zu legen und den armen TIA-Anwender nicht mit einer Entscheidung zu konfrontieren, was er da eintragen soll ... der hat ja nur 10 Minuten Zeit um eine Fabrikanlage zu automatisieren ;)
 
Zuletzt bearbeitet:
Zurück
Oben