?

基于西門子S7-1200 Modbus通信協議的應用

2022-11-25 10:08周博遙
通信電源技術 2022年13期
關鍵詞:通信協議調度控制器

周博遙

(九江賽晶科技股份有限公司,江西 九江 332000)

0 引 言

隨著近年來信息技術的不斷發展,用戶需要采集越來越多現場設備的各種數據。采集方式逐漸由以前單純的數字量輸入/輸出(Input/Output,I/O)及模擬量輸出模式逐漸轉變成直接與遠方采集設備進行通信處理。

現場儀表設備支持的通信協議眾多,但人們使用及支持最廣泛的是Modbus通信協議。由于Modbus協議是完全公開透明的,所需的軟硬件非常簡單,使其成為了一種通用的工業標準。許多工業設備包括可編程邏輯控制器(Programmable Logic Controller,PLC)、分布式控制系統(Distributed Control System,DCS)、智能儀表等,普遍采用Modbus協議作為通信標準。

本文以西門子S7-1200 PLC與九江賽晶科技股份有限公司自研的JM810數控器進行Modbus通信為例,對整個通信過程進行探討。

1 S7-1200 PLC實現Modbus通信方式所需的硬件配置

S7-1200 PLC是西門子公司推出的新一代PLC,旨在替換老舊的S7-200和部分S7-300型號。S7-1200設計緊湊、組態靈活且具有功能強大的指令集,使其成為能夠控制各種應用的完美方案。S7-1200的主模塊攜帶RJ45接口,支持PROFINET、Modbus-TCP、傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol,TCP/IP)協議,而現場設備大多采用基于RS485的Modbus協議,需要外加1塊通信模塊[1]。

S7-1200為了便于應用RS485通信接口,需要外接擴展模塊。有2種類型的通信模塊可供選擇,分別是CM1241 RS485通信模塊和CB1241 RS485通信信號板[2]。CM1241 RS485為通信擴展模塊,是屬于附加在PLC主模塊左邊的擴展模塊,緊挨著中央處理器(Central Processing Unit,CPU)主模塊裝在卡軌上,通過模塊右邊的插針與CPU左邊插針進行連接。CB1241 RS485為信號通信板,是直接插在CPU的小板上。

CB1241 RS485模塊屬于通信信號板,掛在主CPU模塊上,只支持RS485通信協議。CM1241 RS485可支持RS485和RS422這2種通信協議[3]。雖然使用RS485時2種通信模塊并無任何差異,但是在實際應用過程中更傾向于選擇CM1241外接擴展模塊進行通信。本文探討的基于RS485通信方式的硬件環境均采用CM1241模塊進行通信。

2 通信方案及軟件設計

2.1 系統通信網絡方案

現場通信網絡結構如圖1所示。以公司自制數控器為例,應用基于RS485的4個Modbus協議模塊并聯運行進行通信。

圖1 現場網絡結構圖

2.2 S7-1200控制器與JM810數控器通信的設計

S7-1200控制器通過CM1241 RS485模塊進行通信時,需要調用Modbus_Comm_Load功能塊對該模塊進行初始化。

該功能塊只需要調用1次。正常進行初始化操作后,DONE為1,ERROR位為0。其中:PORT對應CM1241 RS485對應的硬件標識符(S7-1200可以攜帶多個通信擴展模塊);RESP_TO為通信從站響應時間,超過該時間則報通信超時。該功能塊的其他更多設置選項在背景數據庫Modbus_Comm_Load_DB背景數據塊中進行設置,其中MB_DB為后面Modbus通信功能塊的背景數據塊。

通信初始化成功后,正式進行Modbus通信。PLC一般處于主站讀取從站數據的狀態,因此通常調用Modbus_Master功能塊進行通信。若PLC作為從站,則調用Modbus_Slave功能塊進行通信。

EN管腳為功能塊的啟動開關,推薦在需要使用時再進行接通。其中,REQ為脈沖觸發,推薦使用上升沿觸發。每次觸發過程會將數據送到CM1241 RS485模塊進行數據發送,若在數據發送過程中再次觸發,則不予響應。如果不采用脈沖觸發,則很大幾率會導致該功能塊一直處于BUSY而造成網絡堵塞。MB_ADDR為Modbus協議的通信地址。MODE則將讀寫模式分為0、1、2、80、81以及104。

最常用的是功能碼03和功能碼05,分別對應MODE的0和1。

DATA_ADDR為Modbus寄存器地址,DATA_LEN表示從DATA_ADDR開始訪問多少個字節,DATA_PTR為指向DB區的指針。如果MODE為0,則將讀取的內容存入該DB區域。如果MODE為1,則將DB區的數據寫入DATA_ADDR的地址中。

如果寫入或讀取完成,則DONE引腳會輸出1并保持1個掃描周期。如果錯誤,則ERROR位為1,且STATUS顯示出錯誤代碼,并保持1個掃描周期。

因為DONE和ERROR位狀態及錯誤代碼只保存一個周期,所以必須及時保存錯誤代碼,以免下一個掃描周期將錯誤代碼更新或清零而無法捕獲錯誤代碼。

2.3 S7-1200控制器與從站通信的調度問題

第2.2節描述了讀1個控制器的通信過程,如果需要讀第2個控制器,則涉及通信調度問題。Modbus為半雙工通信,在發送過程中無法接收,在接收時無法發送,所以處理好通信調度是一個重要內容。公司編程時主要考慮時間調度和以完成位進行調度2種調度方式。

時間調度是指以1個固定的時間周期對1次通信過程進行調度,如超過此時間,則放棄該次通信過程,啟動下一個站點的通信。該種調度方式編程簡單,但通信效率并不高。每次通信過程需要等到該固定的時間周期結束。為了保證所有的正常通信過程都能在固定時間周期內完成,固定的時間周期設置不會太小,一定程度上造成通信控制器在等待該固定周期結束才啟動下一個站點通信,造成了資源浪費?,F階段,該方式主要適用于站點對時間響應并不敏感的場景。

以完成位進行調度的這種調度方式是指利用上次通信完成位來觸發下一次通信的過程。該種調度方式效率高,完成后可立刻進行下一次通信處理。與時間調度方式相比,節省了等待時間,縮短了站點的響應時間,但編程較為復雜。

因為使用上一個設備的完成位進行下一次通信的觸發,所以編程過程中需要考慮各種異常處理方式,如從站斷線、從站地址沖突等通信錯誤,以確保下一次通信的正常進行[4]。

2.4 Modbus通信的討論

2.4.1 Modbus協議應用的優缺點

Modbus協議作為一種開放式協議,數據報文和實現均較為簡單,使其成為現場總線領域普及最廣的協議。但是,因為該協議過于簡單,所以在應用過程中存在很多局限性。

作為一種半雙工通信協議,Modbus協議無法同時進行讀寫。當處于多站點通信環境時,只能一個個輪詢采集,且讀寫操作無法同時進行。當同時需要對多個設備進行寫入、讀取操作時,合理的安排讀寫順序顯得尤為重要。此外,Modbus協議對主從站有明顯區分。需要注意,一個設備只能作為主站或從站,無法既為A設備的主站又為B設備的從站。這些缺點使得應用Modbus協議進行通信時需要開展大量的優化處理工作。

2.4.2 站點通信的讀寫優化

在用戶現場,不少設備并不只是簡單需要監測設備數據信息,還需要進行設備操作和控制。這類設備不僅需要進行設備數據的讀取,還需要進行設備數據的寫入。

實際上,大多數設備的讀取需求是監測現場數據,這就要求必須盡快采集設備數據并及時顯示出來。在每個輪詢周期里,必須要讀設備數據。但是,遠方控制設備的需求并不是時刻都有,每個周期如果都進行重復的寫操作(控制設備為對從站的寫操作),會浪費輪訓時間,此時可以采用選擇一個數據區域緩存下發數據。當用戶需要操作或者控制設備時,用戶在操作后需要將這一次數據存入緩存。每次讀取完成后,需要檢查下發數據。如果與緩存數據一致,證明用戶并無在此周期進行新的下發操作,則需要重新寫入;如果與緩存數據對比不一致,則將寫的操作插入到輪詢隊列中。

2.4.3 站點掉線時的處理方法

Modbus協議基于主從模式,所有從站設備均以輪詢方式工作。在單個設備通信故障或者掉線時,必須等待超時時間才能夠進行下一個設備的通信工作。以完成標志位進行觸發時效率較高,但是仍然無法避免這個問題。單個設備掉線時,該超時時間尚可接受,但多個從站點同時掉線,1個周期內的輪詢總時間就會大幅增加。針對這種情況,一般采取兩種處理方式。

方案1:增加幾個CM1241 RS485模塊,利用多模塊并聯開展工作。該方案將Modbus一個主站對多個從站的逐個輪詢模式變成多個主站對多個從站的輪詢模式。如果多加1個CM1241 RS485模塊,則整個輪詢時間減半。該方案能夠顯著縮短正常運行時和發生掉線故障時的輪詢時間,具有編程實現簡單、可靠性高、輪詢時間短等優點。此外,該方案存在增加一個擴展模塊便需要增加硬件成本和系統通信線路布設較為復雜等缺點[5]。

方案2:程序內部進行判斷處理,增加正常輪詢隊列和慢輪詢隊列。如果正常輪詢時發現某設備連續3次通信超時,則將該設備剔除正常輪詢隊列,并將其添加至慢輪詢隊列。整個輪詢順序為正常輪詢隊列輪詢多次后輪詢一次慢輪詢隊列,找出其中由故障轉為正常的設備后,將其添加至正常輪詢隊列,并再次進行正常輪詢過程。輪詢機制的流程如圖2所示。

圖2 輪詢機制流程

3 結 論

簡單分析S7-1200控制器與JM810數控器的通信后可知,Modbus協議具有實現簡單、硬件便宜、通用性強、使用方便以及容易開發和實現等優點,同時存在通信實時性不高、通信響應不可靠、無法同時讀寫以及從站之間無法相互通信等缺點。因此,在通信設計時考慮相關問題,以期更好地促進工業現場總線及協議的完善與發展。

猜你喜歡
通信協議調度控制器
工商業IC卡控制器改造為物聯網控制器實踐
基于增益調度與光滑切換的傾轉旋翼機最優控制
《調度集中系統(CTC)/列車調度指揮系統(TDCS)維護手冊》正式出版
基于強化學習的時間觸發通信調度方法
基于動態窗口的虛擬信道通用調度算法
車載網絡通信協議標準化問題研究
電動汽車充電接口及通信協議新國標發布
基于PID控制器和模糊邏輯控制器的D6114柴油機速度控制
模糊PID控制器設計及MATLAB仿真
Freescale公司的可編程電磁閥控制器MC33816
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合