求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

通信應用

事實揭露 揭密真相
前往: 導覽搜尋

來自 搜狐網 的圖片

通信應用基於Modbus TCP實現S7-200Smart與PC間的通信應用。

案例背景介紹

1 引言

公司LVP大輸液生產線正式投產至今已有十多年,隨着時間的推移,許多設備元器件出現老化問題,故障問題頻出,嚴重影響了產品的正常生產。現有燈檢測區域的檢測線於1998年初從德國引進,在檢測線上的進瓶口、合格品出瓶口、廢品出瓶口和貼簽機出口分別安裝有四個現場獨立計數電子盒,方便生產人員核算產量和質量風險評估。現由於其中兩隻電子盒讀出故障,導致生產出現偏差和無法控制產量平衡,我們在進行了充分技術調研後對其進行了功能升級性改造,加入遠程數據採集[1]和控制。由於玻璃瓶在傳輸帶上前行受阻時產生抖顫的情況,會導致常規計數器經常出現計數不準的狀況,方案採用了S7-200 Smart PLC對光電感應脈衝濾波後再觸發現場計數器進行計數的方式,同時將分布於現場的四個計數值以Modbus RTU串口通信至PLC中,再由PLC以Modbus TCP網絡通訊的方式傳輸至遠程PC機進行顯示和數據後處理。本文主要介紹PC機如何以Modbus TCP的方式對Smart PLC中的數據進行讀取和控制。計數網絡示意圖如圖1所示。

案例實施與應用情況

2 基於Modbus/TCP協議的系統設計原理

Modbus/TCP協議是運行在TCP/IP上的Modbus報文傳輸協議,通過該協議,控制器通過以太網和其他設備之間進行數據通信。Modbus/TCP相對比於傳統串行鏈路的Modbus,由於使用以太網TCP/IP數據鏈路層的校驗機制保證了數據的完整性,Modbus/TCP報文中不再帶有數據校驗域,原報文中的從站地址也被單元標識符所替代而加在Modbus/TCP應用協議的報文頭部分。Modbus/TCP是開放性協議,IANA(互聯網編號分配管理機構)給Modbus協議賦予TCP:502端口號,所有的Modbus請求通過TCP從寄存器端口502發出。Modbus/TCP數據幀包含報文頭、功能代碼和數據3個部分,功能代碼和數據構成協議數據單元(PDU),報文頭(MBAP)分4個域,共7個字節,由事務處理標識符(2個字節)、協議、協議標識符(2個字節)、長度字段(2個字節,後面餘下域字節的數量)和單元標識符(1個字節)組成,如圖2所示。

Modbus協議定義了三種功能碼,分別為:公共功能碼、用戶自定義功能碼和保留功能碼,在常規客戶機/服務器[2]基於請求/響應機制進行Modbus/TCP通信應用中,公共功能碼已經滿足絕大部分通信開發要求,它是被確切定義的、由Modbus.org認可、可進行一致性測試的唯一功能碼。在項目開發應用中常用的功能代碼如表1所示(十進制表示)。

3 S7-200 Smart PLC程序設計

隨着西門子STEP 7-Micro/WIN SMART V2.2軟件和S7-200 SMARTCPU固件V2.2的發布,S7-200SMART CPU開始支持TCP等開放式用戶通信。在STEP 7-Micro/WIN SMART V2.2版本軟件安裝MB Server指令庫後,S7-200 SMART CPU可以支持Modbus TCP 服務器指令。

MB Server指令庫包含MBS Connect和MBSSlave等2個指令。MBSConnect指令用於建立或斷開Modbus TCP連接;MBSSlave指令用於處理來自Modbus TCP客戶端的請求,並且該指令必須在每次掃描時執行,以便檢查和響應Modbus請求。每個MBServer指令庫只能創建一個Modbus TCP連接,如果一個S7-200 SMART 需要連接多個Modbus TCP 客戶端,則需要購買多個名稱不同的MB Server指令庫(例如MB_Server_0,MB_Server_1,MB_Server_2等)。基於計數器系統未來可能接入公司OEE系統,我們購買安裝了可連接2個客戶端的MB Server指令庫。

根據現場計數器WPNF02的說明書通信功能指導,在PLC中編寫了Modbus RTU的相關程序代碼,循環按序與各個計數器進行通信,讀取它們中的總計數值,並存入到指定的內部寄存器中(VD116、126、136、146),同時對各個計數器進行復位時通過PLC輸出觸點進行硬件復位,PLC中觸點輸出由內部寄存器VW106進行控制。

參考文獻