【Tridium Niagara Vykon N4 物聯網平臺】 08_熱水泵控制 (2/3)

1 實驗原理

1.1 實驗目標

在Workplace中利用時間表及模擬函數實現熱水泵控制。

1.2 實驗要求

參照實驗練習手冊實驗練習2、3的要求,對照完成利用時間表實現熱水泵控制以及用Ramp函數模擬外部溫度在-15℃到25℃之間週期性變化的實驗練習。

2 實驗過程

2.1 啓動平臺

首先在Niagara軟件中啓動平臺。輸入用戶名和密碼進入platform,並在Application Director界面,將站點啓動。如下圖2.1所示。
圖2.1 啓動站點
站點啓動後,雙擊站點名並輸入密碼可以進入該站點。

2.2 添加時間表組件

上次實驗已經對熱水泵系統進行了簡單的搭建,使用Tstat組件設定了溫度的閾值。本次實驗試圖實現在Tstat組件不控制熱水泵的時候,或者在某些特定的時間點,實現由時間表來控制熱水泵的啓動。比如在春節等節假日時,讓時間表自動控制熱水泵。
首先需要在原有實驗佈局的基礎上添加組件。在WorkPlace左側的導航欄中找到PumpControl文件夾並雙擊,進入到Wire Sheet界面。
圖2.2 PumpControl文件夾
Wire Sheet界面如下圖2.3所示。
圖2.3 佈局界面
這是我們上次實驗所做的熱水泵控制流程,其中的SineWave是我自己添加上去的,是爲了讓溫度數據可以在一定範圍內波動,以便我們查看系統的運行效果。現在可以將該組件刪除掉了。刪掉該組件之後的邏輯佈局如下圖2.4所示。
圖2.4 邏輯佈局
打開軟件上部分菜單欄中的導航組件,選擇Palette選項。
圖2.5 Palette 選項
在Palette界面找到schedule組件庫,並在其中找到BooleanSchedule組件,拖拽到Wire Sheet界面上。如下圖2.6所示。
圖2.6 添加組件
將組件命名爲PumpSchedule。
圖2.7 組件命名
圖2.8 添加組件
雙擊時間表PumpSchedule設置其屬性。在打開的Scheduler界面中,找到界面底部的Properties選項,設置該界面中的Facets屬性。將TrueText設置爲Pumps_Enables;將FalseText設置爲Pumps_Disabled
圖2.9 設置屬性
修改時間表的Default Value屬性,設置其默認值爲Pumps_Disabled
圖2.10 設置屬性
設置完成後,點擊Save保存修改。雙擊左側導航欄中的PumpControl文件夾回到Wire Sheet界面。
右鍵點擊HotWaterPump_1組件,選擇Pin Slots選項,勾選In16Out。HotWaterPump_2租金按也以相同的方法勾選In16Out
圖2.11 設置引腳
設置完成後,將PumpSchedule組件的OUT引腳分別連接至HotWaterPump_1和HotWaterPump_2組件的In16端口上。如下圖2.12所示。
圖2.12 邏輯連接
可以看到,HotWaterPump組件的輸入端都已經有了兩個端口輸入,分別是In5In16。當組件的輸入端有兩個及以上數量的端口時,就會涉及輸入優先級的問題。In5的優先級比In16要高,所以當In5有輸入的時候,In16的輸入就是無效的。HotWaterPump組件的Out輸出引腳的輸出,是由輸入的高優先級決定的。現在是In5的優先級高,但由於In5沒有輸入,所以就輸出了OFF的結果。如果想讓時間表的In16端口有效,則需要對Tstat組件進行設置。
雙擊Tstat組件設置其屬性,在Property Sheet界面將Null On Inactive設置爲True。這樣表示,當該組件需要輸出OFF時,組件會輸出Null(不輸出)。
圖2.13 設置Tstat屬性
設置完成後回到Wire Sheet界面,將Outside_Temp點的數值設置爲-1。右鍵單擊Outside_Temp組件,選擇Actions -> Set,將數值設置爲-1
圖2.14 設置溫度數值
圖2.15 設置數值
當數值設置爲-1後,數值是比PumpEnableSetPoint的預設數值低,所以Tstat會輸出ON。而此時時間表組件PumpSchedule在In16端口的輸入爲OFF,由於Tstat組件的優先級較高,所以最終HotWaterPump組件的輸出爲In5端口的ON。如下圖2.16所示。
圖2.16 組件輸出
再次將Outside_Temp組件的數值設置爲10,HotWaterPump組件的輸出如下圖2.17所示。
圖2.17 組件輸出
此時由於溫度高於預設值,所以Tstat不會輸出。這樣HotWaterPump的輸出就會由時間表來控制,所以會輸出OFF。

2.3 設置時間表

接下來設置水泵的時間表,在Wire Sheet界面雙擊PumpSchedule組件,設置具體時間。在時間表設置的Weekly Schedule界面,拖動鼠標設置時間。將時間表設置爲週一的早上六點至晚上六點爲水泵開啓狀態。如下圖3.18所示。
圖3.18 時間表
右鍵點擊週一的工作時間區域,選擇Apply M-F選項,將週一的時間安排應用到週一至週五。如下圖2.19所示。
圖2.19 設置時間表
設置完成後,週一至週五會開啓水泵,週六週日默認關閉水泵。如下圖2.20所示。
圖2.20 時間表展示
設置完成後點擊Save保存更改,回到Wire Sheet界面。

