日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 梯形圖實(shí)例 >> 正文

西門子plc流量累積計(jì)算程序梯形圖實(shí)例

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2021-12-18

plc做流量累積計(jì)算的程序

如圖:
 


 


 
 

 

二、plc計(jì)算流量累積

流量計(jì)是4-20ma信號(hào)輸出,瞬時(shí)流量可以用S7200來做,但是累積流量的話,怎么編程才能使誤差最小,累積流量超范圍溢出問題,怎么解決?

對(duì)這個(gè)流量進(jìn)行固定頻率的采集,假如采集頻率為10hz,也就是每秒鐘采集10次,將每次采集的數(shù)據(jù)進(jìn)行累加,再將累計(jì)的數(shù)除以10就是每秒流量,假如流量計(jì)工作在最大流量上,我們假定20ma對(duì)應(yīng)的數(shù)值時(shí)65535(一般plc模擬量都沒這么高的精度,至于是多少要根據(jù)模塊來),那么用雙字運(yùn)算就能滿足要求了,先將模擬量輸入數(shù)值轉(zhuǎn)換成雙字,再累加,到10次以后將累加值除以10再傳送給另一個(gè)寄存器(這個(gè)寄存器中才是真正的累計(jì)量)。

累計(jì)范圍超出也好辦,只要將累計(jì)量單位換算一下就永遠(yuǎn)也不可能超范圍了,比如開始累計(jì)的是升,每次達(dá)到1000升時(shí),將一個(gè)立方為單位的累計(jì)值上加1,以升為單位的寄存器清零,單立方值到了1000后,將仟立方寄存器加1,再將立方累計(jì)值清零。這樣處理,再多的流量也可以累計(jì)。

要減小累計(jì)誤差就是要減短采集時(shí)間,對(duì)于流量計(jì)采樣時(shí)間0.1秒應(yīng)該是夠了。還有就是采集程序要用定時(shí)中斷,比較準(zhǔn)確一點(diǎn)。

三、plc在流量顯示和累積計(jì)量上的應(yīng)用

流量計(jì)輸出的信號(hào)一般是脈沖信號(hào)或4-20mA電流信號(hào),這兩種信號(hào)輸出的都是瞬時(shí)流量(也有用繼電器輸出累積量信號(hào),原理一樣,不再贅述),我們的目的是在PLC中計(jì)算和顯示瞬時(shí)流量值和計(jì)算累積量值,當(dāng)輸入信號(hào)是脈沖信號(hào)是,在計(jì)算瞬時(shí)流量的時(shí)候,必須按照一個(gè)嚴(yán)格的時(shí)間間隔計(jì)算才能保證瞬時(shí)流量的準(zhǔn)確性。

因此,計(jì)算瞬時(shí)流量的時(shí)候必須用定時(shí)中斷來進(jìn)行,而且,在PLC系統(tǒng)中只能運(yùn)行這一個(gè)中斷程序,不允許再產(chǎn)生其它中斷(即使是低優(yōu)先級(jí)的中斷也不允許運(yùn)行),以防止干擾定時(shí)中斷的時(shí)間間隔的準(zhǔn)確性,計(jì)算瞬時(shí)流量就是將這個(gè)時(shí)間段的累計(jì)脈沖個(gè)數(shù)換算成累計(jì)流量,再除以時(shí)間就是瞬時(shí)流量,對(duì)于4-20mA輸入只需按照其對(duì)應(yīng)的量程進(jìn)行換算就可以直接得到瞬時(shí)流量,而累積流量就是將每個(gè)時(shí)間段內(nèi)的累積流量累加起來就是累積流量,在實(shí)際使用PLC編程的過程中必須注意以下幾個(gè)問題:

1. 輸入脈沖頻率范圍是否超出PLC接收的范圍;
2. PLC高速計(jì)數(shù)器在達(dá)到最大計(jì)數(shù)值時(shí)如何保證計(jì)算正確;
3. 如何保證定時(shí)中斷不受干擾;
4. 如何避免計(jì)算累積量的誤差;
5. 累積量的最大累積位數(shù);
6. 如何復(fù)位累積量;

