如何在PLC里将有符号数转换成无符号数

时间: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里将有符号数转换成无符号数

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

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

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

如何在PLC里将有符号数转换成无符号数

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里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

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

如何在PLC里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

即:MD1 = 16#D4DB71FB = 3571151355

VD0*100 VW4=3571513×100 55 = 3571151355

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

如何在PLC里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

如何在PLC里将有符号数转换成无符号数

即: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里将有符号数转换成无符号数

相关阅读

一文看懂直流电磁铁线圈电流大小的计算方法

本文介绍了直流电磁铁线圈电流的计算方法,励磁线圈加直流电压,包括线圈电流与电磁吸力的计算方法,衔铁吸合过程中电流不变,衔铁吸合过程中吸力不断增强,下面具体来看下。...
2023-06-26
一文看懂直流电磁铁线圈电流大小的计算方法

电动机控制设备故障及处理实例(三)

实例八 用交流接触器控制,接线无问题,启动后电动机嗡嗡作响。 一台三相交流异步电动机用交流接触器控制,接线无问题,启动后嗡嗡响,用钳型电流表测量电流,两相电流明显增...
2023-06-13
电动机控制设备故障及处理实例(三)

电工最危险的10个瞬间,每一个都可能致命!

电工是与电为伴的职业,日常穿梭在线路、设备、配电箱之间,看似平常的操作,却暗藏着无数安全隐患。高压电击、电弧灼伤、高空坠落、机械伤害&hellip;&hellip;每一个危险瞬间,都可...
2026-04-22

滞回比较器和方波发生器原理讲解

运放应用于比例运算时,处于深度负反馈状态,虚短条件始终成立,不用特别关注开环放大倍数;而运放构成滞回比较器时,处于正反馈工作状态,正是利用了开环放大倍数很大的特点,...
2023-05-08
滞回比较器和方波发生器原理讲解

电工常用基础知识问答

常见问题 ( 一): 低压配电系统中发电机供电的应急母线与正常工作母线无联络 , 应急母线(píng)时处于冷备状态。 解决方法 : 应急母线与工作母线之间如需联络时应设置联络断路器...
2023-06-27

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目