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