easy-forum
Deutsch - Software => XSoft-CoDeSys => Thema gestartet von: WPetrick am Juni 29, 2012, 15:55:20 Nachmittag
-
Hallo
Ich habe hier ein kleines Problem mit einen Drehgeber der folgende Werte
ausgibt.
1 Stelle 10 Stelle 100 Stelle 1000 Stelle
Wert 1 Wert 1 Wert 1 Wert 1
Wert 2 Wert 2 Wert 2 Wert 2
Wert 4 Wert 4 Wert 4 Wert 4
Wert 8 Wert 8 Wert 8 Wert 8
Also benötigt er 16 Eingänge in einer Sps.
Ich möchte in CoDeSys nun diesen Geber als Drehgeber verwenden.
Er sollte mit den Werten die auf die Eingänge gehen einen DINT Wert
ausgeben.
Ich hoffe ich konnte mich verständlich ausdrücken sonst Fragen.
Grüße Werner
-
Hallo Werner
So einen Absolutwert Ausgang hab ich ja noch nie gesehen!!
Normalerweise direkt so 12-16Bit.
Naja egal, es lässt sich trotzdem leicht lösen, indem du einfach die 4Bit Werte alle berechnest und dann aufaddierst.
zB. dez 93 = 0000 0000 1001 0011 <-ist nicht INT!! aber kommt gleich ;-)
#0011
+ #1001 mul 10 (mal zehn)
+ #0000 mul 100
+ #0000 mul 1000
Du musst erst die 4Bits mal Dezimalstelle rechnen und dann aufaddieren.
Achte aber auf die Zahlensysteme.
Hoffe ich hab mich einigermassen verständlich ausgedrückt.
Gruß Thomas
-
Hallo Werner
hier noch der FB Geber in AWL
Allerdings gibt es in der util.lib einen BCD Converter mit Byteeingang, dadurch sind es zwei Rechnungen weniger.
FUNCTION_BLOCK Geber
VAR_INPUT
IN0: BYTE; (*Eingangsbyte Einer und Zehner*)
IN1: BYTE; (*Eingangsbyte Hunderter und Tausender*)
END_VAR
VAR_OUTPUT
Istwert: DINT;
END_VAR
VAR
EuZ: INT; (*Einer und Zehner*)
E_u_Z: DINT; (*Einer und Zehner*)
HuT: INT; (*Hunderter und Tausender*)
H_u_T: DINT; (*Hunderter und Tausender*)
Zwischenerg: DINT;
END_VAR
---------------------------------------------------------------------------------
LD IN0
BCD_TO_INT
ST EuZ
LD EuZ
INT_TO_DINT
ST E_u_Z
LD IN1
BCD_TO_INT
ST HuT
LD HuT
INT_TO_DINT
ST H_u_T
LD H_u_T
MUL 100
ST Zwischenerg
LD Zwischenerg
ADD E_u_Z
ST Istwert
probier es mal aus!
-
Hallo Thomas
Hab heute dein Programm mal umgesetzt, kann Dir aber erst in ein Paar Wochen rückmeldung
geben
Die Anlage wird dann erst frei zum Umbau.
Aber in einer Simulation klapt es schohnmal.
Nochmal Danke für deine schnelle Hilfe.
Gruß Werner