您现在的位置是:首页 > PLC技术 > PLC技术

S7-300 PLC的数据转换指令

来源:艾特贸易2017-06-04

简介转换指令将累加器 1 中的数据进行类型转换,转换的结果仍在累加器 1 中。能够实现的转换操作有: BCD 码和整数及长整数间的转换,实数和长整数间的转换,数的取反、取负,字节扩

    转换指令将累加器1中的数据进行类型转换,转换的结果仍在累加器1中。能够实现的转换操作有:BCD码和整数及长整数间的转换,实数和长整数间的转换,数的取反、取负,字节扩展等。    STEP 7中,整数和长整数是以补码形式表示的。BCD码数值有两种:一种是字(16)格式的BCD码数,其数值范围从-999+999;另一种是双字(32位)格式的BCD码数,范围从-9999999+9999999    1BCD和整数转换指令    4-13    BCD码及整数转换指令
BCD码及整数转换指令
    (1) BTI指令    说明:将累加器1低字中的3BCD码数转换为16位整数,装入累加器1的低字中(011位);低字的最高位(15位)为符号位,12~14位未用,一般取与符号位相同的数。累加器1的高字的内容不变。指令执行过程如图4-43所示。    (2) BTD指令    说明:将累加器1中的7BCD码数转换为32位整数,装入累加器l中(0~27位);最高位(31位)为符号位,28~ 30位未用,一般取与符号位相同的数。
BTI指令执行过程
    4-43    BTI指令执行过程    在执行BCD码转换为整数或长整数指令时,如果BCD数是无效的(其中的一位值在10~ 15之间),将得不到正确的转换结果,并导致系统出错,有下述之一事件发生:CPU进入STOP状态,“BCD转换错误”信息写入诊断缓冲区;如果OB121已经编程就调用。    (3) ITB指令    说明:将累加器1低字中的16位整数转换为3BCD码数,16位整数的范围是-999~+999。如果欲转换的数据超出范围,则有溢出发生,同时将状态字中的溢出位OV和溢出保持位OS置位。    累加器1的低字中(0~11位)存放三位BCD码。15位作为符号位。累加器1高字(16~ 31位)不变。    [4-12] ITB指令应用,执行过程如图4-44所示。    L    MW 10    ITB    T    MW20
ITB指令执行过程
    4-44      ITB指令执行过程    (4) lTD指令    说明:将累加器1低字中的16位整数转换为32位整数,结果仍在累加器1中,符号位被扩展。    [4-13] ITD指令应用,指令执行过程如图4-45所示。    L    MW 10    T    MW20
ITD指令执行过程
    4-45    ITD指令执行过程    (5) DTB指令    说明:将累加器1中的32位整数转换为7BCD码数。如果欲转换的数据超出范围,则有溢出发生,同时将OVOS置位。    累加器1中(0~27位)存放7BCD码。第31位作为符号位。    [4-14] DTB指令应用,执行过程如图4-46所示。    L    MD 10    DTB    T    MD20
DTB指令执行过程
    4-46      DTB指令执行过程    (6) DTR指令    说明:将累加器1中的32位整数转换为32位浮点数。    [4-15] DTR指令应用,执行过程如图4-47所示。    L    MD 10    DTR    T    MD20
DTR指令执行过程
    4-47     DTR指令执行过程    [4-16] 如果输入I0.0为“1”,则MWO的内容作为3BCD代码(+- 999)读取,并转换成一个整数。其结果保存在MW2中。如果不执行转换(ENO=EN =0),则输出Q4.0为“1”。参考程序如图4-48所示。
BCD码转换成整数
    4-48      BCD码转换成整数    [4-17] 如果输入端I0.0为“1”,则MW0的内容作为整数读人,并转换为一个3BCD码。其结果保存在MW2中。若产生上溢或没有执行指令(I0.0=0),则输出Q4.0为“1”。参考程序如图4-49所示。
整数转换成BCD码
    4-49    整数转换成BCD