ABB機(jī)器人變量類型轉(zhuǎn)換功能

發(fā)布日期:2012-06-09    蘭生客服中心    瀏覽:7674

二、變量類型轉(zhuǎn)換功能

  不能直接從“大類型”向“小類型”變量轉(zhuǎn)換。(例如:從INT到BYTE,或從DINT到WORD)。要完成此功能,可以使用特殊功能塊實(shí)現(xiàn)。作為一種規(guī)則,你可以用此功能將一種類型的變量轉(zhuǎn)換成任何需要的類型變量。

句法:

lt;elem.Tpy1>_TO_

1、BOOL_TO_變換
    
BOOL類型變量到不同類型的變換:對于數(shù)值類型變量,操作數(shù)為TRUE時,結(jié)果為1;操作數(shù)為FALSE時,結(jié)果為0。對字符串類型變量,其結(jié)果分別為‘TRUE’和‘FALSE’。

T中的示例:

i:=BOOL_TO_INT(TRUE);(*結(jié)果為1*)

tr:=BOOL_TO_STRING(TRUE);(*結(jié)果為'TRUE'*)

t:=BOOL_TO_TIME(TRUE);(*結(jié)果為T#1ms*)

tof:=BOOL_TO_TOD(TRUE);(*結(jié)果為TOD#00:00:00.001*)

dat:=BOOL_TO_DATE(FALSE);(*結(jié)果為D#1970-01-01*)

dandt:=BOOL_TO_DT(TRUE);(*結(jié)果為DT#1970-01-01-00:00:01*)

2、TO_BOOL–變換
  它類型變量到BOOL的轉(zhuǎn)換:當(dāng)操作數(shù)不為零時,結(jié)果為TRUE,當(dāng)操作數(shù)為零時,結(jié)果為FALSE;當(dāng)字符串變量的操作數(shù)為’TRUE’時,結(jié)果為真,否則,結(jié)果為假。

T中的示例:

:=BYTE_TO_BOOL(2#11010101);(*結(jié)果為TRUE*)

:=INT_TO_BOOL(0);(*結(jié)果為FALSE*)

:=TIME_TO_BOOL(T#5ms);(*結(jié)果為TRUE*)

:=STRING_TO_BOOL('TRUE');(*結(jié)果為TRUE*)

3、整型數(shù)類型之間的轉(zhuǎn)換
  整型數(shù)值類型到其它數(shù)值類型的轉(zhuǎn)換:當(dāng)從大類型向小類型轉(zhuǎn)換時,存在丟失信息的危險。如果轉(zhuǎn)換的數(shù)值超過其極限;則該數(shù)的第一個字節(jié)將被忽略。

T中的示例:

i:=INT_TO_SINT(4223);(*結(jié)果為127*)

  如果你將整數(shù)4223(十六進(jìn)制為16#107f)作為SINT變量保存,其結(jié)果為127(十六進(jìn)制為16#7f)。

IL中的示例:

LD2

INT_TO_REAL

MUL3.5

4、REAL_TO-/LREAL_TO–轉(zhuǎn)換
  REAL或LREAL類型到其它數(shù)值類型的轉(zhuǎn)換:數(shù)值將向上或向下取整并轉(zhuǎn)換成新的數(shù)據(jù)類型。但變量類型STRING,BOOL,REAL和LREAL除外。當(dāng)從大類型向小類型轉(zhuǎn)換時,存在丟失信息的危險。

  請注意:當(dāng)向字符串變量轉(zhuǎn)換時,保留16個數(shù)據(jù),如果(L)REAL數(shù)據(jù)有更多的數(shù),則第十六個數(shù)將被取整。如果字符串的長度定義為短型,則從右端開始截取。

T中的示例:

i:=REAL_TO_INT(1.5);(*結(jié)果為2*)

j:=REAL_TO_INT(1.4);(*結(jié)果為1*)

IL中的示例:

LD2.7

REAL_TO_INT

GE%MW8

5、TIME_TO-/TIME_OF_DAY–轉(zhuǎn)換
  TIME或TIME_OF_DAY類型到其它類型的轉(zhuǎn)換:時間在內(nèi)部以毫秒單位及DWORD方式處理(對于TIME_OF_DAY變量,用12:00AM起始)。該值將被轉(zhuǎn)換。當(dāng)從大類型向小類型轉(zhuǎn)換時,存在丟失信息的危險。對于字符串類型變量,其結(jié)果為時間常數(shù)。

T中的示例:

tr:=TIME_TO_STRING(T#12ms);(*結(jié)果為'T#12ms'*)

dw:=TIME_TO_DWORD(T#5m);(*結(jié)果為300000*)

i:=TOD_TO_SINT(TOD#00:00:00.012);(*結(jié)果為12*)

6、DATE_TO-/DT_TO–轉(zhuǎn)換
  DATE或DATE_AND_TIME類型到其它類型的轉(zhuǎn)換:時間在內(nèi)部以1970.01.01開始所經(jīng)過的時間,并以秒為單位及DWORD方式處理。該值將被轉(zhuǎn)換。當(dāng)從大類型向小類型轉(zhuǎn)換時,存在丟失信息的危險。對于字符串類型變量,其結(jié)果為日期常數(shù)。

T中的示例:

:=DATE_TO_BOOL(D#1970-01-01);(*結(jié)果為FALSE*)

i:=DATE_TO_INT(D#1970-01-15);(*結(jié)果為29952*)

yt:=DT_TO_BYTE(DT#1970-01-15-05:05:05);(*結(jié)果為129*)

tr:=DT_TO_STRING(DT#1998-02-13-14:20);(*結(jié)果為'DT#1998-02-13-14:20'*)

7、STRING_TO–轉(zhuǎn)換
  TRING類型到其它類型的轉(zhuǎn)換:字符串類型變量中必須包含有效的目標(biāo)變量類型值,否則其轉(zhuǎn)換結(jié)果為零。

T中的示例:

:=STRING_TO_BOOL('TRUE');(*結(jié)果為TRUE*)

w:=STRING_TO_WORD('abc34');(*結(jié)果為0*)

t:=STRING_TO_TIME('T#127ms');(*結(jié)果為T#127ms*)

8、TRUNC(取整)
  從REAL到INT類型轉(zhuǎn)換。數(shù)值的所有部分都將被使用。當(dāng)從大類型向小類型轉(zhuǎn)換時,存在丟失信息的危險。

T中的示例:

i:=TRUNC(1.9);(*結(jié)果為1*).

i:=TRUNC(-1.4);(*結(jié)果為1*).

IL中的示例:

LD2.7

TRUNC

GE%MW8