S7-200监控程序块问题

S7-200监控程序块时  某些指令块程红色 
是么问题?

问题补充:
如果溢出 我用双整数怎么也是红色?

图片说明:

S7-200监控程序块问题    S7-200监控程序块问题   

最佳答案

1.楼主你这个红色指令块,就应该是超出数据范围溢出啦,我在线测试一下。

2.16位整数(INT)是有符号数,整数的最高位为符号位,最高位为0时为正数,为1时为负数,取值范围为-32768~32767。32位整数(DINT)的最高位为符号位,取值范围为-2147483648~2147483647。

3.按照你的思路,我做了个小测试,方便你理解,能够解释你图1的疑问,见上传图片。

4.关于你补充的第二个图,也应该是超出数据范围溢出啦。但只是显示一小部分画面,VD1008和VD1012的数值无法查看。需要注意:VD1008是由VW1008和VW1010组成,VD1012是由VW1012和VW1014组成,你在状态表里在线查看一下,VW1008、VW1010、VW1012、VW1014的数值,一眼就明白啦。

5.乘以整数(*I)指令将两个16位整数相乘,并产生一个16位乘积。除以整数(/I)指令将两个16位整数相除,并产生一个16位商,不保留余数。如果结果大于一个字输出,则设置溢出位。

6.还有一个检测的办法,也是在状态表在线查看一下:SM1.0、SM1.1、SM1.2、SM1.3的数值,SM1.1指示溢出错误和非法数值。如果设置SM1.1,则SM1.0和SM1.2状态无效,且原来的输入操作数不改动,见上传图片状态表。

特殊内存位的含义:
 SM1.0表示:零结果
 SM1.1表示:溢出
 SM1.2表示:负结果
 SM1.3表示:除数为0

图片说明:

S7-200监控程序块问题  S7-200监控程序块问题  

提问者对于答案的评价:
OK

专家置评

已阅,最佳答案正确。

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

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

相关推荐