曲靖S7-1200PLC西门子代理商原装现货 曲靖S7-1200PLC,西门子S7-1200plc,西门子PLC代理
西门子S7-300/400整数、浮点数转换指令
西门子S7-300/400的数据形式转换指令I DI、DI R用于16位整数与32位整数、32位整数与浮点数之间的转换;ROUND和TRUNC的作用与意义与S7-200相同,用于对浮点数的小数部位处理;CEIL、FLOOR是当浮点与整数相差很大时的两种不同处理方式。
I_DI指令可以将16位整数转换为32位整数,其实质只是将符号位从原16位整数的bit15移到32位整数的bit31上,其余数据不变或增补0而已。
ROUND指令是将浮点数的小数部分四舍五人转换成双整数;TRUNC指令是将浮点数的小数部分舍去转换成双整数。
由于浮点数的数据表示范围要远远大于双字长整数。当浮点数的值大于整数时,通过CEIL指令,可以将浮点数转换为大于等于该浮点数的*小整数;通过FLOOR指令,可以将浮点数转换为小于等于该浮点数的*大整数。
S7-300/400的数据形式转换指令BCD_I、I_BCD、BCD_DI、DI_BCD用于十六进制数与BCD之间的转换。
编程需要注意以下几点。
a.S7-300/400的BCD数据只能对字、双字长的数据进行,不能用于字节。
b.指令 BCD 1、I BCD用于16位整数与BCD间的转换,由于数据带符号,因此只能转换3位BCD码,BCD数据的范围为-999~ 999。指令BCD_DI、DI_BCD用于32 位整数与BCD间的转换,同样带符号,因此只能转换7位BCD码,BCD数据的范围为-9999999~ 9999999。
c. 16 位整数的BCD存储格式如图3-82所示。
32位整数的BCD存储格式如图3-83所示。
d.当16位、32位整数转换为BCD时,如果出现大于9的十进制数值(如1100等),或者转换后的数值超过了BCD格式允许存储的范围,将出现转换错误,并导致PLC的停止。