水电电工知识
电工知识|如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355
2016-01-13  浏览:45
水电之家讯:如何在plc里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355,正是目前PLC自身不能解决的问题,以西门子S7-200为例,该PLC内的存储器存储整数的最小单元为字节,2个字节组成一个字,2个字构成一个双字,双字即为PLC存储整数的最大的存储单元。PLC对字节定义为无符号数,即字节可传递显示16进制数0~FF(即10进制数0~255),而对于字与双子存储器定义为有符号数,即:其最高位定义为存储数的符号位,当最高位=0时表示为此数为正数,当最高位=1时表示此数为负数。如将16进制正数“16#9673”送入MW0,MW0的各位值为:1001_0110_0111_0011,由于其最高位M0.7=1,故在监视状态下,MW0显示的不是正数38755,而是负数-26781。见下图:

本来是正数存入存储器里,可是存储器显示的数却变成负数,如对次数进行加减乘除运算,也是按负数进行,这给数据监视及对数据计算整理带来极大的不便。

如何解决字与双字在存储的数其最高位=1时,在监视状态下能显示其正数值而不出现负数值呢?请见以下解析:

1、对于最高位=1的字存储器,要使它不显示负数,可将它传递给双字存储器。用双字存储器显示其存数值即可解决显示正数值而不会显示负值。即:令该字的上一个字存储器=0,如:MW2=16#9763,可令MW0=0,监视MD0双字存储器,其MD0的显示值即为正数值,见下图中的MOV_DW的显示值。

2、对于最高位=1的双字存储器,由于PLC无四字存储器,故不能采用上述1的方法来实现正数显示,但可以采用下面的思路编程来实现:

用二个存储器(一个双字与一个单字)分别显示该数的前后二部分数字:用双字存储器显示该数百位以上的部分数值,用单字存储器显示该书的十位与个位2为数值。将这二个存储器数字串联相接的数字,即为该数转换为10进制数的正数值。举例:一个16进制数转换为10进制数,将转换后的数的百位以上的数字部分送入双子存储器内,其值为:35711513;而转换为10进制数的百位以下的数字部分送入单子存储器内,其值为:55。则该16进制数转换为10进制的数为:3571151355。

编程思路:1、将16进制的双字正数送入MD1,其MD0值=MD1数÷256(即16#100)。再将MD0÷100×256——>VD0,则VD0值即为MD1÷100的整数部分,将它转换为10进制数送入VD0,则VD0就不会显示负值,而且此VD0值的最小单位值1为10进制数的百位数(即=100)。MD0÷100的余数部分加上MD1的最低字节(MB4)值—>MW4,再进行这样整理:MW4-100>0则VD0+1,直到MW4<100为止。此时的VD0值为原MD1数转换为10进制的百位以上的数字部分,而MW4值为原MD1数转换为10进制的百位以下的十位与个位的数字部分。

将双字单元的16进制数转换为无符号的10进制数的程序


下面是将双字的十六进制数DW#16#D4DB71FB送入MD1,按上面程序运行,在监视状态下,转换成无符号的正数(见网络6中的VD0与VW4),


即:MD1=16#D4DB71FB=3571151355

VD0*100+VW4=3571513×100+55=3571151355

对于最高位=0的双字数,带入上程序,运行结果也是正确的,见下图:


即:MD1=16#74DB71FB=1960538619

VD0*100+VW4=19605386×100+19=1960538619

对于最高位=0的数可不用运行上述编程,直接用MD1->VD1,其VD1即可在监控下显示10进制数值,故可将原网络6改为下面2条编程语句(见下图):在最高位=0时,其M1.7=0,故网络6运行,其VD1值即为10进制的转换值。在最高位=1时,其M1.7=1,故网络7运行,其VD0与VW4值串联相接值即为10进制的转换值。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 电工 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved