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

Ergebnis 1 bis 7 von 7

Thema: erste ziffern als Zahl darstellen

  1. #1
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle,

    Habe folegendes Problem. Ich lese einen Barcode nehmen wir mal an 12 stellig ein: 123003478653 Aus diesem Barcode muss ich die linken 3 Ziffern als neue Zahl INT oder DINT definieren. Sprich die 123 brauche ich da dies die Produktkennung ist.
    Stehe momentan leider auf dem Schlauch wie ich das angehen könnte.
    Gibt es einen Befehl bei der man nicht nur die Bits im Akku schiebt, sondern die eine DINT Zahl ?

    Danke
    Zitieren Zitieren erste ziffern als Zahl darstellen  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Frage

    Hi,
    ich nehme an, die grosse Ziffernfolge ist im ASCII Format. Du brauchst
    die ersten drei linke Bytes umgewandelt in Integer. Oder verstehe ich
    falsch?

    Gruss:
    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Barcode  

  3. #3
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von Snoopy123123 Beitrag anzeigen
    Hallo an alle,

    Habe folegendes Problem. Ich lese einen Barcode nehmen wir mal an 12 stellig ein: 123003478653
    12-stellig als DINT geht garnicht. Die größtmögliche Zahl im DINT-Format ist 10 Dezimalstellen + VZ.
    Wird der Barcode nicht schon als Zeichenkette (String) eingelesen?

    .
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  4. #4
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    also die erste drei Bytes in ein Array schieben, dann diese FC anwenden(STRNG_I):

    "Die Funktion FC 38 wandelt eine Zeichenkette in eine Variable im INT­Format. Das erste Zeichen in der Zeichenkette darf ein Vorzeichen oder eine Ziffer sein, die dann folgenden Zeichen müssen aus Ziffern bestehen. Ist die Länge der Zeichenkette Null oder größer als 6 oder befinden sich unerlaubte Zeichen in der Zeichenkette, findet keine Wandlung statt und das BIE­Bit wird auf ”0" gesetzt. Liegt das Ergebnis der Wandlung außerhalb des INT-Zahlenbereichs, wird das Ergebnis auf den entsprechenden Wert begrenzt und das Binärergebnis BIE auf "0" gesetzt.
    Schnittstelle:
    S INPUT STRING D, L Eingangszeichenkette
    RET_VAL OUTPUT INT E, A, M, D, L Ergebnis"


    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Barcode  

  5. #5
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Hier mal eine Funktion als AWL- Quelle, mit der bis zu 4 Byte ACII- Zeichen in eine Integerzahl gewandelt werden können.
    Der Vorteil ist, dass man die zu wandelnden Bytes einzeln an den Baustein ranschreibt. Vielleicht hilfts Dir ja.
    Angehängte Dateien Angehängte Dateien
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  6. Folgende 4 Benutzer sagen Danke zu OHGN für den nützlichen Beitrag:

    Finleggan (05.07.2017),jck0815 (06.10.2010),Klärmolch (14.06.2012)

  7. #6
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von Snoopy123123 Beitrag anzeigen
    Hallo an alle,

    Habe folegendes Problem. Ich lese einen Barcode nehmen wir mal an 12 stellig ein: 123003478653 Aus diesem Barcode muss ich die linken 3 Ziffern als neue Zahl INT oder DINT definieren. Sprich die 123 brauche ich da dies die Produktkennung ist.
    Stehe momentan leider auf dem Schlauch wie ich das angehen könnte.
    Gibt es einen Befehl bei der man nicht nur die Bits im Akku schiebt, sondern die eine DINT Zahl ?

    Danke
    Wenn es denn eine Zahl wäre (was es wohl nicht ist, siehe andere Beiträge), DANN:



    Code:
     
    L 123456789  
    L   1000000
    /D                       // das ist jetzt ein BEISPIEL
    T ergebniss              // = 123

  8. #7
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oh shit....

    Ja es ist ein String !!! Habe die Hardware erst eben bekommen und schon vorher über ne Lösung nachgedacht !!


    @ unregistrierter Gast

    Deine Lösung hatte ich gesucht leider viel zu kompliziert drüber nachgedacht

    Danke !

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 27.12.2010, 11:17
  2. Erste Schritte S7-300
    Von Andy082 im Forum Programmierstrategien
    Antworten: 18
    Letzter Beitrag: 11.02.2009, 23:55
  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. Signalwechsel zählen und Zahl im Ausgabefeld darstellen
    Von dellamorte-dellamore im Forum HMI
    Antworten: 3
    Letzter Beitrag: 13.06.2005, 13:01

Lesezeichen

Berechtigungen

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