wxk8000
级别: 略有小成
精华主题: 0
发帖数量: 48 个
工控威望: 225 点
下载积分: 864 分
在线时间: 100(小时)
注册时间: 2009-01-04
最后登录: 2022-11-02
查看wxk8000的 主题 / 回贴
楼主  发表于: 2014-02-27 22:18
图片:
请教大家一个问题:
最近在使用模拟量输出编程的时候发现一个问题,在标定的时候。
储存区AQW的用法?为何ADD_I指令将两个数相加不能直接放在AQW中?提示错误“指令操作数的存储器区无效”
[attachment=118211]

提示如下错误:


而可以放在LW中,再通过MOV_W传送至AQW中
如下图所示



有人说是“数据类型不符”
ADD_I也是将两个整型数相加得到的结果也是整型啊

AQW也是整数啊

都是整型为何不能直接OUT-AQW呢?

也有人说:

整数运算不支持OUT-AQW着整数

读写不能同时进行
[ 此帖被wxk8000在2014-02-27 22:25重新编辑 ]
zhanghuan
级别: 略有小成
精华主题: 0
发帖数量: 68 个
工控威望: 240 点
下载积分: 712 分
在线时间: 104(小时)
注册时间: 2007-08-23
最后登录: 2024-09-20
查看zhanghuan的 主题 / 回贴
1楼  发表于: 2014-02-28 00:15


按图中红色的插入ROUND试试,不用MOV
在红色ROUND指令之前,你用的是浮点数计算,而后面又整数计算,显然LD22数据类型冲突,必须加入取整指令
zhanghuan
级别: 略有小成
精华主题: 0
发帖数量: 68 个
工控威望: 240 点
下载积分: 712 分
在线时间: 104(小时)
注册时间: 2007-08-23
最后登录: 2024-09-20
查看zhanghuan的 主题 / 回贴
2楼  发表于: 2014-02-28 00:27
上面只是引用ROUND指令,正确的程序应是如下图

zhanghuan
级别: 略有小成
精华主题: 0
发帖数量: 68 个
工控威望: 240 点
下载积分: 712 分
在线时间: 104(小时)
注册时间: 2007-08-23
最后登录: 2024-09-20
查看zhanghuan的 主题 / 回贴
3楼  发表于: 2014-03-07 23:30
按您的意思,我也试了,确实平常没这样深入研究过,只是按手册的规定去编,领教了!