對(duì)于高速計(jì)數(shù)器是否達(dá)到最大計(jì)數(shù)值時(shí)需要判斷,S7-200CPU的高速計(jì)數(shù)器是可以周而復(fù)始的進(jìn)行累計(jì)的,最高位為符號(hào)位,最小值為7FFFFFFF,由于計(jì)數(shù)器是一直累加的,不可能出現(xiàn)本次讀取的的計(jì)數(shù)值小于上次的計(jì)數(shù)值。

因此判斷計(jì)數(shù)器當(dāng)前值是否小于前一次的計(jì)數(shù)值,就可以判斷計(jì)數(shù)是否達(dá)到最大值的拐點(diǎn)(7FFFFFFF),如果達(dá)到,則執(zhí)行特殊的計(jì)算以便消除計(jì)算錯(cuò)誤,如下列程序所示,當(dāng)當(dāng)前計(jì)數(shù)值大于等于上次計(jì)數(shù)值時(shí),兩個(gè)計(jì)數(shù)值做差,就得到程序兩次掃描時(shí)間間隔內(nèi)的計(jì)數(shù)差值,同時(shí)將當(dāng)前計(jì)數(shù)值賦值到上次計(jì)數(shù)值上;當(dāng)當(dāng)前計(jì)數(shù)值小于上次計(jì)數(shù)值時(shí),計(jì)算上次計(jì)數(shù)值與7FFFFFFF之間的差值(用減法),以及當(dāng)前計(jì)數(shù)值和7FFFFFFF之間的差值(用加法),然后將兩個(gè)結(jié)果相加就是程序兩次掃描時(shí)間間隔內(nèi)的計(jì)數(shù)差值,從而實(shí)現(xiàn)對(duì)對(duì)累計(jì)計(jì)數(shù)值達(dá)到拐點(diǎn)時(shí)的正確計(jì)算。

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

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

通過以上計(jì)算就得到了250ms內(nèi)流量計(jì)發(fā)過來的脈沖個(gè)數(shù),這個(gè)數(shù)值乘以脈沖當(dāng)量就是250ms內(nèi)的流量值,再除以時(shí)間就是瞬時(shí)流量,另外,在250ms內(nèi)再執(zhí)行累加程序就可以計(jì)算累積流量了,在計(jì)算累積流量過程中需要避免累積過程的的計(jì)算誤差,流量累積量是一直累積的一個(gè)數(shù)值,一般會(huì)累積到8位數(shù),而PLC內(nèi)部的浮點(diǎn)數(shù)的有效位數(shù)是6位,當(dāng)累積量數(shù)值很大的時(shí)候就會(huì)造成一個(gè)大數(shù)和一個(gè)小數(shù)相加,勢(shì)必導(dǎo)致小數(shù)的有效位數(shù)丟失,造成很大的累積誤差。

因此,要避免大數(shù)和小數(shù)相加的情況出現(xiàn),解決方法是采用多個(gè)流量累積器,只允許同數(shù)量級(jí)的數(shù)值相加,從而避免數(shù)值有效位數(shù)損失,實(shí)際編程中采用了5個(gè)累積器,根據(jù)常用流量情況下,在周期中斷時(shí)間間隔(250ms)內(nèi)流過的流量乘以15作為第一個(gè)累積器的上限,當(dāng)達(dá)到這個(gè)累積器的上限值后,將這個(gè)累積器的值累加到第2個(gè)累積器中,并把第一個(gè)累積器清零,對(duì)于第三個(gè)累積器也同樣處理,第4個(gè)累積器用于保存累積量小數(shù)部分?jǐn)?shù)值,第5個(gè)累積器用于保存累積量整數(shù)部分?jǐn)?shù)值,這樣在顯示總累積量時(shí)只需顯示整數(shù)部分和小樹部分就可以了,整個(gè)過程充分避免了累積過程中大數(shù)與小數(shù)相加的情況出現(xiàn)。

