VAR
    vf_Test    : REAL;
    vf_LongTest    : LREAL;
    vi_LongNum    : DINT;
    vs_Num    : INT;
END_VAR

    vf_LongTest    := vf_Test;    //将32位REAL数据赋值给64位浮点型数据
    vf_Test    := vf_LongTest;    //将64位数据赋值给32位浮点型数据
    vi_LongNum := vs_Num;    //将16位整型数据赋值给32位整型数据
    vs_Num     := vi_LongNum;    //将32位整型数据赋值给16位整型数据

    这里就需要引入数据类型强制转换概念了。不同数据类型直接进行数据转换,很容易出现数据异常。Codesys编译器在编译的时候,就会提醒我们注意这些情况。这里我们就需要使用数据类型强制转换。下面列举出一些常用的数据类型转换,不常用的就不列举了

语法:<\TYPE1>TO<\TYPE2>

    严禁将“较大的”数据类型隐含地转换为“较小的”数据类型使用,因当从较大数据类型转为较小数据类型时,有可能丢失信息。

    如被转换的值超出目标数据类型的存储范围,则这个数的高字节将被忽略。

例:将INT 类型转     换为BYTE 类型,或将DINT 类型转换为WORD 类型。     _TO_STRING 的转换中,字符串是从左边开始生成的。如果定义的字符串长度小于的长度,右边部分会被截去。

BOOL_TO_<\TYPE> 布尔类型转换数据

功能:把布尔数据类型转换为其它数据类型。     支持数据类型 :BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、DT 和STRING。

    输出为数字类型时 :如果输入是TRUE,则输出为1。如果输入是FALSE,则输出为0。输出为字符串类型时 :如果输入是TRUE,则输出字符串'TRUE'。如果输入是FALSE,则输出为字符串'FALSE'。

例子: i:=BOOL_TO_INT(TRUE);则i = 1; t:=BOOL_TO_TIME(TRUE);则t = T#1ms;

BYTE_TO_<\TYPE> 字节类型转换数据

    功能:把字节类型转换为其它数据类型。     支持数据类型:BOOL、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、DT 和STRING。

    输出为BOOL 时 :输入不等于0 时,输出为TRUE。输入等于0 时,输出为FALSE。输出为TIME 或TOD 时 :输入将以毫秒值进行转换。输出为DATE 或DT 时 :输入将以秒值进行转换。

例子: bVarbool:= BYTE_TO_BOOL(255); 所以bVarbool:= TRUE; iVarint:= BYTE_TO_INT(255); 所以iVarint := 255 tVartime:= BYTE_TO_TIME(255); 所以tVartime:= T#255ms

<\整型数据> _TO_<\TYPE>整数类型转换指令

    功能:把整数类型数据转换为其它数据类型。     支持数据类型:BOOL、BYTE、SINT、WORD、DWORD、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、DT 和STRING。  输出为BOOL 时:输入不等于0 时,输出为TRUE。输入等于0 时,输出为FALSE。()  输出为TIME 或TOD 时,输入将以毫秒值进行转换。  输出为DATE 或DT 时 :输入将以秒值进行转换。

REAL_TO_<\TYPE>实数类型转换指令

    功能:把浮点数转换为其它类型数据。把浮点数转换为其它类型数据时,先将值四舍五入成整数值,然后转成新的量类型。     支持数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、DT 和STRING。  输出为BOOL 时:输入不等于0 时,输出为TRUE。输入等于0 时,输出为FALSE。  输出为TIME 或TOD 时:输入将以毫秒值进行转换。  输出为DATE 或DT 时 :输入将以秒值进行转换。

例子: iVarsint:= REAL_TO_INT(1.5);输出值iVarsint:=2;

TIME_TO_ 时间类型转换指令

    功能:把时间型数据转换为其它类型数据,时间在内部以毫秒为单位存储成DWORD 类型(对于TIME_OF_DAY 变量从凌晨00:00 开始)。     支持数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、DT 和STRING。  输出为BOOL 时:输入不等于0 时,输出为TRUE。输入等于0 时,输出为FALSE。

Copyright © www.yanjuntech.cn 2018-2025 all right reserved,powered by Gitbook该文件修订时间: 2019-03-30 13:50:32

results matching ""

    No results matching ""