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


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

相關經驗推薦