在實(shí)際工程中,需根據(jù)流量的大小、周期中斷的時(shí)間間隔來確定所用累積器的個(gè)數(shù),而累積器的整數(shù)部分用雙整數(shù)來表示,雙整數(shù)的范圍是-2,147,483,648到+2,147,483,647,因此,可以使累積器的整數(shù)位數(shù)達(dá)到9位,這樣,在顯示累積量時(shí)就可以最多顯示9位整數(shù)的累積量和6位的小數(shù)累積量?傆(jì)15位,從而省略累積器倍乘系數(shù),使讀數(shù)更簡(jiǎn)便。

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

如果是流量計(jì)本身也有累計(jì)量的話,二次輸出的瞬時(shí)量,在PLC中再做中斷,也會(huì)有一定的誤差的。最好用通訊或脈沖。

PLC做累加總歸會(huì)有誤差,最好的方法是用通信,可以確保累積流量的準(zhǔn)確。通用的HART-Profibus通信網(wǎng)關(guān)比較復(fù)雜,還需要定義解析HART消息。

在對(duì)準(zhǔn)確度有較高要求的場(chǎng)合建議用累積流量專用網(wǎng)關(guān),專用帶來簡(jiǎn)潔,經(jīng)濟(jì)、簡(jiǎn)單、可靠,不需要定義HART消息,不需要PLC是Profibus主站,即插即用免配置。

四、西門子plc中如何解決流量累積問題
 
現(xiàn)在上位機(jī)系統(tǒng)中很多要求具備流量計(jì)的流量累計(jì)功能,由此引出的幾個(gè)問題,期望與大家分享。

問題1:自行編寫流量累計(jì)程序
自行編寫流量累計(jì)程序的原理,其實(shí)就是積分的最原始算法概念,把單位小間隔時(shí)間內(nèi)的瞬時(shí)流量乘以單位間隔時(shí)間,得到單位小間隔時(shí)間內(nèi)的流量,再把這些小流量累加起來,就的到了累計(jì)流量。
在流量累計(jì)編程中經(jīng)常會(huì)遇到實(shí)數(shù)加法問題,實(shí)數(shù)加法運(yùn)算的注意事項(xiàng)也應(yīng)當(dāng)引起編程人員的重視,請(qǐng)看下例程序(假設(shè)其在OB35中被調(diào)用,目的為每隔一定時(shí)間間隔就累計(jì)一次流量)
L MD0 //累計(jì)流量存儲(chǔ)值
L MD4 //流量瞬時(shí)值
+R
T MD 0
以上的程序是否存在問題?

很多人會(huì)認(rèn)為沒有問題,但實(shí)際情況是此程序在運(yùn)行一段時(shí)間后就將出現(xiàn)錯(cuò)誤。此程序在運(yùn)行之初是正常的,因?yàn)槔塾?jì)流量初始值及流量瞬時(shí)值都為一個(gè)很小的浮點(diǎn)數(shù),兩數(shù)相加后,結(jié)果正確。但是當(dāng)一段時(shí)間后,累計(jì)流量的數(shù)值逐漸增大,當(dāng)它與瞬時(shí)流量的數(shù)值相差很遠(yuǎn)的時(shí)候,兩者執(zhí)行加法操作后,瞬時(shí)流量的數(shù)值將被忽略掉(如9999990.0與0.2做加法操作)。其實(shí)具備計(jì)算機(jī)常識(shí)的人都應(yīng)當(dāng)清楚這一點(diǎn),這是由于浮點(diǎn)數(shù)的存儲(chǔ)機(jī)制造成的,是所有計(jì)算機(jī)方面編程都需要考慮的問題。這個(gè)問題可以通過使用二次累加或多次累加的方法來解決。所以在編程時(shí)應(yīng)避免數(shù)量級(jí)相差太多的浮點(diǎn)數(shù)之間進(jìn)行運(yùn)算。很多人反映“加法指令不好用了”,很有可能就是數(shù)量級(jí)相差很多的實(shí)數(shù)進(jìn)行了加法運(yùn)算。

問題2:累計(jì)流量誤差問題
對(duì)于積分算法,取小的矩形對(duì)流量進(jìn)行累計(jì),肯定是矩形劃分越細(xì),誤差越小,不存在誤差是不可能的。

問題3:流量計(jì)與PLC構(gòu)成的系統(tǒng)的誤差
流量計(jì)有多種多樣,下面舉些例子:

