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

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