引用
引用第4樓money11于2008-08-14 14:01發表的 :
當然,OR表示并聯連接,AND表示串聯連接,如果說圖中把D100,D101看做32位數據,那么與D10的關系用DOR表示,我的理解就成了將D100,D101數據并聯于D10中,只是太抽象了,我進行了程式模擬,
當M340輸出脈沖信號時,假設D100數據為128,D101數據為15,D10得出數據為143,D11得出239
還是不理解其中的關系是什么
這個程式原來的提問是D30為什么不等于D10,出于好奇下下來看了,有興趣的話可以研究一下.在此受教了
可能受三菱編程思維的“迫害”太深的緣故。
當被梯形圖“摧殘”得不成“人形”的時候,往往會第一反應就向導并聯,串聯。
OR,AND從理論上來描述,應該是或操作以及與操作,對于梯形圖中的OR,AND,可以理解為位與位的與操作或者或操作。
根據邏輯計算法則,我們知道,AND(與操作)需要全1出1,而OR操作有1出1。
當操作對象由單一位改為16位數據時,我們仍然是遵循著位的操作,只是這里變為了多個位,操作法則依然如此,一個數據的第一位與第二個數據的第一位進行OR或者AND,將結果存放在結果數據的第一位上,然后就是第二位,第三位,依次類推。
而您程式中對D100的數據為K128,我們來轉為2進制:就是10000000,同樣,對D101的數據就是K15,轉換為2進制為1111
當我們程序中對其作為32位地址操作時,依據高位在前的計算機法則,我們可以看到,D100與D101組成了32位地址,由于D100中的數據為8位,因此高位補0,因此就成為了11110000000010000000,同樣,對于D101做32位數據的讀取也依據上述原則。
而您在程序中,對于D100與D101的數據進行或(OR)操作,也就是將D100,D101組成的32位數據與D101,D102組成的32位數據做OR操作。
而三菱編程手冊上一句話可能被您忽視,也就是三菱FX2N編程手冊第135頁,當使用KnM這樣的組合時,如果高位為0則不被傳送,因此,假設二進制數據0000000011000000傳送給K4M100時,實際上高8位為0就不會被傳送。因此,這是與字元件的使用會有細微差別。
以上~~~