TIA S7-1200 Modbus

Zuviel Werbung?
-> Hier kostenlos registrieren
Danke.
Die Bausteine habe ich angelegt "MB_CLIENT_PV1" und MB_CLIENT_PV2"
Kann das sein das der Time Baustein nicht funktioniert weil Datenbausteine für den Aufruf R-TRIG fehle? Hast du für jeden Aufruf einzelne Bausteine unter Programmressourcen hinterlegt ?
Für R_TRIG und F_TRIG wird automatisch der Dialog "Aufrufoptionen" geöffnet, wenn die Anweisung im Programm eingefügt wird. In diesem Dialog können Sie festlegen, ob der Flanken-Merker in seinem eigenen Datenbaustein gespeichert wird (Einzelinstanz) oder als lokale Variable (Multiinstanz) in der Bausteinschnittstelle gespeichert wird. Wird ein separater Datenbaustein angelegt, so ist dieser in der Projektnavigation im Ordner "Programmressourcen" unter "Programmbausteine > Systembausteine" zu finden
So wie es aussieht fehlt mir der Baustein "TDISCON_DB_MB_PV"
 
Hallo. Habe mit Hilfe von JoGi65 die Verbindung zum Fronius Gen 24 Aufgebaut . Das Problem was ich habe ich versuche mit HMIDroid über TCP auf die Siemens 1215C zu zugreifen und bekomme keine Verbindung. Ich glaube das Problem liegt daran das ich keine Verbindungsressourcen habe. Hat jemand einen Vorschlag wie ich das hinbekomme könnte?
 

Anhänge

  • Verbindungsressourcen.png
    Verbindungsressourcen.png
    244 KB · Aufrufe: 32
  • HMI Droid.png
    HMI Droid.png
    42,4 KB · Aufrufe: 31
IP im gleichen kreis. Die Verbindung zu mene Zweite Siemens1214 klappt ohne Problemen das 4Bild.
 

Anhänge

  • Comunikations modus.png
    Comunikations modus.png
    217,7 KB · Aufrufe: 38
  • Verbindung 1215.png
    Verbindung 1215.png
    1 MB · Aufrufe: 37
  • Verbindungs Res 2.png
    Verbindungs Res 2.png
    251,9 KB · Aufrufe: 36
  • Verb 1214.png
    Verb 1214.png
    187 KB · Aufrufe: 37
Die Einstellung Put/Get hatte ich vergessen zu aktivieren. Die Verbindung ist Jetzt aufgebaut. Da hab ich das Falsche Screenshot hochgeladen Sorry.
Verbindung ist jetzt da. Wieso kommt dann immer noch der Hinweis das keine Verbindungsressourcen vorhanden sind?
 

Anhänge

  • Verbindung.png
    Verbindung.png
    210,3 KB · Aufrufe: 29
  • Verbindungs Res 2.png
    Verbindungs Res 2.png
    302,4 KB · Aufrufe: 29
Kurze Frage in die Runde. Hat jemand von euch schon mal per Modbus Daten an den Wechselrichter geschrieben? Sprich eine Änderung der Laderate der Batterie zum Beispiel?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da mein Akku gekommen ist, und zwei Fragen waren, anbei die gesammelten Umstellungen im Anhang.

Die angehängten Bausteine enthalten einen Symo, einen GEN24 mit Akku BYD HVS 10.24kW und ein SM.
Bitte beachten, dass die Bausteine DB_MB_CLIENT_PV1.db, DB_MB_CLIENT_PV2.db, DB_MB_CLIENT_SM.db, jeweils unter „Fronius_Connect – ID“ als Startwert eine passende Connection ID drinnen haben, wenn ihr schon andere Kommunikationen verwendet!

Der Baustein Time.scl kann weggelassen werden, wenn der Start der Modbus Kommunikation durch eine andere Flanke erfolgt.
Der Baustein Web_Com.scl ist nur drinnen, um das Schreiben der Akku Parameter eventuell besser zu verstehen, besonders das Register für die Wertefreigabe der Lade/Entladen Rate. Dieser Baustein ist bei mir für die Datenübergabe von den Webseiten, und wird sonst nicht benötigt.
Weiters sind natürlich meine individuellen Teile für Heizung, Auto Laden etc. drinnen, die alle entfernt werden können.

