姚 飛 吳家乾 劉 直 陳文秀(上海海事大學物流工程學院,上海 201306)
基于S7-400的風力發電機組監控系統的設計
姚飛吳家乾劉直陳文秀
(上海海事大學物流工程學院,上海201306)
本文設計的風力發電機組監控系統采用三層網絡結構,上層為PC機通過TCP/IP協議的工業以太網與控制器S7-400連接,主站是西門子S7-400采用Profibus-DP現場總線與底層設備連接,從站設備為S7-300與變頻器。為了實現PC上位機與西門子S7-400之間的通訊,在此開發出了一種基于OPC技術、利用C#語言編程,達到實時監控效果的方案,并通過實驗測試證明監控系統運行良好、穩定可靠。
上位機S7-400C#OPCSimatic Net通訊風力發電機組
西門子S7-400PLC屬于大型的可編程邏輯控制器,在風力發電機組控制系統中承擔著數據通信處理以及整個系統控制的任務,為了能夠實時掌握系統數據,我們需要開發出一套方案以完成上位機與控制器間的通訊,從而能夠對系統進行實時監控。
本文應用OPC技術,利用C#匯編語言編寫程序,設計出了一種系統監控方法。OPC是一種用于工業數據通訊的標準協議,按照OPC協議我們可以編程從而實現OPC客戶端程序與OPC服務器之間的通訊。文中,以Simatic Net為OPC服務器,利用C#語言編寫OPC客戶端程序,從而實現兩者間的數據通訊。
本文所要模擬的對象為風力發電機組控制系統,實驗環境下系統由上位機監控系統、主站層S7-400以及從站層S7-300、變頻器等組成,整個網絡采用三層網絡拓撲結構。上位機是通過C#編制的監控軟件實現遠程監控的PC機,其中PC機采用XP系統,作為OPC服務器的SIMATIC NET軟件版本為SIMATIC.NET 2008,編程環境是Microsoft Visual Studio 2010。主站層是對整個系統進行控制及數據處理的西門子控制器,采用訂貨號為6GK7 443-1EX20-0XE0的S7-400 PLC,控制程序在STEP7 V5.5環境下編制。從站層則是型號為6ES7 314-6CG03-0AB0的S7-300和型號是mm440的變頻器等設備。上位機與S7-400間采用TCP/IP協議的工業以太網連接,而S7-400和底層設備之間則通過Profibus-DP協議的現場總線相連。
3.1OPC技術
OPC(OLE for Process Contro1)是OPC基金會組織所倡導的工控自動化領域中使用的軟、硬件的接口標準,主要包含兩種接口方式:即CUSTOM標準接口和OLE自動化標準接口。自定義接口是服務商所提供的一組COM接口,它描述了OPC組件對象的接口以及實現方法,適用于C++語言的應用程序開發;而自動化接口則為可選的,是一組OLE接口,它提供了自動配置和存取過程控制數據的接口,主要適合VB、Delphi、C#等匯編語言的開發設計。
3.2OPC客戶端程序的實現方法
在已經配置好的Simatic Net OPC服務器的基礎上,可以利用C#語言編程實現OPC客戶端程序與OPC服務器之間的通訊,根據OPC接口的不同特點選用接口方式,本文中采用自動化接口服務方式。
(1)定義OPC變量。在連接OPC服務器之前,首先應定義OPC的相關變量,例如OPC服務器名、服務對象名等,這樣才能觸發事件以獲取實時數據。本文中OPC服務器名為“OPC.SimaticNET”,對象名為“S7_412_2DP”。
(2)建立連接及對象。首先客戶程序應創建OPC服務器對象并且初始化,然后再創建OPC組對象以及添加項對象。
(3)OPC客戶端數據讀寫。為提高程序的效率,整個數據的讀寫采用異步方式進行,通過采集數據后主動觸發客戶端程序來完成事件的訪問。
(4)斷開OPC服務器連接。OPC客戶端連接成功后占用了服務器的資源,因此退出前或長時間不需要OPC數據讀寫則應及時斷開連接以期釋放資源,否則連續運轉的系統會使計算機的資源枯竭從而可能引發一系列故障問題。
完成系統的硬件組態后下載PLC程序并在Visual Studio環境下啟動調試匯編語言即可實現OPC客戶端程序及OPC服務器之間的數據通訊。在窗體界面中向S7-400一數據塊寫入并發送數據指令后,便能實時的讀取顯示PLC中返回的數據值。
本文設計的這種基于OPC技術以Simatic Net為OPC服務器,利用C#語言編程通過以太網傳輸數據從而實現PC機與S7-400之間通訊的方法,經過多次實驗測試證明其操作簡單、運行可靠、并成功應用在對風力發電機組控制系統的實時監控中,符合現場對實時監控的要求,達到了設計的預期效果,具有一定的推廣價值。
[1]黃希敏.基于C#語言的工業計算機與S7-300的OPC通訊[J].重型機械,2011(5):39-42.
[2]孫宏杰,劉文文.S7-400系列PLC與上位機通訊的實現[J].儀器儀表用戶,2006,13(6):82-84.
[3]陳在平.現場總線及工業控制網絡技術[M].北京:電子工業出版社,2008.
[4]方雄.基于OPC的PC與S7-300間實時通迅的VB6.0實現[J].工業控制計算機,2007,20(6):52-56.
[5]廖常初.S7-300/400PLC應用技術[M].2版.北京:機械工業出版社,2008.
[6]潘武平.基于OPC協議的數據通訊[D].北京:北京化工大學,2007.
[7]劉強,張站寧,徐昊.用C#實現PC與西門子PLC串行通信[J].自動化與儀器儀表,2008(5):60-63.
[8]鄂旭,吳昊.C# Windows程序設計與應用[M].1版.北京:清華大學出版社,2013.