easy-forum
Deutsch - Hardware => easyControl => Thema gestartet von: Robohaase am Januar 17, 2008, 17:06:06 Nachmittag
-
Hallo,
hab an einer EC4P nen Temperaturfühler von 0-50°C und soweit is alles auch klar... Sollwerteingabe und istwertanzeige is alles funktionstüchtig, nur brauch ich das mit einer Dezimalstelle.... udn wie ich das umstelle is mir bissl unklar...
und wie ich das dann in dem Wertskalierungsbaustein (LS / Easy800) verarbeiten kann...
MFG der Norman
-
hmmm..
nuja und wie stell ich das da um??? also wegen der ANzeige mein ich... und die Istwerteingabe müsste joa och mit na Dezimalstelle sein... aber die Variable ist doch DINT und des is doch nie mit kommastelle soweit ich das weiß...
-
ich programmiere das in FUP...
weil ich so besser mit den Bausteinen klar komme... weil bin noch ein Frischling mit der Codesys und sonst nur Easysoft gewohnt, da ging das auch einfacher mit den Kommastellen...
Norman
-
und wie mach ich das da im FUP bzw wie in der Visu??? weil mit deinem Bild kann ich leider nicht viel anfangen...
GRüße... Norman
-
joa programm läuft.. aber ich wills net wirklcih posten... is ne etwas kopaktere ANwendung dawegen....
nuja leider is die Steuerung schon verbaut somit kann ich das prog nur in der Simu testen....
-
*nur schnell anmerk* weil ich grad was von Skalierung gelesen habe.....
in der MoellerLib40 oder LIB40 oder so ähnlich, da gibts nen Baustein namens "DataScale", mit dem kam ich auf anhieb klar, seitdem nehm ich für alle Skalierungen immer den.
gruß
jan
-
Hallo Norman,
willst Du die Variable in der CoDeSys-Visu mit Komma angezeigt bekommen?
mfG Jan
-
hey..
also @heho, hab da wirgendwie nie richtoig gelesen...
nochma dazu, hab ne EC4p und nen Externes Display...
das Touchpanel MDF4(also auch Codesys)... udn da mächt ich den Sollwert von 0.0 bis 50.0 eintragen udn in dem Bereich arbeitet auch mein Tempfühler...
der Norman
-
Hallo Norman,
für den Istwert würde ich vorschlagen das Du die Werte in 1/10tel Grad als UDINT skalierst,
d.h. von Werte von 0-500. Dann konvertierst Du den Datentyp mit UDINT_TO_REAL, danach teilst Du durch 10.
also:
Var1 :UDINT;
Var2 :REAL;
Var2:= (UDINT_TO_REAL(Var1) / 10);
dann liegt die Variable im Real-Format mit Komma vor.
In Deinem Visualisierungsfeld gibst Du dann folgenden Text ein
%2.1f (das kennzeichnet das Anzeigeformat in dem Fall zwei Stellen vor dem Komma, eine Stelle nach dem Komma)
in dem Feld Textausgabe muß Du nun Deine Variable eintragen. Hier wäre es
PLC_PRG.Var2 .
Für den Sollwert mach Du das genauso mit einer anderen Variablen und setzt dann das Häkchen bei editierbar und Keypad.
mfG Jan
-
;D Danke für die Hilfe...
werd ich dann glei mal ausprobieren...
der Norman
-
Hallo habe hier mal ein FB geschrieben zur direkten Analogeingangsverarbeitung und -skalierung bei einer EC4P
Eingänge des FB´s:
Nummer de Analogeingangs (1 bis 4 Default=1)
X1 - Anfangswert Quellbereich (hier direkt der Analogeingang DINT)
X2 - Endwert Ouellbereich (hier direkt der Analogeingang DINT)
Y1 - Anfangswert Zielbereich (hier ohne Komma DINT)
Y2 - Endwert Zielbereich (hier ohne Komma DINT)
Kommastelle Ausgangswert (Default=1)
Ausgang des FB´s:
Y - REAL-Wert gerundet auf entsprechende Kommastelle.
d.h. der Analogeingang 1 (I7) ist mit 10V beschalten --> 1023
Nummer des Eingangs = 1
X1 = 0
X2 = 1023
Y1 = 0
Y2 = 5000
Kommastelle Ausgangswert = 2
so würde Y = 50.00 sein.
bei Kommastelle Ausgangswert = 1
so würde Y = 500.0 sein
mfG Jan
-
Hallo,
Danke @ Mr. Spok... erklärung war sehr gut und mit dem Fb wars och sehr einfach...
der Norman