siemens step5 bcd umwandlung in bin

bennzi

Level-1
Beiträge
107
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
mahlzeit leute.

ich hab nen problem.
da ich noch nie allzugross was an einer step5 steuerung gemacht habe, sondern eher an S7 bräuchte ich mal ein wenig hilfe.

ich möchte ein bcd signal 8-bit (2bcdschalter) in ein binäres signal wandeln und direkt an ein Ausgangsbyte geben.

zb bcd schalter sind an EB0
und an AB0 soll ein 8bit binärcode ausgegeben werden.

bei einer step7 gibts ja diese converting bausteine und ist ja ganz simpel eigentlich. aber bei der s5 steh ich aufm schlauch.

wär nett wenn mir einer auf die sprünge hilft ^^

danke
 
hängt von der s5 ab. in der 115u gibt es z.b. den fb240 (bcd => dualzahl).
für mehr infos müsste ich die cpu-type wissen.
 
?
Evlt. steh ich ja auf der Leitung - aber was genau willst du machen?

Du sagst ja selber du bekommst 8Bit und die willst du jetzt in 8Bit wandeln?

wäre dann ja
L EB0
T AB0

Das ist aber sicher nicht was du meinst!

Gib doch mal ein Beispiel.
 
ohje. das ist eine 100U CPU.

also in EB0 kommen meine 2 bcd schalter an.
in AB0 soll das Signal als BIN rauskommen *g
 
Irgendwie blicke ich das immer noch nicht!

Bitte mal ein Beispiel!

Mit zwei BCD Schaltern kann mann 00-99 darstellen.
Du hast aber nur 8 Ausgangs-Bits.
Welcher Ausgang soll wann "1" sein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@tnt. danke. ich hab den beitrag auch schon gesehen gehabt. habe mir jetz die pdf mal geladen. so wie ich das sehe können die FBs nur ab CPU 102. muss ich denn alles von hand schreiben oder wie? *G

@BPlagens. richtig. für 2bcd schalter brauche ich 1EW(8bit) 00-99
dieses signal auf dem EW möchte ich Als 8bit binär signal ausgeben 0-255, wobei mich alles nach 99 nicht mehr interessiert.

sorry anscheinend kann sowas die 100auch. aber ich benötige eben ein 8bit code? 0-255

9.2.1 Codewandler : B4 - FB240 -​
Mit diesem Funktionsbaustein läßt sich eine BCD-Zahl (4 Tetraden) mit Vorzeichen in eine Festpunkt-
Dualzahl (16 Bits) umwandeln.​
2 Tetraden-Zahlen müssen vor der Umwandlung in eine 4 Tetraden-Zahl transferiert werden.
 
Zuletzt bearbeitet:
richtig. für 2bcd schalter brauche ich 1EW(8bit) 00-99
dieses signal auf dem EW möchte ich Als 8bit binär signal ausgeben 0-255, wobei mich alles nach 99 nicht mehr interessiert.

1EW=8Bit? Ja - Nee is klar! :)

Also du willst die 0-99 vom BCD Schalter (2x4Bit = 8Bit = 1EB) in Decimal wandeln und dieses BitMuster dann an ein AB schicken!

Bsp:
Code:
BCD    Bitmuster
00 -> 00000000
01 -> 00000001
09 -> 00001001
..
99 -> 01100011
richtig?

Bin schon ganz wir von Bit, Byte und deinem gemische!
Dachte erst du willst einen 1aus8 Codierer!
 
Zuletzt bearbeitet:
ohhh neee sorry. habs auch grad gemerkt. EB natürlich.
jaa genau das möcht ich tun *gg tut mir sorry
dein beispiel triffts voll und ganz

es scheint wirklich mit dem fb240 zu funktionieren oder?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ich würds so mal probieren:

L EB 0 die bcd-zahl
T MW 200 schmiermerker

U M 199.0
R M 199.0 ein merker der immer 0 ist

SPA FB 240 wandler
NAME: COD:B4
BCD: MW 200
SBCD: M 199.0
DUAL: MW 202

L MW 202 ausgabewert 16 bit
T AB 0 auf ausgang ausgeben (8bit)



 
Mein S5 Handbuch sagt ja! :)

Codewandler : B4 - FB240 -
Mit diesem Funktionsbaustein läßt sich eine BCD-Zahl (4 Tetraden) mit Vorzeichen in eine Fest-
punkt-Dualzahl (16 Bits) umwandeln.
2 Tetraden-Zahlen müssen vor der Umwandlung in eine 4 Tetraden-Zahl transferiert werden.
• Liegt eine Tetrade nicht im BCD-definierten Bereich, gibt der FB240 den Wert ”0” aus. Eine
Fehlerbit-Anzeige erfolgt nicht.
 
