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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Frage zur Zahlenkonvertierung

  1. #1
    Registriert seit
    01.02.2010
    Beiträge
    345
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebes Forum,

    ich habe grad (mal wieder) ein Verständnisproblem.

    Ich möchte in FUP über einen Konvertierungsbaustein eine INT-Zahl 22 nach BCD16 wandeln.

    Online bekomme ich am Baustein folgende Anzeigen:

    IN: 22
    OUT: 16#0022

    (siehe Anhang)!


    Nun komme ich mit der Darstellung am Ausgang OUT nicht ganz klar. Hierbei handelt es sich doch um eine 16-Bit-BCD-Zahl; also ein Word. Somit entspricht die Anzeige ja dem Wert 0000 0000 0000 0022 - oder?

    Was ich aber nicht verstehe, warum steht im linken Byte, also Byte 0 die 22 und nicht im rechten Byte, also Byte 1?


    Lieben Dank!


    Wandlung.jpg
    Grüße
    anne
    Zitieren Zitieren Frage zur Zahlenkonvertierung  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von anne Beitrag anzeigen
    ...
    OUT: 16#0022
    ...
    Hierbei handelt es sich doch um eine 16-Bit-BCD-Zahl; also ein Word.
    Ja.

    Zitat Zitat von anne Beitrag anzeigen
    ...
    OUT: 16#0022
    ...
    Somit entspricht die Anzeige ja dem Wert 0000 0000 0000 0022 - oder?
    Nein, sondern 0000 0000 0010 0010.

    Bits können nur 0 oder 1 sein. Und die 16# besagt, das jede Zahl/Buchstabe dahinter für 4 Bit (2^4 = Basis 16 = hexadezimal), also die 4 Halbbytes, steht.
    In diesem Fall steht in den beiden letzten Halbbytes jeweils die 2 bzw. 0010.
    Geändert von hucki (12.04.2012 um 14:21 Uhr)

  3. #3
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Wenn Du von INT nach WORD wandeln möchtest, dann kannst geht das einfach über einen MOVE-Befehl (IN: Deine INT-Variable; OUT: Deine WORD-Variable). Der KOP/FUP Editor könnte dabei meckern, wenn das bei Dir der Fall ist, dann einfach im KOP/FUP-Editor unter "Extras / Einstellungen" unter "KOP/FUP" den Haken bei "Typenüberprüfung von Operanden" entfernen.
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  4. #4
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Was möchtest Du? BCD oder HEX

    "22" in BCD sind: 0000 0000 0001 0110

    "22" in HEX sind: 0 0 1 6

    Jede HEX-Stelle entspricht 4 BCD Stellen

    Vielleicht musst Du ja im Status nur mal die Anzeige umstellen!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  5. #5
    anne ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.02.2010
    Beiträge
    345
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen

    Nein, sondern 0000 0000 0010 0010.
    Ja klar, wie doof von mir!


    Zitat Zitat von hucki Beitrag anzeigen

    In diesem Fall steht in den beiden letzten Halbbytes jeweils die 2
    Aber durch Variable.b0 wird doch eigentlich das linke Byte und durch Variable.b1 das rechte Byte bezeichnet, oder? Und dann müsste es doch genau anders herum angezeigt werden; d.h., Variable.b1 müsste die 22 anzeigen.

    @Michael: Ok, danke für diesen Hinweis! Es ist schon alles ok, so wie es in meinem Anhang abgebildet ist.. mir ist es nur nicht klar, warum nicht Variable.b1 die 22 anzeigt?
    Grüße
    anne

  6. #6
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

  7. #7
    anne ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.02.2010
    Beiträge
    345
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke für den Link, Verpolt!

    Nur verstehe ich leider noch immer nicht, warum das rechte Byte durch Variable.b0 angezeigt wird und nicht durch Variable.b1?

    In einem MW10 steht doch auch links das Byte10 und rechts das Byte11...
    Grüße
    anne

  8. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von anne Beitrag anzeigen
    ... mir ist es nur nicht klar, warum nicht Variable.b1 die 22 anzeigt?
    Weil erst das Low-Byte und dann das High-Byte gespeichert wird.
    Wenn Du Deine 0000 0000 0010 0010 ins MW200 transferierst, dann steht im MB200 die 0010 0010 und im MB201 die 0000 0000.

    [EDIT]Ist natürlich genau anders herum, wie MSB vollkommen Recht hat - im Byte mit der niedrigen Adresse steht das höherwertige Byte -> erst nachdenken, dann posten Hucki![/Edit]
    Geändert von hucki (13.04.2012 um 11:47 Uhr) Grund: Unsinn erzählt

  9. #9
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Byte1+Byte0
    0000 + 22

  10. #10
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Was für Datentypen hast Du deklariert und wo willst Du die hinschreiben?

    Ein WORT = 2 BYTE = 16 BIT

    Byte 1 ---- Byte 0
    linkes Byte rechtes Byte
    ___/-\___ ___/-\___
    0000 0000 0000 0000

    MW 200 besteht aus MB 200 & MB 201 und die jeweiligen Bytes bestehen aus den Bits M200.0-200.7 und M201.0-M200.7

    http://www.sps-lehrgang.de/datentypen-in-step7/

    http://www.sps-lehrgang.de/sps-programmierung/
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

Ähnliche Themen

  1. Frage zur Bibliothek
    Von Gosi01 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.02.2010, 15:15
  2. Antworten: 15
    Letzter Beitrag: 09.04.2009, 20:57
  3. frage zur deklaration
    Von PPatte im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 11.03.2009, 21:47
  4. Frage zur Bausteinkonsitenzprüfung
    Von rostiger Nagel im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 09.03.2009, 14:08
  5. Frage zur S7-200
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 13.02.2005, 21:21

Lesezeichen

Berechtigungen

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