S7-200 SMART中的主要数据类型包括字节、整数、双整数和实数。主要数制有BCD 码、ASCII码、十进制和十六进制等。不同指令对操作数的类型要求不同,因此在指令使用前需要将操作数转化成相应的类型,数据转换指令可以完成这样的功能。数据转换指令包括:数据类型之间的转换、数制之间的转换和数据与码制之间的转换、段码指令、解码与编 码指令等。转换指令的梯形图及语句表如表4-13所示。
(1) BCD码转换成整数指令
BCD码转换成整数指令是将输入BCD码形式的数据转换成整数类型,并且将结果存到输出指定的变量中。输入BCD码数据有效范围为0〜9 999。该指令输入和输出的数据类型均为字型。
(2) 整数转换成BCD码指令
整数转换成BCD码指令是将输入整数类型的数据转换成BCD码形式的数据,并且将结果存到输出指定的变量中。输入整数类型数据的有效范围是0〜9 999。该指令输入和输出的 数据类型均为字型。
(3) 字节转换成整数指令
字节转换成整数指令是将输入字节型数据转换成整数型,并且将结果存到输出指定的变量中。字节型数据是无符号的,所以没有符号扩展位。
(4) 整数转换成字节指令
整数转换成字节指令是将输入整数转换成字节型,并且将结果存到输岀指定的变量中。只有0〜255之间的输入数据才能被转换,超出字节范围会产生溢出。
(5) 整数转换成双整数指令
整数转换成双整数指令是将输入整数转换成双整数类型,并且将结果存到输出指定的变量中。
(6) 双整数转换成整数指令
双整数转换成整数指令是将输入双整数转换成整数类型,并且将结果存到输出指定的变量中。输出数据如果超出整数范围则产生溢出。
(7) 双整数转换成实数指令
双整数转换成实数指令是将输入32位有符号整数转换成32位实数,并且将结果存到输出指定的变量中。
(8) 取整指令
取整指令是将32位实数值IN转换为双精度整数值,并将取整后的结果存入分配给 OUT的地址中。如果小数部分大于或等于0.5,该实数值将进位。
(9) 截断指令
截断指令是将32位实数值IN转换为双精度整数值,并将结果存入分配给OUT的地址 中。只有转换了实数的整数部分之后,才会丢弃小数部分。
(10) 段码指令
段(Segment)码指令SEG将输入字节(IN)的低4位确定的十六进制数(16#0〜 16#F)转换,生成点亮七段数码管各段的代码,并送到输出字节(OUT)指定的变量中。七段数码管上的a〜g段分别对应于输出字节的最低位(第0位)〜第6位,某段应点亮时输 出字节中对应的位为1,反之为0。代码转换表如表4-14所示。
【例4-4】段码指令的应用(如图4-8所示)。
(11)解码与编码指令
解码(Decode,或称为译码)指令DECO根据输入字节IN的最低4位表示的位号,将 输出字OUT对应的位置位为1,输出字的其他位均为0。
编码(Encode)指令ENCO将输入字IN中的最低有效位(有效位的值为1)的位编号 写入输出字节OUT的最低4位。
注意:如果要转换的值不是有效的实数值,或者该值过大而无法在输出中表示,则溢出 位将置位,且输出不受影响。转换指令的操作数范围如表4-15所示。
知识点词条:转换指令