老家伙學(xué)電工
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 327 個
工控威望: 466 點
下載積分: 1015 分
在線時間: 328(小時)
注冊時間: 2010-11-10
最后登錄: 2024-03-20
查看老家伙學(xué)電工的 主題 / 回貼
樓主  發(fā)表于: 2013-12-08 17:03
用三菱FX-2N的PLC。編程的時候用DDIV指令,運算負數(shù)。比如:DDIV   D10   D14   D18  
當(dāng)D10中是負數(shù)的時候,在DDIV中D10顯示的是一個很大的值,D18中的值也是很大的值,
可以將它還原成負數(shù)嗎?還是DDIV不能用于負數(shù)的計算?
在線等,雖然是個很菜鳥的問題,但本人其實比菜鳥還菜,請指教。
老家伙學(xué)電工
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 327 個
工控威望: 466 點
下載積分: 1015 分
在線時間: 328(小時)
注冊時間: 2010-11-10
最后登錄: 2024-03-20
查看老家伙學(xué)電工的 主題 / 回貼
1樓  發(fā)表于: 2013-12-08 17:56
用DIV指令是可以運算負數(shù)的,只是覺得它有點小,只能到-32768,有點不夠用的樣子
老家伙學(xué)電工
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 327 個
工控威望: 466 點
下載積分: 1015 分
在線時間: 328(小時)
注冊時間: 2010-11-10
最后登錄: 2024-03-20
查看老家伙學(xué)電工的 主題 / 回貼
2樓  發(fā)表于: 2013-12-08 18:43
編程的時候用DDIV指令,運算負數(shù)。比如:DDIV   D10   D14   D18  
D10中的值原來是一個16位的負數(shù)。用DDIV指令就變得很大了。
我試過如果D10如果是一個剛開始就是32位的數(shù)值,就不會變,顯示的就是本身的負值。
問題是,我用十六位的計算結(jié)果,怎么轉(zhuǎn)換成32位的,并能夠用DDIV運算?
john42tw
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 1276 個
工控威望: 6107 點
下載積分: 52058 分
在線時間: 1120(小時)
注冊時間: 2012-04-24
最后登錄: 2024-09-30
查看john42tw的 主題 / 回貼
3樓  發(fā)表于: 2013-12-09 08:44
要先了解 PLC 數(shù)值表現(xiàn)方式

                    內(nèi)部表示         外部顯示  
16位元 :D10 = 0000  0000  0000  0001 =       1
              D10 = 1000  0000  0000  0001 =      -1

若D10的值為 -1      直接用32位元來看
                             D11                                D10
實際上是 (D11)D10 = 0000 0000 0000 0000       1000 0000 0000 0001 = 32769

位元表示的詳細解說 請翻書
jesselai
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 223 個
工控威望: 403 點
下載積分: 5970 分
在線時間: 81(小時)
注冊時間: 2008-12-05
最后登錄: 2016-07-13
查看jesselai的 主題 / 回貼
4樓  發(fā)表于: 2013-12-09 11:37
樓上正解,這就是數(shù)制的問題了
老家伙學(xué)電工
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 327 個
工控威望: 466 點
下載積分: 1015 分
在線時間: 328(小時)
注冊時間: 2010-11-10
最后登錄: 2024-03-20
查看老家伙學(xué)電工的 主題 / 回貼
5樓  發(fā)表于: 2013-12-09 12:47
感謝樓上的解答,昨晚實際上說了,是16位和32位的區(qū)別導(dǎo)致的。
我現(xiàn)在想問的是,怎么把一個16位的負數(shù)轉(zhuǎn)化為32位的負數(shù)?
好象很麻煩的,要先判斷第15位是否為1,再決定是否把32位的最高位置1。