y_fx2000
級別: 家園常客
|
西門子的1200系列cpu做模擬量累積(例如做流量的累積),瞬時流量準確但累積流量不準確,偏差非常大,感覺上是低端cpu時間基準不準確導致的,因為用同樣的編程方法在S7-300和1500系列下又是準確的。不知道各位可否有什么好的解決辦法,請大神指導。 順便說一下我是OB30里面做累積的,循環中斷時間為100ms |
---|---|
|
工控的淚
飛來山上千尋塔聞說雞鳴見日升不畏浮云遮望眼自緣身在最高層
級別: 家園常客
|
程序累計量比實際累計量少50%。 |
|
---|---|---|
|
wanghuijun
級別: 探索解密
|
你這程序肯定不準,西門子浮點數的小數點位數有限制,你的流量除以36000整數部分肯定是零,估計小數點后還有很多零,那得舍去多少, |
---|---|
|
y_fx2000
級別: 家園常客
|
1S累積一次沒用過,之前在300和1500上都是100ms這種做的,都沒有問題。 |
---|---|
|
y_fx2000
級別: 家園常客
|
目前還沒有很好的解決方案,樓上說的小數位數的問題,應該沒有關系,real值是32位的應該不會存在截取的問題。很早以前在用S7-200的時候就遇到過這個問題,最后是通過設置一個修改系數來處理的,相當于根據實際的累積量來對程序進行系數修正,但這會出現一個問題是每一臺CPU均不一樣,需要不同的修改系數,這在實際的使用過程中會非常不方便。因此在此把這個問題拋出來,希望有實際項目經驗的同仁能一起討論,希望能有一個很好的解決方案。 這種問題,只有有實際項目經驗的人才能感受得到,理論學者就不說了。像這種問題非常常見,比如工業上用的電子皮帶秤,也是一個很好的例子,問了很多設計人員都沒有很好的解決方案,最終都是直接用1500(S7-300)系列的cpu,提升plc檔次解決該問題,但這種就導致了成本的上升!小公司用不起,我們做的設備成本也高。 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
|
我覺得不太對,這是最基礎的定時中斷執行問題,即使存在誤差也是us級別的,而且不存在累積誤差,幾塊錢的單片機都能完成的任務,沒理由1200PLC做不到. 而且本身100ms這個周期也是非常容易做到了,如果懷疑硬件問題可以上示波器,沒示波器也可以同時接兩臺上去做AB測試.我傾向于是軟件問題,比如濾波 這個程序讓我寫我會選擇10ms的中斷里面采樣10次然后中值濾波后再進行累積 |
---|---|
|