借你消愁
級別: *
|
現在我用三菱PLC編寫的一個語句:MULP D560 D154 D540 現在在線監測到數據分別如下: 800 198 0 問題是800*198=158400才對,為何為0呢?是否超出溢出錯誤?如果是這樣,程序該如何修改?謝謝。 另外,我看到有關資料講,16位乘以16位就用MULP,得數就是32位。也就是540,541位。 |
---|---|
|
紫莫語
級別: 略有小成
|
沒用過MULP,不知道有沒有這個指令,建議你用DMUL D560 D154 D540,這樣計算出來就對了,不過D561和D155不要使用了,DMUL是32位乘法~~~~~~ |
---|---|
本帖最近評分記錄: |
借你消愁
級別: *
|
起初我也曾考慮使用DMUL,但D560是觸摸屏輸入數據,D154是測試傳感器數據。都是16位的,改為DMUL會有影響么?D561和D155我都預留著呢。 謝謝莫語。 |
---|---|
|
wu32u2
耐得住挫折的打磨,我們將迸發出比鉆石還璀璨的光芒——
級別: 論壇先鋒
|
寄存器實際上是有存儲次數的。幾十萬次還是幾百萬次我忘了。不是頻繁更改數據的話可以當作無限使用,使用DMUL沒有什么影響。 |
|
---|---|---|
|
借你消愁
級別: *
|
現在等同一秒一次了。如果次數為幾十萬次的話,也就是十多天的壽命了。 [ 此帖被借你消愁在2010-06-17 13:33重新編輯 ] |
---|---|
|
借你消愁
級別: *
|
我用查找的方法搜尋,未見到其他地方使用這個數據。 |
---|---|
|
veich
級別: *
|
起初我也曾考慮使用DMUL,但D560是觸摸屏輸入數據,D154是測試傳感器數據。都是16位的,改為DMUL會有影響么?D561和D155我都預留著呢。 謝謝莫語。 不會有影響,另外查一下其他地方是否占用了相近的寄存器,從而自動占用了D560或D154. |
---|---|
|
ykykkhor
Best Regards,YK
級別: 略有小成
|
有好幾個可能: 1) PLC 在 STOP Mode - 讓 PLC RUN 2) 程序沒有啟動到 -| | - -|/|- ------[ MULP D560 D154 D540 ] - 檢查程序中啟動條件 -| | - -|/|- 3) 程序啟動一次而已, MULP 是上升脈沖型 - 嘗試把 MULP 改成 MUL 4) 程序啟動掃描時, 變量更新的時差 4-1) D560 或 D154 更新分別為 800 和 198 的時候已經執行了 --[ MULP D560 D154 D540 ] - 更改程序, 把 -[ MULP D560 D154 D540 ] 推到 D560 或 D154 更新后才執行 |
---|---|
|