BCD和整数间的转换——西门子S7系列PLC
2024-02-10  来源:网络或本站原创

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

STEP 7中,整数和长整数是以补码形式表示的。BCD码数值有两种:一种是字(16)格式的BCD码数,其数值范围从-999+999;另一种是双字(32)格式的BCD码数,范围从-9999999+9999999

指令

             

BTI

将累加器1低字中的3BCD码数转换为16位整数

BTD

将累加器1中的7BCD码数转换为32位整数

ITB

将累加器1低字中的16位整数转换为3BCD码数

ITD

将累加器l低字中的16位整数转换为32位整数

DTB

将累加器1中的32位整数转换为7BCD码数

DTR

将累加器1中的32位整数转换为32位浮点数

l       BTI指令

    SLT格式:    BTI

    说明:将累加器1低字中的3BCD码数转换为16位整数,装入累加器1的低字中(0~11位);低字的最高位(15位)为符号位。

          累加器1的高字及累加器2的内容不变。

3.6.1   L  MW 10

           BTI

           T  MW20

l       BTD指令

SLT格式:    BTD

    说明:将累加器1中的7BCD码数转换为32位整数,装入累加器1中,(0~27位);最高位(31位)为符号位。

l       ITB指令

SLT格式:    ITB

说明: 将累加器1低字中的16位整数转换为3BCD码数,16位整数的范围是-999~+999如果欲转换的数据超出范围,则有溢出发生,同时将OVOS位置位。

累加器1的低字中(0~11位)存放三位BCD码。(12~15)位作为符号位,(0000)表示正数,(1111)表示负数。累加器1高字(16~31位)不变。

3.6.2

L  MW 10

           ITB

           T  MW20

 

l       ITD指令

SLT格式:    ITD

说明:  将累加器l低字中的16位整数转换为32位整数,16位整数的范围是-999~+999如果欲转换的数据超出范围,则有溢出发生,同时将OVOS位置位。

累加器1的低字中(0~11位)存放三位BCD码。(12~15)位作为符号位,(0000)表示正数,(1111)表示负数。累加器1高字(16~31位)不变。

3.6.3   L  MW 10

            ITB

            T  MW20

l       DTB指令

SLT格式:    DTB

说明:  将累加器1中的32位整数转换为7BCD码数,32位整数的范围是-9999999~+9999999如果欲转换的数据超出范围,则有溢出发生,同时将OVOS位置位。

累加器1中(0~27位)存放7BCD码。(28~31)位作为符号位,(0000)表示正数,(1111)表示负数。

3.6.4

L  MD 10

           DTB

           T  MD20

l       DTR指令

SLT格式:    DTR

说明:  将累加器1中的32位整数转换为32位浮点数(IEEE-FP

3.6.5

L  MD 10

           DTR

           T  MD20