<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
 ;
文章:新聞EDA技術電源技術無線通信測量儀表嵌入式類電子技術制造技術半導體網絡協議展會實驗家電維修 3G  
  下載:EDA教程電源技術電子書籍電子元件無線通信通信網絡電路圖紙嵌入式類單片機傳感/控制電子教材模擬數字
.... 音視頻類
消費電子機械電子行業軟件C/C++FPGA/ASIC規則標準家電維修DSPIC資料ARM軟件電路圖電子技術論壇
 
位置:電子發燒友 > 電子技術應用 > 行業新聞 > 可編程邏輯 >plc在流量計量方面中的應用 退出登錄 用戶管理

plc在流量計量方面中的應用

作者:佚名  來源:本站整理  發布時間:2010-8-11 11:42:21  [收 藏] [評 論]

  1 引言

  目前,plc(可編程邏輯控制器)已經廣泛應用于鋼鐵、石油、化工、電力、建材、機械制造、汽車、輕紡、交通運輸、環保及文化娛樂等各個行業。它具有高可靠性、抗干擾能力強、功能強大、靈活、易學易用、體積小、重量輕、價格便宜的特點,在流量計量方面也有著廣泛的用途,在用于流量累積時又有其編程的獨特之處。下面進行詳細的分析和論述,包括在西門子s7-200 cpu上編程的例子。

  2 使用plc顯示流量和計算累積量

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

  (1) 輸入脈沖頻率范圍是否超出plc的接收范圍;

  (2) plc高速計數器在達到最大計數值時如何保證計算正確;

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

  (4) 如何避免計算累積量的誤差;

  (5) 累積量的最大累積位數;

  (6) 如何復位累積量。

  下面就最關鍵的2、4、6問題進行詳細的敘述,以西門子s7-200 cpu224為例,s7-200的cpu224具有6個單相最大30khz的高速計數器,但plc內部沒有提供相應的算法來計算頻率,需要使用者自行編程計算,這就需要在plc高速計數器在達到最大計數值時要保證計算的正確性。實際編程時,對高速計數器初始化以后就使之連續計數,不再對其進行任何干預,其高速計數器的初始化程序如圖1所示(此段程序應放到plc第一個掃描周期執行的程序中執行)。

  


  圖1 高速計數器的初始化程序

  對于高速計數器是否達到最大計數值時需要判斷,s7-200cpu的高速計數器是可以周而復始地進行累計的,最高位為符號位,最小值為7fffffff。由于計數器是一直累加的,不可能出現本次讀取的計數值小于上次計數值的情況,因此判斷計數器當前值是否小于前一次的計數值,就可以判斷計數是否達到最大值的拐點(7fffffff),如果達到,則執行特殊的計算以便消除計算錯誤,程序如圖2所示(此程序應放在定時中斷子程序中執行)。

  當當前計數值大于等于上次計數值時,兩個計數值做差,就得到程序兩次掃描時間間隔內的計數差值,同時將當前計數值賦值到上次計數值上;當當前計數值小于上次計數值時,計算上次計數值與7fffffff之間的差值(用減法),以及當前計數值和7fffffff之間的差值(用加法),然后將兩個結果相加就是程序兩次掃描時間間隔內的計數差值,從而實現對累計計數值達到拐點時的正確計算。

  

  圖2 消除計算錯誤程序

  實際上,在現場應用中定時中斷子程序是采用250ms中斷一次執行的,使用smb34進行控制的。需要注意的是,系統中必須只保證這個中斷是唯一存在的,不會受到其他中斷的影響,否則可能會因其它中斷的影響使周期性中斷不準時,從而影響精度。

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

  對累積器需要在一定條件下復位,累積到最大數值或手動復位,在中斷程序中判斷累積量是否達到或超過最大位數,當超過最大數值時,將各個累積器清零,清零的觸發信號也可以是手動觸發。

  3 結束語

  本文列出了在plc中計算和顯示瞬時流量和計算累積量時可能遇到的問題,并以西門子s7-200 cpu 224系列探討了解決辦法,值得進行該工作的工程人員借鑒。

上一篇文章:基于ISD4004語音芯片和AT89S52單片機的語音播報記事器設計 下一篇文章:已經沒有了
相關技術應用閱讀 相關技術資料下載
∷相關文章評論∷   ?。ㄔu論內容只代表網友觀點,與本站立場無關?。?[更多評論...]
 
 

 

 
關于本站- 意見反饋 - 網站導航 - 幫助 - 隱私政策 - 聯系我們 - 使用條款 - 安全承諾 - 友情連接 - 歡迎投稿
站長QQ:39550527 Powered by: 颶風網絡(電路圖
Copyright 2006-2008 Elecfans.Com.電子發燒友: 粵ICP備07065979號All Rights Reserved
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>