# unscale in SCL



## coro (2 Dezember 2010)

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!


----------



## dalbi (2 Dezember 2010)

Hi,


```
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


----------



## coro (3 Dezember 2010)

Danke für deine Antwort!


----------



## MarkusP210 (3 Dezember 2010)

Und Zykluszeitoptimiert:

T_preheater := Der_Sollwert * (27648/ 50);

Markus


----------



## Larry Laffer (3 Dezember 2010)

@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


----------



## MarkusP210 (5 Dezember 2010)

@Larry

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

Markus


----------



## Graph&SCL_Freak (6 Dezember 2010)

MarkusP210 schrieb:


> @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.


----------



## MarkusP210 (6 Dezember 2010)

> 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


----------

