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

Ergebnis 1 bis 8 von 8

Thema: Umwandlung von little Endian to Big Endian DWORD

  1. #1
    Registriert seit
    16.09.2015
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte gerne Messwerte aus einer Längenmessung am HMI-Panel KP1200 Professionel anzeigen lassen. Das ist soweit auch möglich, aber nur die Anzeige passt nicht überein.
    Denn das Gerät das über Profinet verbunden ist bringt mir die Messwerte im DWORD als Little Endian, um richtige Messwerte anzeigen zu lassen. Müssten die Messwerte in das SPS fähige BIG Endian Format umkonvertiert werden.

    Kann mir da jemand weiterhelfen bzw. hat jemand schon mal so einen Fall gehabt?
    Zitieren Zitieren Umwandlung von little Endian to Big Endian DWORD  

  2. #2
    Registriert seit
    21.11.2014
    Beiträge
    228
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

  3. #3
    KaiserA ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.09.2015
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    gibt es das ganze auch in FUP oder KOP Sprache?

  4. #4
    Registriert seit
    16.04.2014
    Ort
    Hamburg
    Beiträge
    49
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hi,

    würde dir SCL empfehlen ist am einfachsten.

    Code:
    FUNCTION "LittleToBig" : DWord
    { S7_Optimized_Access := 'FALSE' }
    VERSION : 0.1
       VAR_INPUT 
          In : DWord;
       END_VAR
    BEGIN
    	
    	#LittleToBig :=
    	                SHR(IN := #In & 16#FF000000 , N := 24) OR 
    	                SHR(IN := #In & 16#00FF0000 , N := 8 ) OR
    	                SHL(IN := #In & 16#0000FF00 , N := 8 ) OR
    	                SHL(IN := #In & 16#000000FF , N := 24) ;
    END_FUNCTION
    Gruß

  5. #5
    Registriert seit
    08.04.2010
    Beiträge
    21
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard

    hallo KaiserA,

    du kannst in einem optimierten Baustein mittels Slice-zugriffe in KOP oder FUP die Bytes tauschen.
    z.B In_DW.%b0 -> MOVE -> NewIN_DW.%b3
    In_DW.%b1 -> MOVE -> NewIN_DW.%b2
    In_DW.%b2 -> MOVE -> NewIN_DW.%b1
    In_DW.%b3 -> MOVE -> NewIN_DW.%b0

    Ich habe grade kein TIA zur Hand deshalb die nicht so professionelle Darstellung
    funktioniert aber nur mit neuen Steuerungen.

    Gruß Rainer

  6. #6
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard

    Ich hatte diese Konvertierung schon öfter, aber da ich bisher kein TIA einsetze ist die Antwort vielleicht nicht ganz zutreffend.
    In der AWL-Programmierung einer 300er gab's da einen einzelnen wunderbaren Befehl: TAD
    Der macht genau das (Litte Endian <-> Big Endian), gibt's aber nicht in KOP oder FUP und evtl. auch nicht in den neueren CPUs - weiß ich aber nicht.

  7. #7
    Registriert seit
    06.08.2010
    Ort
    Köln
    Beiträge
    187
    Danke
    13
    Erhielt 30 Danke für 24 Beiträge

    Standard

    Also im TIA gibts den "SWAP" aber auch ein "READ_LITTLE"
    1. unter Einfache Anweisungen / Verschieben
    2. unter Einfache Anweisungen / Verschieben / Read/Write Memory

    schau halt was besser passt.

  8. #8
    KaiserA ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.09.2015
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    alles klar habs hinbekommen.

    man kann nur bei der CPU 314 den AWL-Befehl anwenden.

    L#Wert
    TAD
    T#Wert1

Ähnliche Themen

  1. Big Endian und Little Endian vereinen
    Von SY50 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 11.10.2013, 08:25
  2. Antworten: 13
    Letzter Beitrag: 12.08.2012, 16:21
  3. Umwandlung von DI in I
    Von Blueglasstalisman im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.05.2011, 10:13
  4. Little Endian / Big Endian in S7 und DP Slave
    Von superkato im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 15.05.2011, 08:12
  5. Little/Big Endian
    Von Hannes im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 18.06.2007, 09:57

Stichworte

Lesezeichen

Berechtigungen

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