erste ziffern als Zahl darstellen

Snoopy123123

Level-1
Beiträge
125
Reaktionspunkte
2
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
 
Barcode

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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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?

.
 
Barcode

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.
 
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.:)
 

Anhänge

  • FC207.txt
    4,5 KB · Aufrufe: 495
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

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
 
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 !
 
Zurück
Oben