langman
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 576 個
工控威望: 606 點
下載積分: 1500 分
在線時間: 227(小時)
注冊時間: 2008-06-23
最后登錄: 2021-04-09
查看langman的 主題 / 回貼
樓主  發(fā)表于: 2008-12-17 18:37
有一個工程,要求計算合格率(良品/總產(chǎn)量),用的是三菱FX1N PLC,不支持浮點運算,
為了提高精度,不能直接用DDIV指令(良品和總產(chǎn)量均為32位數(shù),以下討論的指令也都是32位指令)。
我的思路是這樣的:先將良品*10000,再將此數(shù)除以總產(chǎn)量,得到3位或4位整數(shù),就可以在人機界面上顯示。
可問題來了:
1.當(dāng)良品超過一定數(shù)時,再乘以10000時,會溢出
2.32位數(shù)(如 第31位值為1時)乘以10000,變成64位,再用32位指令除顯然也是不對的,最終顯示的結(jié)果是0(人機最多只能顯示雙字,即32位數(shù))
朗工自動化,承接自動化改造工程:PLC控制系統(tǒng)、伺服系統(tǒng)、氣動、步進、節(jié)能燈設(shè)備、機械手、集成電路測試設(shè)備、變頻器、人機界面,歡迎洽談,
zhangshichao
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看zhangshichao的 主題 / 回貼
1樓  發(fā)表于: 2009-02-14 10:46
摟住應(yīng)該在用個計數(shù)器參與運算啊, 比如 〉10000, 計數(shù)器C0就加1,相當(dāng)于進位處理
這樣可以給你省出很多空間的