假設模擬量的標準電信號是 A0—Am(如:4—20mA),A/D轉換後數值為(wei) D0—Dm(如:6400—32000) ,設模擬量的標準電信號是A,A/D轉換後的相應數值為(wei) D,由於(yu) 是線性關(guan) 係,函數關(guan) 係
A=f(D)可以表示為(wei) 數學方程:
A=(D-D0)×(Am-A0)/(Dm-D0)+A0。
根據該方程式,可以方便地根據D值計算出A值。將該方程式逆換,得出函數關(guan) 係D=f(A)可以表示為(wei) 數學方程:
D=(A-A0)×(Dm-D0)/(Am-A0)+D0。
具體(ti) 舉(ju) 一個(ge) 實例,以S7-200和4—20mA為(wei) 例,經A/D轉換後,我們(men) 得到的數值是 6400—32000,即A0=4,Am=20,D0=6400,Dm=32000 ,代入公式,得出:
A=(D-6400)×(20-4)/(32000-6400)+4
假設該模擬量與(yu) AIW0對應,則當AIW0的值為(wei) 12800時,相應的模擬電信號是6400×16/25600+4=8mA。
又如,某溫度傳(chuan) 感器,-10—60℃與(yu) 4—20mA相對應,以T表示溫度值,AIW0為(wei) PLC模擬量采樣值,則根據上式直接代入得出: T=70×(AIW0-6400)/25600-10 可以用T 直接顯示溫度值。
模擬量值和A/D轉換值的轉換理解起來比較困難, 該段多讀幾遍, 結合所舉(ju) 例子,就會(hui) 理解。為(wei) 了讓您方便地理解,我們(men) 再舉(ju) 一個(ge) 例子:
某壓力變送器,當壓力達到滿量程5MPa時,壓力變送器的輸出電流是20mA,AIW0的數值是32000。可見,每毫安對應的A/D值為(wei) 32000/20,測得當壓力為(wei) 0.1MPa時,壓力變送器的電流應為(wei) 4mA,A/D值為(wei) (32000/20)×4=6400。由此得出,AIW0的數值轉換為(wei) 實際壓力值(單位為(wei) KPa)的計算公式為(wei) :
VW0的值=(AIW0的值-6400)(5000-100)/(32000-6400)+100 (單位:KPa)
編程實例
您可以組建一個(ge) 小的實例係統演示模擬量編程。本實例的的CPU 是CPU222,僅(jin) 帶一個(ge) 模擬量擴展模塊EM235,該模塊的第一個(ge) 通道連接一塊帶4—20mA變送輸出的溫度顯示儀(yi) 表,該儀(yi) 表的量程設置為(wei) 0—100度,即0度時輸出4mA,100度時輸出20mA。溫度顯示儀(yi) 表的鉑電阻輸入端接入一個(ge) 220歐姆可調電位器。
通用比例換算公式
模擬量的輸入/輸出都可以用下列的通用換算公式換算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:
它們(men) 之間的關(guan) 係可以圖示如下:
實用指令庫
在STEP 7-Micro/WIN Programming Tips(Micro/WIN編程技巧中)的Tip38就是關(guan) 於(yu) 如何實現上述轉換的例程。為(wei) 便於(yu) 用戶使用,現已將其導出成為(wei) “自定義(yi) 指令庫”,用戶可以添加到自己的Micro/WIN編程軟件中應用。
模擬量比例換算指令庫和例子
注意:此指令庫/程序的作者和擁有者對於(yu) 該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由於(yu) 它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為(wei) 此聯係西門子技術支持與(yu) 服務部門。 在這個(ge) 指令庫中,子程序Scale_I_to_R可用來進行模擬量輸入到S7-200內(nei) 部數據的轉換;子程序Scale_R_I可用於(yu) 內(nei) 部數據到模擬量輸出的轉換。
編程舉(ju) 例
西門子模擬量指令庫的用法如下圖所示