隨著PLC技術的發展,越來越多的設備中應用到PLC控制器,如中央空調中的恒溫恒濕機、冷水機等。在這些設備的應用中,使用了大量的模擬量輸入輸出信號,來達到溫濕度控制。為此,我們在這里以模擬量輸入信號(0-20mA和4-20mA)為例,簡單介紹以S7-200的模擬量處理方法:
1. 模擬量比例換算
因為A/D(模/數)、(D/A)數/模轉換之間的對應關系,S7-200 CPU內部用數值表示外部的模擬量信號,兩者之間有一定的數學關系。這個關系就是模擬量/數值量的換算關系。例如,使用一個0 - 20mA的模擬量信號輸入,在S7-200 CPU內部,0 - 20mA對應于數值范圍0 - 32000;對于4 - 20mA的信號,對應的內部數值為6400 - 32000。顯然兩者之間存在比例換算關系。模擬量輸出的情況也大致相同。
上面談到的是0 - 20mA與4 - 20mA之間換算關系,但模擬量轉換的目的顯然不是在S7-200 CPU中得到一個0 - 32000之類的數值;對于編程得到具體的物理量數值(如溫度、濕度、壓力值、流量值),或者對應物理量占量程的百分比數值要更方便,這是換算的最終目標。
2. 通用比例換算公式
模擬量的輸入可以用下列的通用換算公式換算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:Ov: 換算結果 Iv: 換算對象 Osl: 換算結果的低限
Ish: 換算對象的高限 Isl: 換算對象的低限
它們之間的關系可以圖示如下:
圖1. 模擬量比例換算關系
3.程序的編制
根據1、2兩點的分析,在由第二點中的公式可以編制如下用戶程序。首先在已存在的程序項目建立子程序,在子程序中添加如下代碼:
LD SM0.0
-R #Osl, #Osh
-I #Isl, #Input
ITD #Input, #Temp_D
DTR #Temp_D, #Temp_R
*R #Temp_R, #Osh
-I #Isl, #Ish
ITD #Ish, #Temp_D
DTR #Temp_D, #Temp_R
/R #Temp_R, #Osh
+R #Osl, #Osh
MOVR #Osh, #Output
在建立了子程序后,在把它定義為庫指令后,在以后的編程中可以隨時調用該指令應用到不同的控制程序中,使用程序的編制過程簡單,同時使增強的程序的可讀性。以上的程序已經過實際的應用,同行們可以直接使用。在程序中調用的指令Scal_I_to_R如下圖所示。