Wer möchte, dass die Wechselrichter Abfrage auch bei Stromausfall bzw. Notstrombetrieb Daten liefert, sollte einen eigenen Modbus Client für das Smartmeter machen. Getestet und funktioniert.
Fronius gibt an, dass zwei Abfragen parallel laufen können. So ist es jetzt momentan in den angehängten Bausteinen gelöst. Smartmeter und GEN24 Abfrage laufen parallel auf der GEN24 IP. Eventuell stelle ich das aber noch ein bisschen um, da obwohl der Smartmeter Zyklus nur ca. 30ms dauert, nur alle Sekunden wirklich neue Werte in den Registern stehen.

Zum Akku:
Die relevanten Werte sind in den db's teilkommentiert.
Bis auf 2 Register werden alle Akku Werte als UINT gelesen, weil manche als INT ev. zu groß werden würden.
2 Register werden extra als INT gelesen, da sie negativ sein können.
Alle Register die geschrieben werden können, werden als INT geschrieben, da keines vom Wert höher als 28800 und somit keine Fehler beim Schreiben entstehen können.
Wer es ganz sauber lösen möchte, muss etliche Schritte mehr einziehen, um alle Datenformate zu berücksichtigen. So geht aber alles (bis jetzt).

Damit „Laden über Netz“ wirksam wird, muss es auch in den GEN24 Einstellungen auf "Ein" sein, da es mit dem beschreibbaren Modbusregister verundet ist.

Für die Einstellungen der Lade/Entlade-Raten und deren Aktivierung bitte das Dokument von Fronius 42,0410,2649.pdf durchlesen. Derzeit schreib ich nur manuell über die Webseite (Screenshot im Anhang) auf diese Register, und verwende noch keine Automatismen um den Akku zu bestimmten Zeiten oder unter bestimmten Umständen zu steuern. Das folgt noch…irgendwann, aber die manuelle Steuerung funktioniert.

Wenn wer schon etwas umgesetzt hat, bitte posten!

P.S. – Akku ist seit 18 Tagen in Betrieb und Netzbezug in dieser Zeit trotz Heizung etc. komplett unter 6 kWh. (y)
 

Anhänge

Die Bausteine DB_MB_CLIENT_PV1.db, DB_MB_CLIENT_PV2.db, DB_MB_CLIENT_SM.db sind leider nicht enthalten, dafür die MB Clients.

Vielleicht kannst du die ja noch nachreichen. Vielen Dank.
 
Das sind vermutlich Instanz-DB von MB_CLIENT. Die kannst Du ganz einfach selber erstellen.
Oder gibt es einen Ordner "Systembausteine" / "Programmressourcen"? Da sollten die DB drin sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, hab vor dem Hochladen die falschen rausgelöscht. Wollte eigentlich die Instanz-DB löschen, die ja nicht sinnvoll zum exportieren gehen (oder doch?), und wie PN/DP geschrieben hat, ja von selbst erstellt werden, wenn man den Baustein reinzieht. Einfach so benennen, wie er im SCL Code benannt ist, und dann den überflüssigen Teil löschen.

Die richtigen DBs haben gefehlt. Kann es oben leider nicht mehr ändern, deswegen jetzt neu.

WR IP einstellen nicht vergessen, und beim Symo DB (DB_MB_CLIENT_PV1.db) sind auch Smartmeter Adressen drinnen, die nicht mehr verwendet werden, da bei mir das SM jetzt auf dem GEN24 hängt. Habs drinnen gelassen, falls einmal ein zweites kommt, oder noch wer dir Adressen braucht.
 

Anhänge

Folgende Programmfehler sind mir noch aufgefallen:

Betrifft Symo - Zeitweise NaN in Holdingregister
Beim Symo (nur beim Symo - nicht beim Gen24) kommt es zeitweise zu NaN in den Modbus Holdingregistern.
Beitrag hier - https://www.sps-forum.de/threads/hex-wert-in-real-holding-register-abfangen.111757/#post-879050

Beispiel bisher:
Code:
"DB_Fronius".WR1.I_A_G := "DB_MB_Client_PV1".Holdingregister[0];

