楊曉光,劉明陽,張大為,王克斌
(1. 水力發(fā)電設備國家重點實驗室,哈爾濱 150040;2. 哈爾濱電機廠有限責任公司,哈爾濱 150040)
OPC(OLE for Process Control)是用于過程控制的OLE ,OLE(Object Linking and Embedding)是對象連接和嵌入。OPC是基于微軟的OLE/COM技術,為解決工業(yè)及其他客戶機與各種設備驅動程序間相互通訊而產生的工業(yè)技術規(guī)范和標準。OPC技術規(guī)范是由OPC基金會制定的,它提供了標準的統(tǒng)一的數(shù)據(jù)訪問軟件及硬件的接口。由于OPC技術比傳統(tǒng)的數(shù)據(jù)存儲方式更具有開放性和先進性,已得到越來越多的工控領域硬件和軟件制造商的認可。目前已經成為工業(yè)控制軟件上各個軟硬件制造商的公認標準。
在發(fā)電設備行業(yè)中有大量的非標準設備和專用設備。比如應用于沖片生產的沖槽機、涂漆線、點焊機、線圈的包帶機、漲型機及四角焊機等很多專用的數(shù)控設備。這些設備無論是從工藝編程、設備的維護、生產的管理等都需要由專人專管。這樣,在從生產的前期準備到生產的過程控制及設備的維護都要投入大量人力和物力來進行管理。為了能夠實現(xiàn)設備的標準化管理,在哈電機的數(shù)控沖槽機上進行了嘗試,引入了OPC技術進行軟件的開發(fā),使得OPC技術在數(shù)控沖槽機上得到了初步的實現(xiàn)。
在采用 OPC 技術以前,傳統(tǒng)的數(shù)據(jù)存儲方法主要是通過驅動程序和動態(tài)數(shù)據(jù)交換兩種方法。
驅動程序法是在應用程序中掛接“驅動程序”來存取現(xiàn)場控制設備和數(shù)據(jù)庫的數(shù)據(jù)。這種方法需要每一個特定的硬件必須為每一個應用程序編寫“驅動程序”另外多個程序不能同時存取同一設備的數(shù)據(jù)。
動態(tài)數(shù)據(jù)交換法是基于 Windows的消息傳遞而建立的技術。所以具有數(shù)據(jù)的傳遞速度較慢,沒有安全機制,數(shù)據(jù)傳遞安全性差,開發(fā)比較困難等缺點。
隨著信息技術的發(fā)展,自動化系統(tǒng)對大范圍信息共享的要求越來越強烈,因而對工業(yè)系統(tǒng)控制的開放性提出了越來越高的要求,因此需要一種通用的方法,使應用程序可以方便地存取任何一臺設備或多臺設備的數(shù)據(jù),為不同廠商生產的軟硬件提供系統(tǒng)集成和數(shù)據(jù)交換的途徑。正是在這種情況下,OPC技術應運而生,其目的就是要建立大量數(shù)據(jù)源的標準機制,這些數(shù)據(jù)源可以是工廠的設備或控制室數(shù)據(jù)庫。OPC 技術是 OPC基金會組織制定的工業(yè)控制軟件相互操作性的規(guī)范,也是微軟為了把 Windows 應用于控制系統(tǒng)共同推出的一項技術。它是以微軟的COM/DCOM(組件對象模型和分布式組件對象模型)技術為基礎,為工業(yè)控制軟件定義了一套標準的對象、接口和屬性。OPC 技術在硬件供應商和軟件開發(fā)者之間搭上了一座橋梁,它提供一種機制從數(shù)據(jù)源并且以一個標準的方式將這些數(shù)據(jù)傳送到任意客戶端應用程序。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設備以何種形式存在,客戶都以統(tǒng)一的方式去訪問。從而實現(xiàn)了系統(tǒng)的開放性,易于實現(xiàn)與其他系統(tǒng)的接口。利用OPC使接口標準化可以構成圖1所示的系統(tǒng)。

