在step7中的庫中,有專門用于pid控制的fb塊——fb41。pid控制必須在循環(huán)中斷中執(zhí)行,以確保其掃描、執(zhí)行時(shí)間基本固定。本例中的cpu僅有ob35一個(gè)循環(huán)中斷,因此,要在ob35中調(diào)用fb41。
圖1 fb41在庫中的位置
圖2 fb41的邏輯圖
fb41的邏輯如圖2所示。分解介紹如下:
· sp_int端為給定值,本例中即為給定壓力,假設(shè)為0.5mpa;即:0.5==>sp_int;
· 實(shí)際值有兩條通路可選:
· 當(dāng)pvper_on=0時(shí),pv_in端的值為實(shí)際值,該值通常有fc105轉(zhuǎn)換而來;
· 當(dāng)pvper_on=1時(shí),pv_per端的值為實(shí)際的壓力值,該值來自ai模塊,為壓力傳感器的反饋值;
本例中,我們以pvper_on=1時(shí),來說明。即:1==>pvper_on、piw272==>pv_per
· pv_fac、pv_off對(duì)應(yīng)壓力的范圍,即:1==>pv_fac、0==>pv_off。
· pv是根據(jù)pv_per計(jì)算出的實(shí)際壓力值。具體來說:
pv_per=0時(shí),對(duì)應(yīng)的實(shí)際壓力為pv_off,即0mpa;
pv_per=27648時(shí),對(duì)應(yīng)的實(shí)際壓力為pv_fac,即1mpa;
pv=pv_per/27648*(pv_fac – pv_off),本例中,pv=pv_per/27648;
· er為給定值sp_int和實(shí)際值pv的偏差,pid即是基于它進(jìn)行調(diào)節(jié)的;
· gain、ti、td分別為比例、積分、微分的系數(shù)。比例功能投入與否,由p_sel決定,當(dāng)p_sel=1時(shí),比例功能起作用;同理,i_sel、d_sel決定是否啟用積分、微分調(diào)節(jié);
· lmn_p、lmn_i、lmn_d分別記錄當(dāng)前控制量的比例分量、積分分量、微分分量。
· lmn_hlm、lmn_llm分別為輸出的上、下限值,上限100對(duì)應(yīng)50hz,下限0對(duì)應(yīng)0hz,所以:lmn_hlm=100/50=2;lmn_llm=0;
· lmn_fac、lmn_off標(biāo)定頻率的變化范圍,分別為50hz和0hz;
· lmn_per為輸出的標(biāo)準(zhǔn)化,lmn_per=lmn/100*27648;
fb41中還有其他參數(shù),本文僅對(duì)pid控制做簡單介紹,上述幾個(gè)參數(shù)是必須了,將其定義在db1中,如圖3所示。然后在ob35中,調(diào)用fb41,并將db1中的數(shù)據(jù)一一對(duì)應(yīng)的填入相應(yīng)的引腳,即完成了pid控制的基礎(chǔ)工作,如圖4所示。
圖3 fb41關(guān)鍵參數(shù)定義
圖4 ob35中調(diào)用fb41