久久天天躁狠狠躁夜夜AV浪潮,极品少妇的粉嫩小泬视频 http://m.i3k94r.cn 重慶電力安裝公司_電力運(yùn)維_電力工程施工總承包單位 Tue, 18 Jun 2019 07:17:35 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.6.2 用PLC實(shí)現(xiàn)流量累加算法講解 http://m.i3k94r.cn/news/baike/2912.html Wed, 19 Jun 2019 01:12:54 +0000 http://m.i3k94r.cn/?p=2912 在使用s7-1200PLC編寫程序的時(shí)候,如果項(xiàng)目上需要用到流量累積功能,但是本款PLC并沒有自帶流量累積功能塊。這時(shí),就需要我們組態(tài)工程師自己編寫一個(gè)具有流量累積功能程序,或者將該程序封裝為FB塊或者FC塊。本文以封裝FB塊為例。

第一步:在程序塊目錄下單擊添加新塊,彈出添加新塊對(duì)話框,選中FB函數(shù)塊,在名稱欄填上需要命名的名字,如:Totalizer,選擇編程需要用的編程語(yǔ)言,本文以SCL語(yǔ)言講解,F(xiàn)B塊的編號(hào)可以通過(guò)手動(dòng)或自動(dòng)生成,然后單擊確認(rèn),如下圖所示

第二步:打開新建功能塊,并建立臨時(shí)變量,如下圖所示

第三步:程序編寫,如下圖所示:

程序編寫完成后,進(jìn)行編譯,編譯沒有錯(cuò)誤時(shí),在FC(FC2,FLOWACCUM)中調(diào)用該FB塊,最后在OB30中斷塊中調(diào)用該FB塊。

第四步:在FC中調(diào)用名字為“Totalizer”的FB塊,并對(duì)輸入輸出參數(shù)賦值,如下圖所示

再在OB30中調(diào)用功能塊,OB30中斷塊是循環(huán)中斷塊,循環(huán)時(shí)間為100ms,如下圖所示

雙擊循環(huán)中斷OB30中斷塊,在中斷塊中調(diào)用FC2(FLOWACCUM)功能塊,如下圖所示

程序解讀:

變量定義:

變量名:Reset,數(shù)據(jù)類型:Bool,作用:累積清零

變量名:Accum,數(shù)據(jù)類型:Real,作用:存儲(chǔ)累積值

變量名:Total,數(shù)據(jù)類型:Real,作用:存放累計(jì)值

變量名:Intervall,數(shù)據(jù)類型:TIME,作用:流量單位中的時(shí)間,如m3/h,則:變量為1h=3600s,變量單位:秒

變量名:Intervall_DInt,數(shù)據(jù)類型:Dint,作用:存儲(chǔ)Intervall轉(zhuǎn)換為Dint數(shù)據(jù)類型后的值

變量名:Intervall_Real,數(shù)據(jù)類型:Real,作用:存儲(chǔ)Intervall_DInt轉(zhuǎn)換為Real數(shù)據(jù)類型后的值

變量名:Cycle,數(shù)據(jù)類型:TIME,作用:存儲(chǔ)程序循環(huán)時(shí)間,單位:秒

變量名:Cycle_DInt,數(shù)據(jù)類型:Dint,作用:存儲(chǔ)Cycle轉(zhuǎn)換為Dint數(shù)據(jù)類型后的值

變量名:Cycle_Real,數(shù)據(jù)類型:Real,作用:存儲(chǔ)Cycle_DInt轉(zhuǎn)換為Real數(shù)據(jù)類型后的值

程序代碼:

IF #Reset = true THEN //條件為真時(shí)

#Accum := 0.000000e000; //累積清零

#Total := 0.000000e000; //累積清零

ELSE

#Intervall_DInt := TIME_TO_DINT(#Intervall);//將時(shí)間型變量Intervall轉(zhuǎn)換為雙整型數(shù)據(jù),并存在變量中

#Intervall_Real := DINT_TO_REAL(#Intervall_DInt);//將雙整型數(shù)據(jù)轉(zhuǎn)換為實(shí)型數(shù)據(jù),并存在變量中

#Cycle_DInt := TIME_TO_DINT(#Cycle);//將時(shí)間型變量Cycle轉(zhuǎn)換為雙整型數(shù)據(jù),并存在變量中,本例為0.1s

#Cycle_Real := DINT_TO_REAL(#Cycle_DInt);//將雙整型數(shù)據(jù)轉(zhuǎn)換為實(shí)型數(shù)據(jù),并存在變量中

#Accum := ((#Value * #Cycle_Real) / #Intervall_Real) + #Accum;//累積計(jì)算

#Total := #Accum; //Kopiere Ergebnis nach #Total / Copy result to #Total.//累計(jì)值傳遞

END_IF;

]]>