力控-給排水監控系統設計與實現
實驗內容
—實驗內容參考至建築組態實驗指導書—
工程描述:
統採用高位水箱給水方式,包括一個高位水箱,兩個給水泵,水箱有兩個閥門,分別對生活區和游泳池供水。
功能要求:
1、實現水箱水位變化、閥門開關示意、水泵啓停示意的動畫連接;
2、水箱要實現低水位、啓泵水位、停泵水位、溢流水位的報警,低水位與溢流水位採用緊急報警,啓泵水位和停泵水位採用低級報警,當出現報警時要求彈出報警窗口,待確認後可以關閉;
3、水泵要求可自動控制水箱水位,低於啓泵水位時要開啓水泵,高於停泵水位時要關閉水泵,水泵要求輪流交替使用,當水箱水位低於低水位時,兩臺水泵同時啓動,每臺水泵的供水量模擬爲每秒3%水箱水量;
4、閥門採用手動控制,生活區的水量消耗模擬爲每秒2%水箱水量,游泳池的水量消耗模擬爲每秒1%水箱水量;
5、通過點擊“演示”按鈕啓動動畫演示,點擊“停止”按鈕關閉動畫演示;
6、工程進入運行狀態時要求直接進入給水監控畫面。
實驗步驟
1.繪製窗口
給排水監控系統
組件的放置位置參考 實驗1的文章,要找對
管道要分開畫,流動時纔好看
//水管分三個畫,這樣在流動時就很漂亮了,可分段的流,演示如下圖
//因爲一個管道必須要有三節或三節以上才能體現出流動性,所以畫的管道要畫三節或三節以上。
//可以利用網格工具畫直管道(網格在力控軟件的工具欄-查看-網格
報警窗口
組件的放置位置參考 實驗1的文章,要找對
2. 定義I/O設備
- 雙擊“IO設備組態”
- “IO設備”-“力控”-“仿真驅動”-“Simulator(仿真)”,右擊,新建名爲“PLC”、設備地址爲1的I/O設備。
3.建立實時數據庫組態
- 在數據庫定義模擬量I/O點level,數字量I/O點pump1、pump2、valve1、valve2、run
雙擊“數據庫組態”
右擊“數據庫”,添加點,模擬量I/O點level,數字量I/O點pump1、pump2、valve1、valve2、run
4.建立數據連接
(1)、將模擬量I/O點level的PV參數連接到I/O設備“PLC”的模擬量-常量寄存器輸入區的0通道;
(2)、將數字量I/O點pump1的PV參數連接到I/O設備“PLC”的數字量-常量寄存器輸入區的0通道;
(3)、將數字量I/O點pump2的PV參數連接到I/O設備“PLC”的數字量-常量寄存器-輸入區的1通道;
(4)、將數字量I/O點valve1的PV參數連接到I/O設備“PLC”的數字量-常量寄存器-輸入區的2通道;
(5)、將數字量I/O點valve3的PV參數連接到I/O設備“PLC”的數字量-常量寄存器-輸入區的3通道;
(6)、將數字量I/O點run的PV參數連接到I/O設備“PLC”的數字量-狀態控制-輸出區的0通道。
5.設置實時數據庫報警參數和歷史參數的組態
- 對實時數據庫點level組態報警參數,可以設置低水位限報警限值爲10,報警優先級爲高級;設置溢流位報警限值爲100,報警優先級爲高級。
6.建立動畫連接
給排水監控系統窗口
- 對水泵1組態:組態“顏色變化”動畫連接,表達式pump1.PV
- 對水泵2組態:組態“顏色變化”動畫連接,表達式pump2.PV
雙擊水泵,選擇表達式旁的按鈕“…”-變量選擇pump1.PV,後更改打開、關閉時的顏色
//如果數據庫變量直接放在數據庫,那變量的名稱就pump1.PV;
//如果數據庫變量放在數據庫的區域0裏,那變量的名稱就區域0\pump1.PV;
-
對水泵1的管道1的流動屬性”動畫連接,pump1.PV
-
對水泵2的管道2的流動屬性”動畫連接,pump2.PV
-
對水泵1、水泵2的管道3的流動屬性”動畫連接,pump1.PV||pump2.PV
-
對閥門1閥門組態:組態“顏色變化”動畫連接,表達式valve1.PV
-
對閥門2閥門組態:組態“顏色變化”動畫連接,表達式valve2.PV
-
對閥門1的管道1的流動屬性”動畫連接,valve1.PV
-
對閥門2的管道2的流動屬性”動畫連接,valve2.PV
-
對閥門1、閥門2的管道3的流動屬性”動畫連接,valve1.PV||valve2.PV
-
對“演示”按鈕組態:“觸敏動作/左鍵動作/按下鼠標”動畫連接,這時腳本爲:run.pv=1;
-
對“停止”按鈕組態:“觸敏動作/左鍵動作/按下鼠標”動畫連接,這時腳本爲:run.pv=0;
-
對顯示液位高度的文本(“####.##”)組態:“數值輸出/模擬”動畫連接,讓其顯示level.pv的值。
報警窗口
-
該窗口中除“確認所有報警”按鈕而外的各按鈕的動畫連接可以參考前面的內容,而“確認所有報警”按鈕的“觸敏動作/左鍵動作/按下鼠標”動畫連接中的腳本爲:
AlmAckAll(0,0);
CloseWindowEx(“報警窗口”);
表示確認本地實時數據庫中0區域中的當前所有報警,並關閉窗口。 -
雙擊“報警記錄”–“記錄格式”頁中添加“說明”長度爲12,其餘參數可以採用默認值。
7.腳本編寫
- 編寫“應用程序動作腳本”的“程序運行週期執行”動作腳本
腳本內容如下
IF run.PV==1 THEN
SWITCH (level.PV)
CASE 0 TO 10:
pump1.PV=1;
pump2.PV=1;
level.PV=level.PV+3;
CASE 11 TO 20:
pump1.PV=1;
pump2.PV=0;
level.PV=level.PV+1;
CASE 21 TO 90:
pump1.PV=0;
pump2.PV=1;
level.PV=level.PV+1;
DEFAULT:
pump1.PV=0;
pump2.PV=0;
ENDSWITCH
IF valve1.PV==1 THEN
level.PV=level.PV-2;
ENDIF
IF valve2.PV==1 THEN
level.PV=level.PV-1;
ENDIF
ENDIF
IF level.ALMSTAT==1 THEN
display("報警窗口");
ENDIF
IF level.ALMSTAT==1 THEN
display(“報警窗口”);
ENDIF
這段邏輯語句表示,在發生警報時,自動彈出報警窗口
實驗心得
1.通過實驗二使我對數據庫點的屬性及組件的屬性有了更深的瞭解,也能很好的運用在開發中。
2.對窗口的屬性及應用也有很大的認識。
3.窗口不能同時顯示兩個窗口,請保證窗口屬性如下 1.覆蓋窗口; 2.窗口大小位置適中,防止遮擋住窗口; 3.把打開其他窗口時自動關閉的勾去掉。
4.管道沒有顯示出流動的效果,原因是:管道沒有三節或三節以上。
因爲很多內容在 實驗1 這篇文章已經講解過,有不明白的可以去這找找
以上爲個人學習經驗,歡迎大家來交流