三菱PLC之SLMP協議報文說明


SLMP是三菱PLC用於CPU模塊或外部設備(個人計算機或顯示器等)使用以太網對PLC設備進行數據訪問的一種協議,SLMP協議是基於TCP/IP,因此會存在服務器和客戶端的功能區分。

服務器功能是指CPU模塊基於來自外部設備的要求報文(命令),執行數據處理的收發。而客戶端功能是指可以使用專用命令向外部設備發送要求報文(命令),並從外部設備接收響應報文。服務器和客戶端之間的通信過程如圖所示。

 

 

三菱的SLMP協議有兩種不同的報文幀,分別為3E幀和1E幀,1E幀只支持FX5U/FX5UC CPU模塊。這里說明一下,SLMP的報文格式與三菱的MC協議的幀是相同的。SLMP的3E幀兼容MC協議的Qna系列3E幀,SLMP的1E幀兼容MC協議的A系列1E幀,因此也可以通過MC協議將使用的外部設備連接到SLMP對應設備上。(獲取學習資料請加VX:xiketang777)

SLMP通信流程

在正式開始SLMP通信之前,需要做一些准備工作,具體通信流程如下:(1) 電纜與外部設備的連接:進行用於SLMP通信的連接。(2) 參數設置:通過工程工具設置模塊參數。(3) 寫入至CPU模塊:將已設置的參數寫入至CPU模塊。通過電源OFF→ON或復位,將參數設為有效。(4) 初始處理狀態的確認:模塊參數設置后,確認CPU模塊的初始處理正常結束。(5) SLMP通信:服務器將從外部設備接收SLMP報文,客戶端將向外部設備發送SLMP報文。(獲取學習資料請加VX:xiketang777)

SLMP報文格式

通信協議報文一般分為請求報文和響應報文,請求報文是指上位機主動發動給SLMP設備的報文,響應報文是指SLMP設備響應請求而返回的報文。無論是請求報文還是響應報文,一般都是由“幀頭”和“應用數據”構成。SLMP請求報文格式如下所示:

 

 SLMP響應報文格式如下所示:

 

 對於幀頭,一般是指TCP與UDP幀頭,對於上位機側,需要在對象設備側附加CPU模塊側(指令報文)的幀頭后進行發送,一般會自動附加,上位機開發不需要考慮。對於CPU模塊側,會自動附加對象設備側(響應報文)的幀頭,因此無需用戶設定。對於應用數據,主要是由副幀頭和文本兩部分組成,副幀頭用於顯示該報文為指令報文還是響應報文,文本則是各種不同功能的請求數據或響應數據。SLMP報文按照編碼格式區分,可以分為ASCII編碼和二進制,這兩種方式報文發送的內容有所不同,具體如圖1和圖2所示:

 

 圖1 ASCII編碼格式通信(獲取學習資料請加VX:xiketang777)

 

 

圖2 二進制編碼格式通信

二進制編碼格式相對於ASCII編碼格式來說,報文更短更緊湊,因此通信速度也更快,因此,一般我們選擇二進制編碼格式通信居多,后面的內容均以二進制編碼為例進行闡述。

SLMP報文組成

SLMP報文格式根據報文類型為請求報文和響應報文,數據格式也會有所不同,當該幀報文為請求報文時,具體格式如下圖所示:

 

 當該幀報文為響應報文時,具體格式如下圖所示:(獲取學習資料請加VX:xiketang777)

 

 

下面針對各個部分進行說明:

  • 副幀頭:副幀頭部分占用4個字節,主要用來顯示該幀報文是指令報文還是響應報文,如果該幀報文是指令報文,那么副幀頭內容為50H 00H,反之,如果該幀報文為響應報文,那么副幀頭內容為D0H 00H,具體如圖所示:
  • 網絡編號及目標站號:網絡編號及目標站號各占一個字節,它們的值與網絡架構是息息相關的,下圖展示了三種不同的網絡架構:(獲取學習資料請加VX:xiketang777)

     

     一般情況第一種網絡架構使用居多,后面都以這種架構為例進行闡述,網絡編號為00H,目標站號為FFH。請求目標模塊I/0編號占兩個字節,默認為FFH 03H。

  • 請求目標模塊I/0編號占兩個字節,默認為FFH 03H。
  • 請求目標多點站號占一個字節,默認為00H。
  • 請求數據長是指從保留到請求數據,總共的字節長度之和,響應數據長是指結束代碼和響應數據的長度和。
  • 保留占兩個字節,默認值為00H 00H。
  • 結束代碼占兩個字節,正常結束時值為00H 00H,異常結束時值為00H 04H。
  • 請求數據是指作為執行的指令及子指令的參數數據,根據指令及子指令的情況,有時無需指定“請求數據”,后續會做詳細講解。
  • 響應數據是指作為請求數據的執行結果,根據指令來定,有時不會返回響應報文,后續會做詳細講解。
  • 指令與子指令是報文的命令碼,根據讀取和寫入不同的存儲區會呈現不同的值。對於批量讀取,指令為0401H,子指令根據位或字分別為0001H和0000H,對於批量寫入,指令為1401H,子指令根據位或字分別為0001H和0000H。
  • 對於批量讀取,請求數據由起始軟元件編號、軟元件代號及軟元件點數三部分組成,其中起始軟元件編號占3個字節,軟元件代號占1個字節,軟元件點數占2個字節。
  • 對於批量寫入,請求數據由起始軟元件編號、軟元件代號及寫入數據三部分組成,其中起始軟元件編號占3個字節,軟元件代號占1個字節,寫入數據占N個字節。
  • 對於批量讀取,響應數據將實際讀取的數據按照指定的格式進行返回。
  • 對於批量寫入,響應數據部分為空。
  •                                                ==================END================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM