S7-200模擬輸入量處理
劉玉蓉
發(fā)布于2014-10-31 17:39
1
0
標(biāo)簽:
模擬輸入量處理程序的提問
有一模擬輸入量處理程序,前面兩個網(wǎng)絡(luò)的語句是:
TITLE=程序注釋
Network 1 // 網(wǎng)絡(luò)標(biāo)題
// 網(wǎng)絡(luò)注釋
LD SM0.0
MOVW AIW0, VW12 //將模擬量輸入值存在VW12
Network 2
LDW>= VW12, 0
MOVW 0, VW10 //將輸入值轉(zhuǎn)換成雙字
NOT
MOVW 16#FFFF, VW10
請問語句:MOVW 16#FFFF, VW10有什么功能?有書解釋為,如果VW12為負(fù),擴(kuò)展標(biāo)志位使雙字節(jié)為負(fù)值,這樣處理有什么好處,不這樣處理又會有什么惡果?
佳答案
MOVW 16#FFFF, VW10有什么功能?
NOVW 16#FFFF,VW10 //把輸入值轉(zhuǎn)換成雙字,則VD10=當(dāng)前模擬量采樣值
在二進(jìn)制中,負(fù)數(shù)是以補(bǔ)碼表示。所以在轉(zhuǎn)換為雙字格式的時候,必須將高位的VW10的全部位全部置“1”,也就是寫入“16#FFFF”。實際上VW12中已經(jīng)用補(bǔ)碼表示了,因此就不必再做改動了。兩者合起來就成為雙字格式的以補(bǔ)碼表示的負(fù)數(shù)。
S7-200中還提供了一個指令“I_D”,直接將字轉(zhuǎn)換為雙字。這樣更方便,且不易出錯。
參考:
https://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=37885&cid=1028