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

Ergebnis 1 bis 9 von 9

Thema: Real to BCD

  1. #1
    Registriert seit
    04.06.2012
    Ort
    Jena
    Beiträge
    41
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ,

    ich habe eine Problemchen. Ich brauche via PB (BLKMV)ein Realwert zur Digitalanzeige senden. Aber, es ist so gebildet, dass ein Byte hat zwei Ziffern z.b. Wert 565.7 also B1-57, B2-56, B3,B4,B5,B6,B7-0, B8(Digit)-1. Ich hab versucht die Quelle (SCL) zu schreiben, hat's ,aber, nicht geklappt. Kann man, vielleicht, helfen?

    Gruß,

    Alex
    Zitieren Zitieren Real to BCD  

  2. #2
    Registriert seit
    18.02.2009
    Ort
    NRW
    Beiträge
    45
    Danke
    1
    Erhielt 12 Danke für 6 Beiträge

    Standard

    so ohne deinen versuch hier sehen zu können, ist hilfestellung schwierig
    Die Wahrheit ist ein Chor aus Wind

  3. #3
    Registriert seit
    04.06.2012
    Ort
    Jena
    Beiträge
    41
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    OK. Schreibe ich morgen, da ich kein NB mit Step7 zu Hause habe.

  4. #4
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    623
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    Kommastelle im Real-Wert umrechnen bzw. umlegen:
    565.7 * 10.0 = 5657

    Gleitkommazahl (Real) in Ganzzahl (DINT) wandeln.
    REAL_TO_DINT() bzw. RND

    Ganzzahl durch 100 teilen:
    5657 / 100 = 56
    5657 MOD 100 = 57

    Ergebniss 56 und 57 den beiden Bytes zuweisen.

  5. Folgender Benutzer sagt Danke zu uncle_tom für den nützlichen Beitrag:

    SAB2002 (01.04.2015)

  6. #5
    Registriert seit
    04.06.2012
    Ort
    Jena
    Beiträge
    41
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Und Komma in Byte8 zuweisen?

  7. #6
    Registriert seit
    18.02.2009
    Ort
    NRW
    Beiträge
    45
    Danke
    1
    Erhielt 12 Danke für 6 Beiträge

    Standard

    ich versteh nicht ganz den aufbau...

    wieviele stellen hat die anzeige ?
    wie wird das komma angesteuert ?

    Gruss, black
    Die Wahrheit ist ein Chor aus Wind

  8. #7
    Registriert seit
    04.06.2012
    Ort
    Jena
    Beiträge
    41
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Anzeige hat 4 Stellen. Man schickt 8 Bytes Block via PB. Byte 1-zwei Ziffern, Byte 2-zwei Ziffern, dann B3-B7 die Nullen. Komma ist so angesteuert B8=0-0000, B8=1-000.0, B8=2-00.00, B8=3-0.000

    Gruß,

    Alex
    Geändert von SAB2002 (01.04.2015 um 21:02 Uhr)

  9. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von SAB2002 Beitrag anzeigen
    z.b. Wert 565.7 also B1-57, B2-56, B3,B4,B5,B6,B7-0, B8(Digit)-1
    Hallo Alex,

    im Thematitel schreibst Du "Real to BCD" - wo steckt da nun das BCD? Sind Deine Beispielwerte in den Bytes vielleicht in Hexadezimal-Schreibweise?
    Dann müßtest Du in dem Beispiel von uncle_tom nach der Ganzzahldivision mit 100 noch die Werte 56 und 57 in BCD wandeln ( INT_TO_BCD(x) ), oder zuerst in BCD wandeln ( DINT_TO_BCD(REAL_TO_DINT(x)) ) und danach mit 256 dividieren.

    Soll das so aussehen?
    Code:
    Real: 565.7
    
          B1 B2 B3 B4 B5 B6 B7 B8
    BCD : 56 57 00 00 00 00 00 01 (hex)
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #9
    Registriert seit
    04.06.2012
    Ort
    Jena
    Beiträge
    41
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja. Das habe ich gemeint. Erst in BCD wandeln und dann an Anzeige senden. Sorry, wenn ich es unverständlich geschrieben habe. Also, Wert "abc.d" (allgemein, damit als Quelle nutzen) muss erst in BCD umwandeln
    B1 B2 B3 B4 B5 B6 B7 B8
    ab cd 00 00 00 00 00 01
    in Hex
    Geändert von SAB2002 (02.04.2015 um 07:17 Uhr)

Ähnliche Themen

  1. FB gesucht:In1=1(real)/In2=2(real),usw...
    Von egro im Forum CODESYS und IEC61131
    Antworten: 31
    Letzter Beitrag: 31.08.2014, 14:17
  2. Datentypwandlung Real nach 4 Byte BCD
    Von CNC840D im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.12.2012, 17:23
  3. BCD anzeige
    Von Elektrikus im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.10.2012, 17:17
  4. Bcd --> Int
    Von Unregistriert12 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 24.05.2006, 11:46
  5. Umwandlung von BCD nach REAL
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.07.2005, 15:07

Lesezeichen

Berechtigungen

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