在plc編程中,只要涉及到數(shù)據(jù)采集和輸出,都會遇到模擬量的線性變換。在西門子300plc編程中,系統(tǒng)自帶的兩個線性變換功能塊fc105和fc106是最常用的兩個數(shù)據(jù)轉(zhuǎn)換模塊。fc105和fc106只適用與把采集通道的數(shù)字量(int)轉(zhuǎn)換為物理量(real),在一些普適的場合就不適用了。在碰到線性變換時,需要用戶自己編寫線性變換程序,費時費力還容易出錯。本文簡單介紹plc中模擬量線性標定子程序的原理和方法。
1. 線性變換原理
線性變換原理.
線性變換的原理很簡單,比如說,在工程測量中,常會遇到4-20ma的傳感器,如壓力傳感器或位移傳感器等,要轉(zhuǎn)換為0-50mpa的物理量。用高中學(xué)過的直線方程兩點式就可以了。已知兩點(4,0)和(20,50),求(x,y)。
2. 線性變換子程序
以下介紹線性變換的子程序編寫。
新建一個功能塊(如fc30),在fc30中編寫線性變換子程序。
如圖1.1所示為線性轉(zhuǎn)化子程序輸入變量。如圖所示,為了便于使用,輸入變量的數(shù)據(jù)類型都定義為浮點數(shù)。(在數(shù)據(jù)采集中,可能會遇到把采集值(piw int)轉(zhuǎn)換為模擬量(real)?;蛘甙盐锢砹浚╮eal)轉(zhuǎn)換為輸出量(pqw,int),此方法已經(jīng)在我的上一個小技巧教程中介紹過了。)
已知(x1,y1),(x2,y2)兩點,求(x,y)。
圖1.1 線性變換子程序輸入變量
如圖1.2所示為線性轉(zhuǎn)化子程序輸出變量。如圖所示,為了便于使用,輸出變量的數(shù)據(jù)類型為浮點數(shù)。
圖1.2 線性變換子程序輸出變量
圖1.3 線性變換中間變量
如圖1.4所示為線性轉(zhuǎn)化子程序的邏輯。線性變換的子程序非常簡單,就是用加減乘除把線性變換原理中的兩點式公式表示出來即可。
圖1.4 線性變換程序
如圖1.4所示為線性轉(zhuǎn)化子程序的應(yīng)用舉例。如圖所示,輸入段為4-20ma的模擬量,輸出段為0-50mpa的壓力值。
線性變換子程序應(yīng)用