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