如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

时间:2023-03-16作者:佚名
如何在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。见下图:

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

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

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

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

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

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

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

编程思路: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进制数的程序

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

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

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

即:MD1 = 16#D4DB71FB = 3571151355

VD0*100 VW4=3571513×100 55 = 3571151355

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

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

即: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进制的转换值。

如何在PLC里将双字的十六进制数DW#16#D4DB71FB换成无符号的数3571151355

相关阅读

如何快速提高电器检修技能

对初学者来说,电器检修有一定难度,但是只要掌握学习检修技能的窍门,入门并不难,学成也是可以做到的。通常可以通过以下几条途径提高检修技能: (1)向书本学习。学习检修电器...
2023-03-21

傻傻分不清电路?专业电气学姐为你全方面解读(十三)

关于复杂电路的求解,前两次所讲的支路电流法和网孔电流法都是关于电流的,那么,有没有利用电压来列方程求解的呢?显然是有的,那就是 节点电位法 ,又称 结点电压法 。 在《...
2023-06-27
傻傻分不清电路?专业电气学姐为你全方面解读(十三)

装修时水电布线非要横平竖直?明明两点一线更省材料!

有很多网友在我们公众号后台留言说,自己家装修在水电布线阶段了,但他们发现装修工人给他布线都是横平竖直。这样不是距离更长?浪费材料啊?也有人家是点对点来布线,这样子...
2023-06-11
装修时水电布线非要横平竖直?明明两点一线更省材料!

输电线路防雷的具体措施

本文分析了雷击产生的原因,直击雷之反击雷过电压与绕击雷过电压的区别,介绍了输电线路的防雷措施,提供了输电线路的七项防雷措施,有需要的朋友参考下。 输电线路防雷技术措...
2024-03-18

焊接数控系统 小型PLC 通用伺服系统方案

  某工厂的电池焊接生产线布置 如图1-1所示,工作要求如下:   图1-1 焊接生产线   1) 电池焊接生产线配置10个焊接工作台。每个工作台均为小型龙门结构,各自都有4个运动轴,...
2023-06-27
焊接数控系统 小型PLC 通用伺服系统方案

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

欧普照明led灯泡e27/e14大小螺口超亮家用节能灯螺旋暖白光球泡

欧普照明LED灯泡,适用于E27和E14两种常见螺口,是您家用照明的理想选择。这款灯泡采用先进LED技术,亮度超群,瞬间点亮,无需等待,为您提供明亮舒适的光环境。同时,它节能环...
3.59

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目