CPU|基于西門子S7-200CPU在累積器中應用及注意事項

CPU|基于西門子S7-200CPU在累積器中應用及注意事項

目前 , PLC(可編程邏輯控制器)已經廣泛應用于鋼鐵、石油、化工、電力、建材、機械制造、汽車、輕紡、交通運輸、環保及文化娛樂等各個行業 , 它具有高可靠性、抗干擾能力強、功能強大、靈活 , 易學易用、體積小 , 重量輕 , 價格便宜的特點 , 在流量計量方面也有著廣泛的用途 , 在用于流量累積時又有其編程的獨特之處 , 下面進行詳細的分析和論述 , 包括在西門子S7-200CPU上編程的例子 。
流量計輸出的信號一般是脈沖信號或4-20mA電流信號 , 這兩種信號輸出的都是瞬時流量(也有用繼電器輸出累積量信號 , 原理一樣 , 不再贅述) , 我們的目的是在PLC中計算和顯示瞬時流量值和計算累積量值 , 當輸入信號是脈沖信號是 , 在計算瞬時流量的時候 , 必須按照一個嚴格的時間間隔計算才能保證瞬時流量的準確性 , 因此 , 計算瞬時流量的時候必須用定時中斷來進行 , 而且 , 在PLC系統中只能運行這一個中斷程序 , 不允許再產生其它中斷(即使是低優先級的中斷也不允許運行) , 以防止干擾定時中斷的時間間隔的準確性 , 計算瞬時流量就是將這個時間段的累計脈沖個數換算成累計流量 , 再除以時間就是瞬時流量 , 對于4-20mA輸入只需按照其對應的量程進行換算就可以直接得到瞬時流量 , 而累積流量就是將每個時間段內的累積流量累加起來就是累積流量 , 在實際使用PLC編程的過程中必須注意以下幾個問題:

1. 輸入脈沖頻率范圍是否超出PLC接收的范圍;
2. PLC高速計數器在達到最大計數值時如何保證計算正確;
3. 如何保證定時中斷不受干擾;
4. 如何避免計算累積量的誤差;
【CPU|基于西門子S7-200CPU在累積器中應用及注意事項】5. 累積量的最大累積位數;
6. 如何復位累積量;
下面就最關鍵的2 , 4 , 6問題進行詳細的敘述 , 以西門子S7-200 CPU224為例 , S7-200的CPU224具有6個單相最大30kHz的高速計數器 , 但PLC內部沒有提供相應的算法來計算頻率 , 因此 , 需要自己編程計算 , 這就需要在PLC高速計數器在達到最大計數值時要保證計算的正確性 , 實際編程時 , 對高速計數器初始化以后就使之連續計數 , 不再對其進行任何干預 , 其高速計數器的初始化程序如下:
基于西門子S7-200CPU在累積器中應用及注意事項
注意:此段程序應該放到PLC第一個掃描周期執行的程序中執行 。
對于高速計數器是否達到最大計數值時需要判斷 , S7-200CPU的高速計數器是可以周而復始的進行累計的 , 最高位為符號位 , 最小值為7FFFFFFF , 由于計數器是一直累加的 , 不可能出現本次讀取的的計數值小于上次的計數值 , 因此判斷計數器當前值是否小于前一次的計數值 , 就可以判斷計數是否達到最大值的拐點(7FFFFFFF) , 如果達到 , 則執行特殊的計算以便消除計算錯誤 , 如下列程序所示 , 當當前計數值大于等于上次計數值時 , 兩個計數值做差 , 就得到程序兩次掃描時間間隔內的計數差值 , 同時將當前計數值賦值到上次計數值上;當當前計數值小于上次計數值時 , 計算上次計數值與7FFFFFFF之間的差值(用減法) , 以及當前計數值和7FFFFFFF之間的差值(用加法) , 然后將兩個結果相加就是程序兩次掃描時間間隔內的計數差值 , 從而實現對對累計計數值達到拐點時的正確計算 。
注:此程序應放在定時中斷子程序中執行 。
實際上 , 在現場應用中定時中斷子程序是采用250ms中斷一次執行的 , 使用SMB34進行控制的 , 需要注意的是 , 系統中必須只保證這個中斷是唯一存在的 , 不會受到其他中斷的影響 , 否則可能會由于其他中斷的影響使周期性中斷不準時 , 從而影響精度 。

相關經驗推薦