[轉帖]S7-200工程量轉換的方法
1、 基本概念
我們生活在一個物質的世界中。世間所有的物質都包含了化學和物理特性,我們是通過對物質的表觀性質來了解和表述物質的自有特性和運動特性。這些表觀性質就是我們常說的質量、溫度、速度、壓力、電壓、電流等用數學語言表述的物理量,在自控領域稱為工程量。這種表述的優點是直觀、容易理解。在電動傳感技術出現之前,傳統的檢測儀器可以直接顯示被測量的物理量,其中也包括機械式的電動儀表。
2、標準信號
在電動傳感器時代,中央控制成為可能,這就需要檢測信號的遠距離傳送。但是紛繁復雜的物理量信號直接傳送會大大降低儀表的適用性。而且大多傳感器屬于弱信號型,遠距離傳送很容易出現衰減、干擾的問題。因此才出現了二次變送器和標準的電傳送信號。二次變送器的作用就是將傳感器的信號放大成為符合工業傳輸標準的電信號,如0-5V、0-10V或4-20mA(其中用得最多的是4-20mA)。而變送器通過對放大器電路的零點遷移以及增益調整,可以將標準信號準確的對應于物理量的被檢測范圍,如0-100℃或10-100℃等等。這是用硬件電路對物理量進行數學變換。中央控制室的儀表將這些電信號驅動機械式的電壓表、電流表就能顯示被測的物理量。對于不同的量程范圍,只要更換指針后面的刻度盤就可以了。更換刻度盤不會影響儀表的根本性質,這就給儀表的標準化、通用性和規;a帶來的無可限量的好處。
3、數字化儀表
到了數字化時代,指針式顯示表變成了更直觀、更精確的數字顯示方式。在數字化儀表中,這種顯示方式實際上是用純數學的方式對標準信號進行逆變換,成為大家習慣的物理量表達方式。這種變換就是依靠軟件做數學運算。這些運算可能是線性方程,也可能是非線性方程,現在的電腦對這些運算是易如反掌。
4、信號變換中的數學問題
信號的變換需要經過以下過程:物理量-傳感器信號-標準電信號-A/D轉換-數值顯示。
聲明:為簡單起見,我們在此討論的是線性的信號變換。同時略過傳感器的信號變換過程。
假定物理量為A,范圍即為A0-Am,實時物理量為X;標準電信號是B0-Bm,實時電信號為Y;A/D轉換數值為C0Cm,實時數值為Z。
如此,B0對應于A0,Bm對應于Am,Y對應于X,及Y=f(X)。由于是線性關系,得出方程式為Y=(BmB0)*(XA0)/(AmA0)+B0。又由于是線性關系,經過A/D轉換后的數學方程Z=f(X)可以表示為Z=(CmC0)*(XA0)/(AmA0)+C0。那么就很容易得出逆變換的數學方程為X=(AmA0)*(ZC0)/(CmC0)+A0。方程中計算出來的X就可以在顯示器上直接表達為被檢測的物理量。
5、PLC中逆變換的計算方法
以S7200和4-20mA為例,經A/D轉換后,我們得到的數值是6400-32000,及C0=6400,Cm=32000。于是,X=(AmA0)*(Z6400)/(320006400)+A0。
例如某溫度傳感器和變送器檢測的是10-60℃,用上述的方程表達為X=70*(Z6400)/2560010。經過PLC的數學運算指令計算后,HMI可以從結果寄存器中讀取并直接顯示為工程量。
設plc輸入植為AIW,實際顯示的溫度是X,溫度比例系數(溫度的刻度值);溫度變化范圍是下限A1,上限A2。、
演化計算方法:溫度刻度值Y=(32000—6400)/(A2—A1)
AIW=溫度顯示值X * 溫度刻度值Y +6400
AIW—6400=溫度顯示值X * 溫度刻度值Y
溫度顯示值X =(AIW—6400)/ 溫度刻度值Y
將數值代入公式
則X=(AIW—6400)*(A2—A1)/25600+A1
6400的由來:因傳感器是0mA—20Ma, plc輸入值范圍是0—32000,所以每mA的刻度值是32000/20mA(也就是1600);但大部分傳感器實際是4mA—20mA(4mA下沒有電流值),所以要先預留出4mA的電流值6400用同樣的原理,我們可以在HMI上輸入工程量,然后由軟件轉換成控制系統使用的標準化數值。
在S7200中,(Z6400)/25600的計算結果是非常重要的數值。這是一個0-1.0(100%)的實數,可以直接送到PID指令(不是指令向導)的檢測值輸入端。PID指令輸出的也是0-1.0的實數,通過前面的計算式的反計算,可以轉換成6400-32000,送到D/A端口變成4-20mA輸出。
以上講述的是PLC中工程量轉換的基本方法,程序的編寫則因人、因事而異。但是萬變不離其衷。如果大家感興趣,我可以給出自己編寫的程序供大家參考,同時也希望各位網友不吝賜教、互相交流
這是我稍加修改后的帖子,希望能對和我一樣的新人有所幫助。