![西门子PLC从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/666/27126666/b_27126666.jpg)
2.9 数据转换指令
编程时,当实际的数据类型与需要的数据类型不符时,就需要对数据类型进行转换。数据转换指令就是完成这类任务的指令。
数据转换指令将操作数类型转换后,把输出结果存入到指定的目标地址中。数据转换指令包括数据类型转换指令、编码与译码指令以及字符串类型转换指令等。
2.9.1 数据类型转换指令
数据类型转换指令包括字节与字整数间的转换指令、字整数与双字整数间的转换指令、双整数与实数间的转换指令及BCD码与整数间的转换指令。
(1)字节与字整数间的转换指令
① 指令格式 字节与字整数间的转换指令格式如表2-35所示。
表2-35 字节与字整数间的转换指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/38.jpg?sign=1738850307-osdp65fOARk4CXR7TdhdOQJ6mXJM3HLd-0-fc81b9b9688ba476ce7280aad7f9cdd6)
② 应用举例 按下启动按钮,小灯Q0.0和Q0.1会不会点亮?字节与字整数间转换指令举例如图2-88所示。
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/2d88.jpg?sign=1738850307-UKS2JYzcpOL7CQaFg4yrDW5kKBASOtTD-0-47ad3b752c7f8d456e80082347abda2b)
图2-88 字节与字整数间转换指令举例
(2)字整数与双字整数间的转换指令
字整数与双字整数间的转换指令格式如表2-36所示。
表2-36 字整数与双字整数间的转换指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/39.jpg?sign=1738850307-C1BSCmfshi0zQOL6YJhQzo2oVunZ523z-0-99d9aba4de35edea68649f596c76b299)
(3)双整数与实数间的转换指令
① 指令格式 双整数与实数间的转换指令格式如表2-37所示。
表2-37 双整数与实数间的转换指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/40.jpg?sign=1738850307-lbiFory1Du8y7HHt2H5xCR1zeweAc8tL-0-0629016c050852939f9fd76e874b9c99)
② 应用举例 按下启动按钮,小灯Q0.0和Q0.1会不会点亮?双整数与实数间的转换指令实例如图2-89所示。
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/2d89.jpg?sign=1738850307-NnaGmKtqHIzK0UE0SJ1vb6QLLUuiv27n-0-077148dc53f6900330b9cc48d5cb25a6)
图2-89 双整数与实数间的转换指令举例
重点提示
以上转换指令是实现模拟量等复杂计算的基础,读者们需予以重视。
(4)BCD码与整数的转换指令
BCD码与整数的转换指令格式如表2-38所示。
表2-38 BCD码与整数的转换指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/41.jpg?sign=1738850307-l57MaBzhfOM6fBw0ECtMbGRNDgD2LbCx-0-26707a6d0c5a91fce2936d4ed236e0e9)
2.9.2 译码与编码指令
(1)译码与编码指令
① 指令格式 译码与编码指令格式如表2-39所示。
表2-39 译码与编码指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/42.jpg?sign=1738850307-sEpV2Lw4539ohussAgQa4WCYeHQa2KEA-0-b02878de3c765a475795c7bd5df7ccdd)
② 应用举例 按下启动按钮,小灯Q0.0和Q0.1会不会点亮?译码与编码指令举例如图2-90所示。
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/2d90.jpg?sign=1738850307-HO7nSln8q5T4Z75zuGlxvg3G5aV4KCSL-0-787892874bc45d7927d64ea9a40ecabe)
图2-90 译码与编码指令举例
(2)段译码指令
段译码指令将输入字节中16#0~F转换成点亮七段数码管各段代码,并送到输出(OUT)。
① 指令格式 段译码指令的指令格式如图2-91所示。
② 应用举例 编写显示数字3的七段显示码程序,程序设计如图2-92所示。
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/2d91.jpg?sign=1738850307-k9NLvI3pkwtTDR0LevZBic3uIeHHtdML-0-dd3abf90d77b6ff68b5479cedf8d22f2)
图2-91 段译码指令的指令格式
![](https://epubservercos.yuewen.com/F85FDE/15489090305496506/epubprivate/OEBPS/Images/2d92.jpg?sign=1738850307-5hecbFHfZwaMd0WSeQFFIgdmNEBj7aiE-0-610a350197894750d6bcd753b80015af)
图2-92 段译码指令举例
程序解析
按下启动按钮I0.0,SEG指令6传给QB0,除Q0.1外,Q0.0,Q0.2~Q0.6均点亮。