加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        上位機與西門子PLC通信方式分析
        發布時間: 2024-01-22 17:42 更新時間: 2024-11-21 08:00
        觀看上位機與西門子PLC通信方式分析視頻
        前言

        眾所周知,西門子在工控領域的市場占有率很大,那么對于上位機開發人員來說,使用西門子PLC作為下位機,我們應該如何與之進行通信呢?

        西門子PLC支持很多種通信協議,主要分為三種通信方式,一種是串口通信,一種是以太網通信,同時也可以通過OPC實現數據通信。

        串口通信

        西門子PLC支持串口通信,在S7-200和S7-200Smart中,都直接集成了串口,但是從S7-1200到S7-1500,慢慢都取消掉了,如果需要,可以通過擴展模塊的方式來增加,出現這種現象的原因,其實也是工業發展的必然結果。串口通信的優勢在于簡單、成本低,但是劣勢也非常明顯,就是傳輸效率低。西門子早期的串口通信主要是Profibus DP通信,但是上位機是無法直接與西門子PLC走Profibus DP通信的,因此,西門子PLC常用的串口通信方案如下所示:

      1. PPI通信:PPI通信只針對S7-200和S7-200 Smart系列PLC,其他型號不支持。
      2. ModbusRTU主站:西門子PLC對Modbus協議支持還是比較不錯的,這里是指PLC做Slave(即從站),上位機做Master(即主站)。
      3. ModbusRTU從站:這里是指PLC做Master(即主站),上位機做Slave(即從站)。
      4. 以太網通信

        西門子PLC通信還是以太網通信為主,我們常說的西門子通信協議分別是S7協議和Profinet協議,但是Profinet是一種總線協議,目前,C#是無法直接與西門子PLC走Profinet通信的。因此,西門子PLC常用的以太網通信方案如下所示:

      5. S7通信:基本上從S7-200到S7-1500均可以實現,這里有很多可以選擇的開源或商業庫,包括s7.net、pronodave、libnodave、sharp7,也可以自己封裝通信庫。
      6. ModbusTCP Server:這里是指PLC做Server(即服務器),上位機做Client(即客戶端)。
      7. ModbusTCP Client:這里是指PLC做Client(即客戶端),上位機做Server(即服務器)。
      8. OpenProtocol Server:這里是指開放式TCP通信,PLC做TCPServer(即服務器),上位機做TCPClient(即客戶端)。
      9. OpenProtocol Client:這里是指PLC做TCPClient(即客戶端),上位機做TCPServer(即服務器)。
      10. OPC通信

        OPC通信是工業控制中常用的一種通信方式,主要在于OPC軟件的選擇以及OPCDA、OPCUA的選擇,因此,西門子PLC常用的OPC通信方案如下所示:

      11. PC Access系列:西門子針對S7-200開發PC-Access軟件,針對S7-200 Smart又提供了PC-Access Smart軟件,可以直接通過這些軟件實現OPCDA通信。
      12. Simatic Net 系列OPCDA:Simatic Net是西門子主推的OPC軟件,支持西門子全系列,這里主要是OPCDA通信方式。
      13. Simatic Net 系列OPCUA:新版的Simatic Net也開始支持OPCUA,這里主要是OPCUA通信方式。
      14. KepServer 系列OPCDA:KepServer同樣作為一款商業OPC軟件,在國內使用率非常高,同樣也支持西門子全系列,這里主要是OPCDA通信方式。
      15. Simatic Net 系列OPCUA:新版的KepServer也開始支持OPCUA,這里主要是OPCUA通信方式。
      16. S7通信協議

        在以上眾多的通信方式和通信協議中,就目前而言,使用S7通信是Zui方便,也是應該Zui廣泛的,那么S7協議相對于其他協議來說,有哪些優勢呢?

        使用S7通信協議Zui大的優勢在于不需要編寫PLC程序,而其他協議多少要寫一些PLC程序,而且S7協議在底層做了很強的封裝,在上位機通信應用中相比其他通信協議來說,也有很大的優勢。

        雖然不需要編寫PLC程序,但仍然需要做一些簡單的配置:

      17. 勾選允許Put/Get
      18. PLC側需要設置勾選允許來自遠程對象的Put/Get通信訪問 對于西門子1200/1500系列,必須要勾選允許Put/Get訪問,對于200Smart/300/400,則不需要。

      19. DB塊去除優化訪問
      20. 對于基于博圖開發S7-1200/1500的項目,如果要與DB塊數據通信,需要要去除DB的優化的塊訪問,對于200Smart/300/400,則不需要。如果希望通過標簽通信,可以采用OPCUA。

      21. 務必保證通信地址是有效地址
      22. 因為PLC大多數是基于存儲區的,每個地址肯定是隸屬于某個存儲區,大家都知道西門子PLC自帶的存儲區有I區、Q區、M區、T區、C區,但是對于常用的DB存儲區是沒有的,需要自己去創建,也就意味著,如果你要讀取DB地址,必須要提前創建好DB存儲區,除此以外,DB存儲區創建之后,默認是沒有字節的,需要自己一個個添加變量,才能形成有效存儲區,因此一個DB存儲區的范圍是有限并且可見的(可以通過偏移量看出來)。

      23. 調整通信負載
      24. 如果以上操作均沒問題,仍然沒法連接,可以適當調整一下通信負載參數。C#上位機通信

        每種通信方式都有自己的優缺點,但是通信的本質都是相通的。

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415