這一節(jié)講述4-20mA的模擬量信號進入西門子S7-200PLC以后,PLC怎樣通過程序把它變成我們想要的實際數(shù)值。雖然這節(jié)講的是西門子PLC的模擬量處理程序,但道理都是一樣的,你只要把程序的原理弄明白了,在其他品牌的PLC上應(yīng)用也是一樣的,不管是三菱的還是施耐德的都一樣。所以文章最后我會附上本節(jié)所講的程序的下載方法,有需要的朋友可以自己下載研究。
通過上一節(jié)的學習我們知道,模擬量其實就是一個在一定數(shù)字范圍內(nèi)連續(xù)變化的數(shù)值。這個數(shù)字范圍絕大多數(shù)都是用4-20mA這個電流信號作為標準范圍,至于為什么這樣用,上一節(jié)已經(jīng)講的很清楚了,這里不再重復。接下來看圖1。
圖1,的左邊是一個量程范圍為0-10kpa的壓力變送器,它的輸出電流就是0-10kpa對應(yīng)4-20mA,所以壓力在5kpa時對應(yīng)的電流就是12mA,我們只要在電路中串聯(lián)一個數(shù)字萬用表就能看到電流的讀數(shù),然后我們通過這個讀數(shù),拿一個計算器通過加減乘除就能算出實際的壓力是5kpa。這就是手動的算法,如果用這種算法去算實際壓力值,簡直就是太老土了。這些活只要交給PLC去干就行了,你只要把程序?qū)懞肞LC就會不知疲倦的去算還不會出錯,我們騰出時間看點自己想看的片片多好呢。那怎么讓PLC去算呢?很簡單,我們只要做兩件事就可以了。
第一,硬件部分,看圖1的右邊,我們只要在原來接數(shù)字萬用表的地方,接一個PLC的模擬量輸入模塊就行了,你沒看錯,原理就是這樣的。它實際的接線圖就是下面的圖2。
在圖2我們看到壓力變送器和PLC的模擬量模塊串聯(lián)在一起,模擬量模塊把接收到的4-20mA電流信號經(jīng)過處理傳送給PLC,這樣PLC就能通過程序計算出實際的壓力值了。它的內(nèi)部處理過程如下。
圖3,是模擬量信號在PLC內(nèi)部的處理過程和工作原理,只要能看明白這張圖,我下面講程序時你就能很容易理解了。
其實模擬量模塊內(nèi)部和壓力變送器內(nèi)部一樣,都是有一塊電路板。這塊電路板的主要作用就是實現(xiàn)A/D轉(zhuǎn)換,A指的是模擬量,D指的是數(shù)字量。為什么要這樣轉(zhuǎn)換呢?沒辦法因為PLC不認識4-20mA模擬量只認識數(shù)字量。那么4-20mA模擬量信號轉(zhuǎn)換成數(shù)字量是多少了呢?西門子的PLC是0-20mA(注意是0-20mA)對應(yīng)的是0-32000,所以4-20mA對應(yīng)的是6400-32000。這句話要是不明白,可以自己算算就知道了。
這樣我們就得出了模擬量的處理過程是這樣的:壓力變送器接到PLC的模擬量模塊的第一組觸點AIW0(AIW0是模塊第一組觸點的地址,每一個模擬量PLC都會分配一個地址,這樣PLC才能分清誰接在了第一組觸點誰接在了第二組。其他的不用管,我們只要記住第一組是AIW0,第二組是AIW2就行了,以此類推),然后AIW0把4-20mA模擬量信號送入模塊內(nèi)部的A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器再把4-20mA模擬量信號轉(zhuǎn)換成數(shù)字量信號6400-32000。然后模塊再把這個6400-32000傳送給PLC,PLC再通過程序對這個數(shù)字量進行處理,來把我們需要的壓力數(shù)值計算出來。程序怎么寫呢?下面就是我們要做的第二件事,程序部分。
看圖4,就是模擬量轉(zhuǎn)換計算程序。大家看一下一共才用了6個西門子PLC指令,就把實際的壓力值計算了出來,其中:
1,是整數(shù)轉(zhuǎn)雙整數(shù)指令。
2,是雙整數(shù)轉(zhuǎn)浮點數(shù)指令。
3,是減法指令。
4,是除法指令。
5,是減法指令。
6,是乘法指令。這些減法,乘法,除法指令和我們平時用的加減乘除的原理是一樣的。而整數(shù)轉(zhuǎn)雙整數(shù)和雙整數(shù)轉(zhuǎn)浮點數(shù)指令是為了將0-32000這個整數(shù)轉(zhuǎn)換為浮點數(shù)。因為我們的模擬量數(shù)據(jù),壓力,溫度,流量等,多數(shù)都是帶小數(shù)點的數(shù)值,所以模擬量輸入以后,先把它轉(zhuǎn)換成帶小數(shù)點浮點數(shù)的數(shù)據(jù)類型。
為了便于大家理解,下面我們就以輸入壓力為:5kpa,壓力變送器量程為:0-10kpa為例進行講解。
看圖5,
第一個指令:整數(shù)轉(zhuǎn)雙整數(shù):作用是把輸入地址AIW0的整數(shù)數(shù)據(jù)19200,轉(zhuǎn)換成雙整數(shù)數(shù)據(jù)19200,然后把數(shù)據(jù)放入通用寄存器MD0。至于為什么壓力是5kpa時,AIW0的數(shù)據(jù)是19200,看一下圖5下面的黑色方塊內(nèi)的轉(zhuǎn)換過程就知道了。
第二個指令:雙整數(shù)轉(zhuǎn)浮點數(shù):作用是把通用寄存器MD0中的19200轉(zhuǎn)換成浮點數(shù)19200.0(大家看有小數(shù)點了,但數(shù)據(jù)大小并沒有改變。就好比你穿了件棉襖,但你還是你),然后把19200.0放入通用寄存器MD4。大家如果看到AIWO,MD0,MD4等不知道是什么意思,就看看我以前的文章全都講過了。當時可能大家沒有足夠重視,現(xiàn)在用到了。不懂的趕緊去學學,這都是PLC處理模擬量的基礎(chǔ),如果西門子PLC的模擬量處理你不明白,其他品牌的PLC模擬量處理你也不會看懂。
第三個指令:浮點數(shù)減法:作用是實現(xiàn)量程下限標準化(可以理解為,計算出壓力變送器的量程范圍0-10kpa中的最小值0kpa)。即讓MD4中的19200.0減去6400.0然后把結(jié)果放入MD8。
第四個指令:浮點數(shù)除法:作用是實現(xiàn)量程上限標準化,它和上面量程下限標準化的原理是一樣的。即讓MD8中的12800.0除以25600.0然后把結(jié)果放入MD12。
第五個指令:浮點數(shù)減法:作用是定義并計算出壓力變送器的量程范圍(壓力變送器量程范圍是0-10kpa就寫成0.0和10.0。如果量程范圍是0-0.6MP就寫成0.0和0.6。以此類推),然把數(shù)據(jù)放入MD16.
第六個指令:浮點數(shù)乘法:作用是計算出我們實際的壓力數(shù)值。讓量程上限標準化MD12中的值乘以量程范圍MD16中的值,就是我們實際的壓力數(shù)值5.0kpa,數(shù)據(jù)放在通用寄存器MD20中。
這就是西門子S7-200 PLC的模擬量的處理過程,上面的程序是一個標準的4-20mA模擬量信號的PLC計算程序,我們在實際項目應(yīng)用中可以直接拿來使用。自己也可以實驗一下當壓力是:8kpa時各個指令數(shù)值是怎樣變化的。
聯(lián)系客服