西門子開放式IE通訊在水電站監控系統中的應用
1 引言
目前國內的水電站從最初的“集中控制、功能分散方式”到當今流行的“全分層分布開放式運行方式”,已全部采用計算機控制系統取代過去以繼電器常規控制方式,可實現“無人值班”(少人值守),大大提高了水電站的自動化水平。一般整個水電站監控系統在物理上分為兩層:電站控制層和現地控制層。電站控制層(或稱上位機系統)主要用于監控系統的組態、維護,水電站運行的監視、操作、信息管理、遠動和優化控制等。現地控制層按控制對象分散方式一般設置為機組現地控制單元(LCU)、開關站及公用現地控制單元(LCU)和閘門現地控制單元(LCU),現地控制單元(LCU)主要采用PLC完成控制對象的數據采集與處理、控制與調節、安全運行監視、事件順序記錄(SOE)、數據及網絡通訊等。
2 項目簡介
湖南銅信溪水電站裝設三臺10MW水輪發電機組,整個監控系統采用“全分層分布開放式運行方式”,上位機系統設置二套操作員工作站、一套工程師工作站和一套通訊工作站,現地控制層設置三套機組LCU、一套開關站及公用LCU和一套閘門LCU。LCU主要采用西門子S7-300集成PROFINET接口的CPU315-2PN/DP模塊,通過編程實現Modbus/TCP協議與上位機系統通訊;同時配置相應的數字量輸入/輸出模塊和模擬量輸入模塊,完成機組、開關站、公用和閘門等設備的控制與調節。具體網絡結構如圖1所示。
3 CPU315-2PN/DP模塊及Modbus/TCP協議
CPU315-2PN/DP是西門子2004年底推出的一款高性價比S7-300 CPU。通過集成的通信接口(MPI/DP,PN),該CPU可直接連接MPI網絡、Profibus-DP網絡、開放式工業以太網,以及基于工業以太網技術的新一代現場總線PROFINET。該CPU的推出,進一步增強了S7-300 PLC的通信功能,使S7-300連接以太網的成本大大降低,并為PROFINET技術的普及提供了強有力支持。集成的IE/PROFINET接口支持多種通訊服務:基于PROFINET的開放通訊 (PROFINET IO, PROFINET CBA)、S7 通訊、開放式IE通訊、SIMATIC NET OPC Server和PG/OP通訊。本項目就是采用開放式IE通訊編程實現Modbus/TCP協議與水電站上位機系統通訊。軟硬件版本為V
Modbus/TCP協議是簡單的、中立廠商的用于管理和控制自動化設備的Modbus系列通訊協議的派生產品。Modbus/TCP協議是一種面向TCP連接的協議,只有在建立了TCP連接后,才能以半雙工的方式進行數據交換。Modbus/TCP協議結構要求請求和響應帶有六個字節的前綴,具體結構如下:
byte 0: 事務處理標識符 –通常為 0
byte 1: 事務處理標識符 –通常為 0
byte 2: 協議標識符= 0
byte 3: 協議標識符= 0
byte 4: 長度字段 (上半部分字節) = 0 (所有的消息長度小于256)
byte 5: 長度字段 (下半部分字節) = 后面字節的數量
byte 6: 單元標識符 (原“從站地址”)
byte 7: MODBUS 功能代碼
byte 8:寄存器地址(高字節)
byte 9:寄存器地址(低字節)
byte 10:寄存器數量(高字節,固定為0)
byte 11:寄存器數量(低字節)
byte 12:后面數據字節數量-----寫寄存器時有效
byte 13:寄數據1(高字節)-----寫寄存器時有效
byte 14:寄數據1(低字節)-----寫寄存器時有效
需要注意的是Modbus/TCP協議所有的請求都是通過端口號502發送的,而CPU315-2PN/DP模塊的端口號只能設置為2000至5000。
4 軟件實現
4.1 編程指令說明
在CPU315-2PN/DP這一邊,不是通過NetPro設置通訊連接,而是通過編寫程序實現。為了能通過用戶程序和其它與TCP/IP兼容的通訊伙伴通過開放式IE通訊實現交換數據,STEP7(V5.3+SP1或以上)提供了四個功能塊(FB)和一個用戶定義數據類型(UDT)用于組態連接和數據交換:
1) FB63“TSEND”:用于發送數據
2) FB64“TRCV”:用于接收數據
3) FB65“TCON”:用于建立連接
4) FB66“TDISCON”:用于斷開連接
5) UDT65“TCON_PAR”:包括組態連接屬性的數據結構
以上功能塊(FB)包含在Standard Library > Communication Blocks庫中。
開放式IE通訊只能通過TCP/IP 建立以太網連接,通訊是面向連接的,只有與通訊伙伴建立了連接后才能傳送數據。
要編程建立連接,需要創建一個包含UDT65“TCON_PAR”數據結構的數據快(DB)。該數據結構包含建立連接所需的所有參數,需要為每個連接創建一個這樣的數據結構。一個連接建立之后,將受到 CPU 的監控,如果中間發生了中斷,則自動嘗試重新建立連接。
4.2 程序執行過程
整個以太網通訊程序分成以下五個部分:
1) 初始化
初始化程序在OB100中執行,主要設置連接ID、CPU315-2PN/DP端口號、上位機系統中操作員工作站IP地址和開始等待建立連接標志(FB65_REQ=1)。
2) 建立連接
由開始等待建立連接標志(FB65_REQ=1)調用FB65等待上位機系統中操作員工作站請求建立連接。如果上位機系統中操作員工作站請求建立了連接,且FB65被無錯誤執行建立了連接(FB65_DONE=1),設置開始接收數據標志(FB64_EN_R=1)和復位開始等待建立連接標志(FB65_REQ=0)。如果上位機系統中操作員工作站沒有請求建立連接或請求建立了連接FB65執行后有錯誤發生,則程序不做任何處理,還是等待建立連接。
3) 接收數據
由開始接收數據標志(FB64_EN_R=1)調用FB64開始接收數據。如果上位機系統中操作員工作站發送了數據,且被FB64被無錯誤接收后(FB64_BDR=1),則調用Modbus/TCP協議處理程序(FB74)對接收到的數據進行判斷和處理。如果上位機系統中操作員工作站沒有發送數據或發生了數據FB64執行后有錯誤發生,則程序不做任何處理,還是等待接收數據。
4) Modbus/TCP協議處理
首先判斷接收數據數量、寄存器地址和功能碼是否正確。如果正確,則進行讀/寫數據處理,并準備正確響應所需數據。如果錯誤,則設置非法數據地址或非法功能碼標志,并準備錯誤響應所需數據。程序執行完成后設置發送數據標志(FB63_REQ=1)和復位開始接收數據標志(FB64_EN_R=0)。
5) 發送數據
由開始發送數據標志(FB63_REQ=1)調用FB63開始發送數據。不管發送完成是否正確,只要發送數據完成了就設置開始接收數據標志(FB64_EN_R=1)和復位發送數據標志(FB63_REQ=0),然后開始等待接收數據。
4.3 程序塊
為了實現CPU315-2PN/DP與水電站上位機系統中操作員工作站的數據交換,PLC需要下表1所示程序塊:
程序塊 | 說明 |
OB100 | 當CPU重新啟動時,OB100被運行。在該OB中設置連接ID、CPU端口號、操作員工作站IP地址和開始等待建立連接標志。 |
OB1 | 在每個周期都運行,主要調用以太網通訊控制程序(FB73)。 |
FB63 | 發送數據功能塊,由以太網通訊控制程序(FB73)調用。 |
FB64 | 接收數據功能塊,由以太網通訊控制程序(FB73)調用。 |
FB65 | 建立連接功能塊,由以太網通訊控制程序(FB73)調用。 |
FB73 | 以太網通訊控制程序,用于實現以太網的通訊控制。 |
FB74 | Modbus/TCP協議處理程序,實現對接收到的數據進行判斷、處理并準備上傳所需數據。 |
DB1 | 用于存放遠方遙控數據,從操作員工作站寫入的遙控數據保存在該DB中。 |
DB2 | 用于存放遠方遙調數據,從操作員工作站寫入的遙調數據保存在該DB中。 |
DB5 | 用于存放遙信數據,操作員工作站讀取的遙信數據保存在該DB中。 |
DB6 | 用于存放遙測數據,操作員工作站讀取的遙測數據保存在該DB中。 |
DB7 | 用于存放定值數據,操作員工作站讀取/寫入的定值數據保存在該DB中。 |
DB8 | 用于存放SOE數據,操作員工作站讀取的SOE數據保存在該DB中。 |
DB83 | FB73與操作員工作站1通訊背景數據塊。 |
DB84 | FB73與操作員工作站2通訊背景數據塊。 |
DB105 | 具有2個UDT65連接屬性的數據塊,該DB封裝了與操作員工作站1、2通訊的參數。 |
文章版權歸西部工控xbgk所有,未經許可不得轉載。 你可能感興趣的文章 研討培訓更多>技術視頻更多>熱門下載更多>
|