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