有一個(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í),會(huì)溢出
2.32位數(shù)(如 第31位值為1時(shí))乘以10000,變成64位,再用32位指令除顯然也是不對(duì)的,最終顯示的結(jié)果是0(人機(jī)最多只能顯示雙字,即32位數(shù))