转换指令是对操作数的类型进行转换,并输出到指定的目标地址中去。西门子 S7-200SMARTPLC的转换指令包括数据类型转换、数据的编码和译码、ASCII码转换等指令。
数据类型转换指令
在S7-200SMARTPLC中的数据类型主要有字节型、整数型、双整数型和实数型,使用了 BCD码、ASCII码、十进制数和十六进制数。不同功能的指令对操作数类型要求不同,许多指令执行前需对操作数进行类型的转换。
数据类型转换主要有 BCD码与整数之间的转换、字节与整数之间的转换、整数与双字整数之间的转换和双字整数与实数的转换等。
(1)BCD码与整数之间的转换
在一些数字系统,如计算机和数字式仪器中,如数码开关设置数据,往往采用二进制码表示十进制数。通常,把用一组四位二进制码来表示一位十进制数的编码方法称为 BCD码。
4位二进制码共有16种组合,可从中选取10种组合来表示0~9这10个数,根据不同的选取方法,可以编制出多种 BCD码,其中8421BCD码Zui为常用。十进制数与8421BCD码的对应关系如表5-10所示。如:十进制数1234化成8421BCD码为0001001000110100。
表5-10 十进制数与8421BCD码对应表
BCD码与整数之间的转换是对无符号操作数进行的,其转换指令如表5-11所示。输入IN 和输出 OUT 的类型为字。
使用 BCDI指令可将IN 端输入的 BCD 码转换成整数,产生结果送入 OUT 指定的变量中。IN 输入的 BCD码范围为0~9999。
使用IBCD指令可将IN 端输入的整数转换成 BCD 码,产生结果送入 OUT 指定的变量中。IN 输入的整数范围为0~9999。
表5-11BCD码与整数之间的转换指令
若为无效BCD码时,特殊标志位SM1.6被置1。输入IN 和输出 OUT 操作数地址zuihao相同,若不相需使用指令:
MOV IN,OUT
BCDI OUT
例5-6 使用BCD码与整数之间的转换指令,将 VW100中的BCD码转换成整数,并存放到 AC0中;将 VW200中的整数转换成BCD码,并存放到 AC1中。其程序如表5-12所示。假设 VW100中的 BCD 为 1001001000110101,执行 BCDI指 令后,转 换 的 整 数为 9235;假设VW200中的整数为5421,执行IBCD指令后,转换的BCD码为0101010000100001。