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

Ergebnis 1 bis 4 von 4

Thema: BCD-Zahl in Ganzzahl (16 Bit) wandeln

  1. #1
    Registriert seit
    20.07.2008
    Ort
    Bochum
    Beiträge
    33
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ich soll eine Funktion programmieren, die eine BCD-Zahl (3-stellig positiv) in eine Ganzzahl 16 Bit umwandelt. Dies entspricht der Umwandlungsoperation BTI oder dem Baustein BCD_I in SIMITIC. Desweitern soll ich die Variablen deklarieren und in einer Variabeldeklarationstabelle (IN, OUT) auflisten.

    Mein Problem ist:
    Laut Beschreibung in der Hilfe bei Step 7 gehe ich mit dem MW10 rein und das MW 12 ist der Ausgang. Ich lese somit 16 Binär Werte ein von denen erst mal nur 12 relevant sind, weil die BCD-Zahlen nur dreistellig/positiv sein sollen. D.h. immer vier Bits sind eine Zahl. Wie die Funktion dazu aussehen soll, kann ich mir nicht vorstellen. Man müsste ja mindestens 12 Eingänge haben und die alle bearbeiten.
    Die Aufgabe muss eigentlich einfach zu lösen sein, laut Professor.
    Zitieren Zitieren BCD-Zahl in Ganzzahl (16 Bit) wandeln  

  2. #2
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Baui,

    das ist kein Problem:
    Code:
    L MW 10
    SLW 12 // die 12 linken Bits rausschieben
    SRW 12 // und wieder zurück -> nur noch die Einerstelle im Akku
    T MW 16 // merken
    L MW 10
    SLW 8 // die 8 linken Bits rausschieben
    SRW 12 // und auch die rechten 4 Bits weg -> die Zehnerstelle ist im Akku1
    L 10
    *I
    L MW 16
    +I
    T MW 16 // jetzt sind die Zehner und Einerstelle als INT im MW 16
    SRW 8 // die 8 rechten Bits rausschieben -> Hunderterstelle im AKKU 1
    L 100
    *I
    L MW 16
    +I
    T MW 16 // fertig
    Grüße
    Gebs

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Die Kurzform:

    Code:
    L MW10
    L 16#0FFF  //Bit 12-15 ausmaskieren
    UW
    BTI
    T MW12
    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MSB Beitrag anzeigen
    Die Kurzform:

    Code:
    L MW10
    L 16#0FFF  //Bit 12-15 ausmaskieren
    UW
    BTI
    T MW12
    Mfg
    Manuel
    Wenn ich die Aufgabe richtig verstanden habe, darf er BTI nicht benutzen.

    Grüße
    Gebs

Ähnliche Themen

  1. C# Ganzzahl wandeln in Gleitpunktzahl IEEE 754
    Von sparx im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 13.11.2011, 19:55
  2. Antworten: 6
    Letzter Beitrag: 13.02.2008, 09:23
  3. INT-Zahl in eine S5T#-Zahl umwandeln ?
    Von Stefan B. im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 02.03.2006, 22:40
  4. 5-stellige ascii zahl in normale zahl umwandeln
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 16:12
  5. Ganzzahl to string
    Von Orion im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.07.2004, 09:14

Lesezeichen

Berechtigungen

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