Einzelne Bits in eine Zahl umwandeln

GBat

Level-1
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich bin inzwischen auf verschiedenste Konvertierungsfunktionen gestossen, nur nicht die ich suche:)

Gibt es eigentlich eine fertige Konvertierugnsfunktion die aus mehreren Bits eine Zahl erzeugen? Also Binär nach Dezimal-Umsetzer.
Ich verwende das TIA-Software von Siemens.

Vielen Dank für eure Hilfe
Gerhard
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen Dieter

Ich habe z.B. vier boolsche variablen. Variable 0 entspricht Bit 0, Variable 1 Bit 1 usw.
Daraus sollte dann, je nachdem welche Bits gesetzt sind, eine Zahl von 0 bis 15 entstehen.

Beste Grüsse
Gerhard
 
Da brauchst du keinen Codewandler.

Nimm eine Byte-Variable und weise dort einfach die entsprechenden Bits zu.

Gruß
Dieter
 
Hallo!

Wenn du vier Bits hast kommts drauf an wie du die speicherst. Sollten diese 4 Bits Eingänge sein dann nimmst du Beispielsweiße das Eingangsbyte auf dem diese 4 Bits sind und maskierst die restlichen 4 Bits aus!
Das Ergebniss kopierst du dann in ein Merkerbyte. Darin steht jetzt deine Zahl von 0-15.

Code:
L EB1
L 2#1111
UW
T MB 1 //Hier steht jetzt der Wert 0-15
Mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Dieter: Genau so etwas habe ich gesucht. Kann man das auch in FUP?

@SCM: Genau das wäre dann meine nächste Frage gewesen:) Geht das auch in FUP?

Vielen Dank

Gerhard
PS: Habe zuvor natürlich schon die Suche bemüht...
 
Hallo!

Code:
L EB1
L 2#1111
UW
T MB 1 //Hier steht jetzt der Wert 0-15
NOP 0

füge diesen Code in AWL ein und stelle dann auf FUP um!

Mfg
 
Hallo SCM

Hm, ich habe eine S7-1200 und dazu die Basic-Version, welche mit dem Entwicklungskit mitkommt.. Ich glaube, die kann kein AWL.

Geht das dan trotzdem in FUP?

Vielen Dank für eure Hilfe
Gerhard
 
fertiger Baustein

Ich hätte da einen Baustein(FC) für TIA V11.
Mit welcher Version arbeitest du?
Er hat 8 einzelne Eingänge für deine Bool-Variablen (hat den Vorteil dass die Bits nicht im selben Byte liegen müssen / nicht benutzte werden mit VKE-0 beschaltet)
Am Ausgang steht der Wert als UINT zur Verfügung
Du kannst den Baustein natürlich erweitern/abändern was die Anzahl der Eingänge oder den Datentyp der Ausgangs-Variablen angeht.

Gruß
7
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Vielen Dank für eure schnelle Hilfe. Ich denke, ich habe es nun so gelöst wie ihr gemeint habt:
BoolToByte.jpg
Hier wird das Eingangsbyte gelesen und die ersten vier Bits ausmasiert. In der Ausgangsvariablen Testbyte sollte dann der Wert von Bit0 bis 3 als Byte stehen. Das Program liess sich so zumindest compilieren.

@sieben:I
ch verwende TIA Portal Version 12 Basic. Gerade angeschafft:) und wäre sehr an dem Code interessiert. Wäre super, wenn du ihn zur Verfügung stellen würdest!

Beste Grüsse und allen vielen Dank nochmals
Gerhard
 
Zurück
Oben