您现在所在的是:

三菱Mitsubishi

回帖:9个,阅读:2067 [上一页] [1] [下一页]
668
531573862
文章数:23
年度积分:50
历史总积分:668
注册时间:2013/5/5
发站内信
发表于:2018/12/2 21:50:53
#0楼
三菱批量32位加减乘除有简单的写法吗?
请教各位大师
比如D一百到D二九九
都乘以D0送到D三百至D四九九
用FOR好像只能16位的。
[此贴子已经被作者于2018/12/3 11:05:04编辑过]
37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/12/2 22:11:11
#1楼
以下是引用5315738622018/12/2 21:50:53的发言:
三菱批量32位加减乘除有简单的写法吗?
请教各位大师
比如D一百到D二九九
都乘以D0送到D三百至D四九九
用FOR好像只能16位的。

SIR, 16位乘法指令的结果为32位数据,因此您需要D300~699来存储D100~D199乘以D0的结果。

FOR只是循环次数,一个16位数据作为循环变量足以,我从来没有看见过一个数万次的循环变量还不够用的情况。

至于批量加减乘除请使用循环+变址的方式解决。

Good Luck~
668
531573862
文章数:23
年度积分:50
历史总积分:668
注册时间:2013/5/5
发站内信
发表于:2018/12/2 22:24:34
#2楼
以下是引用cvlsam2018/12/2 22:11:11的发言:
以下是引用5315738622018/12/2 21:50:53的发言:
三菱批量32位加减乘除有简单的写法吗?
请教各位大师
比如D一百到D二九九
都乘以D0送到D三百至D四九九
用FOR好像只能16位的。

SIR, 16位乘法指令的结果为32位数据,因此您需要D300~699来存储D100~D199乘以D0的结果。

FOR只是循环次数,一个16位数据作为循环变量足以,我从来没有看见过一个数万次的循环变量还不够用的情况。

至于批量加减乘除请使用循环+变址的方式解决。

Good Luck~
shi'zh

附件 0.jpg




是这样吗?怎么得出的结果不对啊?
附件 1.jpg
668
531573862
文章数:23
年度积分:50
历史总积分:668
注册时间:2013/5/5
发站内信
发表于:2018/12/2 22:29:19
#3楼
以下是引用cvlsam2018/12/2 22:11:11的发言:
以下是引用5315738622018/12/2 21:50:53的发言:
三菱批量32位加减乘除有简单的写法吗?
请教各位大师
比如D一百到D二九九
都乘以D0送到D三百至D四九九
用FOR好像只能16位的。

SIR, 16位乘法指令的结果为32位数据,因此您需要D300~699来存储D100~D199乘以D0的结果。

FOR只是循环次数,一个16位数据作为循环变量足以,我从来没有看见过一个数万次的循环变量还不够用的情况。

至于批量加减乘除请使用循环+变址的方式解决。

附件:
[本地下载]
Good Luck~
麻烦帮忙修改一下
20183
高雅的雅
文章数:15777
年度积分:-205
历史总积分:20183
注册时间:2015/5/12
发站内信
2018论坛解答高手
发表于:2018/12/2 22:37:46
#4楼
根本不需要用循环的啊!你直接给Z0每次扫描+2即可啊!!
LD SM400;
ADD Z0 K2 Z0;
> Z0 K150 ;
MOV K0 Z0;
再往下就是你的乘法指令那一行
668
531573862
文章数:23
年度积分:50
历史总积分:668
注册时间:2013/5/5
发站内信
发表于:2018/12/2 22:46:34
#5楼
以下是引用高雅的雅2018/12/2 22:37:46的发言:
根本不需要用循环的啊!你直接给Z0每次扫描+2即可啊!!
LD SM400;
ADD Z0 K2 Z0;
> Z0 K150 ;
MOV K0 Z0;
再往下就是你的乘法指令那一行
这种写法,比如150个数,要150个扫描周期才能完成啊,用FOR,一个周期就搞定,可是感觉被乘数是一个超过16位的数值就算不准了
[此贴子已经被作者于2018/12/3 0:06:54编辑过]
42331
YXBK 版主
文章数:19445
年度积分:2745
历史总积分:42331
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2018/12/3 7:57:22
#6楼
32位乘法占用了2个寄存器,每次加2
6303
xwlxwl306
文章数:62
年度积分:743
历史总积分:6303
注册时间:2014/10/27
发站内信
发表于:2018/12/3 8:05:44
#7楼
INC Z0 改成 ADD Z0 K2 Z0
20183
高雅的雅
文章数:15777
年度积分:-205
历史总积分:20183
注册时间:2015/5/12
发站内信
2018论坛解答高手
发表于:2018/12/3 9:36:23
#8楼
刚刚我的确没有注意扫描周期了(我一般应用这种到都是在50数目以下,扫描延迟不是特别厉害就没有注意了,因为多CPU通过总线通讯传输数据一般在监控发现看不到明显延迟:电脑监控本身就有0.3S以上延迟)
668
531573862
文章数:23
年度积分:50
历史总积分:668
注册时间:2013/5/5
发站内信
发表于:2018/12/3 11:03:14
#9楼
谢谢各位指导,已经解决了

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005