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

Ergebnis 1 bis 3 von 3

Thema: Problem mit ITB

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr,

    ich bin wahrscheinlich der 100te, der mal ein Byte/Int zu char wandeln möchte. Dies will ich einfach über die BCD-Umwandluing erreichen, da ich mit den Strings in AWl noch nicht so klar komme, bzw. nicht weiß, wie ich mir dann daraus die Chars ziehe.

    Mein Ziel: Lesen der Systemzeut (SFC1 - read system clock - funktioniert super) und Umwandeln der Zeit in einen Zeitstempel, anschließend versenden einer Nachricht/Daten inkl. Zeitstempel. Ideal: Zeitstempel in der Form "hh:mm:ss", h/m/s liegen als Byte vor.

    Problem: Wandle ich manuel (über Var-Tabelle) ein Byte in BCD und dann in Char um (durch schiften und Addieren von 30h), klappt alles. Sobald ich jedoch meinen Code mit den Bytes aus der Uhrzeit füttere (z.B. mit dem "Sekunden-Byte") kommt mist raus. Mein Problem liegt ist "ITB".
    Bsp.:
    Manuell: ich gebe 59 ein für 59 Sekunden -> wird umgewandelt in ein Byte mit 59h und dann in zwei Chars '5''9' --> klappt, wie schon oben gesagt
    Automatisch: Testweise nehme zyklisch im OB 32 ein Byte aus meinem Uhrzeit-Array (Länge 8, Typ Byte) namens DateAndTime[5] und lass dieses umwandeln; Folgendes passiert:
    --> aus z.B. Sekundenstand 59 wird 89h und damit auch die Chars '8''9'.
    Kann mir das jemand erklären? Die dezimal 59 wird vom ITB interpretiert wie 59h (ergibt 89) und dann in BCD gwandelt --> als Ergebnis habe ich 89h!

    Code:
    L     #DateTimeArray[5]
    ITB
    T MB 6

    Kann mir das jemand erklären, bzw. geht die Lösung einfacher?
    Danke und Gruß.
    Zitieren Zitieren Problem mit ITB  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Keinstein Beitrag anzeigen
    Mein Problem liegt ist "ITB".
    Hallo Du,
    Die Zeit ist doch schon im BCD Format.
    Ich glaube du vertust dich mit den Zahlenformaten:
    59 BCD == 89 Dezimal
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  3. Folgender Benutzer sagt Danke zu Paule für den nützlichen Beitrag:

    Keinstein (26.01.2012)

  4. #3
    Keinstein ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.01.2012
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Paule,

    vielen Dank! Du hast mir sehr geholfen.
    Hab nun meinen Fehler gefunden. In der Variablentabelle wurde die Zeit bei mir in Hex angezeigt, so dass ich sie immer als 0 ..59h sah, und von dezimal ausging. Da ist so ne zusätzliche Umlandlung natürlich überflüssig.

    Gruß

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 25.01.2010, 15:57
  2. Antworten: 6
    Letzter Beitrag: 05.02.2009, 09:44
  3. Antworten: 3
    Letzter Beitrag: 31.10.2008, 07:34
  4. Komando in SCL für den BEFEHL "ITB"
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.10.2004, 18:16
  5. Komando von AWL "ITB" in SCL
    Von Anonymous im Forum PC- und Netzwerktechnik
    Antworten: 0
    Letzter Beitrag: 07.10.2004, 09:34

Stichworte

Lesezeichen

Berechtigungen

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