文章目錄
1 實驗原理
1.1 實驗目標
在Workplace中利用時間表及模擬函數實現熱水泵控制。
1.2 實驗要求
參照實驗練習手冊實驗練習2、3的要求,對照完成利用時間表實現熱水泵控制以及用Ramp
函數模擬外部溫度在-15℃到25℃之間週期性變化的實驗練習。
2 實驗過程
2.1 啓動平臺
首先在Niagara軟件中啓動平臺。輸入用戶名和密碼進入platform,並在Application Director
界面,將站點啓動。如下圖2.1所示。
站點啓動後,雙擊站點名並輸入密碼可以進入該站點。
2.2 添加時間表組件
上次實驗已經對熱水泵系統進行了簡單的搭建,使用Tstat組件設定了溫度的閾值。本次實驗試圖實現在Tstat組件不控制熱水泵的時候,或者在某些特定的時間點,實現由時間表來控制熱水泵的啓動。比如在春節等節假日時,讓時間表自動控制熱水泵。
首先需要在原有實驗佈局的基礎上添加組件。在WorkPlace左側的導航欄中找到PumpControl
文件夾並雙擊,進入到Wire Sheet界面。
Wire Sheet界面如下圖2.3所示。
這是我們上次實驗所做的熱水泵控制流程,其中的SineWave
是我自己添加上去的,是爲了讓溫度數據可以在一定範圍內波動,以便我們查看系統的運行效果。現在可以將該組件刪除掉了。刪掉該組件之後的邏輯佈局如下圖2.4所示。
打開軟件上部分菜單欄中的導航組件,選擇Palette選項。
在Palette界面找到schedule
組件庫,並在其中找到BooleanSchedule
組件,拖拽到Wire Sheet界面上。如下圖2.6所示。
將組件命名爲PumpSchedule。
雙擊時間表PumpSchedule
設置其屬性。在打開的Scheduler界面中,找到界面底部的Properties
選項,設置該界面中的Facets
屬性。將TrueText設置爲Pumps_Enables
;將FalseText設置爲Pumps_Disabled
。
修改時間表的Default Value屬性,設置其默認值爲Pumps_Disabled
。
設置完成後,點擊Save保存修改。雙擊左側導航欄中的PumpControl文件夾回到Wire Sheet界面。
右鍵點擊HotWaterPump_1組件,選擇Pin Slots選項,勾選In16
和Out
。HotWaterPump_2租金按也以相同的方法勾選In16
和Out
。
設置完成後,將PumpSchedule組件的OUT引腳分別連接至HotWaterPump_1和HotWaterPump_2組件的In16
端口上。如下圖2.12所示。
可以看到,HotWaterPump組件的輸入端都已經有了兩個端口輸入,分別是In5
和In16
。當組件的輸入端有兩個及以上數量的端口時,就會涉及輸入優先級的問題。In5的優先級比In16要高,所以當In5有輸入的時候,In16的輸入就是無效的。HotWaterPump組件的Out輸出引腳的輸出,是由輸入的高優先級決定的。現在是In5的優先級高,但由於In5沒有輸入,所以就輸出了OFF的結果。如果想讓時間表的In16端口有效,則需要對Tstat組件進行設置。
雙擊Tstat組件設置其屬性,在Property Sheet界面將Null On Inactive
設置爲True
。這樣表示,當該組件需要輸出OFF時,組件會輸出Null(不輸出)。
設置完成後回到Wire Sheet界面,將Outside_Temp點的數值設置爲-1。右鍵單擊Outside_Temp
組件,選擇Actions
-> Set
,將數值設置爲-1
。
當數值設置爲-1後,數值是比PumpEnableSetPoint的預設數值低,所以Tstat會輸出ON。而此時時間表組件PumpSchedule在In16端口的輸入爲OFF,由於Tstat組件的優先級較高,所以最終HotWaterPump組件的輸出爲In5端口的ON。如下圖2.16所示。
再次將Outside_Temp組件的數值設置爲10
,HotWaterPump組件的輸出如下圖2.17所示。
此時由於溫度高於預設值,所以Tstat不會輸出。這樣HotWaterPump的輸出就會由時間表來控制,所以會輸出OFF。
2.3 設置時間表
接下來設置水泵的時間表,在Wire Sheet界面雙擊PumpSchedule組件,設置具體時間。在時間表設置的Weekly Schedule界面,拖動鼠標設置時間。將時間表設置爲週一的早上六點至晚上六點爲水泵開啓狀態。如下圖3.18所示。
右鍵點擊週一的工作時間區域,選擇Apply M-F
選項,將週一的時間安排應用到週一至週五。如下圖2.19所示。
設置完成後,週一至週五會開啓水泵,週六週日默認關閉水泵。如下圖2.20所示。
設置完成後點擊Save保存更改,回到Wire Sheet界面。
2.4 添加日曆組件
在Palette界面中,找到Schedule組件庫,將該組件庫中的CalendarSchedule組件拖拽至Wire Sheet界面。如下圖2.21所示。將該組件命名爲HolidayCalendar
,如下圖2.22所示。
雙擊設置該組件的屬性,點擊屬性界面下方的Add,添加新的節日事件。將每年的12月25日的聖誕節記錄到時間表中。如下圖2.23所示。
繼續添加節日時間,將感恩節作爲特殊節日事件,添加到時間表中。如下圖2.24所示。
添加的兩個節日事件如下圖2.25所示。
點擊Save保存後回到Wire Sheet界面。
雙擊PumpSchedule組件,在SpecialEvents特殊事件界面點擊Add按鈕添加新的事件。將新事件命名爲Holidays
,Type類型屬性選擇Reference
。鼠標左鍵點擊Calendars中的選項,點擊OK鍵確認。如下圖2.26所示。
設置完成後點擊該事件,鼠標拖動該事件的右側的時間表,將全天設置爲OFF。
接下來繼續增加事件,點擊Add按鈕添加一個名稱爲Inventory的特殊事件。Inventory事件會在每年一月份的每個週二,從早上五點到晚上九點開啓熱水泵。將Inventory按下圖2.28所示進行設置。
設置完成後保存該事件,然後選中該事件並在右側設置其時間表。將早上五點到晚上九點的事件設置爲Enable
。如下圖2.29所示。
設置完成後點擊Save保存更改。
Inventory事件僅會在設定的早上五點到晚上九點之間起作用,其餘時間段狀態爲Unscheduled
,表示沒有設置具體事項。在該時間段內,預置的事件不會受到時間表的影響。
點擊時間表界面的Summary選項,找到隨意一年一月份的星期二,查看其時間表。可以看到,時間表會在早上5點開啓水泵,並在晚上九點關閉,如下圖2.30所示。這是由特殊事件Inventory控制的。其他時間會由之前設置的每週的時間表控制,即早上六點到晚上六點開啓水泵。
需要注意的是,在Special Events界面所設置的特殊事件,其優先級是按照從上到下、由高到低的順序排列的。當事件存在衝突時,會按照高優先級的事件執行。
回到Wire Sheet界面,現在的邏輯組件如下圖2.31所示。
總結一下目前的效果:Outside_Temp組件用來表示室外的溫度,其默認值爲10℃。PumpEnableSetPoint組件表示設定的溫度閾值,數值爲5℃。Tstat用來比較Outside_Temp和PumpEnableSetPoint組件的數值,也就是用來比較當前溫度與設定溫度的高低。Tstat的輸出連接到了兩個HotWaterPump組件的In5引腳上,HotWaterPump組件表示兩個熱水泵。HolidaySchedule組件表示節假日的時間表,其中設置了兩個節日。PumpSchedule組件也表示設定的時間表,PumpSchedule時間表將HolidaySchedule所設置的兩個節日作爲特殊事件引入,並將這兩個事件的效果設置爲了Pumps_Disabled,表示這兩個節日都會關閉熱水泵。同時PumpSchedule時間表將它的輸出連接到了HotWaterPump組件的In16輸入引腳,用時間表控制熱水泵的開閉。但此時的Tstat優先級高於PumpSchedule組件,當Tstat組件有輸出時,時間表組件將會失效。
接下來的實驗中,將使用斜坡函數對室外溫度進行模擬,使溫度在-15到20℃之間週期變化,以便於測試整個系統的控制效果。
2.5 添加Ramp組件
在Palette界面的KitControl組件庫中,找到Ramp組件,將其拖拽到Wire Sheet界面。Ramp組件是一個斜坡函數發生器,用來產生斜坡函數。
組件使用Ramp默認名稱即可。
添加組件完成後,雙擊該組件進行如下圖2.33所示的設置。將Facets屬性中的unit設置爲攝氏度。將Period設置爲40
秒,Amplitude設置爲20
,Offset設置爲5
。
設置完成後點擊保存。該設置的含義是:period表示數據的波動週期;Amplitude表示數據的振幅;Offset表示偏移量。整個Ramp函數實現的效果就是產生了一個在-15到25之間的矩形波,數據週期爲40秒。
在Wire Sheet界面將Ramp組件的輸出連接到Outside_Temp組件的In10
輸入端口,作爲室外溫度的模擬數據。如下圖2.34所示。
3 實驗結果
本次實驗實現了對熱水泵的閾值控制和時間表控制兩種方式,使用斜坡函數對室外溫度的數據進行模擬,便於測試實驗結果。
3.1 閾值控制
使用斜坡函數來模擬室外溫度的數值,當室外溫度數值低於設定的5℃時,閾值控制方式開始工作,其Out端口輸出爲ON狀態,表示啓動熱水泵加熱。如下圖3.1所示。
3.2 時間表控制
當室外溫度是指高於設定的閾值數據時,Tstat組件不輸出,將控制權限交給時間表,由時間表控制水泵的開閉。如下圖3.2所示。
時間表中設置的控制時間規則爲:“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”、“每年一月份的週二上午五點至晚上九點開啓水泵,其餘時間不改變”、“每年的感恩節和聖誕節關閉熱水泵”,這三項規則。當前我的時間是2020年5月27日下午六點18分,符合“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”中默認關閉熱水泵的情況,所以此時會關閉熱水泵。
4 實驗過程中存在的問題及解決方案
平臺啓動失敗問題。
在打開軟件啓動平臺時,有可能會因爲Niagara服務尚未運行而導致平臺啓動失敗。如下圖4.1所示。
解決辦法是在任務管理器中找到Niagara服務並啓動,如下圖4.2所示。
5 實驗總結
本次實驗實現了對熱水泵的閾值控制和時間表控制兩種方式,使用斜坡函數發生器模擬室外溫度的變化情況。爲時間表制定了“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”、“每年一月份的週二上午五點至晚上九點開啓水泵,其餘時間不改變”、“每年的感恩節和聖誕節關閉熱水泵”,這三項規則。閾值控制的權限高於時間表,當室外溫度改於設定的閾值時,控制權限由Tstat交至時間表。
通過本次實驗,學習了函數發生器、數據比較器、時間表等常見的組件,使我對Niagara軟件的控制流程有了更深入的理解。
原文鏈接:https://blog.csdn.net/ZHJ123CSDN/article/details/106444582