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