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

    相关阅读

    开关电源变压器损耗的节能措施

    有关开关电源变压器 损耗的节能措施,如何减少开关电源变压器 的铜损与铁损,包括减少匝数,改变电路工作参数以减少交流电阻,降低磁通密度,改变电路参数等。 开关电源变压器...
    2022-12-10

    三相稳压器能接入单相电使用吗

    三相稳压器 能接入单相电使用吗?可以,前提是输入必须接三相电。当我们需要在三相稳压器 上接入单相用电电器时,还要考虑三相统调稳压器则无法满足单相用电的要求,如果把单...
    2023-01-08
    三相稳压器能接入单相电使用吗

    电路中 电阻、电感、电容串、并联计算公式方法

    (1)计算公式 电阻、电感、电容常见的串、并联形式及计算公式见表1-1。 表1-1 电阻、电感、电容常见的串、并联形式及计算公式 注:1. X L 为感抗,X L =ω L =2πfL ;X C 为容抗, 注:...
    2023-06-13
    电路中 电阻、电感、电容串、并联计算公式方法

    运用编码指令编程呼叫小车送料系统plc编程实例

    某处有一电动小车,供6个加工点使用,电动车在6个工位之间运行,每个工位均有一个位置行程开关和呼叫按钮。送料车开始可以在6个工位中的任意工位上停止并压下相应的位置行程开...
    2023-03-05
    运用编码指令编程呼叫小车送料系统plc编程实例

    什么是电子元器件?电子元器件有哪些?电子元器件作用及特点解析

    每当我们拆开电子 产品时,看到电子线路板上密密麻麻的配件都十分惊讶:电子产品的运行全靠它们!喜欢动手的你对 电子元器件 肯定不会陌生,就算是叫不出名字,但也能大致了解...
    2023-03-06
    什么是电子元器件?电子元器件有哪些?电子元器件作用及特点解析

    热销商品

    加厚abs安全帽电工建筑工地程施工领导监理透气防砸头盔可印字V型

    这款加厚ABS安全帽专为电工、建筑工地施工人员、领导及监理设计,采用高强度ABS工程塑料,抗冲击、防砸性能优异,有效保障头部安全。帽体加厚设计,增强耐用性与防护等级...
    5.8

    水口钳高硬度模型剪钳电子钳工业级口水剪斜嘴钳偏口斜口专用钳子

    水口钳高硬度模型剪钳是一款工业级精密工具,专为电子、模型制作及精细作业设计。采用优质高碳钢材质,经热处理工艺打造,具备卓越的硬度和耐磨性,可轻松剪切金属引脚、...
    4.8

    170电子剪钳II 如意斜口钳 工业斜嘴钳水口钳 模型剪塑胶钳尖嘴钳

    170电子剪钳II如意斜口钳是一款专业级精密工具,集工业斜嘴钳、水口钳、模型剪、塑胶钳与尖嘴钳功能于一体,适用于电子维修、模型制作、手工艺及精密作业。其采用优...
    4.5

    安全帽国标工地加厚施工领导透气安全头盔建筑工程监理免费印字

    本款安全帽严格遵循国家GB 2811-2019标准,专为建筑工程、工地施工及监理人员设计。采用高强度ABS工程塑料,加厚壳体有效抗冲击,保障头部安全。帽体轻盈透气,内置可调...
    10

    包邮三角型简易螺丝刀三角十字螺丝刀螺丝批改锥起子五金工具5mm

    这款5mm三角型简易螺丝刀,专为拧紧或拆卸三角形螺丝设计,适用于电子维修、家电维护及精密仪器装配等场景。采用优质合金钢材质,刀头硬度高、耐磨损,确保长久使用不变...
    3.64

    网站栏目