<sup id="x7dny"><rp id="x7dny"><big id="x7dny"></big></rp></sup>
    • <label id="x7dny"><tt id="x7dny"><tfoot id="x7dny"></tfoot></tt></label>
      <dfn id="x7dny"></dfn>
      <small id="x7dny"><rp id="x7dny"><rt id="x7dny"></rt></rp></small>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      PLC的M究竟是什么,今天就來認識它!
      發布時間: 2024-08-01 18:25 更新時間: 2024-12-02 08:00
      觀看PLC的M究竟是什么,今天就來認識它!視頻

      Zui近幾天論壇火熱,有大蝦表示PLC編程中不用M和T。我發現大家有些觀點有誤,這段時間比較忙,但忍了很久,實在忍不住了,抽半天時間寫篇文章。

      用不用先不說,首先得知道M和T究竟是什么?T有點特殊,先不談,把M搞清楚了T就容易搞清楚。

      如果學過單片機或計算機原理或嵌入式等硬件課程的就不用看了,因為這是非常基礎的概念,我今天不用電子技術的語言來說,所以語言會不太嚴謹,主要目的是用通俗易懂的語言讓搞PLC的人聽懂,請大蝦手下留情不要把我臉打腫了。

      先說說我接觸編程的過程,我是學硬件的,編程Zui先學的是51單片機和X86匯編,然后學C/C++,Zui后才學的PLC,編程掌握不好,即使到今天我也無法準確闡述什么是面向對象!先自己打臉,但這不影響我用PLC做項目。

      其實PLC是Zui像單片機的,完全就是單片機的硬件升級軟件簡化版本,扯遠了!

      下圖是西門子S7-200手冊里關于存儲器結構的介紹。左邊這個RAM就是今天的主角。



      圖片


      下圖是對數據存儲器的定義:


      圖片


      下圖來看數據存儲區究竟有些啥,請注意看M區:


      圖片


      看了上圖可能明白了,M存儲區在數據存儲區,數據存儲區又在RAM中。RMA長啥樣?

      下圖左上那個蜈蚣狀的CY62256就是西門子S7-222CPU的RAM。


      圖片


      就是塊集成電路,我還是看不懂!那就“拆”開給你看。下圖就是內部結構:


      圖片


      沒錯,它就是一堆“房間”,32k字節。S7-222CPU使用了2k字節的存儲空間,不管你是M還是T還是C,還是V,通通都在這里面。


      那么如何在這一堆房間里訪問找到我需要的那個她呢?看上圖中A0---A14,這就是地址線,就是訪問這些房間的地址,通過這些房間就能訪問M、T、C、V等等。


      那么M和V有什么區別嗎?半毛區別都沒有!除了把M區放到MCU高速緩存中的PLC結構,像西門子S7-200系列這樣的都是放到一個存儲芯片中的。


      文章開頭說過,T跟M還有點不一樣。對的,因為有些PLC的有些T是由硬件產生的,那就是集成在MCU里的硬件定時器,比如西門子S7-300就有硬件定時器。那么C呢?C也有硬件計數器和軟件計數器之分,硬件計數器同樣是由集成在MCU里的硬件來完成的。當然,PLC已經做好了,把這些硬件T、C的數據都映射(復制)到RAM里了,我們直接訪問RAM就可以了,不用關系那些硬件T和C。當然,如果你喜歡,PLC也是有指令讓你能夠直接訪問這些硬件計數器的,比如臺達就可以直接去讀硬件計數器的當前值。

      說了這么多如何證明M和V都是在一個芯片里呢?


      那就是PLC提供了juedui地址訪問功能,比如寄存器尋址,一個數據寄存器里存放的數據是一個地址數據,對的這個地址數據就是juedui地址,就是上圖A0-----A14這個地址。

      再來看看國貨之光匯川的PLC對存儲空間的定義,下圖:


      圖片


      這個就更清晰了,M和D有區別嗎?半毛區別都沒有!其實還是有區別的,唯一的區別就是M區能讓我們很方便的進行位尋址。


      那么不用M可以嗎?當然可以!不過,既然M和D(V)沒有區別,我們為什么不用?

      我也不知道!

      那么大蝦說的所謂標準化編程究竟是什么呢?我沒買過他的資料,廠家的手冊難道不香嗎?


      從他帖子中的描述,我的理解是,哪里是不用什么M、T,估計他宣揚的只是全部用局部變量,不用全局變量,這樣程序在進行移植的時候不用關心存儲空間的分配,直接交給編程軟件的編譯系統來完成。

      M也可以定義為局部變量呀!為什么不可以用?因為有些使用通用MCU的PLC,位尋址能力很弱,位尋址的時間比字尋址時間還長!

      那么如何做到不用M呢?

      很簡單,你把V(D)數據地址當成一個M來使用就可以了。

      但大廠PLC使用的CUP都是自己設計的,保留了很強的位尋址和操縱能力。

      那么放棄使用M和T有實際意義嗎?

      只要大廠還提供直接的位尋址和操縱能力,就沒有必要放棄!特別是梯形圖,天生的就非常適合位尋址,用M的編程方式。這么香干嗎要放棄



      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684