wxk8000
級別: 略有小成
|
圖片:
請教大家一個問題: 最近在使用模擬量輸出編程的時候發現一個問題,在標定的時候。 儲存區AQW的用法?為何ADD_I指令將兩個數相加不能直接放在AQW中?提示錯誤“指令操作數的存儲器區無效” [attachment=118211] 提示如下錯誤: 而可以放在LW中,再通過MOV_W傳送至AQW中 如下圖所示 有人說是“數據類型不符” ADD_I也是將兩個整型數相加得到的結果也是整型啊 AQW也是整數啊 都是整型為何不能直接OUT-AQW呢? 也有人說: 整數運算不支持OUT-AQW著整數 讀寫不能同時進行 [ 此帖被wxk8000在2014-02-27 22:25重新編輯 ] |
---|---|
|
wxk8000
級別: 略有小成
|
另外,昨天問了一個好友,ADD_I在輸入引腳可以接AIW,就是輸出引腳不能接AQW,說是手冊和西門子軟件這么規定的,如下圖所示: 也就是說必須用一個MOV_W指令將轉換后的結果送入AQW 雖然手冊上這么規定,但是我不太理解 |
---|---|
|
zhanghuan
級別: 略有小成
|
按圖中紅色的插入ROUND試試,不用MOV 在紅色ROUND指令之前,你用的是浮點數計算,而后面又整數計算,顯然LD22數據類型沖突,必須加入取整指令 |
---|---|
|
wxk8000
級別: 略有小成
|
我貼一個西門子論壇的回復,請大家在討論討論 “你用語句來觀看這一個add指令就知道為什么了。 AQ是不允許讀的,一個add指令可以分成兩個下面的指令 LD SM0.0 MOVW 1, AC0 +I 2, AC0 ld是配角沒問題。mov指令沒有問題。+I指令必然要先把ac讀出來準備運算,然后把2加上去,然后再把結果寫進去ac0。結果就產生了讀的操作。然后就錯了。” |
---|---|
|