查看: 504|回复: 2
收起左侧

[H3U] PLC四则运算溢出问题

whpxixi 2019-7-20 17:23:29 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 whpxixi 于 2019-7-20 17:26 编辑

问题描述:
通过PLC计算16bit/32bit加减乘除,当计算结果超过32767(16bit运算)或2147483647(32bit运算),进位标志(M8022)置位;当计算结果不满-32767(16bit运算)或-2147483647(32bit运算),借位标志(M8021)置位。两种情况都会导致计算结果溢出,但是当加减法同时存在,若程序编写不当,会影响M8022或M8021置位。
如16bit加法计算结果溢出,M8022不置位。

解决思路:
1、        检查PLC编码及InoTouch元件地址,并重新下载运算,发现没有问题。
2、        尝试进行减法运算并使其结果溢出,发现借位标志M8021置位,M90元件触发。尝试调整M8022和M8021代码顺序以及加法运算和减法运算顺序,发现前者运算结果溢出,但对应M8021或M8022没有置位。

3、        寻求大神(朱工)支援,发现若将加减法运算分开或增设开关分别控制,可以将M8022和M8021置位。并在PLC编程手册中发现“编程时防止重复或误覆盖”的提醒。

总结分析:
加减法运算中,若运算结果溢出,M8022和M8021是否置位会根据后者运算结果来判定,前者运算结果溢出导致的进位或借位被后者覆盖,因而编写程序时,若要监控M8022和M8021是否置位,需要将其代码编写在对应运算后或设置开关分开加减法运算。此外还发现,乘除法运算不会导致M8022和M8021置位。

1.png
2.png
3.png
4.png
「真诚赞赏,手留余香」




上一篇:关于加减运算数据溢出的问题总结
下一篇:H3U高速输入输出口
回复 邀请回答送花

使用道具 举报

whpxixi 2019-7-23 10:47:31 | 显示全部楼层
欢迎大家补充
「真诚赞赏,手留余香」
回复 送花

使用道具 举报

兰桨 2019-7-23 10:47:33 | 显示全部楼层
理解的非常到位
「真诚赞赏,手留余香」
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

汇川控制技术 公众号

全国服务热线:8:30-17:30

400-777-1260

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市宝安区留仙二路6号鸿荣源鸿威工业区E栋

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部