数据转换指令将累加器1中的数据进行数据类型的转换,转换的结果仍然在累加器1。数据转换指令见表3-9。
1.BCD码
BCD码是二进制编码的十进制数的缩写,用4位二进制数表示一位十进制数(见表3-5),每位的数值范围为2#0000~2#1001,对应于十进制数0~9。
BCD码的最高4位二进制数用来表示符号,负数的最高位为1,正数为0,其余3位可取0或1。16位BCD码字的范围为-999~+999,32位BCD码双字的范围为-9999999~+9999999。BCD码各位之间的关系是逢十进一,图3-72中的BCD码为-862,图3-73是7位BCD码的格式。
图3-72 3位BCD码的格式
图3-73 7位BCD码的格式
拨码开关(见图3-74)的圆盘圆周面上有0~9这10个数字,用按钮来增、减各位要输入的数字。它用内部的硬件将10个数字转换为4位二进制数。PLC用输入点读取的多位拨码开关的输出值就是BCD码,需要用数据转换指令将它转换为整数(或双整数)。
用PLC的4个输出点给译码驱动芯片4547提供输入信号(见图3-75),可以用LED七段显示器显示一位十进制数。需要用数据转换指令,将PLC中的整数或双整数转换为BCD码,然后分别送给各个译码驱动芯片。
图3-74 拨码开关
图3-75 LED七段显示器电路
表3-9 数据转换指令
浮点数转换为双整数有4条指令,它们将浮点数转换为32位双整数。使用得最多的是四舍五入的ROUND指令,CEIL和FLOOR指令用得很少。
2.BCD码与整数相互转换的仿真实验
打开OB1,执行菜单命令“视图”→“LAD”,切换到梯形图语言,输入图3-76和图3-77中的梯形图程序。
用鼠标右键单击SIMATIC管理器左边窗口中的“块”,执行出现的快捷菜单中的命令“插入新对象”→“变量表”,生成变量表VAT_1(见图3-78)。显示格式HEX和DEC分别是十六进制数和十进制数。
图3-76 BCD码转换为整数
(www.xing528.com)
图3-77 整数转换为BCD码
打开PLCSIM,将OB1下载到仿真PLC,将仿真PLC切换到RUN-P模式。打开OB1,单击工具栏上的按钮,起动程序状态监控功能。
在变量表第1行的“修改数值”列输入十六进制数W#16#8123(从拨码开关读取的BCD码),二进制数的最高位(符号位)为1,表示负数。单击工具栏上的按钮,“修改数值”被写入PLC内的MW2,并在“状态值”列显示出来。图3-76中的指令将它转换为十进制数-123。
将MW2中的数分别修改为W#16#F123(最高4位二进制数均为1)和W#16#0123,观察转换后的MW4中的十进制数。
图3-78 变量表
在变量表第3行的“修改数值”列输入十进制数-456,单击工具栏上的“激活修改数值”按钮,“修改数值”被写入PLC内的MW6。图3-77中的指令将它转换为BCD码W#16#f456。二进制数的最高4位均为1,表示该数是负数。
将MW6中的数修改为456,观察转换后的MW8中的BCD码。
执行菜单命令“视图”→“STL”,切换到语句表语言,观察图3-76和图3-77对应的语句表程序。
3.BCD码转换的仿真练习
将图3-76和图3-77中的程序修改为BCD码与双字的转换指令,修改变量表中的地址。
打开PLCSIM,将修改后的程序下载到仿真PLC,将仿真PLC切换到RUN-P模式。用变量表设置指令的输入值,观察转换后的结果是否正确。
4.压力计算程序中的数据转换
压力变送器的量程为0~10MPa,输出信号为4~20mA,模拟量输入模块的量程为4~20mA,转换后的数字量为0~27648,设转换后的数字为N,以kPa为单位的压力值的转换公式为
P=(10000×N)/27648=0.36169×N (kPa) (3-1)
来自AI模块的PIW320的原始数据为16位整数,首先用I_DI指令将整数转换为双整数,然后用DI_R指令转换为实数(Real),再用实数乘法指令MUL_R完成式(3-1)的运算(见图3-79)。最后用四舍五入的ROUND指令,将运算结果转换为以kPa为单位的整数。
打开PLCSIM,将程序下载到仿真PLC,将仿真PLC切换到RUN-P模式。将0和27648分别输入PIW320,观察MD24中的计算结果是否是0和10000 kPa。将0~27648之间的任意数值输入PIW320,观察计算结果是否与计算器计算的相同。
指令ROUND的运算结果为双字,但是由式(3-1)可知最终的运算结果实际上不会超过一个字,保存运算结果的MD20的高位字MW20的值为0,运算结果的有效部分在低位字MW22中。观察MW20和MW22的值,验证上述结论是否正确。
5.数据转换指令的仿真练习
半径(小于1000的整数)在MW10中,圆周率为3.14159,用浮点数运算指令计算圆的周长,将运算结果转换为整数,存放在MW14中。将程序输入到OB1后下载到仿真PLC,调试程序直到满足要求。
图3-79 使用浮点数运算指令的压力测量值计算程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。