S7-200数据形式的转换
发布于2023-01-03 14:29
18
2
标签:S7-200
S7-200转换指令中的BCD_I、I_BCD、B_I、I_B、I DI、DI_I、DI_R、ROUND、TRUNC只是数据形式间的转换,梯形图编程相似,如将BCD 数据(十进制数据)3456转换为整数(十六进制数据)的程序格式如图3-76所示。
指令编程时需要注意以下几点。
a.数据范围。当数据形式进行转换时,无论是被转换数据还是转换结果,都不能超过指令格式规定的范围,具体如下:
字节数据的字长为二进制8位,数据范围为0~255;
整数数据的字长为二进制16位(带符号),数据范围为-32768~32767;BCD数据的字长为二进制16位(带符号),数据范围为0000~9999;双整数的字长为二进制32位,数据范围为-2147483648~2147483647。例如:整数转换为字节的I B指令,整数取值范围不能超过255等。
b.符号位。当整数转换为双整数时,整数的最高位(bit15)符号位转换为双整数后被移到双整数的最高位(bit32),反之亦然。而字节数据、BCD数据均无符号位,不能使用带符号的数据。
c.小数的处理。整数、双整数为无小数点的数据,而浮点数可以带小数点。因此,当浮点数转换为整数或双整数时,必须对小数后的数据进行必要的处理。使用指令 ROUND,可以对小数位进行四舍五人处理;使用指令TRUNC,可以直接舍去小数位。
例如:执行ROUND指令后,数据123456.789将成为123457;执行ROUND指令后,数据123456.785讲成为123456。