圖1
數(shù)控沖槽機是一種專為大型交直流電機生產鐵心矽鋼片的專用設備,是一種三軸聯(lián)動的數(shù)控機床,該機床的數(shù)控系統(tǒng)采用西門子的 840D數(shù)控系統(tǒng)及S7-300 PLC硬件系統(tǒng),伺服驅動系統(tǒng)采用611D,該設備不同于一般的通用數(shù)控機床。需要進行外部的工藝編程及控制。這些工作如果在西門子的840D數(shù)控系統(tǒng)上實現(xiàn)難度相當大,而且在產品發(fā)生變化時改變起來也非常麻煩,所以這些工作需要在上位機上進行,而不是在數(shù)控系統(tǒng)上完成。這樣就存在一個上位機和西門子的840D及S7-300PLC進行通信的問題。為了能夠實現(xiàn)上位機和西門子840D及S7-300 PLC通信。我們采用了西門子提供的標準的 OPC Server接口來實現(xiàn),這樣就完成了程序、數(shù)據(jù)的交換及控制過程的相互通信。
上位機是本項目中完成電機沖片生產工藝及加工程序的主要平臺,還要完成和西門子 840D的程序數(shù)據(jù)的交換,以及和S7-300 PLC的控制聯(lián)絡及監(jiān)控。我們采用Profibus DP 工業(yè)現(xiàn)場總線作為OPC的聯(lián)絡通道。西門子的數(shù)控及PLC產品也提供這種開放的接口,通過西門子提供的開放標準接口 OPC Server 在上位機上Windows XP操作系統(tǒng)采用 Visual Basic 6.0高級語言進行編程。既可以向西門子的840D數(shù)控系統(tǒng)傳輸程序和數(shù)據(jù),同時也可以和S7-300 PLC進行控制聯(lián)絡。圖2是OPC Server 在Visual Basic 中所提供的接口方式。
最上層是西門子向 WindowsXP 提供的 OPC Server,然后是OPC 組的集合,在組的集合下面分成了各個組,每個組里面有自己的標簽集合,每一個標簽集合分為標簽變量。
這些變量可以通過OPC瀏覽器來進行編輯。

圖2
下面是在Visual Basic 公共部分中聲明OPC的變量以及設定OPC服務器的初始狀態(tài)程序。
Dim WithEvents AnOPCServer As OPCServer
Dim ARealOPCServer As String
Dim ARealOPCNodeName As String
Dim AnOPCServerBrowser As OPCBrowser
Dim MyGroups As OPCGroups
Dim DefaultGroupUpdateRate As Long
Dim OneGroup As OPCGroup
Dim AnOPCItemCollection As OPCItems
Dim AnOPCItem As OPCItem
Dim ClientHandles(100)As Long
Dim AnOPCItemIDs(100)As String
Dim AnOPCItemServerHandles() As Long
Dim AnOPCItemServerErrors() As Long
Set AnOPCServer = New OPCServer
ARealOPCServer=“VendorX.DataAccessCustomSe rver”
ARealOPCNodeName=“SomeComputerNodeName”
AnOPCServer.Connect(ARealOPCServer,ARealOP CNodeName)
Set MyGroups = AnOPCServer.OPCGroups
MyGroups.DefaultGroupIsActive = True
Set OneGroup=MyGroups.Add(“AnOPCGroupName”)
Set AnOPCItemCollection = OneGroup.OPCItems
作為 OPC 的一個應用,首先必須要建立一個OPC服務器,這個OPC服務器包含了OPC組的集合和瀏覽器。然后客戶端要在這個服務器中定義自己組的集合,這個組的集合包含了客戶和OPC服務器連接的所有通道,也就是說在設備制造商通過OPC向用戶開放的接口,在我們這個例子中也就是我們的上位機要與西門子840D 數(shù)控系統(tǒng)的S7-300PLC進行數(shù)據(jù)交換和聯(lián)絡的通道。
下面是Visual Basic 與S7的連接過程(部分程序)




在客戶端上位機啟動Station Configuration彈出對話框,如圖3所示,我們可以對該窗口進行配置。

圖3
我們可以在相應的槽號上選擇組件,配置完成后就可以進行激活,當激活連接成功后連接相應的變量,這些變量可以是西門子840D S7-300PLC的各種變量。這樣,我們就可以通過OPC進行數(shù)控設備和上位機的標準化連接。通過高級語言VC、VB、VBA等(我們這里使用的是 VB)就可以很方便地對專用設備進行各種操作。以上是連接西門子數(shù)控系統(tǒng) S7-300 的部分VB程序,通過OPC Server 實現(xiàn)了用上位機和專用數(shù)控機床的連接過程,目前該設備已經在哈爾濱電機廠運行了4年,設備運行穩(wěn)定,數(shù)據(jù)存儲方便,為專用設備的標準化連接提供一條很方便實用的渠道。并且在專用設備的開發(fā)和改造上也起了非常大的作用,為哈電機專用設備的升級維修維護和改造起到非常大的作用。
在專用設備的標準化接口方面我們已經取得了一些有意義的經驗,對生產企業(yè)在生產及設備方面的標準化管理提供了堅實的基礎。為將來的遠程設備數(shù)據(jù)交換,設計和工藝部門通過標準的接口實現(xiàn)CAD 和CAM 提供了有利的條件。設備部門通過標準接口實現(xiàn)遠程實時監(jiān)控。生產部門通過標準接口了解生產情況,收集生產數(shù)據(jù)提供了很好的渠道。