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

Die IEC Operatoren

325

Typkonvertierungen

 

 

 

Bei der Typkonvertierung von größeren auf kleinere Typen können Informationen verloren gehen. Wenn die zu konvertierende Zahl die Bereichsgrenze überschreitet, dann werden die ersten Bytes der Zahl nicht berücksichtigt.

Beispiel in ST:

si := INT_TO_SINT(4223);

(* Ergebnis ist 127 *)

Wenn sie die Integerzahl 4223 (16#107f in Hexadezimaldarstellung) in eine SINT-Variable speichern, dann enthält diese die Zahl 127 (16#7f in Hexadezimaldarstellung).

Beispiel in AWL:

LD 2

INT_TO_REAL

MUL 3.5

Beispiel in FUP:

12.9.4REAL_TO-Konvertierungen

Konvertierung vom Typ REAL zu einem anderen Typ:

Es wird nach oben oder unten auf einen ganzzahligen Wert gerundet und in den entsprechenden Typen gewandelt. Ausgenommen davon sind die Typen STRING, BOOL und REAL.

Bei der Typkonvertierung von größere auf kleinere Typen können

Informationen verloren gehen.

Beachten Sie bei der Konvertierung in den Typ STRING, daß die Gesamtkommastellenzahl auf 16 begrenzt ist. Enthält die REAL-Zahl mehr Stellen, wird die sechzehnte Stelle gerundet und so im string dargestellt. Wenn der STRING für die Zahl zu kurz defniert ist, wird von rechts her entsprechend abgeschnitten.

Beispiel in ST:

i := REAL_TO_INT(1.5); j := REAL_TO_INT(1.4); i := REAL_TO_INT(-1.5); j := REAL_TO_INT(-1.4);

(* Ergebnis ist 2 *) (* Ergebnis ist 1 *) (* Ergebnis ist -2 *) (* Ergebnis ist -1 *)

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

326 Die IEC Operatoren

Typkonvertierungen

Beispiel in AWL:

LD 2.7

REAL_TO_INT

GE %MW8

Beispiel in FUP:

12.9.5TIME_TO- / TIME_OF_DAY-Konvertierungen

Konvertierung vom Typ TIME bzw. TIME_OF_DAY zu einem anderen Typ:

Intern wird die Zeit in einem DWORD in Millisekunden abgespeichert (bei TIME_OF_DAY seit 00:00 Uhr). Dieser Wert wird konvertiert.

Bei der Typkonvertierung von größere auf kleinere Typen können

Informationen verloren gehen .

Beim Typ STRING ist das Ergebnis die Zeitkonstante.

Beispiele in AWL:

LD

T#12ms

TIME_TO_STRING

ST

str

(* Ergebnis ist 'T#12ms' *)

LD

T#300000ms

TIME_TO_DWORD

ST

dw

(* Ergebnis ist 300000 *)

LD

TOD#00:00:00.012

TOD_TO_SINT

 

ST

si

(* Ergebnis ist 12 *)

Beispiele in ST:

str :=TIME_TO_STRING(T#12ms); dw:=TIME_TO_DWORD(T#5m); si:=TOD_TO_SINT(TOD#00:00:00.012);

Beispiele in FUP:

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

Die IEC Operatoren

327

Typkonvertierungen

 

 

 

12.9.6DATE_TO- / DT_TO-Konvertierungen

Konvertierung vom Typ DATE bzw. DATE_AND_TIME zu einem anderen Typ:

Intern wird das Datum in einem DWORD in Sekunden seit dem 1.Januar 1970 abgespeichert. Dieser Wert wird konvertiert.

Bei der Typkonvertierung von größere auf kleinere Typen können

Informationen verloren gehen.

Beim Typ STRING ist das Ergebnis die Datumskonstante.

Beispiele in AWL:

LD

D#1970-01-01

DATE_TO_BOOL

ST

b

(* Ergebnis ist FALSE *)

LD

D#1970-01-15

DATE_TO_INT

 

ST

i

(* Ergebnis ist 29952 *)

LD

DT#1970-01-15-05:05:05

DT_TO_BYTE

 

ST

byt

(* Ergebnis ist 129 *)

LD

DT#1998-02-13-14:20

DT_TO STRING

ST

str

(* Ergebnis ist

'DT#1998-02-13-14:20' *)

Beispiele in ST:

b :=DATE_TO_BOOL(D#1970-01-01);

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

328 Die IEC Operatoren

Typkonvertierungen

i :=DATE_TO_INT(D#1970-01-15);

byt :=DT_TO_BYTE(DT#1970-01-15-05:05:05);

str:=DT_TO_STRING(DT#1998-02-13-14:20);

Beispiele in FUP:

12.9.7STRING_TO-Konvertierungen

Konvertierung vom Typ STRING zu einem anderen Typ:

Der Operand vom Typ STRING muß einen gültigen Wert des Zieltyps haben, sonst ist das Ergebnis 0.

Beispiele in AWL:

LD

'TRUE'

STRING_TO_BOOL

ST

b

(* Ergebnis ist TRUE *)

LD

'abc34'

STRING_TO_WORD

ST

w

(* Ergebnis ist 0 *)

LD

't#127ms'

STRING_TO_TIME

ST

t

(* Ergebnis ist T#127ms *)

Beispiele in ST:

b :=STRING_TO_BOOL('TRUE'); w :=STRING_TO_WORD('abc34');

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