TIA Analogeingänge verwalten S7-1200

sps31

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

habe mal wider ein kleines Problem.

Bin nun soweit das ich Analaogeingänge verwalten möchte, bin mir aber unsicher ob das mit der scale_X Funktion gemacht wird oder anders einfacher ist.

Ich habe 2 Analogeingänge belegt, Füllstand und Temperatur, beide Werte werden ausserhalb gemessen und durch einen Messumformer mit einem Signal von 4-20 mA an die Analogeingänge gelegt.

Wollte das nun so einrichten das der Wert dann von 4000-20000 geht und dann eine Funktion alá

IF FUELLSTAND < 10000 THEN
VOLL := False;
ELSIF FUELLSTAND >9999 THEN
VOLL := TRUE;
END_IF;

schreiben.

wie bekomm ich die Skalierung bzw. Auswertung hin.

LG sps31
 
PS Hatte schon danach im Forum gesucht, aber entweder ich hab nicht das gefunden was ich gesucht habe , oder es war im FUP und ich konnte es nicht ganz auf SCL nachvollziehen.

Mein Hauptproblem liegt größtenteils in der Anwendung des SCALE_X , wenn ich das richtig verstanden habe sollte meine IF-Funktion dann anschließend funktionieren
 
Zuletzt bearbeitet:
Von der Logik her hat mir das schon geholfen was du da rein geschickt hast
Im SCl sieht das aber nun wie folgt aus

NORM_X(MIN:=_in_, VALUE:=_in_, MAX:=_in_)
SCALE_X(MIN:=_in_, VALUE:=_in_, MAX:=_in_)

wie ich das nun genau verwende kann ich nict nachvollziehen.

Ich hatte bei Norm_X
Min= 4
Value, einen eingang der Als Realzahl deklariert ist
Max 20

Scale X
Min =10 (hätte den Wert 0,1% bei 4mA )
Value = ????
Max = 10000 (hätte den wert 100% bei 20 mA)

klappt aber vorne und hinten nicht und wie knüpfe ich den Norm wert an den Scale wert wie es in dem Handbuch gezeigt ist?
Weil NormX generiert ja im Scl gar keinen ausgang den ich dann als eingang für scaleX verwenden könnte.
LG
 
Gibt es in dem TIA keine Bausteinhilfe? :confused:
Schlimmstenfalls schaue in das Systemhandbuch.

In SCL müßte das etwa so aussehen:
Code:
value1 := NORM_X(MIN:=_in_, VALUE:=_in_, MAX:=_in_) ;
value2 := SCALE_X(MIN:=_in_, VALUE:=_in_, MAX:=_in_) ;
Ob Du NORM_X oder SCALE_X nehmen mußt kann ich Dir nicht sagen, weil ich TIA kaum kenne. Doch für Analogwert einlesen ist ziemlich sicher der zu nehmen, der INT als Eingang hat und REAL zurückgibt.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab leider heute keine Möglichkeit das zu testen aber bei mir sieht es jetzt so aus.

// Medium
"Out_med" := NORM_X(MIN := 4.00, VALUE := "Eingang_Medium", MAX := 20.00);
"scale_med" := SCALE_X(MIN := 10, VALUE := "Out_med", MAX := 10000);

IF "scale_med" < 5000 THEN
"Medium_OK" := FALSE;
ELSIF "scale_med" > 4999 THEN
"Medium_OK" := TRUE;
END_IF;


Ist zur Überprüfung ob ein Medium, zB Öl pumpbar ist, eine Sonde misst die Dichte und gibt das Signal über einen Messumformer (4-20mA) an "Eingang_Medium".
Eingang Medium ist REAl
out_med ist REAL
scale_med ist INT
 
Zuletzt bearbeitet:
Zurück
Oben