Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
11.10.2020
Размер:
3.68 Mб
Скачать

Die Bibliothek UTIL.LIB 361

Funktionsmanipulatoren

14.6 Funktionsmanipulatoren

14.6.1CHARCURVE

Dieser Funktionsblock dient dazu, Werte auf eine stückweise lineare Funktion abzubilden:

IN vom Typ INT wird mit dem zu manipulierenden Wert gespeist. Das BYTE N bezeichnet die Anzahl der Punkte, die die Abbildungsfunktion festlegt. Im ARRAY P[0..10] mit P vom Typ POINT, einer Struktur bestehend aus zwei INT-Werten (X und Y), wird dann diese Kennlinie definiert.

Die Ausgabe besteht aus OUT vom Typ INT, dem manipulierten Wert, und dem BYTE ERR, das ggf. auf Fehler hinweist.

Die Punkte P[0]..P[N-1] im ARRAY müssen nach ihren X-Werten sortiert sein, ansonsten erhält ERR den Wert 1. Liegt die Eingabe IN nicht zwischen P[0].X und P[N-1].X, so wird ERR=2 und OUT erhält den entsprechenden Grenzwert P[0].Y oder P[N-1].Y.

Liegt N außerhalb der zulässigen Werte zwischen 2 und 11, so wird ERR=4.

Beispiel in ST:

Zunächst muß im Header das ARRAY P definiert werden:

VAR

...

KENNLINIE:CHARCURVE;

KL:ARRAY[0..10] OF POINT:=(X:=0,Y:=0),(X:=250,Y:=50),(X:=500,Y:=150) ,(X:=750,Y:=400),7((X:=1000,Y:=1000));

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

362 Die Bibliothek UTIL.LIB

Funktionsmanipulatoren

ZAEHLER:INT;

...

END_VAR

Dann speisen wir CHARCURVE beispielsweise mit einem zunehmend wachsenden Wert :

ZAEHLER:=ZAEHLER+10;

KENNLINIE(IN:=ZAEHLER,N:=5,P:=KL);

Das anschließende Tracing illustriert:

14.6.2RAMP_INT

RAMP_INT dient dazu, den Anstieg bzw. den Abfall der eingespeisten Funktion zu begrenzen:

Die Eingabe besteht zum einen aus drei INT-Werten: IN, der Funktionseingabe, und ASCEND und DESCEND, der maximalen Zubzw. Abnahme pro Zeitintervall, welches durch TIMEBASE vom Typ TIME festgelegt wird. Setzt man RESET auf TRUE, so wird RAMP_INT neu initialisiert.

Die Ausgabe OUT vom Typ INT enthält den anund abstiegsbeschränkten Funktionswert.

Man beachte, dass sich Probleme ergeben können, wenn die eingestellte TIMEBASE geringer ist, als die Dauer für einen Durchlaufzyklus.

Wird TIMEBASE auf t#0s gesetzt, so bezieht sich die Zubzw.

Abnahmebegrenzung auf einen Zyklus, also einen Aufruf des

Funktionenblocks.

Beispiel in CFC:

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

Соседние файлы в папке 759-332