在plc編程中,只要涉及到數(shù)據(jù)采集和輸出,都會遇到模擬量的線性變換。在西門子300plc編程中,系統(tǒng)自帶的兩個線性變換功能塊fc105和fc106是最常用的兩個數(shù)據(jù)轉換模塊。但是在博圖中,模擬量的線性轉換跟300plc有一定的差異,本文詳細介紹1200,1500中模擬量的線性轉換問題。
1. 線性變換原理
線性變換原理公式
線性變換的原理很簡單,比如說,在工程測量中,常會遇到4-20ma的傳感器,如壓力傳感器或位移傳感器等,要轉換為0-50mpa的物理量。用高中學過的直線方程兩點式就可以了。已知兩點(4,20)和(20,50),求(x,y)。
2. 線性變換用到的指令模塊
(1).標準化(norm_x)指令:
可以使用“標準化”指令,通過將輸入 value 中變量的值映射到線性標尺對其進行標準化??梢允褂脜?shù) min 和 max 定義(應用于該標尺的)值范圍的限值。輸出 out 中的結果經(jīng)過計算并存儲為浮點數(shù),這取決于要標準化的值在該值范圍中的位置。如果要標準化的值等于輸入 min 中的值,則輸出 out 將返回值“0.0”。如果要標準化的值等于輸入 max 的值,則輸出 out 需返回值“1.0”。
out=(value-min)/(max-min)
上面是plc幫助文檔的官方解釋:很拗口,理解不了不用去管他。下面直接看應用就會好。
標準化(norm_x)指令
標準化(norm_x)指令映射關系
標準化(norm_x)指令參數(shù)
注意這個數(shù)據(jù)類型就可以了。
(2)scale_x:縮放
“縮放”指令,通過將輸入 value 的值映射到指定的值范圍來對其進行縮放。 當執(zhí)行“縮放”指令時,輸入 value 的浮點值會縮放到由參數(shù) min 和 max 定義的值范圍。 縮放結果為整數(shù),存儲在 out 輸出中。
同樣的,不用去刻意理解這個意思。后面看舉例應用就可以了。
scale_x:縮放指令
縮放指令映射
縮放指令參數(shù)
同樣的,注意這個數(shù)據(jù)類型就可以了。
3. 線性變換指令塊的應用舉例
線性變換的原理很簡單,比如說,在工程測量中,常會遇到4-20ma的傳感器,如壓力傳感器或位移傳感器等,要轉換為0-50mpa的物理量。用高中學過的直線方程兩點式就可以了。已知兩點(4,20)和(20,50),求(x,y)。
先熟悉模擬量采集的對應關系,如圖,4-20ma對應0-27648
plc電壓測量值對應關系
plc電流測量值對應關系
4-20ma轉換為0-50mpa程序
如圖所示:經(jīng)過兩步就可以把,采集到的模擬量4-20ma,轉換為0-50mpa。
如果是-10v-10v對應0-50mpa,只需要把min賦值為-27648(查表)即可。
4. 理解
上述兩步,其實就是把線性關系
兩點式分兩步完成了。
理解起來可能有點拗口,應用起來知道怎么處理就行。
第一步:看是單極性,還是雙極性,單極性對應0-27648,雙極性(-10v到10v)對應-27648—27648,
第二步:調用模塊。
第三步:分別給兩個模塊的min,max,valuw賦值即可。注意其數(shù)據(jù)類型,一般的%iw0為int,轉換后位real。
下一篇小文準備寫模擬量的輸出線性變換。這個需要兩個模塊來轉換得到物理量,再下一篇小文介紹兩點式線性變換程序的編寫,用一個模塊就可以搞定。