Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Modbus Worte in Real umwandeln

BOBmoraine
2016-12-31
2017-01-01
  • BOBmoraine - 2016-12-31

    Moin,
    ich habe einen Modbus Server welcher einen Datenbaustein als Holding Register benutzt.
    In dem DB befinden sich unter anderem auch Real-Werte.
    Wie bekomme ich die Worte aus dem Modbus Slave-Kanel nun wieder zu Real-Werten?

    Irgendwie müsste ich die zwei Worte ja nun wieder "zusammensetzen" um daraus einen Real-Wert zu bekommen.
    Ich habe leider keine Ahnung wie das geht.
    Und einen Real-Wert anlegen und auf ein Wort Mappen in der Hoffnung das der Mapper sich die benötigte Größe selbst wählt ging leider auch nicht.

    Hat das jemand schonmal gemacht und kann mir dabei helfen?

    Einen guten Rutsch ins neue Jahr.

     
  • BOBmoraine - 2017-01-01

    Ich bin inzwischen selbst drauf gekommen und habe es wie folgt mit Hilfe der OSCAT-Bibliothek gelöst:

    VAR_GLOBAL
       //Modbus Vars
       Reals_0_from_1200: ARRAY [0..4] OF REAL;
    END_VAR
    //MB_Real_0_hi <- HI-Word des REAL-Bereichs von S7-1200
    //MB_Real_0_low <- LOW-Word des REAL-Bereichs von S7-1200
    Reals_0_from_1200[0] := OSCAT_BASIC.DW_TO_REAL(SHL(WORD_TO_DWORD(MB_Real_0_hi),16) OR WORD_TO_DWORD(MB_Real_0_low));
    
     

Log in to post a comment.