【图】西门子s7系列plc中bcd与整数转换指令的用法大全
在西门子S7系列PLC中,转换指令通过操作累加器1来进行不同数据格式之间的转化,例如BCD码与整数、长整数之间的转换,以及实数与长整数之间的转换。转换后的结果仍然保存在累加器1中。支持的功能还包括数值的否定、取反以及字节的扩展。
在S7编程环境中,整数和长整数使用补码表示。BCD码数据有以下两种表示形式:
1. 字(16位)格式:其数值范围为999到+999。
2. 双字(32位)格式:数值范围范围为9999999到+9999999。
支持的转换指令包括:
1. BTI指令:将累加器1低字中的3位BCD码数转换为16位整数,并将结果存入累加器1的低字中(0~11位),高位(15位)被赋予符号位。
2. BTD指令:将累加器1中的7位BCD码数转换为32位整数,结果保存在累加器1的范围内(0~27位),同样高位(31位)为符号位。
3. ITB指令:将累加器1低字中的16位整数转换为3位BCD码数(999~+999)。若转换数据超出范围,则会产生溢出,相应的OV和OS位置标志触发。此外,16位整数范围内的(12~15)位用于标志符号,分别为正数(0000)和负数(1111)。
4. ITD指令:类似于ITB指令,将累加器1低字中的16位整数转换为32位整数,也需处理溢出和OS位置标志的问题。转换数据若超出999到+999的范围,将导致溢出。
5. DTB指令:将累加器1内的32位整数转换为7位BCD码(9999999到+9999999),并将溢出和OS位置标志的更新存储在网络,同时,7位BCD码出现在(0~27)位上,而(28~31)位为符号位。
6. DTR指令:将累加器1中的32位整数转换为IEEE浮点数表示(此种转换需在S7环境执行)。
举例而言,指令:
L MW 10\ 为定义内存位置MW 10并加载值
BTI、BTD、ITB、ITD、DTB、DTR\ 分别应用以上指令进行数据类型转换
T MW20\ 为将转换结果保存到MW 20中
这是PLC指令在应用层面上的直观表示,实际编程中请依据具体应用场景和需求调整对应指令和内存地址。