<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > PLC在流量顯示和累積計量上的應用

PLC在流量顯示和累積計量上的應用

作者: 時(shí)間:2010-08-11 來(lái)源:網(wǎng)絡(luò ) 收藏

目前,PLC()已經(jīng)廣泛應用于鋼鐵、石油、化工、電力、建材、機械制造、汽車(chē)、輕紡、交通運輸、環(huán)保及文化娛樂(lè )等各個(gè)行業(yè),它具有高可靠性、抗干擾能力強、功能強大、靈活,易學(xué)易用、體積小,重量輕,價(jià)格便宜的特點(diǎn),在流量計量方面也有著(zhù)廣泛的用途,在用于流量累積時(shí)又有其編程的獨特之處,下面進(jìn)行詳細的分析和論述,包括在西門(mén)子S7-200CPU上編程的例子。

流量計輸出的信號一般是信號或4-20mA電流信號,這兩種信號輸出的都是瞬時(shí)流量(也有用繼電器輸出信號,原理一樣,不再贅述),我們的目的是在PLC中計算和顯示瞬時(shí)流量值和計算值,當輸入信號是信號是,在計算瞬時(shí)流量的時(shí)候,必須按照一個(gè)嚴格的時(shí)間間隔計算才能保證瞬時(shí)流量的準確性,因此,計算瞬時(shí)流量的時(shí)候必須用定時(shí)中斷來(lái)進(jìn)行,而且,在PLC系統中只能運行這一個(gè)中斷程序,不允許再產(chǎn)生其它中斷(即使是低優(yōu)先級的中斷也不允許運行),以防止干擾定時(shí)中斷的時(shí)間間隔的準確性,計算瞬時(shí)流量就是將這個(gè)時(shí)間段的累計個(gè)數換算成累計流量,再除以時(shí)間就是瞬時(shí)流量,對于4-20mA輸入只需按照其對應的量程進(jìn)行換算就可以直接得到瞬時(shí)流量,而累積流量就是將每個(gè)時(shí)間段內的累積流量累加起來(lái)就是累積流量,在實(shí)際使用PLC編程的過(guò)程中必須注意以下幾個(gè)問(wèn)題:

1. 輸入脈沖頻率范圍是否超出PLC接收的范圍;

2. PLC在達到最大計數值時(shí)如何保證計算正確;

3. 如何保證定時(shí)中斷不受干擾;

4. 如何避免計算的誤差;

5. 累積量的最大累積位數;

6. 如何復位累積量;

下面就最關(guān)鍵的2,4,6問(wèn)題進(jìn)行詳細的敘述,以西門(mén)子S7-200 CPU224為例,S7-200的CPU224具有6個(gè)單相最大30kHz的,但PLC內部沒(méi)有提供相應的算法來(lái)計算頻率,因此,需要自己編程計算,這就需要在PLC在達到最大計數值時(shí)要保證計算的正確性,實(shí)際編程時(shí),對高速計數器初始化以后就使之連續計數,不再對其進(jìn)行任何干預,其高速計數器的初始化程序如下:


注意:此段程序應該放到PLC第一個(gè)掃描周期執行的程序中執行。

對于高速計數器是否達到最大計數值時(shí)需要判斷,S7-200CPU的高速計數器是可以周而復始的進(jìn)行累計的,最高位為符號位,最小值為7FFFFFFF,由于計數器是一直累加的,不可能出現本次讀取的的計數值小于上次的計數值,因此判斷計數器當前值是否小于前一次的計數值,就可以判斷計數是否達到最大值的拐點(diǎn)(7FFFFFFF),如果達到,則執行特殊的計算以便消除計算錯誤,如下列程序所示,當當前計數值大于等于上次計數值時(shí),兩個(gè)計數值做差,就得到程序兩次掃描時(shí)間間隔內的計數差值,同時(shí)將當前計數值賦值到上次計數值上;當當前計數值小于上次計數值時(shí),計算上次計數值與7FFFFFFF之間的差值(用減法),以及當前計數值和7FFFFFFF之間的差值(用加法),然后將兩個(gè)結果相加就是程序兩次掃描時(shí)間間隔內的計數差值,從而實(shí)現對對累計計數值達到拐點(diǎn)時(shí)的正確計算。


注:此程序應放在定時(shí)中斷子程序中執行。

實(shí)際上,在現場(chǎng)應用中定時(shí)中斷子程序是采用250ms中斷一次執行的,使用SMB34進(jìn)行控制的,需要注意的是,系統中必須只保證這個(gè)中斷是唯一存在的,不會(huì )受到其他中斷的影響,否則可能會(huì )由于其他中斷的影響使周期性中斷不準時(shí),從而影響精度。

通過(guò)以上計算就得到了250ms內流量計發(fā)過(guò)來(lái)的脈沖個(gè)數,這個(gè)數值乘以脈沖當量就是250ms內的流量值,再除以時(shí)間就是瞬時(shí)流量,另外,在250ms內再執行累加程序就可以計算累積流量了,在計算累積流量過(guò)程中需要避免累積過(guò)程的的計算誤差,我們知道,流量累積量是一直累積的一個(gè)數值,一般會(huì )累積到8位數,而PLC內部的浮點(diǎn)數的有效位數是6位,當累積量數值很大的時(shí)候就會(huì )造成一個(gè)大數和一個(gè)小數相加,勢必導致小數的有效位數丟失,造成很大的累積誤差,因此,要避免大數和小數相加的情況出現,解決方法是采用多個(gè)流量,只允許同數量級的數值相加,從而避免數值有效位數損失,實(shí)際編程中采用了5個(gè),根據常用流量情況下,在周期中斷時(shí)間間隔(250ms)內流過(guò)的流量乘以15作為第一個(gè)的上限,當達到這個(gè)累積器的上限值后,將這個(gè)累積器的值累加到第2個(gè)累積器中,并把第一個(gè)累積器清零,對于第三個(gè)累積器也同樣處理,第4個(gè)累積器用于保存累積量小數部分數值,第5個(gè)累積器用于保存累積量整數部分數值,這樣在顯示總累積量時(shí)只需顯示整數部分和小樹(shù)部分就可以了,整個(gè)過(guò)程充分避免了累積過(guò)程中大數與小數相加的情況出現,在實(shí)際工程中,需根據流量的大小、周期中斷的時(shí)間間隔來(lái)確定所用累積器的個(gè)數,而累積器的整數部分用雙整數來(lái)表示,雙整數的范圍是-2,147,483,648到+2,147,483,647,因此,可以使累積器的整數位數達到9位,這樣,在顯示累積量時(shí)就可以最多顯示9位整數的累積量和6位的小數累積量??傆?5位,從而省略累積器倍乘系數,使讀數更簡(jiǎn)便。

對累積器需要在一定條件下復位,累積到最大數值或手動(dòng)復位,在中斷程序中判斷累積量是否達到超過(guò)最大位數,當超過(guò)最大數值時(shí),將各個(gè)累積器清零,另外清零的觸發(fā)信號也可以是手動(dòng)觸發(fā)。

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>