No.
01 概述
Modbus RTU 是一種串行通信協議,由于具有協議透明,實現成本低,簡單易用等諸多特點,至今仍然廣泛應用在工業控制的各個領域。
為了通信可以長期穩定的運行,并且可以在故障時可以及時處理和排查,特梳理此文,用做參考學習使用。
診斷工作以 S7-1200/S7-1500 PLC的串口通信模塊上的指示燈開始:
模塊本體集成 RX/TX LED 指示燈,用來指示串口通信模塊的信息收發狀態。
TX 代表發送,RX 代表接收,例如 CM PtP RS422/RS485 HF 通信模塊的 LED 指示燈如圖1所示。
圖1 LED指示燈
通過 RX/TX 指示燈的狀態可以快速定位 Modbus RTU 通信故障,并且結合 Modbus RTU 通信指令狀態代碼,可以高效率地解決在現場中碰到的各類Modbus RTU 通信問題,故障診斷判斷流程如圖 2 所示。
圖2 通信故障的判斷流程圖
作為 Modbus 主站,當與從站設備通信不上時,觸發主站指令后,觀察串口通信模塊的 TX 指示燈是否閃爍:
如果閃爍,則說明程序已經正確執行,此時如果 RX 不亮,則故障的判斷方向為接線或從站一側。如果 RX 也閃爍,則捕捉主站指令的狀態代碼,根據代碼的具體含義排查故障原因;
如果串口通信模塊的 TX 指示燈不閃爍,則說明程序并未正確執行,故障原因主要方向為編程問題,檢查初始化指令和主站指令是否編程正確,并捕捉初始化指令和主站指令的狀態代碼,根據代碼的具體含義排查故障原因。
作為 Modbus 從站,當與主站設備通信不上時,觀察串口通信模塊的 RX 指示燈是否閃爍:
如果閃爍,則說明可以接收主站發來的消息。在確認主站參數設置正確之后,故障主要判斷方向為從站的編程問題,檢查初始化指令和從站指令是否編程正確,并捕捉初始化指令和從站指令的狀態代碼,根據代碼的具體含義排查故障原因;
如果串口通信模塊的 RX 指示燈不閃爍,則說明模塊并未接收到來自主站的任何消息,故障原因主要為接線或主站一側,需檢查接線是否正確、主站是否已成功啟動等問題。
No.
02 捕捉狀態代碼
由于 Modbus RTU 通信指令的狀態代碼僅持續一個掃描周期,直接在線監控無法實時看到,所以我們可以編寫程序捕捉代碼。
捕捉代碼示例如圖3所示。初始化指令、主站指令、從站指令均需捕捉狀態代碼。
圖3 捕捉代碼
No.
03 常見代碼解讀
16#80C8
該代碼含義為:從站在設置時間內未響應,需要檢查數據傳輸率、奇偶校驗和從站的接線情況。
產生該代碼的可能原因:
①接線錯誤。
在主從站接線時,很多用戶習慣性的將設備間的 A 與 A,B 與 B 相連,進而組成總線式 RS485 網絡,其實,正確方式為根據正負進行組網,應將設備間的正與正,負與負相連,因為并非所有設備的 A 為正,B 為負,如 CB1241 通信板,B 為正,A 為負,如圖4所示。
圖4 CB1241 通信接線
16#81Ex
該代碼均指向字符幀錯誤,如16#81EA:字符幀過短,16#81E2:字符幀錯誤。
產生該代碼的可能原因:
① 字符幀設置錯誤。
依次檢查起始位、數據位、奇偶校驗位、數據傳輸速率和結束位個數的設置是否一致。
其中,結束位的個數是在初始化指令的背景 DB 塊中進行設置,默認為1個停止位。如圖5所示。
圖5 背景DB設置
② 字符間Zui大字符延遲時間 “ICHAR_GAP”
在 Modbus RTU 規約中, Modbus RTU 報文幀之間間隔不小于 3.5 個字符時間。如圖6所示。
圖6 Modbus RTU 報文幀以及間隔
西門子串口通信模塊默認 Modbus RTU 報文幀結束的默認條件為 3.5 個字符時間。
假設波特率為 9600 bit/s,1 個起始位,1 個停止位,8 個數據位,1 個校驗位,則 3.5 個字符時間為(1/9600)*1000*11*3.5=4 ms,不同波特率,對應的字符時間不同。
如果因為伙伴響應時間稍長、線路阻抗較大,或外界干擾等問題,Modbus RTU 報文幀中的字符間延時超過 3.5 個字符時間,則 PLC 會誤認為報文幀結束,但實際并未結束,進而產生該類錯誤。
可以適當增大字符間Zui大字符延遲時間 “ICHAR_GAP”,避免該錯誤的發生,如圖7所示。
圖7 字符延遲時間
16#8280/16#8281
該代碼含義為:讀取/寫入模塊時失敗,請檢查 Port 參數的輸入。
產生該代碼的可能原因:
① 初始化指令 Port 管腳輸入錯誤
初始化指令 Port 管腳應輸入串口通信模塊的硬件標識符,錯誤的硬件標識符將導致初始化失敗。
② 未指定工作模式
應在初始化指令的背景 DB 塊 Mode 參數中,指定串口通信模塊的工作模式,模式 4 為半雙工(RS485)兩線模式,如圖 8 所示,下載程序后斷電重啟生效。不同的 Mode 數值代表不同的工作模式,如表 1所示。
該設置僅適用于 Modbus(RTU)指令集,不適用 Modbus 指令集。
圖8 DB塊模式
表1 各種模式列表
總結:
以上內容是針對經常出現的 S7-1200/1500 Modbus RTU 通信故障的處理總結,其它更多的工業通信技術以及經驗分享,敬請訪問西門子 1847 工業學習平臺,讓我們一同學習,共同成長!
- 大話安全——關于功能安全您需要知道的四個問答 2024-12-02
- 一目了然——PLC 獲取驅動故障的兩種新方法 2024-12-02
- 驅動工程師編程利器-TIA 博途下三大應用庫介紹 2024-12-02
- 西門子數字化工業2022年1月技術要點新聞 2024-12-02
- 西門子無線 iFeatures 功能-助力 PROFINET 無線傳輸的利器 2024-12-02
- 面板 Audit (審計追蹤)功能您了解多少? 2024-12-02
- 解讀專家大講堂|冗余S7-400H 和上位機通信要點解析 2024-12-02
- 西門子 數字化工業技術要點新聞 2024-12-02
- 一文讀懂 S7-1500 手冊-關于常用介紹 2024-12-02
- 驅動功能知識之 SINAMICS G120 控制電機抱閘 2024-12-02
- 電池儲能應用經驗分享 2024-12-02
- 破解V90扭矩控制難題-固定停止點功能詳解 2024-12-02
- 西門子官網技術 更新要點解讀 2024-12-02
- “通信”千萬條,安全第一條 — SIMATIC WinCC 安全通信技術分享 2024-12-02
- 關于 LOGO! 看這一篇文章就夠了 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684