1、流量計(jì)本身沒有累計(jì)流量功能,但可以把瞬時(shí)流量以模擬量的方式(例如4-20mA)輸出。
此時(shí)累計(jì)流量的最大誤差可以估算為:
流量計(jì)本身誤差 * 流量計(jì)D/A誤差 * 模擬量模塊A/D誤差 * PLC流量累計(jì)算法誤差

假設(shè)上面所有誤差都是1%,則最后的誤差約為:4.06%
1.01*1.01*1.01*1.01=1.0406
對(duì)于某些流量計(jì),本身的瞬時(shí)流量誤差可能就是3%,所以這樣的系統(tǒng)累計(jì)流量的誤差可能還要大些。

2、流量計(jì)本身沒有累計(jì)流量功能,但可以把瞬時(shí)流量以數(shù)字量的方式輸出。
有些流量計(jì)提供數(shù)字量接口,可以連接PLC的數(shù)字量輸入模板,流量計(jì)每流過一定流量后(例如0.1噸),此輸入點(diǎn)就導(dǎo)通一次,PLC就把累計(jì)流量累加0.1噸即可。
此類系統(tǒng)避免了A/D,D/A轉(zhuǎn)化的誤差,以及PLC累計(jì)算法誤差。但是會(huì)出現(xiàn)一定時(shí)間內(nèi)累計(jì)流量不變化的情況,實(shí)時(shí)性不好(每0.1噸累積的時(shí)間)。

3、流量計(jì)本身有累計(jì)流量功能,同時(shí)可以把瞬時(shí)流量以模擬量的方式(例如4-20mA)輸出,但無法將累計(jì)流量數(shù)值送出。
流量計(jì)本身累積流量的數(shù)值,最后很有可能與PLC的累計(jì)流量數(shù)值相差很大,原因可能是多方面造成的,除去系統(tǒng)累計(jì)流量誤差的因素,如果PLC系統(tǒng)檢修時(shí),流量計(jì)還計(jì)量,則PLC無法累積這部分流量。

4、流量計(jì)本身有累計(jì)流量功能,同時(shí)可以通過通信的方式,把瞬時(shí)流量及累計(jì)流量數(shù)值送給PLC。這種情況最理想,但系統(tǒng)的成本也最高。

五、關(guān)于流量累積的程序

需要關(guān)于流累累積的程序,只要流量計(jì)測(cè)到瞬時(shí)計(jì)量,需要求出某一時(shí)段的累積流量,需要成功的例子程序,LAD/STL都可以。

在ob35中做,做一個(gè)小信號(hào)切除,太小的就不要了。
 

復(fù)制代碼 代碼示例:
 a start//開始累計(jì)流量
 fp flg1
 =flg2
 a flg2
 jcn m2
 l 0.0
 t sum
 m2:nop 0
 a start
 jcn m1
 l pv//測(cè)量信號(hào)
 l pv_low_sp//小信號(hào)值
 >=r
 jcn m1
 l pv//以小時(shí)計(jì)
 l 7200.0//ob35的周期是500ms
 /r
 l sum//累計(jì)信號(hào)
 +r
 t sum
 m1:nop 0
 

 上面的程序啟動(dòng)瞬間累計(jì)數(shù)據(jù)清零,然后開始累計(jì),start=0停止累計(jì)。如果要求的精度高的話,需要減小ob35的周期,同時(shí)7200.0也需要相應(yīng)的變化。如果周期是100ms了,那么7200.0需要變成36000.0。

 分析:
 以前用plc做過流量計(jì)算。首先的看你用什么計(jì)流量,如果是脈沖信號(hào),因?yàn)镻LC本身有運(yùn)行周期,如果控制要求較高的場(chǎng)合,通過脈沖來計(jì)算出瞬時(shí)流量,計(jì)算出來實(shí)際上是不準(zhǔn)的,而且控制上滯后比較嚴(yán)重。TI430單片機(jī)之類具有硬件脈沖捕捉功能的單片機(jī),在通過脈沖計(jì)算流量上,有得天獨(dú)厚的優(yōu)勢(shì)。這個(gè)可以參考一些基本的測(cè)速概念。脈沖用來計(jì)算累積量很準(zhǔn)。
 
 如果流量計(jì)本身反饋的是4~20ma的速度模擬信號(hào),這個(gè)就直接采集,然后在OB35里邊用積分模塊進(jìn)行流量累計(jì)。這個(gè)速度信號(hào)比較及時(shí)準(zhǔn)確,但中斷模塊調(diào)用積分,也會(huì)有誤差,不如脈沖計(jì)量準(zhǔn)。
 
 現(xiàn)在做皮帶秤時(shí),一般都混合采用,直接采模擬速度,然后用脈沖累計(jì)流量。

