登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:S7-1200乘法指令,实数乘不出来?

点击:2212 回复:9

楼主
附件 微信截图_20191114131304.jpg
为什么大家都是实数,却乘不出来呢,数据类型都是对的,1200的乘法总是搞不懂,之前做过一个整数乘实数都可以
最后修改:2019/11/14 14:11:25
19-11-14 13:19
可能又2个原因.
MD300好像不是实数,如果是,1149也是非常小的数.你确定一下md300到底是多少?
另外的原因可能是,dbd20被别的地方复用了.
19-11-14 14:05
我刚刚测试了,按你的所有地址一样建立的数据,都是可以计算的
你看下是否存在其它地言赋值的情况
19-11-14 14:05
建议交叉引用下结果那个标签(地址),不出意外别的地方有程序给它赋值了。我这边随便写了一个,指令是没问题的。
19-11-14 14:25

引用 857362369 在 2019/11/14 13:19:37 发言【内容省略】

我有理由相信,你MD300是直接使用而非在变量表内建立并定义为REAL类型,因此你的MD300中的值是1149而非1149.0,所以,你需要查看你的变量是否是REAL类型。
在变量类型正确的情况下:
附件 workpicture1.jpg
当变量类型为其他同样长度非Real类型的情况下,得到了与楼主一样的输入显示与结果。
附件 workpicture2.jpg
MUL指令编译时不检查数据类型,仅检查数据长度是否合适。
Good Luck~
19-11-14 14:42
MD不是实数,如果是实数会显示1149.0
19-11-14 15:25
附件 md300.jpg
附件 数值转换.jpg
我这两个也是实数啊,都转换的,数据类型也是实数,不知道为啥不行啊
19-11-14 17:07
附件 11111.jpg
我用一个整数就可以
19-11-14 17:13
附件 2.jpg
交叉检查了下,就用过两次,后面一次是对计算出来的值整数化,这个会影响吗
附件 数值转换.jpg
19-11-14 17:16
附件 微信图片_20191115100845.jpg
已经解决了
数值转换,要这个转换成DINT,转换后的值才能试浮点型,虽然用DWORD型进行转换不会报错,但是结果还是双字型的
19-11-15 10:13

工控新闻

更多新闻资讯