国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#語言的工業(yè)計算機(jī)與S7-300的OPC通訊

2011-11-18 08:02:36黃希敏
重型機(jī)械 2011年5期
關(guān)鍵詞:數(shù)據(jù)通訊機(jī)架通訊

黃希敏

(陜西教育學(xué)院,陜西 西安 710100)

1 前言

OPC(OLE for Process Control)是一種用于工業(yè)數(shù)據(jù)通訊的標(biāo)準(zhǔn)協(xié)議,使開發(fā)人員能夠方便的按照OPC協(xié)議編程實現(xiàn)OPC客戶端程序與OPC服務(wù)器之間的通訊。為了實現(xiàn)工業(yè)計算機(jī)與S7-300的實時數(shù)據(jù)通訊,本文以西門子公司的SIMATIC NET作為OPC服務(wù)器,使用C#語言編程實現(xiàn)OPC客戶端程序與SIMATIC NET OPC服務(wù)器之間的數(shù)據(jù)通訊。

2 SIMATIC NET OPC服務(wù)器及連接配置

SIMATIC NET是西門子在工業(yè)控制系統(tǒng)提供的一個開放的、多元的通訊系統(tǒng),可以實現(xiàn)工業(yè)現(xiàn)場的PLC、主機(jī)、工作站和個人電腦聯(lián)網(wǎng)通訊。通訊的網(wǎng)絡(luò)包括了工業(yè)以太網(wǎng)、PROFIBUS、PROFIBUS-PA等。SIMATIC NET OPC服務(wù)器不但提供了數(shù)據(jù)訪問的接口,同時還提供了報警和事件的接口等多種功能。

為了能夠讓SIMATIC NET系統(tǒng)正常的工作,必須安裝SIMATIC NET軟件。網(wǎng)絡(luò)通訊方式為工業(yè)以太網(wǎng)。按照OPC接口的規(guī)定,C或C++語言編寫的客戶機(jī)應(yīng)用程序可以使用自定義接口和自動化接口。其他的編程語言(如VB,Delphi,C#等)編寫的客戶機(jī)應(yīng)用程序只能使用自動化接口。

2.1 安裝軟件

工業(yè)計算機(jī)的操作系統(tǒng)為XP系統(tǒng),SIMATIC NET軟件的版本為SIMATIC.NET 2006,編程環(huán)境為Microsoft Visual Studio 2008。當(dāng)SIMATIC NET軟件安裝成功后,在桌面上可以看到Station Configuration、SIMATIC Manager等的快捷圖標(biāo)。

2.2 OPC服務(wù)器與S7-300連接通訊

首先,打開 SIMATIC NET軟件的 Station Configuration Editor窗口進(jìn)行PC硬件機(jī)架的配置,在打開的窗口中依次在第一行和第三行插入OPC Server和IE General,同時還需要對工業(yè)計算機(jī)的網(wǎng)絡(luò)進(jìn)行配置,以保證PC站的IP地址與S7-300的IP地址屬于同一IP段。以上操作完成后,點擊“Station Name”按鈕來給PC指定一個名稱,例如:“ethernetOPC”。圖1為PC硬件機(jī)架的配置界面截圖。

圖1 PC硬件機(jī)架的配置Fig.1 configuration of PC hardware chassis

其次,打開Configuration Console窗口對控制臺進(jìn)行配置。在打開的窗口中首先可以查看到以太網(wǎng)的模式已經(jīng)從PG mode切換到Configuration mode,然后單擊“Access Points”把S7ONLINE的指向選項選為“PC internal(local)”。

最后,打開 SIMATIC Manager窗口,通過“File→New”創(chuàng)建一個新項目,如:“S7300OPC”。通過“Insert→Station→Simatic PC Station”插入一個PC站,并且命名與上述命名的PC站名稱相同,本文中即“ethernetOPC”。創(chuàng)建成功后,雙擊Configuration進(jìn)入PC Station組態(tài),從硬件目錄串口選擇與已安裝的SIMATIC NET軟件版本相符的硬件插入到與上述PC硬件機(jī)架對應(yīng)的位置。雙擊“Configure Network”進(jìn)行NetPro配置,選擇OPC Server連接表的第一行,通過“Insert→New Connection”來建立一個新的連接,在彈出的連接屬性畫面中,選擇“S7 connection”屬性。然后在“S7 connection”屬性窗口中按照提示輸入S7-300與工業(yè)計算機(jī)的IP地址,雙擊“Address Details”設(shè)置符合S7-300的機(jī)架號0和插槽號2。上述操作完成后,編譯無誤后保存。

上述步驟完成后,就實現(xiàn)了S7-300與SIMATIC NET OPC服務(wù)器的數(shù)據(jù)通訊,可以通過OPC Scout來檢查連接是否正常。圖2為OPC Scout的運行界面截圖。

圖2 OPC Scout的運行界面截圖Fig.2 Screenshot of running interface of OPC Scout

圖2 中,Item Names項為S7 PLC站的變量地址。例如:S7:[S7 connection_1]DB400,INT44中,S7為協(xié)議ID,這是S7協(xié)議規(guī)定的;[S7 connection_1]為連接名,這是用戶定義的OPC連接字符串標(biāo)識名;DB400為數(shù)據(jù)塊,INT44為變量的類型和地址。OPC Scout要能夠正常的訪問S7 PLC站的變量地址,必須嚴(yán)格按照上述的變量編址方式。

3 OPC客戶端程序的軟件實現(xiàn)

本文研究的OPC客戶端與SIMATIC NET OPC服務(wù)器的數(shù)據(jù)通訊,實際是為了實現(xiàn)S7-300與工業(yè)計算機(jī)的數(shù)據(jù)通訊。在已經(jīng)配置好的SIMA-TIC NET OPC服務(wù)器的基礎(chǔ)上,確定了OPC Server名“OPC.SIMATICNET”和采用自動化接口,并且嚴(yán)格按照S7 PLC站的變量編址方式,可以編程實現(xiàn)基于C#編程語言的OPC客戶端程序與SIMATIC NET OPC服務(wù)器通訊。圖3為實現(xiàn)OPC客戶端與OPC服務(wù)器連接通訊的程序流程圖。

(1)添加引用。OpcRcw.DA和OpcRcw.Comn是西門子提供的關(guān)于OPC通訊的兩個動態(tài)鏈接庫文件。在C#編程環(huán)境中引用這兩個文件,調(diào)用這兩個動態(tài)連接庫中的接口函數(shù)。

圖3 OPC客戶端與OPC服務(wù)器通訊程序流程圖Fig.3 Flow chart of communication between OPC client and OPC server

using OpcRcw.Comn;

using OpcRcw.Da;

(2)定義OPC相關(guān)變量。在進(jìn)行與OPC服務(wù)器的連接之前,首先要定義OPC相關(guān)的變量,其中包括:OPC的服務(wù)器名,OPC服務(wù)器的對象名等。

internal const string SERVER_ NAME =“OPC.SIMATICNET“;//OPC服務(wù)器名

private IOPCServer pIOPCServer;//定義OPCServer對象

(3)實現(xiàn)與OPC服務(wù)器的連接。public bool ConnectServer(string node_name,out string error),其中node_name為OPC服務(wù)器的計算機(jī)名稱,連接過程中的錯誤信息捕捉給error輸出。函數(shù)返回true和false,分別代表成功和失敗。具體的步驟:創(chuàng)建服務(wù)器對象創(chuàng)建OPC組對象-向組對象中添加多項OPC客戶端讀寫操作。

(4)創(chuàng)建服務(wù)器對象。pIOPCServer=(IOPCServer)System.Activator.CreateInstance(svr-Componenttyp)

(5)創(chuàng)建OPC組對象。public bool AddGroup(string groupName,int bActive,int updateRate,out string error),其中g(shù)roupName為創(chuàng)建組對象的組名,bActive為組的激活狀態(tài),updateRate為組的刷新頻率,創(chuàng)建組對象過程中的錯誤信息捕捉給error輸出。函數(shù)返回true和false,分別代表成功和失敗。

(6)向組對象中添加多項。public bool AddItems(string[]itemsName,int[]itemsID,out string error),其中itemsName為要添加的項的名稱,是一個字符串?dāng)?shù)組,itemsID為與字符串?dāng)?shù)組相對應(yīng)的序號數(shù)組。添加項對象過程中的錯誤信息捕捉給error輸出。函數(shù)返回true和false,分別代表成功和失敗。

