ABB机器人变量类型转换功能
发布日期:2012-06-09 兰生客服中心 浏览:7808
二、变量类型转换功能
不能直接从“大类型”向“小类型”变量转换。(例如:从INT到BYTE,或从DINT到WORD)。要完成此功能,可以使用特殊功能块实现。作为一种规则,你可以用此功能将一种类型的变量转换成任何需要的类型变量。
句法:
lt;elem.Tpy1>_TO_
1、BOOL_TO_变换
BOOL类型变量到不同类型的变换:对于数值类型变量,操作数为TRUE时,结果为1;操作数为FALSE时,结果为0。对字符串类型变量,其结果分别为‘TRUE’和‘FALSE’。
T中的示例:
i:=BOOL_TO_INT(TRUE);(*结果为1*)
tr:=BOOL_TO_STRING(TRUE);(*结果为'TRUE'*)
t:=BOOL_TO_TIME(TRUE);(*结果为T#1ms*)
tof:=BOOL_TO_TOD(TRUE);(*结果为TOD#00:00:00.001*)
dat:=BOOL_TO_DATE(FALSE);(*结果为D#1970-01-01*)
dandt:=BOOL_TO_DT(TRUE);(*结果为DT#1970-01-01-00:00:01*)
2、TO_BOOL–变换
它类型变量到BOOL的转换:当操作数不为零时,结果为TRUE,当操作数为零时,结果为FALSE;当字符串变量的操作数为’TRUE’时,结果为真,否则,结果为假。
T中的示例:
:=BYTE_TO_BOOL(2#11010101);(*结果为TRUE*)
:=INT_TO_BOOL(0);(*结果为FALSE*)
:=TIME_TO_BOOL(T#5ms);(*结果为TRUE*)
:=STRING_TO_BOOL('TRUE');(*结果为TRUE*)
3、整型数类型之间的转换
整型数值类型到其它数值类型的转换:当从大类型向小类型转换时,存在丢失信息的危险。如果转换的数值超过其极限;则该数的第一个字节将被忽略。
T中的示例:
i:=INT_TO_SINT(4223);(*结果为127*)
如果你将整数4223(十六进制为16#107f)作为SINT变量保存,其结果为127(十六进制为16#7f)。
IL中的示例:
LD2
INT_TO_REAL
MUL3.5
4、REAL_TO-/LREAL_TO–转换
REAL或LREAL类型到其它数值类型的转换:数值将向上或向下取整并转换成新的数据类型。但变量类型STRING,BOOL,REAL和LREAL除外。当从大类型向小类型转换时,存在丢失信息的危险。
请注意:当向字符串变量转换时,保留16个数据,如果(L)REAL数据有更多的数,则第十六个数将被取整。如果字符串的长度定义为短型,则从右端开始截取。
T中的示例:
i:=REAL_TO_INT(1.5);(*结果为2*)
j:=REAL_TO_INT(1.4);(*结果为1*)
IL中的示例:
LD2.7
REAL_TO_INT
GE%MW8
5、TIME_TO-/TIME_OF_DAY–转换
TIME或TIME_OF_DAY类型到其它类型的转换:时间在内部以毫秒单位及DWORD方式处理(对于TIME_OF_DAY变量,用12:00AM起始)。该值将被转换。当从大类型向小类型转换时,存在丢失信息的危险。对于字符串类型变量,其结果为时间常数。
T中的示例:
tr:=TIME_TO_STRING(T#12ms);(*结果为'T#12ms'*)
dw:=TIME_TO_DWORD(T#5m);(*结果为300000*)
i:=TOD_TO_SINT(TOD#00:00:00.012);(*结果为12*)
6、DATE_TO-/DT_TO–转换
DATE或DATE_AND_TIME类型到其它类型的转换:时间在内部以1970.01.01开始所经过的时间,并以秒为单位及DWORD方式处理。该值将被转换。当从大类型向小类型转换时,存在丢失信息的危险。对于字符串类型变量,其结果为日期常数。
T中的示例:
:=DATE_TO_BOOL(D#1970-01-01);(*结果为FALSE*)
i:=DATE_TO_INT(D#1970-01-15);(*结果为29952*)
yt:=DT_TO_BYTE(DT#1970-01-15-05:05:05);(*结果为129*)
tr:=DT_TO_STRING(DT#1998-02-13-14:20);(*结果为'DT#1998-02-13-14:20'*)
7、STRING_TO–转换
TRING类型到其它类型的转换:字符串类型变量中必须包含有效的目标变量类型值,否则其转换结果为零。
T中的示例:
:=STRING_TO_BOOL('TRUE');(*结果为TRUE*)
w:=STRING_TO_WORD('abc34');(*结果为0*)
t:=STRING_TO_TIME('T#127ms');(*结果为T#127ms*)
8、TRUNC(取整)
从REAL到INT类型转换。数值的所有部分都将被使用。当从大类型向小类型转换时,存在丢失信息的危险。
T中的示例:
i:=TRUNC(1.9);(*结果为1*).
i:=TRUNC(-1.4);(*结果为1*).
IL中的示例:
LD2.7
TRUNC
GE%MW8
上一篇:ABB机器人用户定义的数据类型
下一篇:ABB机器人标准数据类型
-
ABB机器人标准数据类型
一、标准数据类型 1、BOOLBOOL类型变量可取值TRUE和FALSE。保留8位内存空间。 2、整型数据类型所有的整型数据类型为: BYTE 字节 WORD 字 DWORD
2012-06-09 -
ABB机器人用户定义的数据类型
三、用户定义的数据类型 1、数组支持一维、二维和三维数组的成员数据类型。数组可在POU的声明部分和全局变量表中定义。 语法: lt;数组名>:ARRAY[..,..]OF ll1,ll2为数组维数的下限标识,ul1和ul2
2012-06-09 -
ABB机器人编程方式
四、编程方式 1、指令表IL 指令表(IL)由一系列指令组成。每条指令都由一个新行开始,包含一个操作符以及和操作符类型相关的一个或多个操作数,并用逗号分开。在指令前可以有标号,后接一个冒号。 注解必须在一行的最后,指令之间可以插入空行
2012-06-09 -
ABB机器人全部运算符及功能
五、CoDeSys中全部运算符及功能名 ST中操作符 IL中操作符 IL中的修饰符 意义 ‘ 字符串分界符(例如:’string1’) [..]
2012-06-25