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