岳宗敏 黃金波 朱玉
摘 要:探討了如何通過OPC來訪問WinCC系統(tǒng)的實時數(shù)據。并根據串口設備通訊協(xié)議要求,通過Visual Studio平臺下的C#語言編程,把采集到的實時數(shù)據按通訊協(xié)議組織后通過串口發(fā)送給串口設備。結合實際應用給出了具體的實現(xiàn)步驟。某煤礦水處理系統(tǒng)應用結果表明,系統(tǒng)運行穩(wěn)定可靠,效率高,具有很強的實用性和推廣價值。
關鍵字:WinCC 實時數(shù)據 OPC 串口通信
中圖分類號:TP273 文獻標識碼:A 文章編號:1674-098X(2012)12(a)-0-02
隨著企業(yè)信息化進程的推進,無論是哪個管理相關部門,都希望從工作的現(xiàn)場得到最新的數(shù)據,并對這些新的數(shù)據進行綜合的分析。然而,不同的控制器來自不同的廠商,通過不同的標準,組成各自需要的系統(tǒng),并進行控制,各個控制系統(tǒng)形成了互不相連的自動化孤島,因為很多數(shù)據無法整體的采集到并進行整體的分析與研究。從而更無法建立統(tǒng)一的生產過程數(shù)據平臺,難以實現(xiàn)管理控制的一體化 [1]。
該文通過OPC來訪問WinCC系統(tǒng)的實時數(shù)據。并根據串口設備通訊協(xié)議要求,通過Visual Studio平臺下的C#語言編程,把采集到的實時數(shù)據按通訊協(xié)議組織后通過串口發(fā)送給串口設備。
1 OPC(OLE for Process Control)技術介紹
OPC(OLE for Process Control)用于過程控制的對象鏈接嵌入技術,是基于微軟的OLE、COM(組件對象模型)和DCOM(分布式組件對象模型)技術為基礎,采用客戶/服務器模式,在基于Windows操作平臺的工業(yè)應用程序之間提供交互功能和高效信息集成的組件。利用OPC 技術,可以對現(xiàn)場設備及其驅動程序進行封裝,形成OPC(OLE for Process Control)服務器,向上與OPC客戶應用程序通信以完成數(shù)據交換,向下則是對設備數(shù)據進行采集。因此,它的出現(xiàn)為基于Windows 的應用程序和現(xiàn)場過程控制之間做好了鋪墊。這種既開放又高效的通信機制提供了一種從數(shù)據源提取數(shù)據并且傳輸?shù)綉贸绦虻臉藴释緩?,它能夠有效地整合各類控制器和控制系統(tǒng),眾多不同的廠商生產的都能用統(tǒng)一的開口進行傳輸與控制,很容易解決由不同類型自動化設備構成的大中型系統(tǒng)中的數(shù)據交換和傳輸問題[2]
2 OPC(OLE for Process Control) 客戶機應用程序開發(fā)
2.1 OPC開發(fā)工具包
模塊化開發(fā)工具包提供了軟件設計的基本工具。OPC工具包由Delphi語言編寫,以標準動態(tài)庫(dl1)形式提供二次開發(fā)接口,完全封裝了COM技術實現(xiàn)細節(jié),降低用戶端程序開發(fā)的復雜程度。用戶可以通過調用工具包所提供的動態(tài)庫函數(shù),完成客戶機應用程序的開發(fā)。且工具包還支持多種語言的開發(fā),如:VC、C#、VB、BC和Delphi等。因為考慮開發(fā)的周期與速度,本系統(tǒng)選用C#進行二次開發(fā)。
2.2 OPC服務器簡介
OPC數(shù)據存取規(guī)范規(guī)定的基本對象有三類:OPC服務器(OPC Server)、OPC項對象(OPC Item)和OPC組對象(OPC Group)。OPC服務器維護有關服務器的信息并用作OPC組對象的容器,OPC組對象中可以定義一個OPC或多個對象。OPC項對象代表了與服務器中的數(shù)據的連接。而OPC組對象提供包容OPC項對象機制,并管理OPC項對象,提供了客戶程序組織數(shù)據的手段。客戶程序對OPC項的操作都是通過包容此項的OPC組對象來進行的。每個OPC項對象都三個屬性:品質(Quality)、值(Value)和時間戳(Time Stamp)。人們想要就是這些的點,即PLC的I/O點、儀表的數(shù)值等[3]
2.3 OPC客戶機的開發(fā)步驟
從OPC的工作機制可以知道,OPC客戶端的開發(fā)必須按下面的步驟進行。
(1)對DCOM進行初始化設置,保證OPC服務器端的回調函數(shù)不會被堵塞;
(2) 創(chuàng)建OPC服務器,并連接;
(3) 為OPC服務器創(chuàng)建OPC組對象;
(4) 為OPC組對象創(chuàng)建多個OPC項對象;
(5) 實現(xiàn)對OPC項對象數(shù)據的讀寫操作;
(6)在客戶端工作結束時,清除OPC服務器的所有組對象及其項對象,斷開與服務器的連接,釋放資源。
3 串口通信技術介紹
3.1 串口通信簡介與通信協(xié)議
串行通訊是計算機與其他設備進行交換數(shù)據的橋梁之一。在工業(yè)監(jiān)控、數(shù)據采集和實時監(jiān)控系統(tǒng)中應用廣泛。因為他具有使用方法簡便,數(shù)據傳輸可靠,靈活性強等優(yōu)點。
串口通信的協(xié)議標準目前應用最廣泛的是RS一232標準,RS一232標準已被內置于從微控制器到主機的多種類型的計算機及其相連接的設備中,在工控系統(tǒng)及硬件設計中有著廣泛的應用。RS一232對電器特性、邏輯電平和各種信號線功能都作了
規(guī)定[4]。
3.2 發(fā)送數(shù)據報文
在VC#環(huán)境下,添加串口控件,按協(xié)議初始化串口,開串口后,添加OnComm()中的處理代碼。按照串口設備通信協(xié)議根據實時讀取到的WINCC項數(shù)據組織報文,每發(fā)送一組報文就引發(fā)以下程序。
Byte[] yxx = new byte[9];
for(int i=0;i<8;i++) yxx[i] = System.Convert.ToByte(yxss[i],10);
給每一位賦值其中yxss(i)為串口設備通信協(xié)議報文格式對
應值。
Byte intResult1
for (int i = 0;i < 8;i++)
intResult1 = System.Convert.ToByte(intResult1 ^ System.Convert.ToByte(yxx[i]));
yxx[8] = System.Convert.ToByte(intResult1);給校驗位賦值
if (!mycom1.IsOpen)
mycom1.Open();打開串口 mycom1.DiscardInBuffer();清除接收緩沖區(qū)
mycom1.Write(yxx,0,9);發(fā)送報文。
4 實例應用
某煤礦水處理系統(tǒng)采用PLC可編程邏輯控制器,對整個水處理過程進行全自動化控制,但須要把整個系統(tǒng)監(jiān)控的實時數(shù)據及相對應的開關狀態(tài)發(fā)送到模擬屏上供管理人員方便查看,監(jiān)督,
決策。
4.1 系統(tǒng)分析
系統(tǒng)主要分為三個部分,第一個部分是整個水處理系統(tǒng)的數(shù)據實時采集,實時數(shù)據采集遵循OPC工業(yè)標準,規(guī)范實時數(shù)據獲取,對各現(xiàn)場設備、位號進行統(tǒng)一編號,避免獲取數(shù)據沖突,同時對模擬量,開關量信息區(qū)別對待。第二個部分是數(shù)據的處理,首先對采集到的實時數(shù)據進行分類、截位、正化處理,然后根據串口通信協(xié)議和模擬屏報文協(xié)議要求,分類組織遙測報文與遙信報文。
模擬屏報文格式如圖1所示:
字頭 命令 字節(jié)長 序號H 序號L 數(shù)據… …….. 校驗碼
…………字節(jié)長…………………
……………………………校驗碼長………………………...
圖1
第三個部分是數(shù)據發(fā)送與現(xiàn)實,利用串口通信把組織好的報文發(fā)送給模擬屏,根據相應地址顯示在對應的位置上。實現(xiàn)整個系統(tǒng)功能。
4.2 系統(tǒng)實現(xiàn)
系統(tǒng)在Microsoft Visual Studio 2008 開發(fā)平臺,利用C#語言開發(fā)完成。系統(tǒng)通過OPC接口從WINCC讀取實時數(shù)據并存入內部變量內,通過處理把實時數(shù)據編制成調度盤能夠識別的報文格式,然后進行串口通信。建立串口連接前,系統(tǒng)串口參數(shù)設置與計算機參數(shù)設置必須一致,才能保證通信數(shù)據正常傳輸。系統(tǒng)界面圖如圖2所示:
圖2
5 結語
本系統(tǒng)經多次試驗,穩(wěn)定可靠,已正常運行一年有余。對WICC實時數(shù)據的讀取并通過串口通信發(fā)送給其他設備提供很好實例。有很高的使用價值和很廣闊的推廣市場。
參考文獻
[1] 趙紅,韓建國.流程工業(yè)CIMS現(xiàn)場實時數(shù)據傳輸?shù)腛PC解決方案[J].北京化工大學學報,2001,28(3):61-62.
[2] 張俊彪,王鴻輝,何長安.基于OPC Server的PC與S7-300/400的通信[J].電力自動化設備,2007(4):83-84.
[3] 花新峰,負衛(wèi)國.Delphi 環(huán)境下使用定制接口開發(fā)OPC數(shù)據訪問客戶程序[J].自動化博覽,2005(S1):91一97.
[4] 李現(xiàn)勇.Visual C++串口通信與工程實踐[M].北京:人民郵電出版社,2005.