- 電話: 010-64734946 64734947 64738638
- 傳真: 010-64738090
模擬量轉(zhuǎn)換怎樣轉(zhuǎn)換?
軟件編程S7-400壓力傳感器分享FC105PIWword
在生活中經(jīng)常會遇到一些新手提出關(guān)于模擬量怎樣轉(zhuǎn)換的問題。我們知道西門子系統(tǒng)庫有專門的塊可以直接使用,例如模擬量輸入轉(zhuǎn)換塊FC105。但是塊指令各個管腳的含義等不適很明白。有些即使看了幫助文件也不明白。這個時候其實我們完全不需要使用系統(tǒng)塊指令,自己編寫程序就可以實現(xiàn)。
我們都知道大多數(shù)傳感器輸出信號和其測量數(shù)值成比例關(guān)系,即直線關(guān)系。我們可以使用數(shù)學表達式表達:Y= k X+b 這里舉個最簡單的例子。有一個4線制液壓壓力傳感器,其量程也就是測量范圍是0-400bar ,輸出4-20ma電流信號。即 當傳感器檢測到液壓壓力為0bar,輸出4ma 電流信號,當傳感器檢測到液壓壓力為400bar,輸出20ma電流信號。4-20ma對應(yīng)模擬量數(shù)值0--27648 。
從上圖我們得知:b=0 ,k=400/27648 即 Y=400 X/27648 。由于有除法運算,為了提高運算結(jié)果精度,我們使用浮點數(shù)運算。根據(jù)數(shù)學表達式我們可以輕松得寫出程序。假設(shè)模擬量輸入地址是PIW 264,轉(zhuǎn)換結(jié)果保存在MD0中。程序如下:
L PIW264 //把PIW264裝載到累加器1中低16位
ITD //整數(shù)轉(zhuǎn)換雙整數(shù),結(jié)果保存在累加器1中
DTR //雙整數(shù)轉(zhuǎn)換浮點數(shù),結(jié)果保存在累加器1中
L 400.0 //把400.0 裝載到累加器1中,原累加器1中內(nèi)容復制到累加器2中
*R //累加器2內(nèi)容與累加器1內(nèi)容相乘結(jié)果保存在累加器1中
L 27648.0 //把27648.0裝載到累加器1中,原累加器1中內(nèi)容復制到累加器2中
/R // 累加器2內(nèi)容除以累加器1中內(nèi)容,結(jié)果保存在累加器1中
T MD0 //累加器1中內(nèi)容傳送到MD0中。
當然,我們也可以使用梯形圖指令實現(xiàn)同樣的功能。因為梯形圖中對數(shù)據(jù)類型有嚴格的要求,PIW 264 是WORD 數(shù)據(jù)類型,因此我們需要先將PIW 264賦值給整數(shù)類型變量MW10 。程序見下圖
當然,這個是最簡單的模擬量轉(zhuǎn)換。但是,只要我們明白了原理,再復雜的模擬量轉(zhuǎn)換,我們只要畫出圖形,寫出數(shù)學表達式,根據(jù)數(shù)學表達式就可以快速正確的編寫出程序。