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