老家伙学电工
级别: 略有小成
精华主题: 0
发帖数量: 326 个
工控威望: 466 点
下载积分: 1015 分
在线时间: 329(小时)
注册时间: 2010-11-10
最后登录: 2024-11-14
查看老家伙学电工的 主题 / 回贴
楼主  发表于: 2013-12-08 17:03
用三菱FX-2N的PLC。编程的时候用DDIV指令,运算负数。比如:DDIV   D10   D14   D18  
当D10中是负数的时候,在DDIV中D10显示的是一个很大的值,D18中的值也是很大的值,
可以将它还原成负数吗?还是DDIV不能用于负数的计算?
在线等,虽然是个很菜鸟的问题,但本人其实比菜鸟还菜,请指教。
老家伙学电工
级别: 略有小成
精华主题: 0
发帖数量: 326 个
工控威望: 466 点
下载积分: 1015 分
在线时间: 329(小时)
注册时间: 2010-11-10
最后登录: 2024-11-14
查看老家伙学电工的 主题 / 回贴
1楼  发表于: 2013-12-08 17:56
用DIV指令是可以运算负数的,只是觉得它有点小,只能到-32768,有点不够用的样子
老家伙学电工
级别: 略有小成
精华主题: 0
发帖数量: 326 个
工控威望: 466 点
下载积分: 1015 分
在线时间: 329(小时)
注册时间: 2010-11-10
最后登录: 2024-11-14
查看老家伙学电工的 主题 / 回贴
2楼  发表于: 2013-12-08 18:43
编程的时候用DDIV指令,运算负数。比如:DDIV   D10   D14   D18  
D10中的值原来是一个16位的负数。用DDIV指令就变得很大了。
我试过如果D10如果是一个刚开始就是32位的数值,就不会变,显示的就是本身的负值。
问题是,我用十六位的计算结果,怎么转换成32位的,并能够用DDIV运算?
老家伙学电工
级别: 略有小成
精华主题: 0
发帖数量: 326 个
工控威望: 466 点
下载积分: 1015 分
在线时间: 329(小时)
注册时间: 2010-11-10
最后登录: 2024-11-14
查看老家伙学电工的 主题 / 回贴
3楼  发表于: 2013-12-09 12:47
感谢楼上的解答,昨晚实际上说了,是16位和32位的区别导致的。
我现在想问的是,怎么把一个16位的负数转化为32位的负数?
好象很麻烦的,要先判断第15位是否为1,再决定是否把32位的最高位置1。