調用FB41 無值輸出
劉玉蓉
發(fā)布于2014-10-15 17:05
749
0
標簽:
問題有點多耐心看一下:
我的思路是 在OB35里面調用FB1:
CALL "調用PID" , "FB1背景塊"
COM_RST:=M2.0
CYCLE :=T#200MS
在FB1里面調用FB41(PID)背景塊為DB41 實參的值我在共享數據塊DB2里面給定的(有圖的)時間是200毫秒沒錯的我設定好了。怎么會沒有輸出值呢,幫個忙看一下,還有就是PID調節(jié)面板有沒有說明的,麻煩發(fā)個鏈接,看一下。我的PID面板的參數有沒有錯誤的。
問題補充:
剛剛試了一下 好了,是輸入的P I D 參數不能為0,我把DB2.DBD10 DB2.DBD14 DB2.DBD18 DB2.DBD22給刪了,假如我想用這些 DB2.DBD10 DB2.DBD14 DB2.DBD18 DB2.DBD22賦值的話應該怎么做呢,還有就是還有就是PID調節(jié)面板有沒有說明的。
圖片說明: 1,PID調節(jié) 2,FB41 3,FB4值
佳答案
我個人感覺你的設計比較復雜,你可以直接在周期性中斷OB35中調用PID控制塊FB41,然后在CYCLE參數中輸入采用時間就可以了,當然你也可以在自動生成的背景數據塊如DB1,其變量與對應的FB41的變量聲明表中的變量一一對應,可以在數據顯示方式下修改實際值,即可以“Actual Value”(實際值)中進行修改參數值,也可以通過對應的FB41的變量聲明表來修改,操作比較簡單,沒有必要使用共享數據塊,實際工作中也沒有這樣做,方法如下:
FB41“CONT_C”用于連續(xù)控制,它是系統(tǒng)固化的純軟件PID控制器,運行過程中循環(huán)掃描、計算所需的全部數據存儲在分配給FB41的背景數據塊里,所以可以無限次調用。在SIMAITC管理器中,依次展開你的項目到Blocks(塊),選擇菜單Insert(插入)/S7 Block(S7塊)/Organization Block(組織塊),插入OB35;
雙擊打開OB35,依次展開左邊Libraries(庫)/Standard Library(標準庫)/PID Control Blocks(PID控制塊),雙擊下面的FB41 “CONT_C”ICONT,就在OB35下插入一個FB41,在調用塊“CONT_C”上面“???”填寫背景數據如DB1,就會出現下面對話框:
LAD/STL/FBD
The instance data block DB1 doesn’t exist, Do you want to generate it?(背景數據塊DB1不存在,你是否要產生它?“,點擊”Yes“,就自動建立一個背景數據塊DB1,
這里有幾個問題必須明確:
FB41 中參數PV_IN(浮點格式過程變量輸入)必須是實數,一般通過在OB1中調用規(guī)范化塊FC105把整形值轉換為以工程單位表示的介于下限和上限之間的實型值(即浮點格式)給DB1.DBD10,直接提供給參數PV_IN;
同時在OB1中,將FB41參數LMN_PER(I/O格式的PID輸出值)通過賦值指令MOVE經PID輸出值經過D/A轉換后送出如到PQW3;
需要在OB100中重啟PID,程序結構如下:
Network 1
S DB1.DBX 0.0 //重啟PID
Network2
R DB1.DBX 0.0
參考下列鏈接《用Step7中SFB41/FB 41、SFB42/FB42、SFB43/FB43實現PID控制》
https://www.ad.siemens.com.cn/download/Html/download.aspx?DownloadID=1231&TreeID=8&URL=/Download/Upload/AS/application/A0018.pdf