西門(mén)子S7-1200 PLC 水箱水位控制程序案例
吳翠萍
發(fā)布于2021-01-30 18:18
40
2
標(biāo)簽:西門(mén)子PLC,西門(mén)子S7-1200,PLC程序案例
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門(mén)子案例 | 電工手冊(cè) | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個(gè)|西門(mén)子PLC例程777個(gè)
【點(diǎn)擊下載】2020最新電工仿真軟件
給大家分享一個(gè)編程案例——S7-1200 PLC水箱水位控制,案例會(huì)應(yīng)用到基本指令、模擬量轉(zhuǎn)換指令、數(shù)據(jù)塊的使用、FB和FC的使用等知識(shí),這就要求大家要先掌握這些知識(shí),才能更好地理解案例程序哦。話(huà)不多說(shuō),我們就開(kāi)始吧。
先說(shuō)明一下案例的控制要求:
1、該控制項(xiàng)目為水箱水位控制系統(tǒng),系統(tǒng)中一共有3隔水箱,每隔水箱抖音一個(gè)液位傳感器、輸出的信號(hào)為0~10V電壓信號(hào),檢測(cè)液位的高度為0~3m,液位為0.2m時(shí)為低液位,液位為2.5時(shí)為高液位。
2、每個(gè)水箱有三個(gè)進(jìn)水閥和三個(gè)出水閥,進(jìn)水閥分別是Y1、Y3、Y5,出水閥分別是Y2、Y4、Y6,每個(gè)水箱都有出水閥開(kāi)和出水閥關(guān)兩個(gè)按鈕,出水閥開(kāi)按鈕分別是SB1、SB3、SB5,出水閥關(guān)按鈕分別是SB2、SB4、SB6。
3、我們通過(guò)按SB1SB3SB5可以分別對(duì)各個(gè)水箱進(jìn)行防水操作,順序是隨機(jī)的,當(dāng)系統(tǒng)檢測(cè)到水箱的“空”信號(hào)時(shí),系統(tǒng)會(huì)自動(dòng)打開(kāi)水箱進(jìn)水閥進(jìn)行注水,當(dāng)檢測(cè)到水箱“滿(mǎn)”信號(hào)時(shí)停止進(jìn)水。水箱注水和水箱放空的順序是相同的,而且每次只能對(duì)一個(gè)水箱進(jìn)行注水的操作。
首先進(jìn)行IO分配:
IO分配好之后根據(jù)IO分配的點(diǎn)進(jìn)行接線即可,還需注意液位傳感器需要接到模擬量輸入模塊,一共有三個(gè)液位傳感器,那么可以選擇SM1231 AI04的模塊,分別接到通道1、通道2、通道3即可。
PLC控制程序設(shè)計(jì):(案例源程序獲取,請(qǐng)看文末)
1、首先進(jìn)行硬件組態(tài)、配置模擬量模塊的參數(shù)
我們選用CPU1214C DC/DC/DC型號(hào)的PLC,此外因?yàn)樾枰獙?duì)三個(gè)水箱的水位進(jìn)行采集,要使用到模擬量輸入模塊,我們選用的是SM1231 AI04模塊,設(shè)備組態(tài)配置圖如下圖。
因?yàn)槭褂玫搅四M量模塊,還需要設(shè)置相應(yīng)的模擬量輸入信號(hào)的參數(shù)。根據(jù)液位繼電器的輸出信號(hào)類(lèi)型進(jìn)行配置,我們配置測(cè)量類(lèi)型為電壓,電壓范圍是正負(fù)10V,濾波為4個(gè)周期,啟用溢出診斷和下溢診斷。通道0對(duì)應(yīng)的地址是IW96,通道1對(duì)應(yīng)的地址是IW98,通道2對(duì)應(yīng)的地址是IW100。
2、編寫(xiě)模擬量處理程序
模擬量轉(zhuǎn)換程序,是用來(lái)把采集到的模擬量信號(hào)轉(zhuǎn)換成實(shí)際的液位,并將它與低液位和高液位做比較,從而輸出是否達(dá)到低液位信號(hào)和高液位信號(hào)。因?yàn)槿齻€(gè)水箱 計(jì)算過(guò)程是相同的,所以我們可以編寫(xiě)一個(gè)帶形式參數(shù)的FC塊,方便重復(fù)調(diào)用。具體操作是添加一個(gè)FC塊,并且命名為“模擬量處理”,設(shè)置好變量并編寫(xiě)FC程序。
3、建立一個(gè)PLC數(shù)據(jù)類(lèi)型、添加一個(gè)全局DB塊
在PLC數(shù)據(jù)類(lèi)型頁(yè)面中添加一個(gè)PLC的數(shù)據(jù)類(lèi)型,并把它命名為“Analog”,在里面建立之后需要用到的變量,包括當(dāng)前水位、低水位和高水位,并且設(shè)置好這三個(gè)變量的數(shù)據(jù)類(lèi)型。
此外,再新建一個(gè)全局DB塊,把它命名為“水箱控制數(shù)據(jù)”,我們可以在里面建立一個(gè)名稱(chēng)為“模擬量”的變量名稱(chēng),數(shù)據(jù)類(lèi)型設(shè)置成數(shù)組Array[0..2]of “Analog”,然后把每個(gè)元素的數(shù)據(jù)類(lèi)型選擇成建立的PLC的數(shù)據(jù)類(lèi)型。
4、編寫(xiě)水箱放水和進(jìn)水控制程序(案例源程序獲取,請(qǐng)看文末)
因?yàn)橛腥齻€(gè)水箱,它們的注水和放水的過(guò)程是一樣的,我們就可以把水箱的注水和放水過(guò)程的程序編寫(xiě)成一個(gè)帶形式參數(shù)的FB塊,方便重復(fù)調(diào)用。具體操作是添加一個(gè)FB塊,并命名為“水箱控制”,在FB的接口區(qū)建立相應(yīng)的形式參數(shù)變量,然后再編寫(xiě)FB中的控制程序。
以上是打開(kāi)放水閥程序,當(dāng)按下放水閥開(kāi)按鈕時(shí),放水電磁閥打開(kāi),按下放水閥關(guān)按鈕或者水位達(dá)到低水位時(shí),關(guān)閉放水閥。
以上標(biāo)記水箱空標(biāo)志程序,因?yàn)樗涑霈F(xiàn)空信號(hào)后可以進(jìn)行注水操作,但是一次只能對(duì)一個(gè)水箱進(jìn)行注水,所以當(dāng)標(biāo)記水箱為空標(biāo)志信號(hào)為1時(shí),才可以進(jìn)行注水操作。
當(dāng)水箱水位到達(dá)低水位,則說(shuō)明水箱是空的,這時(shí)如果另外兩個(gè)水箱的空標(biāo)記信號(hào)沒(méi)有,那么這個(gè)水箱的空標(biāo)記信號(hào)輸出為1,如果另外兩個(gè)水箱已經(jīng)有水箱出現(xiàn)空標(biāo)記信號(hào)的話(huà),那么這個(gè)水箱的空標(biāo)記信號(hào)不能輸出為1。
而且當(dāng)這個(gè)水箱開(kāi)始注水時(shí),水箱的空標(biāo)記信號(hào)需要復(fù)位。
以上是開(kāi)進(jìn)水閥程序,當(dāng)水箱空標(biāo)記為1時(shí),就可以打開(kāi)進(jìn)水電磁閥,同理因?yàn)橐淮沃荒軐?duì)一個(gè)水箱進(jìn)行注水操作,所以如果檢測(cè)到另外兩個(gè)水箱有注水操作時(shí),那么這個(gè)水箱也不能進(jìn)行注水操作。當(dāng)達(dá)到高水位時(shí)停止關(guān)閉進(jìn)水電磁閥,停止注水操作。
5、調(diào)用模擬量處理FC塊和水箱控制FB塊程序(案例源程序獲取,請(qǐng)看文末)
添加一個(gè)FB塊,并命名為“水箱水位控制程序”,我們?cè)谶@個(gè)FB塊中調(diào)用模擬量處理FC塊,模擬量處理FC塊的作用是對(duì)每隔水箱的液位傳感器的數(shù)據(jù)進(jìn)行處理。
此外還要調(diào)用水箱控制FB塊程序,需要注意調(diào)用FB塊在分配背景數(shù)據(jù)塊時(shí),要選擇多重實(shí)例背景,調(diào)用之后編寫(xiě)每隔水箱的放水和進(jìn)水的程序。
(案例源程序獲取,請(qǐng)看文末)
以上程序?qū)?yīng)的變量表,包括名稱(chēng)、地址、數(shù)據(jù)類(lèi)型如下圖所示。
6、主程序OB1中調(diào)用水箱水位控制程序的FB塊
這樣,我們就完成了整個(gè)控制案例的程序設(shè)計(jì),當(dāng)然這并不是一個(gè)完整的項(xiàng)目,如果是應(yīng)用到實(shí)際項(xiàng)目中,可能還會(huì)有其他需要考慮的問(wèn)題哦,這個(gè)就等待大家家去思考啦~
技成培訓(xùn)網(wǎng)原創(chuàng),作者:蔡慧滎,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究~
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門(mén)子案例 | 電工手冊(cè) | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個(gè)|西門(mén)子PLC例程777個(gè)
【點(diǎn)擊下載】2020最新電工仿真軟件