在使用s7-1200PLC編寫程序的時候,如果項目上需要用到流量累積功能,但是本款PLC并沒有自帶流量累積功能塊。這時,就需要我們組態(tài)工程師自己編寫一個具有流量累積功能程序,或者將該程序封裝為FB塊或者FC塊。本文以封裝FB塊為例。
第一步:在程序塊目錄下單擊添加新塊,彈出添加新塊對話框,選中FB函數(shù)塊,在名稱欄填上需要命名的名字,如:Totalizer,選擇編程需要用的編程語言,本文以SCL語言講解,F(xiàn)B塊的編號可以通過手動或自動生成,然后單擊確認(rèn),如下圖所示
第二步:打開新建功能塊,并建立臨時變量,如下圖所示
第三步:程序編寫,如下圖所示:
程序編寫完成后,進(jìn)行編譯,編譯沒有錯誤時,在FC(FC2,FLOWACCUM)中調(diào)用該FB塊,最后在OB30中斷塊中調(diào)用該FB塊。
第四步:在FC中調(diào)用名字為“Totalizer”的FB塊,并對輸入輸出參數(shù)賦值,如下圖所示
再在OB30中調(diào)用功能塊,OB30中斷塊是循環(huán)中斷塊,循環(huán)時間為100ms,如下圖所示
雙擊循環(huán)中斷OB30中斷塊,在中斷塊中調(diào)用FC2(FLOWACCUM)功能塊,如下圖所示
程序解讀:
變量定義:
變量名:Reset,數(shù)據(jù)類型:Bool,作用:累積清零
變量名:Accum,數(shù)據(jù)類型:Real,作用:存儲累積值
變量名:Total,數(shù)據(jù)類型:Real,作用:存放累計值
變量名:Intervall,數(shù)據(jù)類型:TIME,作用:流量單位中的時間,如m3/h,則:變量為1h=3600s,變量單位:秒
變量名:Intervall_DInt,數(shù)據(jù)類型:Dint,作用:存儲Intervall轉(zhuǎn)換為Dint數(shù)據(jù)類型后的值
變量名:Intervall_Real,數(shù)據(jù)類型:Real,作用:存儲Intervall_DInt轉(zhuǎn)換為Real數(shù)據(jù)類型后的值
變量名:Cycle,數(shù)據(jù)類型:TIME,作用:存儲程序循環(huán)時間,單位:秒
變量名:Cycle_DInt,數(shù)據(jù)類型:Dint,作用:存儲Cycle轉(zhuǎn)換為Dint數(shù)據(jù)類型后的值
變量名:Cycle_Real,數(shù)據(jù)類型:Real,作用:存儲Cycle_DInt轉(zhuǎn)換為Real數(shù)據(jù)類型后的值
程序代碼:
IF #Reset = true THEN //條件為真時
#Accum := 0.000000e000; //累積清零
#Total := 0.000000e000; //累積清零
ELSE
#Intervall_DInt := TIME_TO_DINT(#Intervall);//將時間型變量Intervall轉(zhuǎn)換為雙整型數(shù)據(jù),并存在變量中
#Intervall_Real := DINT_TO_REAL(#Intervall_DInt);//將雙整型數(shù)據(jù)轉(zhuǎn)換為實型數(shù)據(jù),并存在變量中
#Cycle_DInt := TIME_TO_DINT(#Cycle);//將時間型變量Cycle轉(zhuǎn)換為雙整型數(shù)據(jù),并存在變量中,本例為0.1s
#Cycle_Real := DINT_TO_REAL(#Cycle_DInt);//將雙整型數(shù)據(jù)轉(zhuǎn)換為實型數(shù)據(jù),并存在變量中
#Accum := ((#Value * #Cycle_Real) / #Intervall_Real) + #Accum;//累積計算
#Total := #Accum; //Kopiere Ergebnis nach #Total / Copy result to #Total.//累計值傳遞
END_IF;
原文標(biāo)題:如何在S7-1200PLC上實現(xiàn)流量累加算法講解
文章出處:【微信公眾號:PLC技術(shù)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
plc
+關(guān)注
關(guān)注
5013文章
13323瀏覽量
464028 -
編程
+關(guān)注
關(guān)注
88文章
3627瀏覽量
93809
原文標(biāo)題:如何在S7-1200PLC上實現(xiàn)流量累加算法講解
文章出處:【微信號:xue_PLC,微信公眾號:PLC技術(shù)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論