Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: "Byteverwürfelung"

  1. #1
    Registriert seit
    31.10.2005
    Beiträge
    116
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS'ler

    habe Problem einen Wert richtig darzustellen. Kommt vom E+H Zähler als Registerwert:
    000 Status aktuell "1" also Wert ist OK
    001 und 002 bilden den Wert als 32 Bit Float (HB als zuerst!)
    gang 0..20mA Bereich 0..100%


    In S7 ist alles OK z.b 81,3%

    die Register sind Wortweise gelesen.
    der 001 habe ich in wird DWORD umgewandelt, 16 Bit nach links verschoben
    der 002 in DWORD umgewandelt, beide DWORD mit OR verknüpft. Diese Wert zeigt als REAL 81,3%

    es handelt sich aber um ABB SPS, ich bekomme als REAL 1.1857e+009 !?

    Die Byts sind irgendwie vertauscht!

    Habe probiert die Register Byteweise auszulesen:
    also 000,001 Status 002,003 und 004,005 den Wert

    die Bytes habe ich verschoben so dass in einem DWORD die Position 5,4,3,2 aber auch 2,3,4,5 hatten alles um sonst!

    Wie geht das !

    Fragende Grüße

    Ricko
    Zitieren Zitieren "Byteverwürfelung"  

  2. #2
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard

    Kann es sein das es hier das Problem mit den INTEL / MOTOROLA Format gibt ...
    Also das Hig- und Low-Bytes verdreht sind.

    Also 1-2-3-4 so in der Art 2-1-4-3

  3. #3
    Ricko ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2005
    Beiträge
    116
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    DIE LÖSUNG!

    Boxy hat recht mit dem Motorola Format.
    Normale IEC Konvertierungsbausteine kann man nicht einsetzen!
    Im S7 kein Problem!

    Für CodeSys wird der SysMemCopy und 2 ADR Bausteine verwendet (Danke an Hr.B. von ABB).
    Der SysMemCpy umkopiert den Speicher (dwSCR Eingang) um N (dwCount Eingang, hier 4) Speicherstellen auf die Adresse (dwDest Eingang, auch Speicher).

    Der gelesen DWORD (wie oben beschrieben...schieben, verodern) da WORD-Register 001 Hex: 42A2 und 002 Hex: C7B6 enthält.

    also 16#42A2C7B6 geht an den ADR Baustein, der mit dwSCR Eingang verbunden ist.
    Die Adresse WERT_Nr (DWORD) geht an ADR Baustein, der mit dwDest verbunden ist

    (INFO: ADR Baustein liefert die Adresse seines Arguments in DWORD Format, es wird die Absolute Adresse ermittelt)

    WERT_Nr zeigt dann Hex: 42A2C7B6 aber auch Dez. 81,3


    Grüße
    Ricko

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 05.09.2012, 12:08
  2. Antworten: 6
    Letzter Beitrag: 16.03.2012, 18:20
  3. Probleme mit 12/24V "high" und 0V als "low" Auswertung
    Von PraktikantMarkus im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 14.12.2011, 01:37
  4. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  5. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •