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

Ergebnis 1 bis 6 von 6

Thema: integer zu einem byte-array

  1. #1
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo zusammen,

    hat jemaden vielleicht eine funktion in st für mich, die
    aus einer INTEGER variable eine ARRAY [1..8] OF BYTE füllt mit hex werten füllt?
    Zitieren Zitieren integer zu einem byte-array  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Was genau soll denn in den Bytes stehen? Was hat die Integer-Variable damit zu tun?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    05.11.2004
    Ort
    Schweiz
    Beiträge
    1.135
    Danke
    224
    Erhielt 127 Danke für 85 Beiträge

    Standard

    INTEGER, BYTE, HEX ARRAY[1..8] passt alles nicht wirklich zusammen.
    Meine Kugel sagt:
    Integer hat 2 Byte = 16 Bit
    HEX hat pro Zahl ein halbes Byte = 4 Bit
    Dein Array of Byte soll nun Int Stelle 1 = Hex-Wert im Array [1] werden?
    Kommt Zeit.... Kommt Rat.... In der Tat.
    Gartenlampe mit Windenergie anstelle von Solar? Bei Interesse -> PN

  4. #4
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hey,

    stimmt natürlcih, etwas mehr details wären sinnvoll
    eine funktion liefert mir eine zahl als integer.
    diese zahl soll als hex-wert in einem array abgespeichert werden.

    2084 int = 800hex = 00 00 08 00

    Aufbau des Arrays:
    ARRAY[1..4] OF BYTE := [16#00,16#00,16#00,16#00];

    Reihenfolge:
    ARRAY[1] = HH
    ARRAY[2] = HL
    ARRAY[3] = LH
    ARRAY[4] = LL

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    2084 int = 824 hex = 16#0824 = 16#00, 16#00, 16#08, 16#24

    Das sollte so funktionieren:
    Code:
    tempDWord := MyInt;
    MyByteArray[1] := DWORD_TO_BYTE(SHR(tempDWord, 24));
    MyByteArray[2] := DWORD_TO_BYTE(SHR(tempDWord, 16));
    MyByteArray[3] := DWORD_TO_BYTE(SHR(tempDWord, 8));
    MyByteArray[4] := DWORD_TO_BYTE(tempDWord);
    Wenn Du uns noch mitteilst wie Dein Programmiersystem heißt, dann findet sich bestimmt auch eine effizientere Variante um die 4 Byte des DWORD auf das 4-BYTE-Array zu kopieren, z.B. was mit Pointer oder AT oder SWAP oder ...

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich benutze Codesys 3.5

    Der Code-Snippet macht genau das was ich suche. Das ist schon mal super!
    Dafür vielen Dank!

Ähnliche Themen

  1. Step 7 Array of Byte in Array of Word übertragen
    Von BenniL im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 29.06.2015, 11:18
  2. Bit in einem Integer Array setzen
    Von Adrian26 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 31.03.2014, 07:32
  3. In einem FB, mehrere Bits zu einem Byte zuweisen?
    Von babylon05 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.06.2012, 14:44
  4. Byte und Integer
    Von Fenix im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 19.12.2008, 12:33
  5. Antworten: 4
    Letzter Beitrag: 08.07.2008, 08:52

Lesezeichen

Berechtigungen

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