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