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

Ergebnis 1 bis 3 von 3

Thema: Wandlung von DEZ nach HEX 8 Zeichen

  1. #1
    Registriert seit
    09.11.2006
    Beiträge
    690
    Danke
    36
    Erhielt 31 Danke für 29 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgende Anlage:

    Ich lese aus einem Barcodescanner eine Zahl im ASCII Format aus. (14 Zeichen)

    Die ersten 8 Zeichen sind meine Auftragsnummer.

    Diese Zeichen kopiere ich nun in einen String und wandle sie mit dem FC String_to_DI in eine Dezimalzahl um (32bit)

    Nun benötige ich diese Dezimalzahl als BCD Zahl. Dazu nutze ich den Befehl DTB in S7.
    Das funktioniert bei 7 stelligen Zahlen prima.

    Leider bekomme ich ein Problem wenn mein 8. Zeichen keine 0 ist, dann kommt nur Müll heraus.
    Nun habe ich herausgefunden, das die Operation die 32 Bit Ganzahl in eine 7stellige BCD Zahl mit Vorzeichen wandelt. Ich benötige aber 8 Zahlen

    Wie kann ich nun meine Zahl am einfachsten wandeln? Gibt es einen FC der die DINT Zahl in eine 8 stellige Zahl ohne vorzeichen wandelt??
    Zeige nie deine Verblüffung, wenn dir etwas auf Anhieb gelingt.

    Praxis: Es funktioniert aber keiner weiß warum!
    Zitieren Zitieren Wandlung von DEZ nach HEX 8 Zeichen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Es gibt, wie immer , mehrere Lösungen.
    BCD ist ja eine Dualdarstellung der einzelnen Ziffern, wobei für jede Ziffer 4 Bit zur Verfügung stehen.
    Da du ja ohnehin mit den Standardbausteinen von Siemens arbeitest, könntest du die 8-Stellig Zahl z.Bsp. in zwei 4-Stelling Zahlen trennen (Dezimalzahlen dividieren durch 10000, einmal das Ergebnis, das andere Mal den Rest verwenden, siehe dazu die Funktion MOD),
    also aus 12345678 machst du 1234 und 5678, diese wandelst du dann mit dem Standardbaustein DTB und setzt anschließend die Byte, die deine Ziffern enthalten wieder zu einer gemeinsamen Zahl zusammen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    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
    Wie wär es denn, wenn Du Deine 7-stellige Zahl, vermutlich 7 Bytes, 1 Byte pro Zahl (da STRING) Byte für Byte wandelst. Byte n -> "String_to_DI" -> DTB. (z. B. über eine Schleife in SCL).
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

Ähnliche Themen

  1. Wandlung 32Bit Real nach 16Bit Gleitkomma
    Von BadTaste im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.10.2017, 14:03
  2. Umwandeln Hex in Dez mit S7-300
    Von hubert im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 29.07.2015, 16:00
  3. S7-200 - Wandlung Dezimalzahl nach Hex
    Von smartie im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 05.05.2009, 13:36
  4. VAT: HEX <-> DEZ Umrechnung
    Von derbenny im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.11.2007, 16:00
  5. Ein ASCII-Zeichen im DB nach Integer
    Von noeppkes im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.11.2007, 11:42

Stichworte

Lesezeichen

Berechtigungen

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