Tags:西門子plc,流量累積計(jì)算,梯形圖實(shí)例  
責(zé)任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 相關(guān)文章列表
    西門子plc中R復(fù)位線圈指令符號(hào)與狀態(tài)字
    西門子plc數(shù)據(jù)塊傳送指令的用法舉例
    西門子plc有記憶接通延時(shí)定時(shí)器指令的用法舉例 梯形圖實(shí)例
    西門子plc堆棧指令的用法梯形圖實(shí)例
    西門子plc指令英文全稱及含義中文說明
    三菱plc定時(shí)器與脈沖程序編程梯形圖實(shí)例
    西門子plc S7-200PLC中斷指令介紹 開關(guān)中斷、連接分離中斷
    基于西門子PLC的溫度檢測(cè)和控制系統(tǒng)原理及梯形圖實(shí)例
    S7-200模擬量比例換算及模擬量編程梯形圖實(shí)例 4-20mA編程
    PLC的自帶觸點(diǎn),為啥非要再加一個(gè)中間繼電器,你知道原因嗎?
    接近開關(guān)是PNP還是NPN,與PLC怎么連接,PNP接近開關(guān)和NPN接近開關(guān)
    PLC交通燈梯形圖實(shí)例_ plc控制紅綠燈畢業(yè)論文_ plc控制交通信號(hào)燈
    PLC閃光電路編程實(shí)例 梯形圖實(shí)例
    用PLC改造M7120平面磨床電路 附梯形圖實(shí)例
    西門子plc的 V存儲(chǔ)區(qū)和M存儲(chǔ)區(qū)的區(qū)別
    西門子PLC字整數(shù)與雙字整數(shù)之間的轉(zhuǎn)換、雙整數(shù)與實(shí)數(shù)之間的轉(zhuǎn)換
    西門子PLC整數(shù)與雙整數(shù)加減法指令簡(jiǎn)介 西門子plc指令
    西門子S7-200系列PLC增減計(jì)數(shù)器練習(xí) 梯形圖實(shí)例
    西門子S7-200系列PLC減計(jì)數(shù)指令入門教程  梯形圖實(shí)例CTD
    西門子S7-200系列PLC計(jì)數(shù)器練習(xí)第一部分  梯形圖實(shí)例CTU
    PLC的集中與分散控制梯形圖編程實(shí)例
    PLC計(jì)數(shù)器程序梯形圖編程實(shí)例
    4-20mA電流信號(hào)轉(zhuǎn)成0-5V或0-10V電壓信號(hào) 西門子梯形圖實(shí)例
    梯形圖編程實(shí)例:點(diǎn)動(dòng)計(jì)時(shí)器
    梯形圖實(shí)例 西門子PLC控制花樣噴泉形式編程實(shí)例
    西門子plc編程軟件中MOV_W、MOV_B、SHR_B的含義
    梯形圖實(shí)例 統(tǒng)計(jì)停車場(chǎng)現(xiàn)有多少輛車三菱FX PLC系統(tǒng)設(shè)計(jì)
    三菱plc自動(dòng)門的PLC控制梯形圖編程(檢測(cè)和延時(shí)的應(yīng)用)
    西門子plc中VB、VW、VD的含義和怎么使用
    西門子S7-200 PLC各數(shù)據(jù)存儲(chǔ)區(qū)含義及接線,西門子plc數(shù)據(jù)存儲(chǔ)器
    請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個(gè)字
    [ 查看全部 ] 網(wǎng)友評(píng)論
    推薦文章
    最新推薦
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