西门子s7-200大于32767的整数转换成正实数的方法

来源:电工天下时间:2015-10-29 10:45:39 作者:老电工手机版>>

西门子s7-200大于32767的整数转换成正实数的方法

问题:S7-200plc中,如何将大于32767的整数转换成正实数?

客户:我这边是个S7-200的PLC系统,226 CN PLC 的port0口做modbus主站,读取一个仪表的数据,数据能通信,但是读过来的数据不对。
工程师:根据您的描述,那么应该已经通信上了,我们可以最后再排查程序问题。首先请检查接线,引脚3是信号+,引脚8是信号-。
另外,请问有核实两边的数据存储格式是否一致吗?因为西门子plc的数据存储格式是低位高字节,按照以VW0为例,就是高8位为VB0,低8位为VB1.如果仪表那边是高位高字节,即:高8位为VB1,低8位为VB0.那么两边正好相反,即便通信上了,数据对不上是可能的。西门子的低位高字节数据存储格式示意请参见:
西门子s7-200大于32767的整数转换成正实数1

客户:好,我先去核实下。
客户:您好,modbus通信已经没问题了。PLC这边数据已经读取进来,我想问下读到的数应该是什么格式的。我这边一个数65500,PLC这边为什么是负数。

工程师:PLC在程序中监控和运算多是以有符号整数进行的,VW或者VD的最高位是符号位,如果对于Word来说,大于32767后数据为负。
通过modbus通信过来的数都是负数是吗?刚才65500的数是多少?除了程序块监控外,状态表在线监控,数据格式选择无符号后数据读取是否正常。

客户:哦,都是大数才为负数,应该是都大于32767的。状态表里譬如VW100吧,无符号数是65500,有符号数是-35,数据格式选择无符号的就正确。
工程师:数据存储实际上都是按照二进制进行的,只是读取它时的数据格式不同而已,您可以在状态表中选择无符号数。

客户:不是啊,我就是要正数。关键是我把这个数转换成实数后还带着负号,我port 1口连了第三方的触摸屏,触摸屏上选择的是实数连接,读上来后屏那边显示的是负数,不行啊。
工程师:嗯~,请问您是怎么进行编程转换的。

客户:我就是先用I_DI,再DI_R。不行啊,大数就错了,小数才不带符号。
工程师:您先别着急,按照正常的编程方式,您的思路是正确的,可对于负数来说就不行了。可以换种思路来考虑,对于word或者d-word的格式来说,数据的最高位是符号位。那么我们最开始转换成双字的时候,去掉符号就行了。

客户:我也试过,让这个数与16#7F相乘来去掉符号位,那就不对了,数就不对了。你这也不行啊
工程师:请先不要着急,我说的不是这个方法。在转换成双字的时候不要把最高位当作符号位,如下图,先来了解符号位的定义:
西门子s7-200大于32767的整数转换成正实数2

通过I_DI的转化,实际上是将VW0-VD0,可是如果将VW0直接放在VW2上,同时VW0清0,直接去读取VD0是什么情况?原先VW0中的符号位,在VW2中,并不是VD0的最高位即符号位,在VD0里就是数据了。而与此同时,我们去掉了负号是吗。
举例:VW0=65500(无符号整数),经过I_DI给VD10.
对比:VD0,双字转换后的VD10,和仅仅将VW0传送给VW6后的VD4,这几个数的比较,请参见下面的实验结果:

西门子s7-200大于32767的整数转换成正实数3

客户:原来简单的传送就可以解决问题了。

相关文章
  • 西门子plc的转换指令功能说明

    西门子plc的转换指令功能说明

    西门子plc的转换指令1. BCD_IBCD码转换为整数2. I_BCD 整数转换为BCD码3. I_DINT 整数转换为双整数4. BCD_DIBCD码转换为双整数5. DI_BCD 双整数转换为BCD码6. DI_REAL 双整

    时间:2020-03-15 11:05:22

  • 【图】西门子s7-300/400 plc转换指令的用法说明

    西门子s7-300/400 plc转换指令的用法说明

    西门子s7-300/400 plc转换指令的用法,介绍了s7-300/400的数据形式转换指令的主要特点,BCD转换指令,整数、浮点数转换指令的用法及注意事项。

    时间:2020-03-10 10:27:30

  • 西门子s7系列plc整数算术运算指令的例子

    西门子s7系列plc整数算术运算指令的例子

    西门子s7系列plc整数算术运算指令的例子,STEP7中对整数、长整数和实数进行加、减、乘、除算术运算,算术运算的结果将对状态字的某些位产生影响,这些位是:CC1和CC0,OV,OS。

    时间:2020-02-21 09:25:07

  • 影响SFC chart状态转换的参数分析

    影响SFC chart状态转换的参数分析

    影响SFC chart状态转换的参数分析,这些参数包括SELFRESET、CYCLEXEX、SELFCOMP、 RUNHold等,这些参数决定了SFC chart状态转换,顺控程序的处理方式等。

    时间:2019-12-21 08:33:28

  • 西门子plc的INV_DI转换指令功能实例

    西门子plc的INV_DI转换指令

    西门子plc的INV_DI转换指令功能实例,有关 INV_DI转换指令说明表, INV_DI转换指令对状态位的影响,以及INV_DI转换指令应用实例的相关知识。

    时间:2017-04-05 16:08:15

  • 西门子plc的ROUND转换指令功能实例

    西门子plc的ROUND转换指令

    西门子plc的ROUND转换指令功能实例,有关ROUND转换指令说明表,ROUND转换指令对状态位的影响,以及ROUND转换指令应用实例的相关知识。

    时间:2017-04-05 16:02:52

  • 西门子plc的CEIL转换指令功能实例

    西门子plc的CEIL转换指令

    西门子plc的CEIL转换指令功能实例,有关CElL转换指令说明表,CEIL转换指令对状态位的影响,CEIL转换指令应用举例等相关知识。

    时间:2017-04-05 16:01:12

  • 西门子PLC的TRUNC转换指令功能实例

    西门子PLC的TRUNC转换指令

    西门子PLC的TRUNC转换指令功能实例,有关TRUNC转换指令说明表,TRUNC转换指令对状态位的影响,TRUNC转换指令应用举例的相关知识。

    时间:2017-04-05 15:57:18

推荐文章

Copyright © 2015 - 2022 dgjs123.com All Rights Reserved

电工天下 版权所有