![PLC编程及案例手册](https://wfqqreader-1252317822.image.myqcloud.com/cover/804/41806804/b_41806804.jpg)
4.10 数据转换指令
4.10.1 数据类型转换指令
(1)数据类型转换指令格式和功能
数据类型转换指令格式和功能如表4-58所示。
表4-58 数据类型转换指令格式和功能
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-58.jpg?sign=1739591747-gMoObaunF5yDdZkbgs9h0AswjJiL15Vk-0-0316c70637f17498ee2d3d746eee50ed)
(2)例说字节和整数之间的转换指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-74(a)所示。由仿真结果图4-74(b)看出,当I0.0接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d74.jpg?sign=1739591747-bN1orCU3GcSYxQtnhxjsNqcotRoHQiBh-0-cf933f33ce2cce08a7a08d736e58928c)
图4-74 字节和整数之间的转换指令
① B_I指令将数据类型为字节的55转换为整数55,存入VW0中。
② I_B指令将整数155转换为数据类型为字节的155,存入VB2中。
③ 由于I_B指令IN的数据取值范围为0~255,当输入IN为300时,则无法转换,指令框显示红色。
(3)例说整数与双整数、双整数和实数之间的转换
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-75(a)所示。由仿真结果图4-75(b)看出,当I0.1接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d75.jpg?sign=1739591747-2whOLPwuixmKDACVV3uMKQEu4vRQQ2Wo-0-c589e3595a67de9a5c7cd33b8d6b97f1)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d751.jpg?sign=1739591747-RHwrscyOJsdCQlkWvvtPYOIrTqk0AZGd-0-b5080e7f516802bcdbd74fe28bbe8855)
图4-75 整数与双整数、双整数和实数之间的转换指令
① I_DI指令将整数5678转换为双整数5678,存入VD0中。
② DI_I指令将双整数1234转换为整数1234,存入VW4中。
③ DI_R指令将双整数1234567890转换为实数1.2345678×109,存入VD6中。
(4)例说四舍五入指令和取整指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-76(a)所示。由仿真结果图4-76(b)看出,当I0.3接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d76.jpg?sign=1739591747-rmYPBmhYPiV37CJYjRDplkkcAzRaPUoa-0-77d5ed40d3858a0c2a8065d8a8f05a16)
图4-76 四舍五入指令和取整指令
① ROUND指令将实数25.667的小数部分按照四舍五入的规则转换为双整数26,存入VD0中。
② TRUNC指令将实数25.667的小数部分按照舍去的规则转换为双整数25,存入VD4中。
4.10.2 BCD码与整数的转换指令
(1)BCD码与整数的转换指令格式和功能
BCD码与整数的转换指令格式和功能如表4-59所示。
表4-59 BCD码与整数的转换指令格式和功能
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-59.jpg?sign=1739591747-YDlaxsys471dlV3LU0UxIOIjkfNqkUWC-0-123d405b92c4faa5702116d1b1325a5c)
(2)例说BCD码与整数的转换指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-77(a)所示。由仿真结果图4-77(b)看出,当I0.2接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d77.jpg?sign=1739591747-mpbAZKMHa9mTGLaWkfqW6dXEpJIWFXZf-0-d7982858b5872f61e3c9b5935f9611a8)
图4-77 BCD码与整数的转换指令
①BCD_I指令将十六进制数16#45转换为十进制整数45,存入VW0中。
由于BCD码是一种用四位二进制数表示一位十进制数的代码,十六进制表示的BCD码16#45对应的二进制形式为2#0100 0101,将每四位化为十进制数则为十进制整数45。
②I_BCD指令将十进制整数3456转换为BCD码16#3456,存入VW2中。
对于十进制整数3456,将十进制的每一位数字换为对应的二进制数,则BCD码为2#0011 0100 0101 0110,化为十六进制便为16#3456。
4.10.3 译码与编码指令
(1)译码与编码指令格式和功能
译码与编码指令格式和功能如表4-60所示。
表4-60 译码与编码指令格式和功能
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-60.jpg?sign=1739591747-51lAmHNav9jgZvWOYxgmz8ypjfXsN3ru-0-9507dda4c692aa554f75e4bbf52a45a1)
(2)知识延伸
① 编码 编码器的真值表如表4-61所示。表中,“×”表示取值可能为“1”,也可能为“0”。
表4-61 编码器的真值表
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-61.jpg?sign=1739591747-2ahftGCejB7W8M7SI5rFAJJ9uSlW2JpV-0-aba8f2f40baccc12771375efc1b740bc)
在16位输入中,从低位到高位找到第一个取值为“1”的单元,将其位号按照“8421”的权值,编制成二进制代码,从OUT的低4位输出。
② 译码 译码器的真值表如表4-62所示,将输入的低4位按照“8421”的权值,翻译成输出OUT的位号,并将此位的值置为“1”,其余的置为“0”。
表4-62 译码器的真值表
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-62.jpg?sign=1739591747-PFEldNaHtgYSZWfZ37Ws8vU2RiAJxzHZ-0-0f1b9f96b8fabb86326c18da1eba2cde)
(3)例说编码和译码指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-78(a)所示。由仿真结果图4-78(b)看出:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d78.jpg?sign=1739591747-YoqC6GOHJEuG8wVLBrC4Vk1NWY363IEo-0-63b4853c9b63afacc461575b837f6b49)
图4-78 编码和译码指令
①ENCO指令中,输入16#FE80化为二进制数为2#1111 1110 1000 0000,在16位输入中,从低位到高位第一个取值为“1”的单元位号为7,故VB0的低4位V0.0~V0.3输出为0111,即为“7”。
②DECO指令中,输入的低4位为0101,即“5”,则将输出OUT的位号为5的单元V0.5置为“1”,其余的置为“0”。故输出为16#0020。
4.10.4 段码指令
(1)段码指令格式和功能
段码指令格式和功能如表4-63所示。
表4-63 段码指令格式和功能
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-63.jpg?sign=1739591747-ceDu3HWA991Fvgb5HvKLqMgbSRbjxxLO-0-c8af474acee092de8d8c8d5d3704abea)
(2)段码
① 数码管 图4-79(a)所示为一个数码管,是由8个发光二极管构成。其中,有1个作为小数点,7个(a、b、c、d、e、f、g)构成数码管的七段码,这8个发光二极管的阴极相连并接地,被称为共阴极接法,如图4-79(b)。当发光二极管的阳极接入1时,对应的发光二极管将会发光,因此,不同发光二极管发光,将使数码管显示不同的字形,这便是七段码编码。例如令a、b、c、d、e、f段阳极接1,g段阳极接0,则会显示“0”。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d79.jpg?sign=1739591747-GwyYBL5MTFQ9c5JsxC5hY8LenjjCPBJk-0-1608d47ccb2539eec75270000eb0266d)
图4-79 数码管及其接法
② 七段码编码 段码指令是将输入字节低4位所表示的16进制字符转换为七段码编码。每个七段显示码占用一字节,用它显示一个字符。
(3)例说指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
梯形图如图4-80(a)所示。由仿真结果图4-80(b)看出,输出QB0的执行结果2#01001111便是数字“3”对应的段码。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d80.jpg?sign=1739591747-u0vP3MpOchfdHFWRncQ4SP6y4CskzjCS-0-4fd065f02455059cd59956001a88a582)
图4-80 段码指令
4.10.5 综合实例
综合实例1——英寸转换为厘米
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0019.jpg?sign=1739591747-fGOOmdvyhboM0UzMyl8wo1Kz7r0QhHr2-0-f4b3173df731e8ac32c40983d5e28e44)
通过计算传送带移动的长度,可以估算传送货物的数量。传送带每移动1英寸,I0.0接通一次,将传送带移动的英寸转换为厘米,1英寸=2.54厘米。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0004.jpg?sign=1739591747-RcchbdP0eG2qtI436njKlr46kOPHEc9m-0-7318f85f97ab50d9a960592d54c3a455)
元件说明见表4-64。
表4-64 元件说明
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-64.jpg?sign=1739591747-LxiEdZWqpPQFjLKQsNb4n5KMaHQYAyZX-0-229aad83fc74f2fe2827cb47d3bf096e)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0015.jpg?sign=1739591747-go3s1HiVLjhgRz080isAe5UBRUBulXzP-0-605726b24d3ce721a3135da061f761be)
控制程序如图4-81所示。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d81.jpg?sign=1739591747-Agy83gZdZ4OYtrePkqX8M9IKUS6Uepdc-0-b8f034f6679893ee2bbd954e12140b31)
图4-81 控制程序
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
对于某些单位之间的转换(如把英寸转换为厘米),由于不是整数的除法,就需要先对数据进行转换,然后才进行单位之间的换算。
① 首先将2.54存入VD4。
② 传送带每经过1英寸,I0.0闭合一次,计数器C10的当前值加1。
③ 按下换算按钮I0.1,则将计数器中要转换的数值(英寸)载入AC1,并将数值转换为实数存入VD0,VD0中的数值乘以VD4中的2.54后转换为厘米,并将结果存入VD8中,最后,利用四舍五入将结果取整,存入VD12,同时M0.0得电,将计数器清零。
④ 按下复位按钮I0.2,M0.0失电,当传送带运行时,计数器又可以重新计数。
综合实例2——权限相同普通三组带数码管显示的抢答器
范例示意如图4-82所示。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d82.jpg?sign=1739591747-q76rokvYGpmaIBkQHiH33eUedlqQrvEr-0-bb39b27ff17e7de13bad57e7db43adea)
图4-82 范例示意
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0019.jpg?sign=1739591747-fGOOmdvyhboM0UzMyl8wo1Kz7r0QhHr2-0-f4b3173df731e8ac32c40983d5e28e44)
在主持人按下开始抢答按钮I0.4后,主持人台上的绿灯变亮。如果在10s内有人抢答,则数码管显示该组的组号;如果在10s内没有人抢答,则主持人台上的红灯亮起。只有主持人再次复位后才可以进行下一轮抢答。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0004.jpg?sign=1739591747-RcchbdP0eG2qtI436njKlr46kOPHEc9m-0-7318f85f97ab50d9a960592d54c3a455)
元件说明见表4-65。
表4-65 元件说明
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-65.jpg?sign=1739591747-oKJzA6tSE6gSAQm5sEPE902rUtUtlom2-0-e8c8e35a608956c7db055aa7ee4b3ae4)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0015.jpg?sign=1739591747-go3s1HiVLjhgRz080isAe5UBRUBulXzP-0-605726b24d3ce721a3135da061f761be)
控制程序如图4-83所示。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d83.jpg?sign=1739591747-k6oG5Gz7ke18ivmxkkFUbA8ONXbky0S7-0-8b8467ef0d55288549b8b3f23b3c6123)
图4-83 控制程序
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739591747-EzUF6VVNuBtK12JzsBbUo3NfRm9Sr3tI-0-1daa6e8009681a30a89fbcb4dff6469d)
① 当主持人按下开始抢答按钮I0.4时,I0.4=ON,定时器T37开始计时,Q1.1得电,并自锁,主持人台上的绿灯即开始抢答指示灯亮,若在10s内第一组按下抢答按钮,则I0.0=ON,M0.1得电并自锁,同时M0.1常闭触点断开,则二、三两组抢答器失效,数码管显示“1”(二组或三组抢答成功的两种情况数码管将分别显示“2”或“3”)。
② 若10s内三个组都没有抢答,则达到定时器T37的预设值,T37=ON,T37的常闭触点断开,Q1.0=ON,主持人台上的红灯即撤销抢答指示灯亮,则此时M0.1、M0.2、M0.3不再有机会得电,失去抢答机会。
③ 当主持人按下复位按钮I0.3时,I0.3=ON,所有的灯都熄灭,开始进行下一轮抢答。
④ 使用数码显示功能使得抢答组号更加直观地展现在观众眼前,将有利于公平比赛。