Modbus RTU mit S 7 1200 als Slave zu SAE IT-Systems

Sebastian83

Level-2
Beiträge
9
Reaktionspunkte
0
Hi,

ich lese hier schon geraume Zeit mit und konnte viele meine Fragen so klären. Jetzt aber komme ich leider nicht weiter.
Ich bin absoluter Neuling in Sachen MODBUS.

Ich habe eine S7 1200 mit CB1241 als Slave an einer SAE FW5 Fernwirkstation. Die Grundlegende Verbindung zur Fernwirkstation finktioniert.
Wenn ich im MB_SLAVE_DB das MB_HOLD_REG mit einem Array aus 0..19 of Real beschalte bekomme ich auch Daten und der Status läuft ohen Fehler durch.

Mein Problem ist die Zuordnung der Register in meinen DB. Ich füge euch ein Bild ein wie die Register mir von der Fernwikstation übermittel werden.
Ich bekomme nicht geregelt wie mein DB aussehen muss damit die ich die Daten richitg zu Ordnen kann.

ich hoffe ihr versteht was ich meine ^^

Noch ein paar Bilder der SPS hinzugefügt
 

Anhänge

  • Register.png
    Register.png
    187,4 KB · Aufrufe: 31
  • DBs.png
    DBs.png
    216,8 KB · Aufrufe: 24
  • OB1.png
    OB1.png
    139,8 KB · Aufrufe: 23
  • Wert.png
    Wert.png
    38,1 KB · Aufrufe: 23
Zuletzt bearbeitet:
Okay mittlerweile bin ich soweit das es irgendwas mit dem Format der Daten zu tuen hat.
wenn ich mich mit der Modbus Slave Software an die SAE Station hänge und mir die Daten als 32bit Float Big endian anzeigen lasse,
entspricht das dem wert der ausgegeben werden soll. nun muss ich noch herraus bekommen wie ich das in der S7 wandle swape oder rotate...

:unsure::ROFLMAO:o_O
 
So hier einmal der richitge ansatz, der mir schlussendlich geholfen hat.

Ein Holding Register bzw. Halteregister ist immer ein WORD.

Ich habe dann einen DB mit einem ARRAY of WORD zu angelegt, was größer oder gleich der Vorhandenen Register ist. bei mir jetzt war das letzte Register die 33, ich habe das Array of WORD bis 40 angelegt und dieses Array an den Parameter MB_HOLD_REG parametriert.

Die Daten können dann programmtechnische in einen anderen DB umkopiert werden.

Zum Beispiel der Parameter "I_P_MRL_1" (Istwert) sind zwei Halteregister ab Adresse 23. Das heißt, man benötigen für diesen Parameter zwei WORD aus dem Array ab Adresse 23.

Im Bild ein Beispiel um ins register zu schreiben, dass lesen würde dann genua anders herum ablaufen.
 

Anhänge

  • Reg schreiben.PNG
    Reg schreiben.PNG
    17,8 KB · Aufrufe: 23
Guten Abend ist ja schon einige zeit her der Beitrag .
Aber hast du ev das Sps Programm und die Konfig der SAE .
Ich habe genau das gleiche Problem nur das ich bisher sehe das sie Komunizieren aber ich sehe keine Daten .
 
Moin,
die SAE Konfig habe ich nicht, das Gerät kommt von Extern und ist für mich nicht einsehbar. ich hab nur die Register in Form einer Excel Liste bekommen. Die Modbus Bausteine sind aus der Bibliothek, aber hast du ja schon am laufen, wenn ich das richtig verstehe.
was genau brauchst du?
 
Zurück
Oben