想吃火鍋雞
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 14 個
工控威望: 83 點
下載積分: 526 分
在線時間: 14(小時)
注冊時間: 2021-08-21
最后登錄: 2024-08-20
查看想吃火鍋雞的 主題 / 回貼
樓主  發(fā)表于: 2021-09-01 17:28
圖片:
圖片:
初學(xué)定位控制,在書中出現(xiàn)3U新增位元件的介紹。
n為寄存器D編號,0-8511
b為寄存器中二進制位的編號,0-F
把H8421送入D0,其最高位為1。
則位元件D0.F常開點閉合,驅(qū)動D0.3
同時,當(dāng)D0.3被驅(qū)動后,D0中的b3位由0變1,此時D0中的數(shù)發(fā)生變化
由H8421變?yōu)镠8429
H8421換算為二進制 1000  0100  0010  0001
H8429換算為二進制 1000  0100  0010  1001
可以看出b3位由0變1,所以H8421變?yōu)镠8429,到這里可以理解。
但是從監(jiān)視模式中讀取D0數(shù)值可以發(fā)現(xiàn),把H8421送入D0中時,D0為-31711,D0變?yōu)镠8429時,D0為-31703
-31711轉(zhuǎn)二進制   1 111  1011  1101  1111
-31703轉(zhuǎn)二進制   1 111  1011  1101  0111
最左邊1表示正負,其余15位表示數(shù)值,也是b3位變化,
但是-31711的二進制化為十六進制是FBDF
-31703的二進制化為十六進制FBD7,并不是上面的8421和8429。
請高手賜教上面的進制換算問題出在哪里?
想吃火鍋雞
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 14 個
工控威望: 83 點
下載積分: 526 分
在線時間: 14(小時)
注冊時間: 2021-08-21
最后登錄: 2024-08-20
查看想吃火鍋雞的 主題 / 回貼
1樓  發(fā)表于: 2021-09-01 20:19
感謝解答,初學(xué)考慮不周,疏忽了最基礎(chǔ)的問題非常感謝



引用
引用第1樓菜鳥入行于2021-09-01 17:32發(fā)表的  :
H8421太大了。 相當(dāng)于K33825.  已經(jīng)超過了單字節(jié)D可以存儲的上限,所以變成負數(shù)了。

在32767以內(nèi),你的算法是對的。

超過32767,要用DMOV ,會占用D0和D1,這樣才能按你的算法來。