jauuu. das ist es denk ich. danke.
super beispiel ich danke sehr.
am besten ich mach mich gleich mal ans verdrahten und geb morgen bescheit. ich komme mit dem s5 PG zwar nicht wirklich klar aber ich werde mal versuchen wie weit ich komme.
nochmals danke :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich mich gut ihre unterstuts die 100U cpu100 keine FB's.

Mit ein zahler ist es auch mochlich de umzetzung van BCD nach hex zu machen in eine PB oder OB

Code:
      UN    M     10.0
      =     M     10.0       // 1cyclus =1_ 1 cyclus =0
      U     M     10.0       //hilfmerker zu laden BCD zahl in Z1
      L     EB     0           // BCD  0-99
      S     Z      1
      L     Z      1    
      T     AB     0           // HEX   0-99
 
BCD in Dual sollte ja auch "zu Fuß" gehen. Ich weiß nicht genau den Befehlsvorrat der 100U (ist einfach schon zu lange her), aber mit ein paar Schiebebefehlen oder auch mit ausmaskieren und schieben, kann man ja die beiden 4-Bit-Zahlen voneinander trennen. Die ersten 4 Bit stellen den Zehner, die zweiten den Einer. Zehner*10+Einer ergibt dann die Dualzahl.

PS: der zitierte Beitrag von tnt369 hilft bei fehlenden Schiebebefehlen weiter. Multiplizieren mit 2 und dividieren durch 2 ist ja das Gleiche.
Oder man nimmt LL's Vorschlag und setzt das auf Merker um, wobei man Bit 0-3 auf ein anderes MB als Bit 4-7 legt. und dann damit, wie oben beschrieben weiterrechnet.
 
Zuletzt bearbeitet:
Hallo,

das sollte zu Fuss so gehen:

Code:
L EB 0 // 8bit BCD laden
srw 4  // Zehnerstelle isolieren
L KF 10
xF      
T MB xy // zwischensichern
L EB 0 // 8bit BCD laden
l kh 000F
UW  // Einerstelle isolieren
L MB xy
OW  // Zehner + Einer kombinieren
T AB 0 // => auf die Lampen.

Das sollten alles Befehle sein, die auch eine dämliche S5-100 schon kann.

mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
L EB 0 // 8bit BCD laden
srw 4 // Zehnerstelle isolieren
L KF 10
xF
T MB xy // zwischensichern
L EB 0 // 8bit BCD laden
l kh 000F
UW // Einerstelle isolieren
L MB xy
OW // Zehner + Einer kombinieren
T AB 0 // => auf die Lampen.
Das sollten alles Befehle sein, die auch eine dämliche S5-100 schon kann.
xF // Für diese Anweisung ist mindestens ein 115U CPU 945 oder ein 135U
erforderlich
 
hi.

erstmal ein dickes danke an euch alle! super!

ich hab heute ein wenig damit rumgespielt. nach den ersten problemen mit meinem pg740 hab ich es geschafft ein programm zum laufen zu bekommen *g

als erstes habe ich das mit dem fb 240 versucht:

SPA FB240
dann hat er folgendes vorgegeben:
Name:COD
nach bestätigung mit Enter:
B4: an dieser stelle wollte er ein PB
????
komisch.

nichts destro trotz habe ich das mit dem zähler versucht *g
kaum zu glauben aber es funktioniert einwandfrei.
dankedankedanke.

kannst mir den hintergrund sagen wiso das klappt?

mfg
 
beim befehl S Z1 erwartet die CPU den wert der dem zähler 1 zugewiesen wird im akku als bcd-zahl (0-999).
die abfrage des zähler L Z1 liefert im akku den wert als dualzahl zurück. soll der zählerwert in bcd-format zurückgeliefert werden, so ist der befehl LC Z1 zu verwenden.
die sache mit dem merker ist notwendig um die positive flanke zu erzeugen, nur bei einer positiven flanke wird der befehl S Z1 ausgeführt.

übrigens:
beim aufruf vom fb240 schlägt die software einen typ für den parameter vor (bei dir war das pb?) => diesen vorschlag kannst du überschreiben, es muss nur der typ passen. beim parameter bcd währe das ein wort z.b. MW200 oder EW20 ...
 
Zurück
Oben