文章目錄
1 實驗原理
1.1 實驗目標
在Workplace中利用時間表及模擬函數,實現對溫度的比較控制。配合Lead Lag Runtime
組件,通過比較兩個水泵的運行時間,讓熱水泵輪流工作,避免熱水泵因經常工作或不經常使用而出現故障。
1.2 實驗要求
參照實驗練習手冊實驗練習4的要求,對照完成利用時間表實現熱水泵控制。使用Lead Lag Runtime組件來平衡每個設備的運行時間。
1.3 相關模塊介紹
本次實驗需要用到Lead Lag Runtime組件,該組件用來平衡每個設備的運行時間,根據累計運行時間,控制運行時間少的設備啓動。它可以提供2到10個設備的控制,並使一次只有一個受控設備處於活動狀態。Lead Lag Runtime屬性如下表1-1所示。
屬性 | 含義 |
---|---|
In | 是StatusBoolean類型的輸入,用於控制否應該打開受控設備。如果此輸入爲True,根據運行時間的計算一個輸出將處於活動狀態。 |
Numeric Outputs | 設置受控制設備(輸出)的數量。 |
Max Runtime | 最大運行時間 |
Feedback | 是StatusBoolean類型的輸入,用於提供受控設備啓動的正反饋。如果反饋值在反饋延遲時間內未顯示爲True,則當前受控輸出將顯示反饋信號警報,並且LeadLagRuntime的輸出將切換到下一個受控設備。此值設置爲將禁用反饋警報功能。 |
Feedback Delay Time | 用於評估所控對象的反饋延遲時間(如果存在反饋輸入的情況)。 |
Out A~J | StatusBoolean輸出,該輸出通常連接到帶有DiscreteTotalizerExt 擴展功能的BooleanWritable點上。輸出通常用於控制某種類型的負載。 |
Runtime A~J | 這些是RelTime輸入,用於受控對象運行時間的輸入。這些輸入通常鏈接到受控對象的DiscreteTotalizerExt擴展功能的ElapsedActiveTime屬性,該屬性會測量相應的運行時間。 |
DiscreteTotalizerExt | 是控制點擴展,用於累記運行時間,即二進制或枚舉值的狀態變化次數。 |
2 實驗過程
2.1 啓動平臺
首先在Niagara軟件中啓動平臺。輸入用戶名和密碼進入platform,並在Application Director界面,將站點啓動。如下圖2.1所示。
站點啓動後,雙擊站點名並輸入密碼可以進入該站點。
2.2 添加組件
進入PumpControl文件夾的Wire Sheet界面,斷開時間表與熱水泵之間的連接。
在Palette界面的KitControl
組件庫中找到HVAC
文件夾,如下圖2.3所示。
將其中的LeadLagRutime添加到Wire Sheet界面,並命名爲PumpLL
。
雙擊PumpLL組件設置其屬性,將Max Runtime
屬性數值改爲5分鐘
。表示每個熱水泵的最長運行時間爲5分鐘。
將時間表PumpSchedule組件的Out端口連接到PumpLL模塊上的In
,將PumpLL模塊上的OutA連接到HotWaterPump_1的In16
引腳,將OutB連接到HotWaterPump_2的In16
引腳。
2.3 設置組件屬性
打開HotWaterPump_1的屬性面板,將Palette界面KitControl
組件庫中的ControlPalette
–> Extensions
文件夾內的DiscreteTotalizerExt
組件,拖拽到HotWaterPump_1組件的設置面板。打開DiscreteTotalizerExt屬性,將Change of State Count Transition
屬性設置爲To Action
。
對HotWaterPump_2也進行相同的擴展操作,添加擴展並將Change of State Count Transition屬性設置爲To Action。
回到Wire Sheet界面,右鍵單擊HotWaterPump_1,選擇Composite。在Composite Editor界面添加Elapsed Active Time
,並將其命名爲RunTime
。
添加Reset Elapsed Active Time
組件,將其重命名爲ResetRunTime
。
對HotWaterPump_2執行相同的操作,添加兩個組件並重命名。
回到Wire Sheet界面,將HotWaterPump_1組件的RunTime輸出引腳連接到PumpLL的RunTimeA
輸入引腳。同樣,將HotWaterPump_2組件的RunTime輸出引腳連接到PumpLL的RunTimeB
輸入引腳。如下圖2.10所示。
從KitControl調色板的Logic
文件夾中查找組件,將OR
組件添加到Wire Sheet界面。
將該組件命名爲PumpStatusOR
。
將OR的輸出Out連接到PumpLL的Feedback輸入。
打開PumpLL的屬性頁面,將Feedback設置成true
。
右鍵單擊PumpLL,選擇Actions
-> Clear Alarm Status
。
右鍵單擊OR組件,選擇Views
-> AX Slot Sheet
。在該界面找到InA,將其重命名爲Pump1StatusIn
。
將InB設置爲Pump2StatusIn
。
最終的效果如下圖所示。
3 實驗結果
本次實驗主要實現了兩部分內容,一個是以Tstat組件爲中心的溫度閾值比較部分;另一個是以Lead Lag Runtime組件爲中心的時間表自動控制部分。
3.1 溫度比較控制
閾值比較部分由Ramp組件產生斜坡函數數據,用來模擬室外的溫度數值。利用Tstat組件將模擬的溫度數據與設定的溫度閾值進行比較,將比較結果輸入到熱水泵的In5引腳。該部分主要組件如下圖3.1紅框中所示。
當室外溫度高於設定的溫度時,Tstat組件輸出爲Null,即輸出爲空,不去控制熱水泵;當室外溫度低於設定溫度時,Tstat組件輸出爲True,控制熱水泵爲開啓狀態。
3.2 正反饋控制
自動控制部分是由PumpSchedule日程表作爲輸入,由日程表的設定控制熱水泵的啓動狀態。PumpSchedule將輸出連接至Lead Lag Runtime組件,Lead Lag Runtime組件可以用來收集組件的運行時間,並且可以通過設置正反饋、調節反饋時間等方式,控制兩個熱水泵交替運行。該部分的主要組件如下圖3.2紅框中所示。
由於該部分的控制輸出是輸入到了In16引腳,其優先級比In5引腳低,所以只有當室外溫度高於設定的閾值時,自動控制部分才能起作用。
自動控制部分的核心組件是Lead Lag Runtime組件,其In引腳用於輸入控制指令;Runtime用來收集不同組件的運行時間;Out用來輸出自動控制的結果。Feedback用來設置組件的正反饋調節,Feedback Delay用來設置反饋時間。
正反饋的意思是,如果熱水泵A或B中有任意一個處於開啓狀態,那麼只要這個已開啓的水泵不被意外停止,它就會一直保持開啓狀態。可以在Lead Lag Runtime組件中開啓反饋功能,如下圖3.3所示。
當開啓反饋功能後,可以用“邏輯或”組件收集當前的熱水泵啓動狀態,並將邏輯運算結果輸入到Lead Lag Runtime的Feedback引腳。只要有一個熱水泵開啓,邏輯運算結果就是true,此時Lead Lag Runtime會維持輸出狀態,也就是會讓某個熱水泵一直加熱。只有當這個處於開啓狀態的熱水泵被強制關閉,導致兩個熱水泵都處於關閉狀態時,邏輯運算結果輸出false,此時如果在反饋調節時間內沒有任何熱水泵開啓,那麼自動控制就會將啓動指令輸出到下一個熱水泵,並顯示警報。這是一種正反饋調節,一直讓某個水泵工作,直到這個水泵被意外關閉。
3.3 水泵輪流工作
如果關閉反饋功能,只用反饋時間和警報功能,就可以實現讓兩個水泵在規定時間內輪流工作,平衡兩水泵的運行時間。設置Lead Lag Runtime組件的屬性,調節反饋時間和警告清除時間,如下圖3.4所示,就可以讓兩個水泵在規定時間內輪流工作。
設置完成後,切斷由“邏輯或”到Feedback的輸出,Lead Lag Runtime
會首先在某個輸出端口發出警告,並在另一個輸出端口輸出啓動信號。如下圖3.5所示。
經過反饋延時時間後,警告信號清除,輸出信號轉到下一個熱水泵,並重新發出警告信號。如下圖3.6所示。
這樣,兩個熱水泵就會以反饋時間爲間隔,循環開啓並輪流工作。
4 實驗過程中存在的問題及解決方案
平臺啓動失敗問題及解決方案
在打開軟件啓動平臺時,有可能會因爲Niagara服務尚未運行而導致平臺啓動失敗。如下圖4.1所示。
解決辦法是在任務管理器中找到Niagara服務並啓動,如下圖4.2所示。
5 實驗總結
本次實驗在原有的熱水泵控制實驗基礎上,實現了對熱水泵的溫度閾值控制和時間表自動控制兩種控制方式。溫度閾值控制是利用Tstat組件,比較室外溫度和設定的閾值溫度,實現水泵的開關控制。時間表自動控制是利用時間表組件設置的計劃開關時間,自動控制水泵的開閉。時間表配合Lead Lag Runtime組件,收集熱水泵的運行時間,並通過設置反饋調節時間實現兩水泵的輪流工作。Feedback屬性可以設置水泵運行的正反饋調節,使某個水泵一直工作。
關於反饋功能的應用,目前我還不太熟悉,課後需要繼續練習。
原文鏈接:https://blog.csdn.net/ZHJ123CSDN/article/details/106444822