前面描述的警報消息評估現在將用FB而不是FC來實現。
這提供了這樣的優點,即不必將外部全局標簽傳遞到FB以用于報警消息檢測的內部所需邊緣評估和內部所需存儲器位。本地靜態標記可以用于此操作。
報警消息1應通過仍處于活動狀態的“FC_FaultEvaluation”(FC20)進行評估;警報消息2和3的評估應通過新創建的“FB_故障評估”(FB20)來完成。
調用FB時的參數傳輸
通過函數塊調用,實際參數的值存儲在實例數據塊中。如果塊調用中的形式參數沒有分配給實際參數,則在程序執行期間將使用實例DB值中該參數最近存儲的值。
每次調用FB時都會傳輸其他實際參數。功能塊完成后,數據將保留在數據塊中。
參數表現出與靜態標記相同的行為:
-初始化時沒有默認值
-可以在界面中設置“可從HMI訪問/在HMI中可見”的屬性
-Retain屬性取決于塊屬性“優化訪問”
-對參數的符號訪問始終是可能的
絕對訪問取決于“優化訪問”塊屬性限制:設置點僅適用于靜態標簽。
靜態標記
與函數不同,函數塊使用“靜態標記”。這些標簽形成FB的內存,因為它們不是存儲在L堆棧中,而是存儲在塊的單獨內存空間(實例DB)中。
調用FB(實例化)
特殊功能
與功能塊(FC)相比,功能塊(FB)具有存儲器。這意味著功能塊被分配了一個本地數據塊,即所謂的實例數據塊。當調用FB時,還必須指定實例DB的編號,并且此DB會自動打開。
實例DB用于存儲靜態標記等。這些本地標簽只能在FB中使用,但它們也會在塊完成后保留。
參數
通過函數塊調用,實際參數的值存儲在實例數據塊中。如果塊調用中的形式參數沒有分配給實際參數,則在程序執行期間將使用實例DB值中該參數最近存儲的值。
每次調用FB時都會傳輸其他實際參數。在功能塊完成之后,數據被保留在數據塊中。
FB優勢
用戶必須搜索用于FC編程的空閑位存儲器或數據區域,并親自管理它們,而FB的靜態標簽由STEP7軟件管理。
當使用靜態標簽時,FC編程中位存儲器或數據區域重復分配的已知風險被消除。
可以使用FB的“Storedfault”和“Edge memory”靜態標簽,而不是FC20的形式參數“存儲的故障”和“邊緣內存”。塊調用很簡單,因為不需要這兩個形式參數。
創建實例數據塊
有三種方法可以創建實例數據塊:
當第一次調用FB時,用戶指定應該使用的FB的實例DB。
這將打開一個對話框,其中可以手動指定符號名稱,如果需要,還可以指定實例DB的編號。
在FB調用的上下文菜單中,有一個功能可用:
“創建實例…”,當實例數據庫尚未分配時
“更新”,當已分配實例數據庫時
這將打開一個對話框,其中可以手動指定符號名稱,如果需要,還可以指定實例DB的編號。
創建新數據庫時,會選擇“功能塊XY”類型。
一個實例DB只能分配給一個FB。
每次調用每個被調用的FB時,都必須為其分配另一個不同的實例DB!
注意!
如果FB發生了更改(添加了額外的參數或靜態標記),則還必須再次生成實例DB。
審核編輯:劉清
-
存儲器
+關注
關注
38文章
7484瀏覽量
163765
原文標題:西門子博途:使用可參數化功能塊(例如FB20)進行故障評估
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論