Beispiel neu:
Code:
IF REAL_TO_DWORD("DB_MB_Client_PV1".Holdingregister[0]) <> 16#7FC00000 THEN
           "DB_Fronius".WR1.I_A_G := "DB_MB_Client_PV1".Holdingregister[0];
END_IF;

Somit bleibt der Wert bei NaN auf dem vorhergehenden Wert - Ausfall der Modbus Abfrage wird ja im Programm extra behandelt.



Betrifft Gen24 und Symo - Fehler Anzeige bei Leistungen > 6553Watt im DC Bereich
Bei Leistungen > 6553Watt im DC Bereich, kommt es zu 0 Komma Stellen. Dadurch funktioniert die Umrechnung, so wie ich sie in den Anhängen gemacht habe, nicht mehr richtig.

Beispiel bisher:
Code:
"DB_Fronius".WR2.String1_DC_W := UDINT_TO_REAL("DB_MB_Client_PV2".Holdingregister_DC[19]) / (10 ** (65536 - (UDINT_TO_REAL("DB_MB_Client_PV2".Holdingregister_DC[2]))));

Beispiel neu:
Code:
"DB_Fronius".WR2.String1_DC_W := UINT_TO_REAL("DB_MB_Client_PV2".Holdingregister_DC[19]) * (10 ** INT_TO_REAL(UINT_TO_INT("DB_MB_Client_PV2".Holdingregister_DC[2])));

Es ist wohl sinnvoll, alle Werte die einen Skalierungsfaktor als eigenes Register haben und als Uint abgefraget werden, umzustellen.
 
Hallo in die Runde
einen großen Dank an JoGi65, er hat mir sehr geholfen und ich habe gerade die obigen Korrekturen noch reinprogrammiert
es funktioniert einwandfrei
Hat jemand eine Idee wo ich die Register für den Ohmpilot finde, in der Fronius Registerbeschreibung kann ich nichts finden,
ich würde gerne die Speichertemperatur und die Ladeleistung mit monitoren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Villen Dank an JoGi65, für seine Hilfsbereitschaft, er hat mir auch sehr geholfen das Programm auf eine 1215 SPS zum laufen zu bekommen.
Ich Schaue mir grade die neue Bausteine an von JoGi65.
Hat jemand den Baustein Time.scl mit der 1200 zum laufen bekommen?
Wie bekomme ich die Fehlermeldung im Fronius Baustein weg : Fehlerbehandlung_SM _condition_
Danke.
 
Hallo.
Hat jemand den Baustein Time.scl mit der 1200 zum laufen bekommen?
Wie bekomme ich die Fehlermeldung im Fronius Baustein weg : Fehlerbehandlung_SM _condition_
Danke.

Sorry, für mich ist die Fehlermeldung zu ungenau, bzw. unvertsändlich, und ich kann auch nicht auf einer 1200 testen.
Aber grundsätzlich brauchst Du den Time.scl nicht.

Siehe Beitrag 172:
"Der Baustein Time.scl kann weggelassen werden, wenn der Start der Modbus Kommunikation durch eine andere Flanke erfolgt."
 
Hallo JoGi65.
Das ist kein Fehler. Ich weis nur nicht ob mir ein Baustein fehlt oder eine Anweisung. Ich kann mit dem _condition_ nichts anfangen. Die schleife wird damit umgeleitet aber was brauche ich dafür? Bin leider ein Anfänger .

Ja, der Baustein Time.scl kann weggelassen werden das haben wir zusammen über 0,5 Hz Impuls realisiert, ich wollte nur mal nachfragen vielleicht hatte das jemand hinbekommen auf die 1200 und wo das Problem liegt das es bei mir nicht funktioniert hat.
Das was wie im Frühling eingerichtet habe funktioniert auch soweit, außer die Überschuss Leistung für ca. eine Sekunde fällt sporadisch auf 0 und dann ist sie wieder Vohl da. Habe gestern neue Update auf dem WR installiert mal schauen vielleicht lag das Problem beim WR.
Mit die Überschuss Leistung Steuere ich ein Regler von die SPS mit 0-10v für die Heizung.
Habe dein Anhang runtergeladen und versucht in nochmal nachzubauen um da raus zu lerne.
Vielen Dank noch mal für die Hilfe .

Fehlerbehandlung_SM.jpg
 
Zurück
Oben