yzc3699
級別: 正式會(huì )員
![]() |
描述:監視截圖
圖片: ![]() 三菱程序監視,這是一個(gè)通訊程序中的數據運算處理步,請看D20中的數據,為何從正數變成了負數,從該條指令后,絕對無(wú)關(guān)于D20的32位的運算,若把MUL D20 D14 D22改成DMUL D20 D14 D22則D22中的數據為正值并且按運算正常思路,結果都是對的,哪位工控朋友如果有過(guò)這樣的經(jīng)驗,請賜教,QQ:76609809.謝謝! |
---|---|
|
yzc3699
級別: 正式會(huì )員
![]() |
補充一下,這個(gè)問(wèn)題是偶爾發(fā)生的,不是每次運算結果都是這樣的,絕大多數運算結果都是對的! |
---|---|
|
saisam2006
級別: 論壇先鋒
![]() |
一個(gè)字最大是32767 還有一個(gè)符號位。你查一下書(shū)吧! |
---|---|
|
蕭風(fēng)
當你不能改變你身處的環(huán)境時(shí),可以重新選擇環(huán)境
級別: 略有小成
![]() |
MUI D13 H100 的運算結果大于16位寄存器(32767)D20的空間,ADD D20的數字就會(huì )變負數,請樓主多看16位和32位數據運算的說(shuō)明 ![]() |
|
---|---|---|
本帖最近評分記錄:
|
yuaiwu
wemhoener
級別: 網(wǎng)絡(luò )英雄
![]() ![]() |
上面一行是兩個(gè)一個(gè)字(16)數相乘,結果會(huì )占用兩個(gè)字(32),所以顯示的是32位數值 下面顯示的只顯示48384前15位值,16位是符號位,用計算器驗證了下,也是對的 |
---|---|
|
gcbplc
QQ3130569178 PLC編程、登錄口令修改刪除、調試
級別: 工控俠客
![]() |
學(xué)習了 |
|
---|---|---|
|
550374389
。!
級別: 論壇先鋒
![]() ![]() |
樓上,關(guān)鍵是MUL后面顯示的結果是D20跟D21兩個(gè)寄存器的共同結果,是32位的。后面的ADD中的D20顯示的只是D20一個(gè)寄存器的結果,時(shí)16位的,看看ADD SUB,MUL和DIV這幾條指令的用法你就明了。! |
---|---|
|