首页 理论教育实数、BCD码之间的转换及指令示例

实数、BCD码之间的转换及指令示例

【摘要】:图8-15 频率转模拟量隔离器接线原理图图5-60 转换指令集1.整数与实数之间的转换32位的双整数可以直接转换为实数。16位的BCD码可以与整数相互转换,数值范围-999~+999;32位的BCD码可以与双整数相互转换,数值范围-9999999~+9999999。BCD码与整数的转换指令如图5-62所示。I_BCD指令输入端的数据如果超出允许的数值范围-999~+999,则转换不被执行,输入端的数据直接送入输出端。

在控制程序中,有时对数据进行处理时为了与指令的类型相匹配,需要对数据的类型作相应的转换。转换指令集如图5-60所示。

978-7-111-35042-2-Chapter05-83.jpg

图5-60 转换指令集

1.整数与实数之间的转换

32位的双整数可以直接转换为实数。16位的整数必须先转换为32位的双整数,再转换为实数。

实数转换为双整数的指令有:

①ROUND:4舍6入5取偶(使结果为偶数)。

②TRUNC:舍小数取整。

③CEIL:向上取整。

④FLOOR:向下取整(注意:对于负数与TRUNC指令的结果是不同的)。

整数与实数的转换指令的应用如图5-61所示。

978-7-111-35042-2-Chapter05-84.jpg

图5-61 整数与实数的转换指令

①I_DI:整数转换为双整数。

②DI_R:双整数转换为实数。

③ROUND:实数转换为双整数,4舍6入5取偶。

注意:

数据源地址和目的地址要与数据类型相匹配。

2.BCD码与整数之间的转换

有时外设数据的输入格式为BCD码,在控制程序中作数据处理时需要转换为整数或实数类型。16位的BCD码可以与整数相互转换,数值范围-999~+999;32位的BCD码可以与双整数相互转换,数值范围-9999999~+9999999。BCD码与整数的转换指令如图5-62所示。

978-7-111-35042-2-Chapter05-85.jpg

图5-62 BCD码与整数的转换指令

注意:

BCD_I指令输入端的数据类型必须为BCD码,否则将引发BCD码转换错误,导致CPU停机故障。

I_BCD指令输入端的数据如果超出允许的数值范围-999~+999,则转换不被执行,输入端的数据直接送入输出端。