2.4 添加日曆組件

在Palette界面中,找到Schedule組件庫,將該組件庫中的CalendarSchedule組件拖拽至Wire Sheet界面。如下圖2.21所示。將該組件命名爲HolidayCalendar,如下圖2.22所示。
圖2.21 添加組件
圖2.22 組件命名
雙擊設置該組件的屬性,點擊屬性界面下方的Add,添加新的節日事件。將每年的12月25日的聖誕節記錄到時間表中。如下圖2.23所示。
圖2.23 設置節日時間
繼續添加節日時間,將感恩節作爲特殊節日事件,添加到時間表中。如下圖2.24所示。
圖2.24 添加節日
添加的兩個節日事件如下圖2.25所示。
圖2.25 節日事件
點擊Save保存後回到Wire Sheet界面。
雙擊PumpSchedule組件,在SpecialEvents特殊事件界面點擊Add按鈕添加新的事件。將新事件命名爲Holidays,Type類型屬性選擇Reference。鼠標左鍵點擊Calendars中的選項,點擊OK鍵確認。如下圖2.26所示。
圖2.26 添加事件
設置完成後點擊該事件,鼠標拖動該事件的右側的時間表,將全天設置爲OFF。
圖2.27 設置時間表
接下來繼續增加事件,點擊Add按鈕添加一個名稱爲Inventory的特殊事件。Inventory事件會在每年一月份的每個週二,從早上五點到晚上九點開啓熱水泵。將Inventory按下圖2.28所示進行設置。
圖2.28 添加特殊事件
設置完成後保存該事件,然後選中該事件並在右側設置其時間表。將早上五點到晚上九點的事件設置爲Enable。如下圖2.29所示。
圖2.29 設置時間表
設置完成後點擊Save保存更改。
Inventory事件僅會在設定的早上五點到晚上九點之間起作用,其餘時間段狀態爲Unscheduled,表示沒有設置具體事項。在該時間段內,預置的事件不會受到時間表的影響。
點擊時間表界面的Summary選項,找到隨意一年一月份的星期二,查看其時間表。可以看到,時間表會在早上5點開啓水泵,並在晚上九點關閉,如下圖2.30所示。這是由特殊事件Inventory控制的。其他時間會由之前設置的每週的時間表控制,即早上六點到晚上六點開啓水泵。
圖2.30 Inventory特殊事件
需要注意的是,在Special Events界面所設置的特殊事件,其優先級是按照從上到下、由高到低的順序排列的。當事件存在衝突時,會按照高優先級的事件執行。
回到Wire Sheet界面,現在的邏輯組件如下圖2.31所示。
圖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組件是一個斜坡函數發生器,用來產生斜坡函數。
圖2.32 添加組件
組件使用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所示。
圖2.34 組件連接

3 實驗結果

本次實驗實現了對熱水泵的閾值控制和時間表控制兩種方式,使用斜坡函數對室外溫度的數據進行模擬,便於測試實驗結果。

3.1 閾值控制

使用斜坡函數來模擬室外溫度的數值,當室外溫度數值低於設定的5℃時,閾值控制方式開始工作,其Out端口輸出爲ON狀態,表示啓動熱水泵加熱。如下圖3.1所示。
圖3.1 閾值控制

3.2 時間表控制

當室外溫度是指高於設定的閾值數據時,Tstat組件不輸出,將控制權限交給時間表,由時間表控制水泵的開閉。如下圖3.2所示。
圖3.2 時間表控制
時間表中設置的控制時間規則爲:“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”“每年一月份的週二上午五點至晚上九點開啓水泵,其餘時間不改變”“每年的感恩節和聖誕節關閉熱水泵”,這三項規則。當前我的時間是2020年5月27日下午六點18分,符合“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”中默認關閉熱水泵的情況,所以此時會關閉熱水泵。

4 實驗過程中存在的問題及解決方案

平臺啓動失敗問題。
在打開軟件啓動平臺時,有可能會因爲Niagara服務尚未運行而導致平臺啓動失敗。如下圖4.1所示。
圖4.1 啓動失敗
解決辦法是在任務管理器中找到Niagara服務並啓動,如下圖4.2所示。
圖4.2 啓動服務

5 實驗總結

本次實驗實現了對熱水泵的閾值控制和時間表控制兩種方式,使用斜坡函數發生器模擬室外溫度的變化情況。爲時間表制定了“每週週一至週五早上六點至晚上六點開啓水泵,其餘時間默認關閉”、“每年一月份的週二上午五點至晚上九點開啓水泵,其餘時間不改變”、“每年的感恩節和聖誕節關閉熱水泵”,這三項規則。閾值控制的權限高於時間表,當室外溫度改於設定的閾值時,控制權限由Tstat交至時間表。
通過本次實驗,學習了函數發生器、數據比較器、時間表等常見的組件,使我對Niagara軟件的控制流程有了更深入的理解。

原文鏈接:https://blog.csdn.net/ZHJ123CSDN/article/details/106444582

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章