无符号整数(字节)运算

通过modbus读取一个数值,该数值为符号整数,需要通过除32后再减273来求得真实值。但是S7-200的整数计算只能是有付号运算。如何能够实现无符号整数的运算呢?谢谢!

问题补充:
感谢zjw01316的帮忙!请教一下:把读这个数最高位复位为0转换成整数(I),再把最高位置位为1的作用是什么呢?你也说了,以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果。我就是想找一个可以把整数(字节)做为无符号整数(DINT)计算的指令。S7-2OO有吗?

最佳答案

字节默认为正数,你把读这个数最高位复位为0转换成整数(I),再把最高位置位为1.除法如要要显示小数的话,再转换为实数,32也转换为实数32.0,不需要直接整数相除。
----------------------------------------------------------------------------------
S7-200的数据主要分为:
1、与实际输入/输出信号相关的输入/输出映象区:
I:数字量输入(DI) 
Q:数字量输出(DO) 
AI:模拟量输入 
AQ:模拟量输出
2、内部数据存储区
V:变量存储区,可以按位、字节、字或双字来存取V 区数据 
M:位存储区,可以按位、字节、字或双字来存取M区数据 
T:定时器存储区,用于时间累计,分辨率分为1ms、10ms、100ms三种 
C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数。CPU提供了三种类 型的计数器:一种只能增计数;一种只能减计数;另外一种既可 以增计数,又可以减计数

 
1、所有的数据在PLC中都是以二进制形式表示的 
2、数据都有其特定的长度和表示方式,称为格式 
3、数据的格式与用于运算、处理它的指令相关 
4、以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果 
表1. S7-200支持的数据格式
寻址格式 数据长度
(二进制位) 数据类型 取值范围 
BOOL(位) 1(位) 布尔数
(二进制位)  真(1);假(0) 
BYTE(字节)  8
(字节) 无符号整数 0 ~ 255;0 ~ FF(Hex) 
INT(整数) 16
(字) 有符号整数 - 32768 ~ 32767;
8000 ~ 7FFF(Hex) 
WORD(字) 无符号整数 0 ~ 65535;
0 ~ FFFF(Hex) 
DINT
(双整数) 32
(双字) 有符号整数 - 2147483648 ~ 2147483647
8000 0000 ~ 7FFF FFFF(Hex) 
DWORD
(双字) 无符号整数 0 ~ 4294967295;
0 ~ FFFF FFFF(Hex) 
REAL
(实数) IEEE 32位
单精度浮点数  -3.402823E+38 ~ -1.175495E-38(负数);
+1.175495E-38 ~+3.402823E+38(正数); 0.0※ 
ASCII 8/个
(字节) 字符列表 ASCII字符、
汉字内码(每个汉字2字节) 
STRING
(字符串) 字符串 1 ~ 254个ASCII字符、
汉字内码(每个汉字2字节) 

※ 实数不能绝对准确地表示“零”


 在西门子 S7-200 · LOGO! · SITOP 参考Beta Version 0.93中的S7-200PLC里有关于数据方面知识。
西门子 S7-200 · LOGO! · SITOP 参考Beta Version 0.93
下载地址http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0136.chm
回答者: zjw01316 - 初级技术员  第5级
------------------------------------------------------
回答补充:有一个很严重的问题先,你说把采集出来的数除以32,再减去273,那么这个数最少是8736,否则就是负数。而一个字节最大才是255.算出来肯定是负数了。。
如果你说错了,是想乘以32再减273,那么你直接把字节转换成双整数运算就可以,

参考资料:http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=36592_1028.html

提问者对于答案的评价:
谢谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc311778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐

  • 通过RS232转485的转换器自己做了一个调试电缆与S7-200PLC相连的通讯问题

    我通过RS232转485的转换器自己做了一个调试电缆与S7-200PLC相连,根据转换器的接口定义我将A+连接PLC的8管脚,B-连接3管脚,只连了这两个,但是通过力控或者串口调试…

    SIMATIC S7-200 2020年10月31日
  • em253的向导子程序问题

    请问生成的子程序pos0-man里,可以实现点动功能,我想问问单次点动距离和点动速度,可以通过变量修改吗?因为这个是在向导里设置好的,在数据块里可以看到,如图,不知到可以在通过该变…

    2017年6月24日
  • SM187.3里的0或1分别指什么?

    自由口通讯接收控制字中SMB187里的C/M 0等于内部字符定时器和1等于信息定时器分别代表什么意思,内部字符指什么,信息又是指什么??信息开始 = …

    SIMATIC S7-200 2017年11月4日
  • S7-200的自由口通讯

    各位大哥,我刚接触S7-200自由口通讯,我有几个问题请教大家,1、无校验。奇校验,偶校验是什么,他们分别用在那里;2、自由通讯是不是在定时器中断来做 最佳答案 奇校验,偶校验是什…

    SIMATIC S7-200 2020年11月1日
  • STEP 7 MicroWIN V4.0SP4与STEP7_V5.4_SP3_CN 能安装在一台电脑上吗?

    STEP 7 MicroWIN V4.0SP4与STEP7_V5.4_SP3_CN 能安装在一台电脑上吗?谢谢! 最佳答案 完全可以,STE…

    SIMATIC S7-200 2020年11月5日
  • 关于三线制的超声波与EM235模块相连的问题

    请问一下,三线制的超声波液位计通过抗干扰隔离模块输出后的信号该如何与EM235模块相连啊?是不是RD和D+短接后连到4-20mA的输出上,D-连到0V电源上啊?为什么我连上后在线调…

    SIMATIC S7-200 2020年11月1日
  • 关于S7-200

    那里有学习S7-200 PLC的多媒体学习光盘 最佳答案 我有视频教程,但不是光盘。QQ313469634 提问者对于答案的评价:可以

    SIMATIC S7-200 2021年7月5日
  • 设计一个电子钟

    不依靠时钟读取指令来完成,数码管显示时,分,星期,并且可以手动调节 最佳答案 如果用静态扫描,会占用大量IO点,因为你要显示时分星期,至少要用5位数,每一位的数码管都分7段(不包括…

    SIMATIC S7-200 2021年7月5日
  • TD200 V2.1

    TD200 V2.1版本组态了一个画面,其中有一个嵌入数据,并且选择了允许编辑,但是此数据无法修改,不知是程序问题还是组态问题请高手帮忙 最佳答案 TD200 …

    SIMATIC S7-200 2021年7月5日
  • 编码器定位

    现在一个送料小车卷扬端连接有编码器,编码器连接s7 200PLC,要实现通过编码器精确的对小车定位,还需要其他硬件吗,如何实现,谁能给出具体的编码器类型和最合适的PLC型…

    SIMATIC S7-200 2017年6月24日