工控小生
级别: 家园常客
精华主题: 0
发帖数量: 452 个
工控威望: 625 点
下载积分: 5872 分
在线时间: 797(小时)
注册时间: 2008-05-19
最后登录: 2024-12-27
查看工控小生的 主题 / 回贴
楼主  发表于: 2013-09-20 13:53
图片:
图片:
FX2N 程序中要把16个16位计数器数据相加求总和,现在的做法是:先分成八组,用ADD 指令两个两个一组相加,得出的结果再两个两个相加,最后求出总和,最后当数据过大时会溢出,例如最后30000+30000结果存储在D100,D101中,D100数据是 27232 ,D101数据是  0  运算出错, 要怎么处理才能都得到准确数据,多个数相加要怎么解决数据过大溢出的问题。
[ 此帖被工控小生在2013-09-20 13:58重新编辑 ]
sicsuilyijun
工控路上学习中
级别: 略有小成
精华主题: 0
发帖数量: 163 个
工控威望: 355 点
下载积分: 768 分
在线时间: 373(小时)
注册时间: 2009-05-17
最后登录: 2024-11-18
查看sicsuilyijun的 主题 / 回贴
1楼  发表于: 2013-09-20 19:52
运算值大于32767,ADD前面加D,D1改成D2就行了。
[ 此帖被sicsuilyijun在2013-09-20 20:01重新编辑 ]
wasky
级别: 探索解密
精华主题: 0
发帖数量: 10 个
工控威望: 114 点
下载积分: 4356 分
在线时间: 136(小时)
注册时间: 2010-08-08
最后登录: 2024-12-27
查看wasky的 主题 / 回贴
2楼  发表于: 2013-09-21 09:34
嗯,上楼说的是
王志勇爱媳妇
千里之行,始于足下。
级别: 论坛先锋
精华主题: 0
发帖数量: 213 个
工控威望: 1642 点
下载积分: 4097 分
在线时间: 195(小时)
注册时间: 2013-02-24
最后登录: 2019-09-23
查看王志勇爱媳妇的 主题 / 回贴
3楼  发表于: 2013-09-21 21:24
16位数据寄存器会溢出的话,那就用32位数据处理指令啊!
stincen
自动化系统研发,PLC+CIM程序开发;光电面板半导体物流
级别: 略有小成
精华主题: 1 篇
发帖数量: 270 个
工控威望: 289 点
下载积分: 5331 分
在线时间: 105(小时)
注册时间: 2013-05-17
最后登录: 2024-12-24
查看stincen的 主题 / 回贴
4楼  发表于: 2013-09-22 08:49
认真看看指令手册,对你有很大帮助
不知道为什么,很多朋友都不会查阅资料手册
自动化系统PLC+CIM程序;光电面板半导体PCB(LUL,显影蚀刻清洗机,OVEN等设备)及物流行业
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1278 个
工控威望: 6109 点
下载积分: 52412 分
在线时间: 1123(小时)
注册时间: 2012-04-24
最后登录: 2024-12-27
查看john42tw的 主题 / 回贴
5楼  发表于: 2013-09-23 09:56
兩個方法
1.數值-2147483648~2147483647 之間可用32位元加法
2.轉成實數來相加
1697051999
级别: 实习会员
精华主题:
发帖数量:
工控威望: 0 点
下载积分:
在线时间: 0(小时)
注册时间: 2013-09-06
最后登录: 1970-01-01
查看1697051999的 主题 / 回贴
6楼  发表于: 2013-09-23 19:50
图片:
应该是这样吧
工控小生
级别: 家园常客
精华主题: 0
发帖数量: 452 个
工控威望: 625 点
下载积分: 5872 分
在线时间: 797(小时)
注册时间: 2008-05-19
最后登录: 2024-12-27
查看工控小生的 主题 / 回贴
7楼  发表于: 2013-09-26 09:12
谢谢各位帮助。