引用
引用第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就不會被傳送。因此,這是與字元件的使用會有細微差別。
以上~~~