![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=1739027883-pHqG6ZJqaiIWDSHY5sWwzHLffAFu2uGu-0-95739fb9ff1ac0b33b09334c4005aaff)
(2)例说字节和整数之间的转换指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-74(a)所示。由仿真结果图4-74(b)看出,当I0.0接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d74.jpg?sign=1739027883-7oSaqHNVGcj3BWYcPYDgJzsjn2Nh27i6-0-89a51bc4a619917955337c2b1d8f5300)
图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=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-75(a)所示。由仿真结果图4-75(b)看出,当I0.1接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d75.jpg?sign=1739027883-SXZrw46M4dyAGYAbtn866GtnE9gBFfxC-0-46f6074ef0c775f397fc5302f9b6a3f8)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d751.jpg?sign=1739027883-FdD5vloaooDPxuesfJ3vFFETyFQ1eLNw-0-eed1a7bb1408ad8db7cfcd441be0e821)
图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=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-76(a)所示。由仿真结果图4-76(b)看出,当I0.3接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d76.jpg?sign=1739027883-p41mclIhkXX8M6luOBbzXe5jzrKc0k41-0-b488b68971502cd623e45f0f19e7812c)
图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=1739027883-DvHLaK5f0FjTTxYLjJ5cSzn6DQkfm8FK-0-17764217194ceef87e0fdb1de79efa2b)
(2)例说BCD码与整数的转换指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-77(a)所示。由仿真结果图4-77(b)看出,当I0.2接通时:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d77.jpg?sign=1739027883-INOJvPCZMzOfhHRxtghhA8CGazBHDixv-0-6f5683c5e1e424a758cc7ffae27f9824)
图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=1739027883-IVc88cDFZclzlPxNhieEazKckJS8mptM-0-2565037bda5a2ea49c0edd2dbf5cb1d6)
(2)知识延伸
① 编码 编码器的真值表如表4-61所示。表中,“×”表示取值可能为“1”,也可能为“0”。
表4-61 编码器的真值表
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-61.jpg?sign=1739027883-M4ojecsaLsJKUkPwnJECVI9i3kOAqSOW-0-fcaefb98fe30305c36a9de3d0137923f)
在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=1739027883-i9qMOzEPJP1jTbu92AucB300UFIuZZmJ-0-7a91a5c641ecec8ac942af57d21a1932)
(3)例说编码和译码指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-78(a)所示。由仿真结果图4-78(b)看出:
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d78.jpg?sign=1739027883-8IELPgW4vQeqtDrLUgFqIN28iKzG6pJD-0-2184c1f3cff75b2eaa6b44db404d3b7f)
图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=1739027883-irNNUMRDJg62hqauLGneVSEKoV20QkS4-0-41dde42d3f7776036141f3c074bb2aa0)
(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=1739027883-Z2Dg9fIhBXXQ565kJp1t5vXoW3pU5Kwf-0-96e2d00c3f9214300f5bd4e3c4dcd8ec)
图4-79 数码管及其接法
② 七段码编码 段码指令是将输入字节低4位所表示的16进制字符转换为七段码编码。每个七段显示码占用一字节,用它显示一个字符。
(3)例说指令
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
梯形图如图4-80(a)所示。由仿真结果图4-80(b)看出,输出QB0的执行结果2#01001111便是数字“3”对应的段码。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d80.jpg?sign=1739027883-QYYHlEHDvNtgI1bidrhw6XVFczHqrhPC-0-78c0409e623692bc59b229f8fc9e98ed)
图4-80 段码指令
4.10.5 综合实例
综合实例1——英寸转换为厘米
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0019.jpg?sign=1739027883-UBAoKJcBzTGzPixCWy8bV2KM6QYK1C9E-0-bff3de496b20970a44a13b3f1b204003)
通过计算传送带移动的长度,可以估算传送货物的数量。传送带每移动1英寸,I0.0接通一次,将传送带移动的英寸转换为厘米,1英寸=2.54厘米。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0004.jpg?sign=1739027883-hZ8mTheEWLGvs30SAkP9TFCT2Whr16lV-0-093e23566503127a48226ae1af168855)
元件说明见表4-64。
表4-64 元件说明
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-64.jpg?sign=1739027883-7WELJxM7kOx9F65DF5xRo0gCcASLkh32-0-a2f45030ac8f2af527b2acf58d3ce6f7)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0015.jpg?sign=1739027883-Gvucd47hScAoQVWLniARAX6to9iQXJGK-0-91ccd1d5c665ec6c06dd973c0fca7290)
控制程序如图4-81所示。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d81.jpg?sign=1739027883-KmQsgbkwVa5VyyATlbgj0JUfOqyaed5Q-0-48d6b79d38c5b20178db53beceb9d01a)
图4-81 控制程序
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
对于某些单位之间的转换(如把英寸转换为厘米),由于不是整数的除法,就需要先对数据进行转换,然后才进行单位之间的换算。
① 首先将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=1739027883-VPA739eU9le3wCveQUT2LoiB1es2xmh0-0-3f935d4d2526c9410e6b0f18a5fe4966)
图4-82 范例示意
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0019.jpg?sign=1739027883-UBAoKJcBzTGzPixCWy8bV2KM6QYK1C9E-0-bff3de496b20970a44a13b3f1b204003)
在主持人按下开始抢答按钮I0.4后,主持人台上的绿灯变亮。如果在10s内有人抢答,则数码管显示该组的组号;如果在10s内没有人抢答,则主持人台上的红灯亮起。只有主持人再次复位后才可以进行下一轮抢答。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0004.jpg?sign=1739027883-hZ8mTheEWLGvs30SAkP9TFCT2Whr16lV-0-093e23566503127a48226ae1af168855)
元件说明见表4-65。
表4-65 元件说明
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/b4-65.jpg?sign=1739027883-5RKPfXbDrIvxGWA5G438X8oKPWkXGKTU-0-55dcb2398562b2bcd5944425c6915add)
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0015.jpg?sign=1739027883-Gvucd47hScAoQVWLniARAX6to9iQXJGK-0-91ccd1d5c665ec6c06dd973c0fca7290)
控制程序如图4-83所示。
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/4d83.jpg?sign=1739027883-8gHDEcHFtjkH1zZuZtlHyIsREWxyuHj4-0-267944293ff7559aba03cdc5c29f3de3)
图4-83 控制程序
![](https://epubservercos.yuewen.com/95F10D/21838926108253506/epubprivate/OEBPS/Images/Section0029.jpg?sign=1739027883-9znMLVXhctXLY08YxzGyXD5wg4hIw9Ac-0-f3d90809dd7226220d1fc163c105cde0)
① 当主持人按下开始抢答按钮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,所有的灯都熄灭,开始进行下一轮抢答。
④ 使用数码显示功能使得抢答组号更加直观地展现在观众眼前,将有利于公平比赛。