unscale in SCL

coro

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich möchte einen Frequenzumrichter ansteuern (4-20mA);

Könntet Ihr mir sagen ob der Code richtig ist:


T_preheater = UNSCALE(IN:= Der_Sollwert
,HI_LIM:= 50.0 //wegen 50Hz
,LO_LIM:=0.0
,Bipolar:=FALSE //immer 0
,OUT:= Signal //Wert für die AO



Wenn ja dann noch eine Frage zu dem IN:

Was Passiert wenn ich nun den "Der_Sollwert" auf 60.0 einstelle bleibt dann der Wert "Signal" auf den 20mA?

Ich freue mich auf eure Kommentare!
 
Hi,

Code:
T_preheater [COLOR=Red]:[/COLOR]= UNSCALE(IN:= Der_Sollwert
,HI_LIM:= 50.0 //wegen 50Hz
,LO_LIM:=0.0
,Bipolar:=FALSE //immer 0
,OUT:= Signal //Wert für die AO
[COLOR=Red]);[/COLOR]

die roten Dinge fehlen noch. ;)

Der Scale-Baustein gibt bei einem IN größer den HI_LIM den HI_LIM aus, dass selbe falls der Wert kleiner LO_LIM ist.

Gruss Daniel
 
@Markus:
nicht so ganz ...
Die Skalierung ist zwar letztlich der Dreisatz, wie von dir umgesetzt - du berücksichtigst allerdings nicht den Grenzbereich des Sollwertes. Was passiert, wenn du einen negativen Sollwert oder einen größer 50.0 vorgibst ? Das könnte das PAW nicht eigenständig kompensieren ...

Gruß
Larry
 
@Larry

Ja natürlich, das weiss ich doch auch. Aber noch mit dem Abfangen der Grenzen läufts ausprogrammiert schneller.

Markus

Und wenn du Anzahl n Sensoren hast, wirst du irgendwann merken, dass eine Funktion Sinn macht und wenn's eine selbstgeschriebene ist. Und wenn du mit Kalibrierwerten, gleitenden Mittelwerten etc. arbeiten musst, macht weder der Scale-Baustein noch ein 'Ausprogrammierung' Sinn. ;)
 
Und wenn du Anzahl n Sensoren hast, wirst du irgendwann merken, dass eine Funktion Sinn macht und wenn's eine selbstgeschriebene ist.
Ich habe nicht gesagt dass eine Funktion keinen Sinn macht. Wenn's n Messwerte sind erledige ich das mit einem Loop über n DB Strukturen in lokalen Daten aber keinesfalls mit Parameterübergabe. :)

Markus
 
Zurück
Oben