<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
      公司新聞
      【暢學技術】巧用SIMATIC PLC SNMP 庫-判斷網絡拓撲
      發布時間: 2024-05-29 16:33 更新時間: 2024-12-05 08:00


       拓撲診斷

      2.1.1 TIA 博途拓撲視圖

      TIA 博途的拓撲視圖,可以通過組態期望的連接關系來為 PLC 提供拓撲檢查的功能。實際的網絡連接關系和組態的拓撲不一致,雖然不會影響通信的結果,但是 PLC 會產生響應的報警信息。


      如下圖的例子,S7-1500 控制器連接了兩個分布式 I/O,設備名稱分別為 “io device_1” 的ET200MP和 “io device_2” 的ET200SP, “io device_2” 的P1接口應該連接到交換機的P3 口,如果連接錯誤了,PROFINET 雖然正常,但是通過 TIA 博途拓撲視圖在線和在線診斷功能,我們可以看到 ET200 SP 和交換機都產生了報警。


      圖片圖片圖片


      借助 TIA 博途的在線診斷,我們可以知道拓撲連接錯誤的故障,ET200SP 站點連接在了錯誤的接口上。但是在實際工程中,獲得的診斷信息也有幾點不足:

      1)     診斷是借助 TIA 博途軟件,PLC 程序不能直接獲得狀態

      2)     除了知道拓撲連接錯了,程序中能不能知道 ET200SP 當前連接到交換機的哪個接口呢?

      為了實現這兩點要求,我們接下來看看 PLC 程序上該如何處理。

      2.1.2 MAC 地址表

      以太網數據在2層轉發,依靠的是設備的 MAC 地址,MAC 地址和設備端口的對應關系就是我們常說的 MAC 地址表,交換機轉發數據就是依靠MAC 地址表。如下圖,通過檢查交換機的 MAC 地址表,我們可以知道了設備名 “io device_2” 的設備按照設計應該連接在交換機 P3 口,但是此時錯誤的出現在了 P6 口上。

      圖片

      因此,如果在 PLC 程序中能夠獲得交換機的 MAC 地址表信息,就可以知道哪個設備接錯了,而且還可以知道實際接到了哪個接口上。借助 SNMP 的程序塊,CPU 可以獲得所有這些信息,只需要知道查詢 MAC 地址表的OID 即可。

      2.1.3 SIMATIC PLC SNMP 獲得拓撲連接信息

      交換機等網絡設備的 MAC地址表,已經在通用的 MIB-2 規范中定義了,其中 MAC 地址對應的端口號的根 OID 為1.3.6.1.2.1.17.7.1.2.2.1.2。


      如果需要查詢具體的 MAC 地址對應的端口號,需要在 OID 的Zui后增加需要查詢設備 VLAN 和 MAC 地址 (如下圖,紅色的 “1”表示查詢的交換機的 VLAN1;藍色部分表示需要查詢的設備 MAC 地址。注意,OID 中的MAC地址需要將實際 MAC 地址轉換為十進制數,例如上面列出的 io device_2,MAC地址:28-63-36-8b-da-7d→40.99.54.139.218.125),因此Zui終的 OID 如下。


      “io device_1” MAC地址端口 OID:1.3.6.1.2.1.17.7.1.2.2.1.2.1.40.99.54.139.218.125

      “io device_2” MAC地址端口 OID:1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.27.27.33.9.205


      程序上,我們分別調用兩個“LSNMP_GET” 指令,來查詢交換機的 MAC 地址表,分別讀取兩個分布式設備的 MAC 地址連接在交換機的哪個端口。返回的數據會存儲在 “varBinding” 定義好的 DB 中。


      圖片圖片


      通過在狀態表中監控獲得的數據,可以看到 io device_1 連接在交換機的P2 口,和拓撲組態一致;io device_2 連接在交換機的 P6 口,因此和組態的拓撲不一致。這樣,通過程序的處理,我們不僅很容易知道哪個設備連錯了,而且這個設備當前連接在哪里也能夠知道了。


      圖片


      在實際工程中,我們也對程序塊做了重新的封裝,方便Zui終的應用,如下圖,我們簡單的輸入交換機的 IP 地址和需要查詢的設備的 MAC 地址,這個 MAC 地址在交換機的哪個端口就可以一目了然看到了。

      圖片

      2.1.4 SIMATIC PLC SNMP 批量處理

      按照我們上面的介紹,如果我們需要查詢的設備 MAC 比較多,就需要調用大量的 “LSNMP_GET “ 指令,那有沒有辦法通過一個指令就獲得交換機的所有 MAC 地址表信息呢?


      SIMATIC PLC SNMP 的指令塊還提供了批處理的指令 “LSNMP_GetBulk” ,通過這個指令可以一鍵讀取一定范圍的 OID,如下圖,我們輸入 MAC 地址表的根 OID,“maxRepetitions” 表示查詢從根 OID 開始的數量(我們這里讀取5條,注意讀取的數量不能超過當前交換機 MAC 地址表的Zui大條目數)


      圖片


      輸出的結果保存在 “varBindings” 定義的數據塊類型中,如下圖,通過OID 字符串的后六個字節,可以知道是哪個設備的 MAC 地址,程序上我們做一下簡單的梳理,整個交換機的 MAC 地址表都可以存儲在 PLC 的 DB 中了。


      圖片



      聯系方式

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