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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: AWL: Dez Zahl auf 10er Potenzen Zerlegen

  1. #11
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die ST variante:

    Code:
    VAR
      diWert      : DINT;
      diHunderter : DINT;
      diRest      : DINT;
      diZehner    : DINT;
      diEiner     : DINT;
    END_VAR
    
    
    diWert      := 345;
    
    diHunderter := diWert  /  100;
    diRest      := diWert MOD 100;
    diZehner    := diRest  /  10;
    diEiner     := diRest MOD 10;
    If you open your Mind too much, your Brain will fall out.

  2. #12
    Registriert seit
    28.06.2007
    Ort
    Bremen
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wie geht das mit 5 stelligen Zahlen ?

    ich habe versucht dein Beispiel zu erweitern klappt aber irgendwie nicht.
    Problem ist das ich diverse Daten von einer Waage (Siwarex, Scanner, datum, Uhrzeit) als Ausgabe müssen die Daten als ASCII Code in einem DB geschrieben werden.

    WgNr ARRAY[0..1]
    CHAR
    AlibiNr ARRAY[0..6]
    CHAR
    LfdNr ARRAY[0..6]
    CHAR
    Datum ARRAY[0..8]
    CHAR
    Zeit ARRAY[0..6]
    CHAR
    Netto ARRAY[0..6]
    CHAR
    Brutto ARRAY[0..6]
    CHAR
    EAN_Code ARRAY[0..18]
    CHAR
    Artikelbezeichnung ARRAY[0..28]
    CHAR
    ArtikelID ARRAY[0..2]
    CHAR
    Bediener ARRAY[0..18]
    CHAR

    gibt es eine einfache Möglichkeit dieses zu realisieren?
    Zitieren Zitieren AWL: Dez Zahl auf 10er Potenzen Zerlegen  

  3. #13
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    nen Trick gibts.

    INT -> DINT -> 32Bit BCD und dann sinngemäss wie meine hier vorgestellte Lösung.

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren Char  

  4. #14
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von HParsiegla Beitrag anzeigen
    Problem ist das ich diverse Daten von einer Waage (Siwarex, Scanner, datum, Uhrzeit) als Ausgabe müssen die Daten als ASCII Code in einem DB geschrieben werden.
    Kannst Du Dein Problem noch mal etwas genauer beschreiben?

    Was für Daten bekommst Du genau?

    In welchem Datenformat bekommst Du die Daten?

    Wo liegen die Daten die Du bekommst? Auch in einem DB?

    Gruß Kai

  5. #15
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von sps-concept Beitrag anzeigen
    Hallo,

    nen Trick gibts.

    INT -> DINT -> 32Bit BCD und dann sinngemäss wie meine hier vorgestellte Lösung.

    André
    Wußte gar nicht, daß es 32Bit BCD auf der S7 gibt. Wenn es die nicht gäbe und für noch größere Zahlen geht folgendes: Wenn ITB eine Zahl bis 999 umwandeln kann (oder sind es 9999?), kann man eine größere Zahl n zerlegen:
    n mod 1000 ist eine Zahl mit den letzten drei Stellen von n.
    n /1000 enthält die führenden Ziffern und wenn sie immer noch zu groß für ITB ist, kann man den obigen Schritt wiederholen.

    ITB ergibt sicherlich den kürzeren Code. Intern ist dieser Befehl aber bestimmt auch über mehrfache Division mit Rest implementiert, so daß die Ausführungszeit nicht wesentlich kleiner als die für mehrere MOD-Operationen sein sollte. Allerdings läßt sich der ITB-Befehl intern etwas optimieren, da der Divisor immer 10 ist. Deshalb könnte er schneller sein.

Ähnliche Themen

  1. VBA und Word zerlegen
    Von Ralle im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 12.12.2007, 22:00
  2. Gleitpunktzahl zerlegen
    Von Heri im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 30.07.2007, 20:35
  3. Potenzen
    Von krischan111 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 29.07.2007, 14:00
  4. INT-Zahl in eine S5T#-Zahl umwandeln ?
    Von Stefan B. im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 02.03.2006, 22:40
  5. 5-stellige ascii zahl in normale zahl umwandeln
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 16:12

Lesezeichen

Berechtigungen

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