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
图片说明:
提问者对于答案的评价:
OK
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202315.html