PCS 7 V9.0 之后新增的 AOTC(APL Operator Trend Control)控件應運而生。從用戶使用的角度出發,通過點擊對應的塊圖標(同時按住 Ctrl 鍵),直接將歸檔變量添加到 AOTC 的趨勢控件中??梢酝瑫r添加多個圖標的歸檔變量到同一 AOTC 控件。AOTC 的出現,使得最終用戶更加靈活與便捷的創建自定義趨勢組,而且告別了直接瀏覽歸檔變量的繁瑣方式。AOTC 控件不僅有實力而且也是“顏值擔當”,提供了更加豐富的顯示和選擇功能:
關于 AOTC 控件的基本使用,我們在此不再贅述,可參考以下 FAQ:PCS 7 中通過 AOTC 控件在同一個畫面中顯示多個
趨勢曲線 https://support.industry.siemens.com/cs/cn/zh/view/109778843
接下來主要介紹非標情況下如何使用 AOTC 的功能。
AOTC 的擴展應用
當采用 APL 的塊圖標時,工程師不需要任何額外設置就已經包含了該功能。
接下來我們重點看下如下三個方面:
- 都有哪些功能塊支持 AOTC 的功能?
- 下位機采用 APL 庫,自定義塊圖標如何使用 AOTC 的功能?
- 自定義功能塊和自定義塊圖標是否可以使用 AOTC 功能?
- No. -
- 追本溯源——哪些塊支持 AOTC
以 MonAnL 為例,APL 自帶功能塊圖標之所以支持 AOTC 功能,是因為塊圖標中“ Event→UserDefined1→Value1.Release left”存在腳本“APL_OpenCurveControl”,當按住 Ctrl 鍵的同時點擊塊圖標中對應模擬量值時,會執行以上腳本函數。
從 PCS 7 V9.0 版本開始,APL 模板畫面中不管任何功能塊的圖標,只要包含模擬量值的都已經集成了該功能。
AOTC 不僅局限于添加模擬量,同時對于 APL 中的以下功能塊,也集成了添加數字量到 AOTC 控件的功能。
同添加模擬量到 AOTC 控件類似,按住 Ctrl鍵+左鍵單擊對應圖標,比如在 MotL 塊圖標上執行了以上動作,則會將 FbkRunOut.Value 添加到新打開(或已經打開的)AOTC 控件窗口。其原理和添加模擬量顯示相似,如下圖所示:
APL_OpenCurveControl 函數兩個關鍵參數 lpszValue 和 lpszUnit:
按圖索驥——自定義塊圖標實現 AOTC
接下來我們仍然以 MonAnL 為例,在下位機程序不變的情況下,如何將自定義的塊圖標同樣實現 AOTC 的功能。
我們以最簡單的 I/O 域創建一個自定義對象來測試。在2.1章節,MonAnL-APL_OpenCurveControl 的 lpszUnit 參數賦值使用了 tag,而 MotL 則在 lpszValue 中使用了 tag,所以 tag 為對應的塊圖標屬性中的 TagName。
標準 APL 的塊圖標肯定會包含 TagName 等屬性,但是對于自定義對象則不是必須的。因為 lpszUnit 可以為 None,我們先不添加TagName 看自定義對象是否可以打開 AOTC 控件,并正常使用。
注意:此處僅創建一個最小自定義對象來實現 AOTC 功能,非完整創建塊圖標的步驟,完整創建自定義塊圖標的步驟請參考以下文檔(尤其注意構成 PCS7 塊圖標的三個必要系統屬性:Type,Tagname 和Servername):
APL風格的功能塊圖標和面板設計https://support.industry.siemens.com/cs/cn/zh/view/83121263
自定義對象定義如下:
自定義對象連接和腳本操作順序如下圖所示:
使用 WinCC 腳本診斷工具 ApDiag 檢查腳本執行是否正確:
鼠標點擊后并未彈出 AOTC 窗口,ApDiag 診斷窗口也顯示了具體的錯誤原因,沒有找到對象屬性 tagname:
此時仿照 PCS 7 塊圖標的格式,用 DataSet 收集 tagname,從 standard 中拖拽 DataSet 到畫面中,并添加 Index 設置名稱為 TagName,Type 為 String格式。
將 DataSet 添加到之前的自定義對象,并組態如下:
將 TagName 的靜態值定義為對應結構體變量名稱:
此時點擊該自定義對象,便可正常彈出 AOTC 的控件并添加對應的趨勢,且腳本執行沒有錯誤。
上圖中 Unit 之所以為空,是因為沒有給 APL_OpenCurveControl 函數的lpszUnit參數賦值所致,修改腳本如下圖(其中 tag 指 tagname):
學以致用——自定義功能塊 +
- 自定義塊圖標實現 AOTC
前文已經介紹了在下位機使用 APL 庫功能塊時,無論使用標準的塊圖標,還是使用自定義對象都可以方便的使用 AOTC 功能。那么如此方便的功能,對于自定義的功能塊和圖標能否支持呢?
最后讓我們一起來研究一下自定義的塊和圖標如何靈活的使用 AOTC 功能。
AOTC 控件中除包含變量的趨勢外,還獲取了變量的量程、質量狀態、上下限和單位等信息。單位是通過 lpszUnit 參數獲取的。但是對于其他的參數并沒有直接賦值,而是在內部根據 tagname 獲取的相應變量。因此對于自定義的功能塊,可以仿照 MonAnL 塊,定義如下圖所示的對應管腳即可:
管腳屬性的定義參考 MonAnL 的定義,此處僅定義了必須的管腳,其他非必要管腳可以根據實際需求添加,內部邏輯程序根據自己需要定義即可,PV_Out 可以通過管腳屬性直接設置為歸檔。
此處直接使用按圖索驥——自定義塊圖標實現 AOTC創建的自定義對象來進行測試,只需將結構體變量,變更為自定義功能塊對應的結構體變量即可。