本頁(yè)假定您了解“PLC內(nèi)部數(shù)據(jù)”頁(yè)面中討論的原則 。
基礎(chǔ)
加法,減法,乘法和除法是您所期望的。如果您以前沒(méi)有使用編程語(yǔ)言進(jìn)行數(shù)學(xué)運(yùn)算,那么您應(yīng)該注意一些事項(xiàng)。
-
溢出:整數(shù)和浮點(diǎn)數(shù)具有大小限制。當(dāng)你超出他們的規(guī)模時(shí),你會(huì)給自己帶來(lái)麻煩。
示例:8位無(wú)符號(hào)Int,其值為255,位看起來(lái)像11111111.如果我們加1,我們得到100000000.第9位沒(méi)有存儲(chǔ),所以我們留下了00000000或0.所以在這case 255 + 1 = 0
另一個(gè)例子:8位無(wú)符號(hào)Int,其值為0,看起來(lái)像00000000.如果我們減去1,我們得到11111111.所以,我們可以得到相反的問(wèn)題0 - 1 = 255 -
舍入:浮點(diǎn)數(shù)不完美。因此,您不應(yīng)檢查浮點(diǎn)數(shù)是否等于某個(gè)值,您應(yīng)該檢查它是否在一個(gè)數(shù)字范圍內(nèi)。
示例:使用浮點(diǎn)數(shù)執(zhí)行的2 * 3可能不會(huì)精確到6.
可能是5.9999999999998或類似的東西。因此,不是詢問(wèn)是示例= 6,而是示例大于5.9且小于6.1。不要擔(dān)心如何提出這些問(wèn)題,我們將在本教程后面討論
布爾數(shù)學(xué)
一些編程包允許使用布爾數(shù)學(xué)進(jìn)行位操作。主要業(yè)務(wù)是:
OR(符號(hào)'|'):A = B | C.如果B為1或C為1,則A為1.如果B和C均為0,則A為0。
AND(符號(hào)'&'):A = B&C。如果B和C都是1,則A是1.如果C中的任何一個(gè)B是0,則A是0。
異或(符號(hào)'⊕'):A =B⊕C。如果B為1或C為1,但不是兩者,則A為1.如果B和C均為1,或者B和C均為0則A是0。
布爾數(shù)學(xué)可以在整數(shù)上執(zhí)行。
使用兩個(gè)無(wú)符號(hào)8位整數(shù)229(二進(jìn)制為11100101)和185(二進(jìn)制為10111001)的示例: