plc尋址,在編什麼程序時會用到?怎麼更好地理解它?

馮璟嵩


你這個問題問的不夠嚴謹。

說一點我個人關於尋址的看法吧,PLC中的尋址應該說可以分為直接尋址和間接尋址。

直接尋址就是對最長見的變量存儲區中的位,字節,字等變量的直接讀取和引用,此時這個地址是一個非常明確準確的地址。而間接尋址,就像是一個存儲空間中裝著一個指示牌,這個指示牌是指向CPU知道的一個明確準確的地址的,或者說指示牌是指向一個直接尋址時候的地址的。

說起來是有點繞的,還是看一個圖片吧:

這個圖片是西門子200PLC編程時候,使用到直接尋址和間接尋址的情況,西門子300PLC中間接尋址還存在16位/32位存儲器的間接尋址以及64位指針的尋址,更加不好說清楚,所以這裡還是以西門子200的來說,說起來比較簡單一點!

這個圖片中把MB0的內容傳送到VB0,這MB0和VB0都是PLC中具體的存儲區域,對這些預設的存儲區域地址的直接讀寫,就可以稱為直接尋址!

而&MB0其實就相當於創建了一個間接尋址用的指針,並且把這個指針裝在VD4中,這樣VD4中的內容不是MB0中的值,而是MB0在CPU尋址時候的機器碼地址,監控的時候是一串16進制的數據,我之前寫過一些關於西門子200指針的文章和問答,有興趣可以去看一下。

VD4中不是裝著MB0中的值,而是裝著一個指向某個地址的指針,如果想知道指針指向的地址中的值到底是多少,那麼就可以用*VD4去把MB0中的值給取出來。--這兩段話就是間接尋址的大概意思了,間接尋址就引入一個指針的概念,存放的是指針指向的地址而非內容!

以上簡單的說了直接尋址和間接尋址的不同,那麼引入間接尋址在什麼時候會用到呢?

也簡單的說一下,間接尋址其實主要是利用了指針,如果程序中想辦法將指針的值+1,那麼指向的地址也就自動增加了,這樣如果和循環指令配合使用,循環多少次就可以將一段連續的地址通過指針的變化,而將對應的地址全部快速的讀取出來。--這應該是使用指針的一個最明顯且常用的優點。


就說這麼多了,其實這些問題,我在之前的問答和文章也都有例說過,謝謝!


控制研究控


隨時可以用到啊,比如你接了一個按鈕,用的輸入點位,程序內部常開,常閉,就是按位尋址。我想你問得應該說按字節、字、雙字尋址吧。也隨時可用到,當然簡單的啟保停電路用不到,比較複雜一點兒的程序就用到了。


分享到:


相關文章: