模擬量在工業(yè)現(xiàn)場使用的非常普遍,常見的模擬量信號有±10V、±5V、0~20mA、4~20mA等等。當(dāng)模擬量傳感器連接到模擬量輸入模塊后,CPU必須將采集到的信號進(jìn)行轉(zhuǎn)換才能正確的處理,這也就是常說的模數(shù)轉(zhuǎn)換。
不過,模數(shù)轉(zhuǎn)換后的數(shù)值并不具有明顯的工程意義。比如,經(jīng)過模數(shù)轉(zhuǎn)換后,得到模擬量的信號值為15680。這個(gè)值并不具有工程意義,必須將其轉(zhuǎn)換成工程量值(比如溫度、壓力等)才有實(shí)際意義。今篇這篇文章,我們就來談?wù)勗鯓訉⒛M量的信號值轉(zhuǎn)換成工程量值。
很多PLC都集成了模擬量信號值與工程量值的轉(zhuǎn)換指令/函數(shù),比如S7-1200 系列PLC,可以使用指令SCALE_X和NORMAL_X來完成轉(zhuǎn)換。
具體可以看看這篇文章:
如何對模擬量模塊SM1232進(jìn)行組態(tài)和編程?
其實(shí),模擬量信號值和對應(yīng)的工程量值之間成正比關(guān)系,有一個(gè)通用的轉(zhuǎn)換公式。
接下來我們介紹下這個(gè)轉(zhuǎn)換公式。有了這個(gè)公式,也可以自己編程來實(shí)現(xiàn)轉(zhuǎn)換函數(shù)。
在介紹公式之前,先做如下定義:
Ish:模擬量信號轉(zhuǎn)換后的最大值(上限,Input scale value high);
Isl:模擬量信號轉(zhuǎn)換后的最小值(下限,Input scale value low);
Osh:工程值的最大值(上限,Output scale value hight);
Osl:工程值的最小值(下限,Output scale value low);
Iv:輸入的模擬量信號值(Input value);
Ov:輸出的工程值(Output Value);
以模擬量轉(zhuǎn)換后的信號值為橫坐標(biāo),以與之對應(yīng)的工程量值為縱坐標(biāo),在二維坐標(biāo)系中畫出一條直線。上述各值在坐標(biāo)系中的分布如下圖:
根據(jù)正比關(guān)系,有如下方程:
(Osh-Osl)/(Ish-Isl)=(Ov-Osl)/(Iv-Isl)
解方程得出:
Ov=[(Osh-Osl)*(Iv-Isl)/(Ish-Isl)]+Osl
這個(gè)就是模擬量信號值轉(zhuǎn)換成工程量值的公式,感興趣的小伙伴可以根據(jù)這個(gè)公式編寫出自己的轉(zhuǎn)換函數(shù)。
好了,關(guān)于模擬量信號值與工程量值的轉(zhuǎn)換就介紹到這里。歡迎掃描下面的二維碼關(guān)注我們的微信公眾號。