1208qqcom
級別: 探索解密
![]() |
為什么D500的值不直接傳給D1524,而是先除以10,在乘以10,然后再傳過去呢,有什么意義? [upload=1] |
---|---|
|
fjqz00
級別: 論壇先鋒
![]() |
應(yīng)該是剛開始的時候不是乘10除10的關(guān)系,只是后面調(diào)試了發(fā)現(xiàn)乘10除10的結(jié)果剛好,又懶得改程序,就還保留吧 |
---|---|
|
znz43
工控職業(yè)已成回憶 只因愛好常回家園 樂此不疲
級別: 工控俠客
![]() ![]() |
如果不是用浮點數(shù)運算,而是用整型運算,那先除10再乘10就是把尾數(shù)去掉,好比結(jié)賬時把分去掉,只算到角。 |
|
---|---|---|
|
poorwer
級別: 略有小成
![]() |
三菱PLC這樣的計算好像只會保留整數(shù)部分,如果計算結(jié)果是小數(shù)的話,直接除10那么就會很大的計算誤差,所以一般都會先放大,再縮小,這樣就會避免計算誤差。幾年前調(diào)機的時候遇到的情況好像是這樣,樓主你可以試試,是不是這個原因。 |
---|---|
|
1208qqcom
級別: 探索解密
![]() |
九樓的解釋感覺還是有點問題,不是所有的程序都先放大再縮小的,我感覺不是簡簡單單的先乘以再除以,或者是先乘以,再除以。超聲波傳感器檢測到的值由AD模塊轉(zhuǎn)換成數(shù)字量,范圍控制在0到4000,不管數(shù)是整型數(shù)還是浮點型數(shù),他先乘以還是先除以10只要結(jié)果不取整,結(jié)果都是不變,那這段程序還有什么意義。假如取整那對于整型數(shù)就只是把個位數(shù)變成了0,那豈不是和檢測到的值存在了誤差,誤差沒變小反而變大了,若是浮點數(shù)先乘以后除以也沒意義,如果是先除以再乘以,那誤差更大了, |
---|---|
|