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