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