如何用VB编写OPC客户端程序
- 格式:pdf
- 大小:1.03 MB
- 文档页数:35
Option ExplicitOption Base 1 ' All OPC Automation Arrays start with 1Dim MyOPCServer As OPCServer ' OPCServer ObjectDim MyGroups As OPCGroups ' OPCGroups Collection ObjectDim WithEvents MyGroup As OPCGroup ' OPCGroup ObjectDim MyItems As OPCItems ' OPCItems Collection ObjectDim MyItemServerHandles() As Long ' Server Handles for ItemsDim MyTID As Long ' Transaction ID for asynchronous calls Private Sub Command1_Click()Dim Errors() As LongCall MyItems.Remove(100, MyItemServerHandles, Errors)MyGroups.RemoveAllSet MyGroup = NothingSet MyGroups = NothingMyOPCServer.DisconnectSet MyOPCServer = NothingEnd SubPrivate Sub Command2_Click()PFAsyncWriteCommandEnd SubPrivate Sub Command3_Click()Form_LoadEnd SubPrivate Sub Form_Load()MyTID = 1Set MyOPCServer = New OPCServerCall MyOPCServer.Connect("OMRON.OPC.2")Set MyGroups = MyOPCServer.OPCGroupsMyGroups.DefaultGroupUpdateRate = 500MyGroups.DefaultGroupIsActive = TrueSet MyGroup = MyGroups.Add("Group1")MyGroup.IsSubscribed = TrueMyGroup.IsActive = TrueMyGroup.UpdateRate = 500Dim ErrorFlag As BooleanDim ItemObj As OPCItemDim ItemIDs(100) As StringDim ItemClientHandles(100) As LongDim Errors() As LongErrorFlag = FalseSet MyItems = MyGroup.OPCItemsDim m As IntegerFor m = 0 To 3Text1(m).ForeColor = vbRedText1(m).FontSize = 15Text2(m).ForeColor = vbRedText2(m).FontSize = 15NextFor m = 4 To 99Text1(m).ForeColor = vbBlueText1(m).FontSize = 15NextFor m = 1 To 100ItemIDs(m) = "Device.Group1.Tag" & CStr(m)ItemClientHandles(m) = mNextCall MyItems.AddItems(100, ItemIDs, ItemClientHandles, MyItemServerHandles, Errors)End SubPrivate Sub MyGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)On Error GoTo ErrorHandler '订阅方式回馈信息存储Dim i As LongFor i = 1 To NumItemsIf ClientHandles(i) > 0 And ClientHandles(i) < 101 ThenIf Qualities(i) = 192 Thendata1(ClientHandles(i)) = ItemValues(i)Else' MsgBox GetQualityText(Qualities(i))End IfElseMsgBox "DataChange Item " + Str$(i) + " has invalid Client Handle ", vbCriticalEnd IfNextExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "OnDataChange", vbCritical, "ERROR"End SubPrivate Sub Timer1_Timer()Dim i As IntegerFor i = 1 To 100Text1(i - 1).Text = data1(i)Next iEnd SubPublic Sub PFAsyncWriteCommand() '异步写入命令On Error GoTo ErrorHandlerDim i, j As LongDim Values(4) As VariantDim Errors() As LongDim CID As LongDim AsyncHandles(4) As LongFor j = 1 To 4AsyncHandles(j) = MyItemServerHandles(j)Values(j) = Text2(j - 1).TextNextMyTID = MyTID + 1Call MyGroup.AsyncWrite(4, AsyncHandles, Values, Errors, MyTID, CID)For i = 1 To 4If Not Errors(i) = 0 Then MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCritical NextExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "Writing Items Asyncronous", vbCritical, "ERROR"End SubPrivate Sub MyGroup_AsyncWriteComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, Errors() As Long)On Error GoTo ErrorHandler '异步写命令回馈信息Dim i As LongFor i = 1 To NumItemsIf Not Errors(i) = 0 Then MsgBox "AsyncWriteComplete Item Clienthandle = " + Str$(ClientHandles(i)) + " FAILED. Error Code = " + Str$(Errors(i)), vbCriticalNextExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "Async Write Complete", vbCritical, "ERROR"End Sub。
VB6.0开发WinCC的OPC客户机实例关键词:OPC VB6.0 WinCC上位机WinCC是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发的居于世界领先地位的工控软件。
WinCC即WINDOWS CONTROL CENTER(视窗控制中心)。
WinCC 是一个功能强大的全面开放的监控系统,既可以用来完成小规模的简单的过程监控应用,也可以用来完成复杂的应用。
在任何情况下WinCC都可以生成漂亮而便捷的人机对话接口,使操作员能够清晰地管理和优化生产过程。
它集成的OPC(OLE for process control)服务器使得过程数据可由其它应用程序(OPC客户机)访问。
WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll), 在WINCC的帮助中,有Siemens OPC DAAutomation 2.0使用的简略帮助,但说得不很详细,我在使用VB6.0开发WinCC的OPC客户机中碰到不少问题,现一并写出来,与大家共享。
希望起到抛砖引玉,举一反三的作用。
一、开发实例背景:我厂包装机BE电气改造后,由原来了单片机、直流调试板、温度控制板等控制改为带有通讯端口PLC、变频器、温控仪等控制,上位机监控软件为WinCC。
在控制系统中,变频器、温控仪的控制信号通过串口、OPC客户机接入上位机WinCC,报警信号接入PLC。
其硬件组态结构如图一OPC开发要求:①通过WinCC建立内部变量Tag(1),Tag(2),Tag(3),Tag(4)……;在视图窗口建立相应了I/O输入输出域。
通过更改WinCC中I/O域的值,来设定或更改变频器、温控仪等的参数。
②通过VB开发了串口驱动程序,读取变频器、温控仪等的参数,通过OPC控件把值传递给WinCC中的I/O域。
二、VB6开发WinCC的OPC客户机具体步骤:1、打开VB6,建立如图二窗体:其中,文本框组Text4.text为写入WinCC内部变量名称;文本框组Text5.text为显示相应了WinCC内部变量值;文本框组Text8.text为写入期望了WinCC内部变量值。
利用visual basic所开发的opc客户端应用程序主要采用自动化通信接口和opc服务器程序实施通信。
而opc基金会提供的opc 自动化接口 opcdaauto.dll动态链接库集成了所有用于对opc服务器进行访问的对象、属性和方法,为利用visual basic开发opc 客户端应用程序提供了极大方便。
程序设计时,opc客户程序应当首先生成opc服务器支持的opc对象,然后再使用opc对象支持的属性和方法,实现对opc服务器的操作和访问。
opc数据访问对象主要包括opc服务器(opcserver)、opc组集合(opcgroups)、opc组(opcgroup)、opc标签集合(opcitems)、opc标签(opcitem)、opc浏览器(opcbrowser)等几个部分。
程序设计时,要首先在visual basic环境下选择对opc automation 2.0接口的引用,此时,opc对象会被自动添加到正在开发的工程项目中,然后,再根据需要建立这些对象的实例并利用其属性和方法来实现对opc服务器的访问。
对opc服务器的访问主要包括声明opc对象实例、连接opc server、添加标签变量、读写opc服务器(同步/异步)、断开连接等几个步骤。
opc对象实例的声明主要包括对opc服务器、opc组集合、opc 组、opc标签集合、opc服务器句柄的声明及程序所需要的其它实例的声明。
opc客户端和opc server的连接主要靠调用opc服务器对象实例的connect方法函数来完成,例如,连接本地计算机dassidirect和rslinx opc server 的代码分别为connect ("archestra.dassidirect.1")和connect("rslinx opc server")连接网络远程计算机(ip地址为10.144.45.45)上dassidirect 和rslinx opc server 的代码分别为connect ("archestra.dassidirect.1", "\10.144.45.45")和connect ("rslinx opc server", "\10.144.45.45")需要说明的是当进行远程opc连接时,必须在远程计算机上运行dcomcnfg程序,并启动该计算机opc服务器的dcom服务。
VB与西门子S7-300的OPC通信一、通过STEP7软件建立一个新项目OPC,在项目中添加SIMATIC 300站和一个PC 站,其中PLC站中第四个槽安装的CP343模块。
PC站的第一个槽为OPC SERVER ,第三个槽为 IE GENERAL,然后在NETPRO下配置PLC和PC站的网络连接:(注意:是在PC站上新建的网络连接,连接类型选的S7连接)二、通过station configurator软件配置本机的PC站(要和STEP7中配置的相同),然后把PLC和PC站都下载下去(注意:下载PC站的时候要把S7ONLINE (STEP7)--->;PC internal(local))。
三、打开OPC Scout,(Start>;SIMATIC>;SIMATICNet>;OPC Scout),双击&ldquo;OPCSimaticNet&rdquo;在随之弹出的&ldquo;ADD Group&rdquo;对话框中输入组名,本例命名为&ldquo;OPC&rdquo;。
点击OK 确认;双击已添加的连接组(OPC),即弹出&ldquo;OPC Navigator&rdquo;对话框,此窗口中显示所有的连接协议。
双击&ldquo;S7&rdquo;,在PC Station 组态NetPro 中所建的连接名会被显示(S7connection_1)。
双击此连接,即可出现有可能被访问的对象树(objects tree),在PLCCPU 中已存在的DB 块也会出现以上完成的OPC SERVER部分的配置。
四、用VB编写了OPC客户端应用程序。
主要程序代码如下:在VB中引在VB中还要引用 siemens opc daautomation 2.0(1) 连接OPC服务器Dim WithEvents MyOPCServer As OPCServer ‘定义服务器对象变量MyOPCServer Dim WithEvents MyOPCGroup As OPCGroup ‘定义OPC组对象变量MyOPCGroup Set MyOPCServer = New OPCServerMyOPCServer.Connect " OPC.SimaticNET" ‘连接SIMATICNET 的OPC服务器(2) 添加OPC组对象Set MyOPCGroup=MyOPCServer.OPCGroups.Add("Group1")‘添加OPC组对象MyOPCGroup.IsSubscribed= True‘设置该组数据为后台刷新MyOPCGroup.IsActive = True‘设置该组为激活状态MyOPCGroup.UpdateRate=1000‘设置数据刷新时间为1000(3) 添加数据项Dim abItemIDs() As String‘项标识符Dim abClientHandles() As Long‘客户端句柄Dim abServerHandles() As Long‘服务器端句柄Dim abErrors() As LongDim i As LongItemCount=3abItemIDs(1) = " S7:[S7 connection_1]IB1"abItemIDs(2) = " S7:[S7 connection_1]MB1"abItemIDs(3) = " S7:[S7 connection_1]QB1"for i=1 t0 3abClientHandles(i) = i‘给客户端句柄赋值NextMyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors‘添加数据项操作(4) 同步数据读写OPC数据存取有同步方式和异步方式两种。
用VB编写OPC客户端访问WinCC的实现
秦胜利;王锬
【期刊名称】《安徽冶金》
【年(卷),期】2011(000)004
【摘要】介绍了OPC自动化接口在VB中的使用,并详细描述如何利用WinCC提供的OPC服务器接口编写客户应用程序的步骤。
【总页数】3页(P33-35)
【作者】秦胜利;王锬
【作者单位】马鞍山钢铁股份有限公司
【正文语种】中文
【中图分类】TP3
【相关文献】
1.VB6.0编程客户端访问组态王OPC服务器的实现方法 [J], 邹治军
2.VB中利用OPC访问WinCC实现下位机实时报警 [J], 叶海涛;苏建元
3.通过OPC实现VB访问WINCC数据 [J], 吴晓蕾;李逸;胡国军;刘渤;张细兰
4.用VB编写OPC客户端程序实现数据共享的方法 [J], 李晓诗;赵志峰
5.VB环境下通过OPC接口访问WinCC数据的实现 [J], 李新军
因版权原因,仅展示原文概要,查看原文内容请购买。
OPC是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的。
O代表OLE(对象链接和嵌入),P (process过程),C (control控制)。
OLE已从面向对象重新定义为基于对象并更名为Active X。
OPC的使用是作为一个DCOM在使用,所以OPC客户端可以网络上任一计算机运行,但你必须配置DCOM的访问权限,如果你不想费神,把服务器与客户端都用相同的用户名与密码登录就成了。
如果想配置DCOM,请参看DCOM的配置。
RSlinx集成的OPC(OLE for process control)服务器使得过程数据可由其它应用程序(OPC客户机)访问。
RSlinx在安装时提供了OPC的客户端控件: Rockwell Software OPC Automation(C:\Program Files\CommonFiles\Rockwell\RsiOPCAuto.dll)这个控件就是我们在VB中要用到的控件。
一、OPC的连接先在工程中"引用" Rockwell Software OPC Automation,然后开始定义全局变量。
我们要首先定义OPC服务类型与计算机结点名。
定义OPC组与OPC标签组。
并定义OPC的标签数组与值数,注意,值数组一定要设为Variant。
Const ServerName = "RSLINX OPC Server" 'OPC的类型Const NodeName = "SMZ" '结点名,即计算机名Dim WithEvents MyOPCServer As OPCServer 'OPC服务Dim MyOPCGroups As OPCGroupsDim WithEvents MyOPCGroup As OPCGroup 'OPC组Dim MyOPCItems As OPCItems 'OPC标签组Dim ServerHandles() As Long '句柄Dim Errors() As Long '错误句柄Dim DataItem(100) As String '记录OPC的标签Dim DataValue(100) As Variant '存放OPC的标签的值Private Sub StartClient()在定义所有变量后,我们就要进行OPC连接了,要进行OPC连接之前,先要配置要访问的OPC标签名,我们DataItem 中加入相应的标签名,注意:这两个数组必须由1开始,不能由0开始。
热点追踪“变频调速技术”、“组态软件”、“PLC ”、“现场总线”培训班,10月开班!59OPC 技术介绍(六)本章介绍怎样利用微软的Visual Basic 开发OPC 自动化接口的客户应用程序。
这里介绍的应用程序使用OPC 数据访问自动化接口(版本2.0),进行同期方式和非同期方式的数据读取和写入。
◆ 建立一个Visual Basic 工程利用Visual Basic 开发OPC 应用程序时,实现OPC 自动化接口的OPC 包装DLL 是必须的。
这个OPC 包装DLL 一般应该是由OPC 服务器的供应商提供的。
Ÿ 启动Visual Basic首先启动Visual Basic ,新建一个Visual Basic 的工程。
请选择[标准 EXE]作为新建工程的类型(图1)。
图1 Visual Basic 工程的建立Ÿ 设置OPC 包装DLL因为在新建的Visual Basic 工程里OPC 包装DLL 还没有被注册,必须用下述方法对OPC 包装DLL 进行注册。
图2 引用的设置<设置方法>从Visual Basic 菜单里选择[工程(P)]-[引用(N)]。
在[可用的引用(A)]的一览表示中,请选择对应OPC 包装DLL 的文件名。
这里我们选择[OPC Automation 2.0](图2)。
设置了对OPC 包装DLL 的引用,我们就可以使用OPC 自动化对象了。
如果希望查看在工程内可以使用的COM 组件的时候,可以使用对象浏览器。
选择Visual Basic 菜单的[视图(V)]-[对象浏览器(O)], 可以显示对象浏览器的视窗。
如果已经设置了对OPC 包装的引用,那么对象浏览器左上角的列表框中应该已经包括了[OPC Automation]的选项(图3)。
图3 对象浏览器◆ 建立一个OPC 对象在Visual Basic 里,是以对象的单位对OPC 服务器进行访问。
OPC 自动化接口是由以下四种对象所定义。
OPC的VB例子Option ExplicitOption Base 1Private QOpcServer As OPCServerPrivate QGroups As OPCGroupsPrivate WithEvents QGroup As OPCGroupPrivate QItems As OPCItemsPrivate QItemServerHandles() As LongPrivate Sub Form_Load()On Error GoTo ErrorHandler'建立与OPC服务器的连接Set QOpcServer = New OPCServerCall QOpcServer.Connect("S7200.OPCServer") 'S7200.OPCServer是固定的OPC名称'建立一个数据群组Set QGroups = QOpcServer.OPCGroups ' Get OPCGroups Collection Object from QOPCSe rver' Set Default Properties for Group Collection' These Properties are used to set the Properies for new GroupsQGroups.DefaultGroupIsActive = 500 ' Set Default Group Update Rate to 500 msQGroups.DefaultGroupIsActive = False ' Set Default Group Active State to InactiveSet QGroup = QGroups.Add("QGroup1") ' Add a new Group to the Group Collection' Set Group PropertiesQGroup.IsSubscribed = True ' Enable CallbacksQGroup.UpdateRate = 100 '这个群组的刷新速度是100ms'往群组里添加要传送的地址单元Dim i As LongDim ErrorFlag As BooleanDim ItemObj As OPCItemDim ItemIDs(2) As StringDim ItemClientHandles(2) As LongDim Errors() As Long ' Array for returned Item related errorsErrorFlag = FalseSet QItems = QGroup.OPCItems ' Get OPCItems Collection Object from QOPCServer' Initialize the [IN] parameters for the Add Items call' ItemIDs -> ItemIDs of the Items to add' ItemClientHandles -> Client defined handles for the Items. The Server sends these handles in the CallbacksItemIDs(1) = "2,q1.0,bool" ' Read ItemId 1 from Text BoxItemIDs(2) = "2,VW10,Word" ' Read ItemId 2 from Text BoxItemClientHandles(1) = 1ItemClientHandles(2) = 2' [OUT] parameters are' ItemServerHandles -> Server defined handles for the Items. The client must use these handle s for all Read/Write calls' Errors -> Item related errors' Add Items to the GroupCall QItems.AddItems(2, ItemIDs, ItemClientHandles, QItemServerHandles, Errors)' Check Item ErrorsFor i = 1 To 2If Not Errors(i) = 0 ThenMsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCriticalErrorFlag = TrueEnd IfNext' Continue only if all Items SUCCEEDEDIf ErrorFlag ThenDim RemoveErrors() As LongDim RemoveHandles(1) As Long' Remove Succeede ItemsFor i = 1 To 2If Errors(i) = 0 ThenRemoveHandles(1) = QItemServerHandles(i)Call QItems.Remove(1, RemoveHandles, RemoveErrors)End IfNextEnd IfIf Not QGroup Is Nothing ThenQGroup.IsActive = TrueEnd IfExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "联接到OPC服务器", vbCritical, "Error"End SubPrivate Sub cmdWriteSync_Click()'On Error GoTo ErrorHandlerDim i As LongDim Values(2) As VariantDim Errors() As Long ' Array for returned Item related errors' Initialize the [IN] parameters for the SyncWrite call' Values -> Values to writeValues(1) = txtWriteVal1.Text ' Read Value 1 from Text BoxValues(2) = txtWriteVal2.Text ' Read Value 2 from Text Box' ItemServerHandles -> Server defined handles from the AddItems call' Write Values SyncronousCall QGroup.SyncWrite(2, QItemServerHandles, Values, Errors)' Check Item ErrorsFor i = 1 To 2If Not Errors(i) = 0 Then MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Error s(i)), vbCriticalNextExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "Writing Items Syncronous", vbCritical, "ERROR"End Sub' Callback from OnDataChangePrivate Sub QGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, Client Handles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)'On Error GoTo ErrorHandlerDim i As Long' Check ParametersFor i = 1 To NumItemsIf ClientHandles(i) > 0 And ClientHandles(i) < 3 Then' Values -> Values from read complete' Qualities -> Qualities of the valuesIf Qualities(i) = 192 ThentxtChangeVal.Item(ClientHandles(i) - 1).Text = ItemValues(i) ' Write Value to Text Box End IfElseMsgBox "DataChange Item " + Str$(i) + " has invalid Client Handle ", vbCriticalEnd IfNextExit SubErrorHandler:MsgBox Err.Description + Chr(13) + "OnDataChange", vbCritical, "ERRORCha"End SubPrivate Sub cmdExit_Click()Unload MeEnd Sub' Unload Form EventPrivate Sub Form_Unload(Cancel As Integer)Dim i As LongDim Errors() As Long ' Array for returned Item related errors' Remove Items from the GroupCall QItems.Remove(2, QItemServerHandles, Errors)' Check Item ErrorsFor i = 1 To 2If Not Errors(i) = 0 Then MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCriticalNextErase QItemServerHandles ' Erase Item Server Handle ArrayQGroups.RemoveAll ' Removes all GroupsSet QGroup = Nothing ' Delete OPCGroup ObjectSet QGroups = Nothing ' Delete OPCGroups Collection ObjectQOpcServer.Disconnect ' Disconnect from OPC ServerSet QOpcServer = Nothing ' Delete OPCServer ObjectEnd Sub。
为了方便用户使用组态王OPC SERVER的功能,对组态王的实时数据进行访问,组态王提供了KINGVEWCLIEN.dll供用户进行使用,方便了用户的编程。
此接口可以支持VB、VC、DELPHI(未进行测试)访问。
提供的接口如下:int StartCliend(char* node);//与组态王OPC SERVER建立连接//返回错误码int ReadItemNo();//得到组态王OPC中列出的项目总数//返回组态王OPC中列出的项目总数int GetItemNames(char* sName,WORD Index);//得到某个项目的名称//返回错误码,sName 将返回组态王的项目的名称,wItemId为用户写入的其要取的变量的索引号//其为ReadItemNo返回的范围内的某个数(0<Index<=ReadItemNo()) int AddTag(BSTR sRegName,WORD *TagId,WORD *TagDataType);//将某个项目添加如采集列中//返回错误码,sRegName是要加入采集的项目名称,TagId项目采集的标识号,TagDataType项目的数据类型int WriteTag(WORD TagId,BOOL bVal,long lVal,float fVal,char* sVal);//返回错误码,TagId为要采集项目的标识号,其他为设定的数值,用户将根据变量的类型设定数值int ReadTag(WORD TagId,BOOL *bVal,long *lVal,float *fVal,char* sVal);//返回错误码,TagId为要采集的变量的表示号,其他为返回的数值,用户将根据变量的类型读取int StopCliend();//断开与组态王OPC的连接//返回错误码//////////////////////////////////////////////////////////////////////////////////// 错误码列表// 0 成功// -1 OPC SERVER已经被非法关闭// -2 找不道OPC SERVER的PROGID// -3 连接OPC SERVER不成功// -4 枚举ITEMS错误// -5 OPC SERVER没有定义ITEMS// -6 内存分配错误// -7 在向GROUP中加入ITEMS时出现错误// -8 未使用// -9 读ITEMS时出现错误// -10 不能识别的数据类型// -11 读ITEMS的质量戳时出现错误// -12 想ITEMS中写入数据时出现错误// -13 用户添加变量的变量名错误// -14 用户读取的变量序号越界使用方法:以上提供的函数,在整个的调用的过程中有相应的次序和功能,用户需要先调用STARTCLIEND 函数,启动与组态王的连接,用户可以通过此函数的NODE 参数,来控制与哪台计算机的组态王进行连接。
用VB编写OPC客户端程序的方法
刘莉
【期刊名称】《工业控制计算机》
【年(卷),期】2005(18)5
【摘要】OPC为工业现场设备通信提供了标准,本文介绍了OPC技术的原理,简要介绍了如何用Visual Basic开发OPC客户端程序.
【总页数】2页(P5-6)
【作者】刘莉
【作者单位】淮安信息职业技术学院电气系,223001
【正文语种】中文
【中图分类】TP31
【相关文献】
1.OPC客户端程序开发 [J], 陈胜
2.基于VB的OPC客户端程序设计与应用 [J], 郭建明;隋永强;黄珍
3.用VB编写OPC客户端访问WinCC的实现 [J], 秦胜利;王锬
4.监控系统中OPC客户端程序设计与实现 [J], 赵宴辉;聂亚杰;刘二平;朱春来
5.用VB编写OPC客户端程序实现数据共享的方法 [J], 李晓诗;赵志峰
因版权原因,仅展示原文概要,查看原文内容请购买。
用VB编写OPC客户端程序实现数据共享的方法李晓诗;赵志峰【摘要】主要介绍了北营焦化厂厂级管理网从现场工业控制网上实时获取工艺数据的一种方法.并阐述了北营焦化厂备煤系统的OPC客户端程序的开发及应用.【期刊名称】《辽宁科技学院学报》【年(卷),期】2012(014)003【总页数】3页(P28-30)【关键词】OPC;ODBC;客户端;数据采集【作者】李晓诗;赵志峰【作者单位】本溪北营钢铁(集团)股份有限公司,辽宁本溪117017;本溪北营钢铁(集团)股份有限公司,辽宁本溪117017【正文语种】中文【中图分类】TP3111 OPC(OLE for Process Control)技术应用在企业自动化系统发展中,经常会遇到管理网需要从工业控制网上实时地获取工艺生产过程数据来满足管理不同需求的情况。
由于现场工业控制网上的DCS系统(集散控制系统)、PLC(可编程逻辑控制器)和其他智能仪器仪表通常来自不同的厂商,通讯协议不一致,甚至有些系统并不提供通讯接口,导致控制网与管理网之间数据的通讯受到限制。
因此,如何有效、可靠、实时和高速地从控制网中获取所需要的各种实时数据,是企业自动化实施过程中一个普遍关注的问题。
OPC技术的应用,提供了一种可以解决了上述问题的方案。
1.1 OPC服务器模型接口方式OPC对象有三个:服务器(OPC Server)、组(OPC Group)和项(OPC Item)。
OPC Server即OPC启动服务器,通过它获得其他对象和服务的起始类,并用于返回OPC Group类对象。
OPC Group存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。
OPC Item存储具体Item的定义、数据值、状态值等信息。
1.2 OPC服务器接口方式OPC数据存取规范分别定义了自动化接口和自定义接口两套接口标准。
使用VB等解释性编程语言的客户采用自动化接口访问OPC服务器。