BCD/Zahlen umrechnen/Umwandeln bzw. VERGLEICHEN (S5-100U CPU 102)

mrmaggi

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
BCD CODIERSCHALTER vergleichen, FB240, etc. ??? (S5-100U CPU 102)

Ich bin seit gestern schon am suchen und brauche eure Hilfe, bzw. einmal ein Beispiel wo gezeigt wird, wie es allgemein gemacht wird. Ich muss einmal sehen wie es geht dann kann ich es meistens selber auch bei komplexeren Sachen einsetzen^^

So als Beispiel/Idee:
Ich möchte über 2stellige Codierschalter (Also 0-99 BCD) eine Zahl eingeben und diese soll dann verglichen werden. Also bei 0 soll Merker 0.0 gesetzt sein, bei einer 1 Merker 0.1, bei 2 M0.2 ...

Problem
Das Eingeben im BCD-Format ist kein Problem 2 Stellig = 1 ganzes Byte (z.B. E0.0 bis E0.7)
Aber alles was danach kommt macht mir Schwierigkeiten
Das einzige was ich bereits geschafft habe ist, den BCD wert 1 zu 1 auf ein Ausgangswort zulegen
Code:
L EB 0
T AW 2

Das einzige was ich noch dazu gefunden habe ist, dass man wohl FB240 benutzen muss. Aber wie??

Was ich auch gerne wissen würde, ist aber erstmal Zweitrangig. Wie man dann noch mit den Ganzzahlen oder was auch immer rechnen kann, also z.b. die über bcd eingegebene Zahl mit 2 Multiplizieren und dann wieder als BCD Zahl ausgeben. Aber wie gesagt erstmal nicht so wichtig!

Ich bedank mich schon mal und hoffe das ich im Forum nichts zu diesem Thema übersehen habe, da gab´s zwar einiges, aber schlau bin ich nicht draus geworden.

Gruß
 
Zuletzt bearbeitet:
Hallo,
was willst du denn jetzt machen ?
Einen festen Wert umrechnen oder vergleichen oder ausgeben oder ... ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also erstmal vergleichen.

Eine Zahl (BCD) über die Codierschalter eingeben und je nach Zahl einen Merker schalten.

Wie oben beschrieben:

bei Codierschalter 00: M0.0 = 1
bei Codierschalter 01: M0.1 = 1
bei Codierschalter 08: M1.0 = 1

Also die Codierschalter geben mir ja eine Dauerhafte BCD Zahl. Der entsprechende Merker soll nur solange 1 sein, wie seine Zahl halt mit den Coderschaltern ausgewählt wurde, wird eine Zahl höher geschalter soll nur der nächste Merker 1 sein und der davor 0.

Also immer nur der Merker = 1 der zur BCD Zahl gehört.

Habe mir das so gedacht das die BCD Zahl verglichen wird:

EB0 (0000 0000) gleich wie 0 = Merker 0.0
EB0 (0000 0001) gleich wie 1 = Merker 0.1
EB0 (0000 1000) gleich wie 8 = Merker 1.0

Ich hoffe das ist jetzt verständlicher

FOTO Codierschalter (Quelle: www.conrad.de)
701084_BB_00_FB.EPS_250.jpg
 
Zuletzt bearbeitet:
... dann vielleicht so :
Code:
L EB0
L kh0
!=F
= M0.0

L EB0
L kh01
!=F
= M0.1

L EB0
 L kh02
 !=F
 = M0.2
 
L EB0
 L kh07
 !=F
 = M0.7
 
... usw.
Gruß
LL
 
Ein Traum, funktioniert einwandfrei. Danke

Wie würde es denn aussehen wenn z.B. EB0 mir 3 multipliziert wird, bevor es mit einer Konstanten verglichen wird?

Der Vergleich an sich bleibt ja wahrscheinlich gleich?!

Das wäre es dann auch erstmal zu diesem Thema

MFG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das einfachste ist das byte in ein wort zu packen und das wort dann um eine Bitstelle zu verschieben!​
Man kann nur mit 2, 4, 8, 16, 32, 64, 128 beim verschieben mutiplizieren oder du mußt mit dem integrierten FB zum multiplizieren arbeiten!

Gruß
SKg​
 

Anhänge

  • Automatisierungsgerät S5-100U.pdf
    5 MB · Aufrufe: 38
Zuletzt bearbeitet:
Zurück
Oben