您现在所在的是:

PLC论坛

回帖:4个,阅读:9947 [上一页] [1] [下一页]
1882
276438265
文章数:216
年度积分:56
历史总积分:1882
注册时间:2013/5/28
发站内信
发表于:2019/1/8 12:11:03
#0楼
三菱WORKS2,FX3SA,编程做了个简单的FB,就是mm和pulse的转换。大概用了5次。却只有一处正常输出了。监控发现FB中的中间值【计算1】一直为0.请教一下哪里没有设置正确?谢谢
附件 360截图20190108120846301.jpg
[此贴子已经被作者于2019/1/8 12:17:03编辑过]
37246
cvlsam 版主
文章数:12401
年度积分:1598
历史总积分:37246
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2019/1/8 13:02:56
#1楼
以下是引用2764382652019/1/8 12:11:03的发言:
三菱WORKS2,FX3SA,编程做了个简单的FB,就是mm和pulse的转换。大概用了5次。却只有一处正常输出了。监控发现FB中的中间值【计算1】一直为0.请教一下哪里没有设置正确?谢谢
附件 360截图20190108120846301.jpg
[此贴子已经被作者于2019/1/8 12:17:03编辑过]

请贴出所有代码以及变量的定义窗口。

Good Luck~
1882
276438265
文章数:216
年度积分:56
历史总积分:1882
注册时间:2013/5/28
发站内信
发表于:2019/1/8 13:34:04
#2楼
以下是引用cvlsam2019/1/8 13:02:56的发言:
以下是引用2764382652019/1/8 12:11:03的发言:
三菱WORKS2,FX3SA,编程做了个简单的FB,就是mm和pulse的转换。大概用了5次。却只有一处正常输出了。监控发现FB中的中间值【计算1】一直为0.请教一下哪里没有设置正确?谢谢
附件 360截图20190108120846301.jpg

请贴出所有代码以及变量的定义窗口。

Good Luck~
C大帮忙看看...后面不用FB只用标签变量测试,创建了Temp0-Temp6,结果也是第一个局部变量有效,后面的也全部是0。
附件 FB.jpg

附件 Lable.jpg

附件 PRO.jpg
[此贴子已经被作者于2019/1/8 13:34:37编辑过]
37246
cvlsam 版主
文章数:12401
年度积分:1598
历史总积分:37246
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2019/1/8 15:32:46
#3楼
以下是引用2764382652019/1/8 12:11:03的发言:
三菱WORKS2,FX3SA,编程做了个简单的FB,就是mm和pulse的转换。大概用了5次。却只有一处正常输出了。监控发现FB中的中间值【计算1】一直为0.请教一下哪里没有设置正确?谢谢
附件 360截图20190108120846301.jpg
[此贴子已经被作者于2019/1/8 12:17:03编辑过]

因为DMUL的输出结果为64位数据,而标签化程序是自动分配地址的,因此,如果您将“计算1”声明为Double Word数组的话,您将在该数组的第二个元素中找到变量的值。

附件 snap3.jpg

附件 snap4.jpg

附件 snap5.jpg



Good Luck~
1882
276438265
文章数:216
年度积分:56
历史总积分:1882
注册时间:2013/5/28
发站内信
发表于:2019/1/8 16:20:34
#4楼
回复 #3楼 cvlsam
下午翻手册的时候确实发现DMUL 和DDIV结果都是64bit的表情
非常感谢C的解惑...
要解决这个问题除了用16位寄存器运算,最终结果DMOV到32位寄存器,C大的经验可有其他更好的解决办法。
最后写到定位指令DDRVA的是32位数据。

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

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

62.4004