在學習西門子、施耐德控制系統時,經常需要做自定義功能塊。ABB的freelance2019也支持做自定義功能塊。這個練習就學習如何做自定義功能塊。先做模擬量處理,AI模板上接受信號,進行量程轉換,然后有報警處理。
1. 打開freelance2019,新建一個項目,做以下結構。功能塊池為放置用戶自定義功能塊的地方
2.打開硬件配置,添加模擬器和操作員站,和上圖元素相關聯。
3. 打開網絡配置,修改IP地址
4. 雙擊打開“功能塊類”層級,這里就是具體定義用戶功能塊。
放置模擬量-量程轉換功能塊和監視-模擬兩件事功能塊。
量程轉換功能塊配置如下
這里參數都是用默認值。因為不同的模擬量輸入的工程量剛范圍不一樣,所以需要在使用自定義功能塊的時候定義。那么我們就需要直到量程的這四個參數,對應於量程轉換塊的管腳名字是什么。點擊上圖的幫助按鈕,可以看到下圖所示的內容。
上圖表格最后四行就是輸入起點終點,輸出起點終點對應的參數名字。可以看出來對名稱、注釋這幾項是無法通過參數傳遞來定義的。
模擬量監控的設置如下:
這里為了通用性,配置了四個報警極限。點擊幫助按鈕
名稱、注釋是無法使用參數 來傳遞值。
5.雙擊FB-CLASS層級,打開自定義功能塊的參數配置表
默認有幾個參數,且不可修改
在后面的空白行添加參數定義
在名稱一欄寫AI_IN,表示模擬量輸入模板通道輸入值,會讓人選擇存儲類型。存儲類型有8種,分別如下:
VAR_IN:用戶功能塊的輸入,不能修改其數值。
VAR_OUT:用戶功能塊的輸出。
VAR_DPS:用戶功能塊內部變量,用於內部計算。
VAR_VIS:只在面板中使用的配置,例如特定於實例的顯示文本和操作鎖定。不可以在調試模式下修改變量。
PARA_DPS:變量用於配置影響過程站處理的值,例如,操作模式切換。它們可以從面板上讀取和寫入.可以進行調試,即可以在調試模式下編寫或修正變量.
PARA_VIS:用於只在面板中使用的變量的配置,例如特定於實例的顯示文本和操作鎖定,不可以在調試模式下修改變量.
PARA_EXP:用於引用嵌套功能塊(標准化或用戶功能塊)的數據。它們從它們所引用的參數中繼承其他特性。每個具有PARA_EXP存儲類型的變量可用於引用嵌套函數塊的一個且僅一個參數
MP_EXP:變量用於引用嵌套函數塊中的消息數據。每一個引用一個完整的消息結構,包括消息類型、消息優先級、提示數據和消息文本.
由於AI_IN輸入自定義功能塊的輸入,所以類型喜歡則VAR_IN,接下來選擇數據類型,由於是模數轉換后的數據,因此是INT,添加以下注釋,最后如下。
同樣添加AI_OUT
接下來定義量程轉換模塊內部的參數變量了。
定義AI_IN_L表示輸入數據的下限,存儲類型為PARA_EXP,參考參數選擇AI_SCALE.Mae(參考前面的表格)
定義AI_IN_H表示輸入數據的上限,存儲類型為PARA_EXP,參考參數選擇AI_SCALE.Mee
定義AI_OUT_L表示輸出數據的上線,存儲類型為PARA_EXP,參考參數選擇AI_SCALE.Maa
定義AI_OUT_H表示輸出數據的上線,存儲類型為PARA_EXP,參考參數選擇AI_SCALE.Mea
這樣AI_SCALE的參數定義就完成了
接下來定義模擬量監控塊的參數
先定義輸入信號的上下限
定義IN_L表示輸入數據的下限,存儲類型為PARA_EXP,參考參數選擇AI_ANA.Mba(參考前面的表格)
定義IN_H表示輸入數據的上限,存儲類型為PARA_EXP,參考參數選擇AI_ANA.Mbe
再定義四個報警極限的數值
定義L1表示報警1,這里是LL,存儲類型為PARA_DPS,數據類型為REAL
定義L2表示報警2,這里是L,存儲類型為PARA_DPS,數據類型為REAL
定義L3表示報警3,這里是H,存儲類型為PARA_DPS,數據類型為REAL
定義L4表示報警1,這里是HH,存儲類型為PARA_DPS,數據類型為REAL
再定義報警信息
定義MP1表示信息1,存儲類型為MP_EXP,參考參數選擇AI_ANA.MP1
定義MP2表示信息2,存儲類型為MP_EXP,參考參數選擇AI_ANA.MP2
定義MP3表示信息3,存儲類型為MP_EXP,參考參數選擇AI_ANA.MP3
定義MP4表示信息4,存儲類型為MP_EXP,參考參數選擇AI_ANA.MP4
定義單位信息
定義DIM表示數據單位,存儲類型為PARA_EXP,參考參數選擇AI_ANA.DIM
這樣所有的參數就定義已完成了。
參數定義完成后,完善一下自定義塊內部的邏輯
要引用自定義功能塊時,這些參數出現在面板上讓用戶填寫數據,所以需要編輯對話框。
保持上圖的界面,點擊菜單編輯-對話框編輯,打開如下界面,左邊就是參數列表,右邊是分頁分組情況
從下面一排按鈕可以看出,參數可以進行分頁和分組,這是為了便於歸類,比如我們使用系統自帶的PID功能塊時,設置參數的界面就進行了分頁和分組。
由於這個練習的參數比較多,系統不允許放到一個組里面,所以我把AI_SCALE相關參數做一個頁面一個組,AI_ANA做兩個頁面兩個組
點擊新頁按鈕,會在上面添加一個新頁和一個新組
選中左邊的參數列表
AI_IN_L
AI_IN_H
AI_OUT_L
AI_OUT_H
然后點擊>按鈕,將其移到右邊
點擊下面的新頁按鈕,會再新建一個頁和一個組
選擇左邊的
DIM
IN_L
IN_H
放入右邊的新建組
點擊11行下面空白處,再點擊新頁按鈕
選擇左邊的L1-L4四項,移到右邊
新建一個組,將剩余的項移到右邊
點擊確認按鈕保存設置
對項目進行保存,做一下檢查,檢查這個步驟不能少,不然找不到自定義功能塊。
6.雙擊打開模擬量處理層,在這里調用剛才建立的自定義功能塊
雙擊打開這個功能塊,可以看出對話框的分布就是按照剛才的設定,如果為了對話框更加友好,可以對分頁和分組寫上中文注釋。
對每一個分頁填上參數
這里還可以對每一個報警設置文字和聲音提醒。點擊確定按鈕保存設置
補充輸入和輸出變量
7. 在操作員站下面做畫面顯示,添加FRG層級
在畫面上放置文字數字顯示控件,綁定變量PT1000_HMI
保存項目,檢查錯誤。加載上位機和下位機
當前數據是0,因此會觸發低低限和低限報警
點擊運行中的操作員站上的報警按鈕,可以看到報警信息
如果修改輸入變量PT1000數值,可以看到報警信息隨之變化