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.
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.
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
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.
Vielen Dank für eure schnelle Hilfe. Ich denke, ich habe es nun so gelöst wie ihr gemeint habt:
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