借你消愁
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看借你消愁的 主题 / 回贴
楼主  发表于: 2010-06-14 12:30
现在我用三菱PLC编写的一个语句:MULP D560 D154 D540        现在在线监测到数据分别如下: 800         198         0
问题是800*198=158400才对,为何为0呢?是否超出溢出错误?如果是这样,程序该如何修改?谢谢。
另外,我看到有关资料讲,16位乘以16位就用MULP,得数就是32位。也就是540,541位。
ykykkhor
Best Regards,YK
级别: 略有小成
精华主题: 0
发帖数量: 259 个
工控威望: 308 点
下载积分: 139134 分
在线时间: 559(小时)
注册时间: 2009-07-30
最后登录: 2024-11-27
查看ykykkhor的 主题 / 回贴
1楼  发表于: 2010-06-19 15:08
有好几个可能:
1) PLC 在 STOP Mode
- 让 PLC RUN
2) 程序没有启动到 -| | - -|/|- ------[ MULP D560 D154 D540 ]
- 检查程序中启动条件 -| | - -|/|-
3) 程序启动一次而已, MULP 是上升脉冲型
- 尝试把 MULP 改成 MUL
4) 程序启动扫描时, 变量更新的时差
4-1) D560 或 D154 更新分别为 800 和 198 的时候已经执行了 --[ MULP D560 D154 D540 ]
  - 更改程序, 把 -[ MULP D560 D154 D540 ] 推到 D560 或 D154 更新后才执行