(7)OPC客戶端讀寫操作。OPC客戶端進(jìn)行讀寫操作之前,首先要根據(jù)通訊方式是同步還是異步,從而實例化指針I(yè)OPCSyncIO/IOPCAsyncIO接口。本文的OPC客戶端通訊采用同步方式。

實際應(yīng)用過程中,IOPCSyncIO接口分別提供了讀、寫的方法,即 IOPCSyncIO.READ和IOPCSyncIO.WRITE。

(8)斷開與OPC服務(wù)器的連接。public bool Close(out string error),其中,斷開連接過程中的錯誤信息捕捉給error輸出。函數(shù)返回true和false,分別代表成功和失敗。在程序斷開與OPC服務(wù)器的連接之前,必須先刪除已經(jīng)創(chuàng)建的OPC對象并且釋放內(nèi)存。

上述利用C#編程語言實現(xiàn)OPC客戶端程序與SIMATIC NET OPC服務(wù)器的數(shù)據(jù)通訊,在OPC通訊客戶端系統(tǒng)界面上實時顯示了數(shù)據(jù)的讀寫情況。圖4為OPC通訊客戶端運行界面截圖。

圖4 OPC通訊客戶端程序運行界面Fig.4 program running interface for client of OPC communication

4 結(jié)束語

以SIMATIC NET OPC為服務(wù)器,S7-300與SIMATIC NET OPC服務(wù)器連接配置,采用C#計算機(jī)編程語言實現(xiàn)了OPC客戶端程序與OPC服務(wù)器的數(shù)據(jù)讀寫操作。通過多次的應(yīng)用測試證明,OPC客戶端程序運行可靠,操作簡單,符合現(xiàn)場對實時監(jiān)控的要求。

[1] Christian Nagel Bill Evjen Jay Glynn著,李銘譯.C#高級編程(6版)[M].北京:清華大學(xué)出版社,2008,11.

[2] 羅斌,羅順文.Visual C#2005編程技巧大全[M].北京:中國水利水電出版,2007.

[3] 蔣秀鳳,何鳳英.Oracle 9i數(shù)據(jù)庫管理教程[M].北京:清華大學(xué)出版社,2005.

[4] 滕永昌.Oracle 9i數(shù)據(jù)庫管理員使用大全[M].北京:清華大學(xué)出版社,2004.

[5] 陽憲惠.工業(yè)數(shù)據(jù)通訊與控制網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2003.

猜你喜歡
數(shù)據(jù)通訊機(jī)架通訊
《茶葉通訊》簡介
茶葉通訊(2022年2期)2022-11-15 08:53:56
《茶葉通訊》簡介
茶葉通訊(2022年3期)2022-11-11 08:43:50
通訊報道
機(jī)器視覺系統(tǒng)與PLC的數(shù)據(jù)通訊
別忽略它的存在!“意大利新一代架皇”BAS Accordeon(雅歌頓)XL4 2.0發(fā)燒機(jī)架
通訊簡史
熱軋拉矯機(jī)機(jī)架加工討論
基于C#的船舶電力推進(jìn)監(jiān)控系統(tǒng)的數(shù)據(jù)通訊設(shè)計
智能電能表數(shù)據(jù)通訊安全性分析
雙機(jī)架平整機(jī)板形控制算法及其應(yīng)用
上海金屬(2013年6期)2013-12-20 07:58:02
福安市| 平谷区| 建平县| 泗阳县| 双江| 麦盖提县| 阳新县| 彭阳县| 虞城县| 太白县| 万全县| 如皋市| 永丰县| 桐梓县| 会宁县| 东台市| 明溪县| 正阳县| 理塘县| 温泉县| 丹阳市| 乐平市| 华安县| 荥阳市| 崇明县| 沙湾县| 保靖县| 文安县| 华坪县| 兴化市| 安仁县| 河北省| 青浦区| 城口县| 阜平县| 青阳县| 壤塘县| 长垣县| 上林县| 福泉市| 望城县|