999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2011-11-18 08:02:36黃希敏
重型機械 2011年5期

黃希敏

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

1 前言

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

2 SIMATIC NET OPC服務器及連接配置

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

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

2.1 安裝軟件

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

2.2 OPC服務器與S7-300連接通訊

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

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

其次,打開Configuration Console窗口對控制臺進行配置。在打開的窗口中首先可以查看到以太網的模式已經從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進入PC Station組態(tài),從硬件目錄串口選擇與已安裝的SIMATIC NET軟件版本相符的硬件插入到與上述PC硬件機架對應的位置。雙擊“Configure Network”進行NetPro配置,選擇OPC Server連接表的第一行,通過“Insert→New Connection”來建立一個新的連接,在彈出的連接屬性畫面中,選擇“S7 connection”屬性。然后在“S7 connection”屬性窗口中按照提示輸入S7-300與工業(yè)計算機的IP地址,雙擊“Address Details”設置符合S7-300的機架號0和插槽號2。上述操作完成后,編譯無誤后保存。

上述步驟完成后,就實現(xiàn)了S7-300與SIMATIC NET OPC服務器的數(shù)據通訊,可以通過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連接字符串標識名;DB400為數(shù)據塊,INT44為變量的類型和地址。OPC Scout要能夠正常的訪問S7 PLC站的變量地址,必須嚴格按照上述的變量編址方式。

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

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

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

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

using OpcRcw.Comn;

using OpcRcw.Da;

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

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

private IOPCServer pIOPCServer;//定義OPCServer對象

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

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

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

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

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

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

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

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

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

4 結束語

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

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

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

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

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

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

主站蜘蛛池模板: 中文字幕 91| 欧美区日韩区| 尤物午夜福利视频| 国产99视频精品免费观看9e| 又爽又大又黄a级毛片在线视频| 综合久久久久久久综合网| 狼友av永久网站免费观看| 亚洲日韩精品综合在线一区二区| 91无码国产视频| 国产精品永久在线| 日韩精品一区二区三区免费在线观看| 国产在线小视频| 一级看片免费视频| 国产一区二区三区在线精品专区| 欧美激情伊人| 日韩免费视频播播| 91青青在线视频| 亚洲人成影院在线观看| 高潮毛片免费观看| 99久久性生片| 国产精品蜜芽在线观看| 亚洲天堂视频在线播放| 国产成人做受免费视频| 午夜精品久久久久久久99热下载 | 囯产av无码片毛片一级| 中国特黄美女一级视频| 久久特级毛片| 亚洲天堂网站在线| 日韩精品无码免费专网站| 欧美亚洲国产视频| 麻豆精品在线| 久996视频精品免费观看| 欧美亚洲另类在线观看| 99久久成人国产精品免费| 怡春院欧美一区二区三区免费| 亚洲高清国产拍精品26u| 91精品国产无线乱码在线| 国精品91人妻无码一区二区三区| 一级毛片免费的| 青青热久免费精品视频6| 欧美不卡在线视频| 五月天在线网站| 91视频国产高清| 国产人成网线在线播放va| 欧美成人精品欧美一级乱黄| 青青久视频| 日本91视频| 亚洲精品国产综合99| 国产综合亚洲欧洲区精品无码| 亚洲伊人天堂| 在线观看国产黄色| 国产精品分类视频分类一区| 久草视频福利在线观看| 青青青国产视频手机| 在线观看精品自拍视频| 99re在线观看视频| 久久久久青草大香线综合精品| 国产偷国产偷在线高清| 久久夜夜视频| 精品久久香蕉国产线看观看gif | 狠狠五月天中文字幕| 2021国产精品自产拍在线| 女人爽到高潮免费视频大全| 亚洲丝袜中文字幕| 中文字幕在线播放不卡| 国产精品毛片一区| 欧美在线伊人| 国产成人成人一区二区| 国产尹人香蕉综合在线电影| 国产视频久久久久| 亚洲欧美一级一级a| 天天综合网色中文字幕| 国产亚洲精品97AA片在线播放| 中文字幕在线观看日本| 久久亚洲美女精品国产精品| 久久国产V一级毛多内射| 91美女视频在线| 亚洲精品动漫在线观看| 91亚洲精品国产自在现线| 日韩精品欧美国产在线| 日韩第九页| 亚洲一区二区三区中文字幕5566|