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

304 Die IEC Operatoren

Die IEC Operatoren

12 Die IEC Operatoren

12.1 Die IEC Operatoren

WAGO-I/O-PRO 32 unterstützt alle IEC-Operatoren. Diese sind, im Gegensatz zu den Standardfunktionen ( Standardbibliothek) implizit im ganzen Projekt bekannt. In den Bausteinimplementationen werden Operatoren wie Funktionen benutzt.

12.2 Arithmetische Operatoren

12.2.1ADD

Addition von Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT und REAL.

Es können auch zwei TIME-Variablen addiert werden, die Summe ist dann wieder eine Zeit (z.B. gilt t#45s + t#50s = t#1m35s)

Beispiel in AWL:

LD 7

ADD 2,4,7

ST Var1

Beispiel in ST:

var1 := 7+2+4+7;

Beispiel in FUP:

12.2.2MUL

Multiplikation von Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT und REAL.

Beispiel in AWL:

LD 7

MUL 2,4,7

ST Var1

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

Die IEC Operatoren 305

Arithmetische Operatoren

Beispiel in ST:

var1 := 7*2*4*7;

Beispiel in FUP:

12.2.3SUB

Subtraktion einer Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT und REAL von einer anderen Variablen von einem dieser Typen.

Eine TIME-Variable kann auch von einer anderen TIME-Variablen subtrahiert werden, das Ergebnis ist dann wieder vom Typ TIME. Beachten Sie, daß negative TIME-Werte nicht definiert sind.

Beispiel in AWL:

LD 7

SUB 8

ST Var 1

Beispiel in ST:

var1 := 7-2;

Beispiel in FUP:

12.2.4DIV

Division einer Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT und REAL durch eine andere Variable von einem dieser Typen.

Beispiel in AWL:

LD 8

DIV 2

ST

Var1 (* Ergebnis ist 4 *)

Beispiel in ST:

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

306 Die IEC Operatoren

Arithmetische Operatoren

var1 := 8/2;

Beispiel in FUP:

Hinweis:

Wenn Sie in Ihrem Projekt Funktionen mit Namen CheckDivByte,

CheckDivWord, CheckDivDWord und CheckDivReal definieren, können Sie damit bei Verwendung des Operators DIV den Wert des Divisors überprüfen, beispielsweise um eine Division durch 0 zu verhindern. Der Name der Funktion ist festgelegt und darf nur diese Bezeichnung besitzen. Sehen Sie hier ein Beispiel für die Implementierung der Funktion CheckDivReal:

Das Ergebnis der Funktion CheckDivReal wird vom Operator DIV als Divisor eingesetzt. Im nachfolgend dargestellten Beispielprogramm wird dadurch verhindert, daß durch 0 geteilt wird, der Divisor (d) wird von 0 auf 1 gesetzt. Das Ergebnis erg der Division ist dementsprechend 799.

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

Die IEC Operatoren 307

Arithmetische Operatoren

12.2.5MOD

Modulo Division einer Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT durch eine andere Variable von einem dieser Typen. Als Ergebnis liefert diese Funktion den ganzzahligen Rest der Division.

Beispiel in AWL:

LD

9

MOD

2

ST

Var1 (* Ergebnis ist 1 *)

Beispiel in ST:

var1 := 9 MOD 2;

Beispiel in FUP:

12.2.6INDEXOF

Als Ergebnis liefert diese Funktion den internen Index eines Bausteins.

Beispiel in ST:

var1 := INDEXOF(baustein2);

12.2.7SIZEOF

Als Ergebnis liefert diese Funktion die Anzahl der Bytes, die der angegebene Datentyp benötigt.

Beispiel in AWL:

arr1:ARRAY[0..4] OF INT;

Var1 INT

LD arr1

SIZEOF

ST

Var1 (* Ergebnis ist 10 *)

Beispiel in ST:

var1 := SIZEOF(arr1);

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

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