OPC应用技术简介_第1页
OPC应用技术简介_第2页
OPC应用技术简介_第3页
OPC应用技术简介_第4页
OPC应用技术简介_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OPC应用技术简介OPC应用技术简介OPC应用技术简介xxx公司OPC应用技术简介文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度OPC是ObjectLinkingandEmbedding(OLE)forProcessControl的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的,OPC基金会负责OPC规范的制定和发布。OPC提出了一套统一的标准,采用CLIENT/SERVER模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口的SERVER程序,软件厂商按照OPC标准访问SERVER程序,即可实现与硬件设备的通信。OPC全称是OLEforProcessControl,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。COM是ComponentObjectModel的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用VisualBasic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(DistributedCOM)。通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automationinterface);自定义接口(Custominterface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。OPC规范简介由OPCTaskForce制定的OPC(OLEforProcessOPC是ObjectLinkingandEmbedding(OLE)forProcessControl的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的,OPC基金会负责OPC规范的制定和发布。OPC提出了一套统一的标准,采用CLIENT/SERVER模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口的SERVER程序,软件厂商按照OPC标准访问SERVER程序,即可实现与硬件设备的通信。OPC全称是OLEforProcessControl,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。COM是ComponentObjectModel的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用VisualBasic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(DistributedCOM)。通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automationinterface);自定义接口(Custominterface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。OPC规范简介由OPCTaskForce制定的OPC(OLEforProcessControl)规范于1996年8月正式诞生了,随着1997年2月Microsoft公司推出Windows95支持的DCOM技术,1997年9月新成立的OPCFoundation对OPC规范进行修改,增加了数据访问等一些标准,OPC规范得到了进一步的完善。“OPC基于Microsoft公司的DistributedinterNetApplication(DNA)构架和ComponentObjectModel(COM)技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。”OPC基础委员会主席DaveRehbein是这样描述的OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口,OLE自动化标准接口。通常在系统设计中采用OLE自动化标准接口。OLE自动化标准接口,及采用OLE自动化技术进行调用,其技术为上节所述的OLE自动化技术。OLE自动化标准接口定义了以下三层接口,依次呈包含关系。OPCServer:OPC启动服务器,获得其他对象和服务的起始类,并用于返回OPCGroup类对象;OPCGroup:存储由若干OPCItem组成的Group信息,并用于返回OPCItem类对象。OPCItem:存储具体Item的定义、数据值、状态值等信息。由于OPC规范基于OLE/COM技术,同时OLE/COM的扩展远程OLE自动化与DCOM技术支持TCP/IP等多种网络协议,因此可以将OPC客户、服务器在物理上分开,分布于网络不同节点上。OPC规范可以应用在许多应用程序中,如它们可以应用于从SCADA或者DCS系统的物理设备中获取原始数据的最低层,它们同样可以应用于从SCADA或者DCS系统中获取数据到应用程序中。实际上,OPC设计的目的就是从网络上某节点获取数据。图的客户/服务器关系图同样描述了OPC在SCADA系统的应用。采用OPC规范设计系统的好处在进行新型微机远动系统的研制中,各个计算机以及各个模块的数据交换应该按照OPC规范进行。这样做有以下好处:OPC规范以OLE/DCOM为技术基础,而OLE/DCOM支持TCP/IP等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。OPC按照面向对象的原则,将一个应用程序(OPC服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。OPC实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置以及,使得系统的应用范围更广。采用OPC规范,便于系统的组态化,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。OPC技术的应用由于OPC技术的采用,使得可以以更简单的系统结构、更长的寿命、更低的价格解决工业控制成为可能。同时现场设备与系统的连接也更加简单、灵活、方便。因此OPC技术在国内的工业控制领域得到了广泛的应用,主要应用领域如下:1)数据采集技术。OPC技术通常在数据采集软件中广泛应用。现在众多硬件厂商提供的产品均带有标准的OPC接口,OPC实现了应用程序和工业控制设备之间高效、灵活的数据读写,可以编制符合标准OPC接口的客户端应用软件完成数据的采集任务。2)历史数据访问。OPC提供了读取存储在过程数据存档文件、数据库或远程终端设备中的历史数据以及对其操作、编辑的方法。3)报警和事件处理。OPC提供了OPC服务器发生异常时,以及OPC服务器设定事件到来时向OPC客户发送通知的一种机制,通过使用OPC技术,能够更好的捕捉控制过程中的各种报警和事件并给予相应的处理。4)数据冗余技术。工控软件开发中,冗余技术是一项最为重要的技术,它是系统长期稳定工作的保障。OPC技术的使用可以更加方便的实现软件冗余,而且具有较好的开放性和可互操作性。5)远程数据访问。借助Microsoft的DCOM(分散式组件对象模型)技术,OPC实现了高性能的远程数据访问能力,从而使得工业控制软件之间的数据交换更加方便。OPC技术在工业控制领域应用中的作用OPC技术对工业控制系统的影响及应用是基础性和革命性的,简单地说,它的作用主要表现在以下几个方面:首先,OPC解决了设备驱动程序开发中的异构问题。随着计算机技术的不断发展,用户需求的不断提高,以DCS(集散控制系统)为主体的工业控制系统功能日趋强大,结构日益复杂,规模也越来越大,一套工业控制系统往往选用了几家甚至十几家不同公司的控制设备或系统集成一个大的系统,但由于缺乏统一的标准,开发商必须对系统的每一种设备都编写相应的驱动程序,而且,当硬件设备升级、修改时,驱动程序也必须跟随修改。同时,一个系统中如果运行不同公司的控制软件,也存在着互冲突的风险。有了OPC后,由于有了统一的接口标准,硬件厂商只需提供一套符合OPC技术的程序,软件开发人员也只需编写一个接口,而用户可以方便地进行设备的选型和功能的扩充,只要它们提供了OPC支持,所有的数据交换都通过OPC接口进行,而不论连接的控制系统或设备是哪个具体厂商提供。其次,OPC解决了现场总线系统中异构网段之间数据交换的问题。现场总线系统仍然存在多种总线并存的局面,因此系统集成和异构控制网段之间的数据交换面临许多困难。有了OPC作为异构网段集成的中间件,只要每个总线段提供各自的OPC服务器,任一OPC客户端软件都可以通过一致的OPC接口访问这些OPC服务器,从而获取各个总线段的数据,并可以很好地实现异构总线段之间的数据交互。而且,当其中某个总线的协议版本做了升级,也只需对相对应总线的程序作升级修改。第三,OPC可作为访问专有数据库的中间件。实际应用中,许多控制软件都采用专有的实时数据库或历史数据库,这些数据库由控制软件的开发商自主开发。对这类数据库的访问不像访问通用数据库那么容易,只能通过调用开发商提供的API函数或其它特殊的方式。然而不同开发商提供的API函数是不一样的,这就带来和硬件驱动器开发类似的问题:要访问不同监控软件的专有数据库,必须编写不同的代码,这样显然十分繁琐。采用OPC则能有效解决这个问题,只要专有数据库的开发商在提供数据库的同时也能提供一个访问该数据库的OPC服务器,那么当用户要访问时只需按照OPC规范的要求编写OPC客户端程序而无需了解该专有数据库特定的接口要求。第四,OPC便于集成不同的数据,为控制系统向管理系统升级提供了方便。当前控制系统的趋势之一就是网络化,控制系统内部采用网络技术,控制系统与控制系统之间也网络连接,组成更大的系统,而且,整个控制系统与企业的管理系统也网络连接,控制系统只是整个企业网的一个子网。在实现这样的企业网络过程中,OPC也能够发挥重要作用。在企业的信息集成,包括现场设备与监控系统之间、监控系统内部各组件之间、监控系统与企业管理系统之间以及监控系统与Internet之间的信息集成,OPC作为连接件,按一套标准的COM对象、方法和属性,提供了方便的信息流通和交换。无论是管理系统还是控制系统,无论是PLC(可编程控制器)还是DCS,或者是FCS(现场总线控制系统),都可以通过OPC快速可靠的彼此交换信息。换句话说,OPC是整个企业网络的数据接口规范,所以,OPC提升了控制系统的功能,增强了网络的功能,提高了企业管理的水平。最后,OPC使控制软件能够与硬件分别设计、生产和发展,并有利于独立的第三方软件供应商产生与发展,从而形成新的社会分工,有更多的竞争机制,为社会提供更多更好的产品。OPC作为一项逐渐成型的技术已得到国内外厂商的高度重视,许多公司都在原来产品的基础上增加了对OPC的支持。由于统一了数据访问的接口,使控制系统进一步走向开放,实现信息的集成和共享,用户能够得到更多的方便。OPC技术改变了原有的控制系统模式,给国内系统生产厂商提出了一个发展的机遇和挑战,符合OPC规范的软、硬件也已被广泛应用,给工业自动化领域带来了勃勃生机。ItemIDTheItemIDisthefullyqualifieddefinitionofadataitemintheserver,commonlyreferredtoastheWHAT.Nootherinformationisrequiredtoidentifythedataitemfortheclienttobeabletoread/writevalues.TheItemdefinition(ItemID)usedintheOPCITEMDEFandelsewhereisanull-terminatedstringthatuniquelyidentifiesanOPCdataitem.Thesyntaxoftheidentifierisserverdependent(althoughitshouldincludeonlyprintableUNICODEcharacters)anditprovidesareferenceor`key'toan`item'inthedatasource.TheitemisanythingthatcanberepresentedbyaVARIANTalthoughitistypicallyasinglevaluesuchasananalog,digitalorstringvalue.Forexample,anitemsuchasFIC101mightrepresentanentirerecordsuchasaFieldbus,HartFoundationorProfiBusdatastructure.SuchbehaviorisspecificallyallowedbutnotrequiredbyOPC-thereturnofsuchstructuresisconsideredtobevendorspecificbehavior.Alternatelymightrepresentoneattributeofarecordsuchastheprocessvalue.Thiswouldprobablytaketheformofadoublewhichcouldbeusedbyanyclient.Asanextremeexample,sincethesyntaxoftheitemIDisserverspecific,additionalinformationsuchasCounts,EngineeringUnitsScalingandSignalconditioninginformationcouldbeembeddedinthedefinitionstring(althoughthisisnotrecommended).Examples:AserverwhichsupportsaccesstoanexistingDCSmightsupportasimplesyntaxsuchas""AserverthatsupportslowlevelaccesstoaPLCmightsupportsyntaxsuchas"::40001;0,4095,,+"开发OPC客户端程序时,首先应该生成OPC服务器支持的OPC对象,然后就可以使用OPC对象支持的属性和方法,对其进行各种操作。这样使得客户程序可以像使用自己支持的数据和功能一样,去使用服务器对象支持的数据和功能。在Visual

Basic

里,是以对象为单位对OPC服务器进行访问的。通过OPC自动化服务器的对象模型,可以得知OPC自动化接口由以下四种对象所定义。1OPCServer服务器对象OPCServer的一个实例,OPC服务器自动含有一个OPC组集合对象,并可在其基础上生成一个OPC浏览器对象。OPCServer服务器对象在使用其它OPC对象前必须生成,也就是说在引用其他对象之前必须先创建OPCServer。OPCServer对象提供了对数据源访问和通信的方法,其提供了“Connect”方法来连接OPC自动化服务器。主要的属性有:StartTime(只读属性,服务器启动运行的时间)、CurrentTime(只读属性,返回服务器显示的当前时间)、LastUpdateTime(对于本OPC应用程序的最后数据更新时间)、MajorVersion(只读属性,OPC服务器的主版本号)、MinorVersion(只读属性,OPC服务器的次版本号)、Bandwith(只读属性,返回OPC服务器的不敏感区的百分比)、ServerState(只读属性,返回服务器的运行状态,这个属性是比较重要的,方便客户端程序查询服务器的状态,从而达到排除故障的目的)、ServerName(只读属性,返回客户程序所要连接的服务器名,也就是OPC服务器的ProgID)、ServerNode(服务器所在计算机名或者计算机的IP,用于连接远程的计算机)等。主要方法有:GetOPCservers(获得己经注册的OPC服务器的程序标识符,即ProgID)、Connect(用来建立与OPC数据存取服务器的连接)、Disconnect(断开与服务器的连接)、CreatBrowser(创建OPC浏览器的对象)等。事件:只有一个ServerShutDown(关闭服务器,这个事件在服务器即将关闭之前发生,OPC服务器以此通知OPC客户程序预告即将关闭,OPC客户程序应该在接到此事件通知后,立即清除所有的OPC组并断开与OPC服务器的连接)。2OPCGroups组集合对象OPC组的容器,包含所有客户端创建的OPCGroup对象的自动化集合。这个对象的用途是添加、清除和管理OPC组主要的属性有:DefaultGroupIsActive(新添加的OPC组的活动状态的默认值。默认初始值是活动状态)、DefaultGroupUpdateRate(新添加的OPC组的默认数据更新周期,默认初始值是1000毫秒)、DefaultGrouPDeadband(新添加的OPC组的默认不敏感区的默认值,即能引起数据变化的最小数值百分比,默认值是0%)、DefaultGroupLocaleID(新添加的OPC组区域标识符的默认值)、DefaultGroupTimeBias(新添加的OPC组的时间偏差的默认值)等。主要方法:Item(OPC组集合的默认方法。返回由集合索引指定的OPC组对象)、Add(在OPC组集合对象中添加一个组对象)、GetOPCGroup(返回指定的OPC组)、RemoveAll(为服务器关机作准备,删除所有组和标签)、Remove(删除一个指定的组)、ConnectPublicGroup(连接到公共组)等。事件:AllGroupsDataChange(由多个OPC组的数据变化而引发的事件)。3OPCGroup组对象OPC组对象,OPCGroup的一个实例,它包含自身的信息,同时向OPCItems对象提供数据获取服务,它自动含有一个Items集合对象,允许客户端来组织它们需要访问的数据。OPCGroup可以作为一个单元来进行激活或停止激活操作。主要属性:Name(OPC组的名称)、IsPublic(判断是否公共组)、IsActive(控制组的激活状态。只有活动状态的OPC组才进行定期的数据更新)、IsSubscribed(控制组的订阅状态)、ClientHandle(客户句柄是由客户端程序指定的用于识别某个OPC组的长整型数。当进行数据访问或询问OPC组状态时,服务器将这个数值和结果一起返回给OPC客户程序)、TimeBias(数据采样时间的时间偏差值,用于调整设备时间和OPC服务器时间的偏差)、DeadBand(不敏感区,只有数据变化超过此不敏感区时,服务器才触发数据变化事件发生)、UpdateRate(数据更新周期)、OPCItems(OPC组的默认属性,OPC标签集合对象)。主要方法:SyncRead(同步读OPC组内单个或多个OPC项的数据值、质量标志和采样时间)、Syncwrite(同步写入OPC组内单个或多个OPC项的数据值)、AsyncRead(异步读)、Asyncwrite(异步写)、AsyncRefresh(触发数据变化事件发生,刷新OPC组内所有活动的OPC标签的数据。结果有数据变化事件DataChange返回)等。主要事件:DataChange(在OPC组内任何OPC项的数据值或质量标志变化时触发的事件)、AsyncReadComplete(异步读结束时发生的事件)、AsyncWriteComplete(异步写结束时发生的事件)等。4OPCItems项集合对象OPCItems项集合对象也就是标签集合对象,是OPC项对象的容器,自动化客户程序创建的OPCGroup对象所包含的所有OPCItems对象的自动化集合。属性:Parent(返回所属的OPC组对象)、DefaultRequestedDataType(添加OPC项时,默认的要求的数据类型。初始值是控制设备的固有数据类型,既是VT_Empty)、DefaultAccessPath(添加OPC项时,默认的数据访问路径。初始值是空)、DefaultIsActive(添加OPC项时,默认的激活状态,初始值是真)、Count(集合对象的固有属性。OPC项集合中的OPC项数)。方法:Item(返回OPC标签集合中由集合索引指定的OPC标签)、GetOPCItem(返回OPC项集合中由服务器句柄指定的OPC项)、Addltem

(在OPC项集合中添加新的OPC项)、Remove(删除指定的项)、Aalidate(检查项创建的有效性)、SetActive(分别设置项为活动或非活动状态)、SetClientHandles(设置OPC项的客户句柄)、SetDataTypes(设置OPC项要求的数据类型)。5OPCItem项对象OPC项对象表示与OPC服务器内某个数据的连接。各个项包含了数据值、质量标志以及采样时间。数据值的类型为VARIANT。主要属性:ClientHandle(客户句柄是由客户端程序指定的用于识别某个OPC组的长整型数。当OPC组事件发生时,服务器将这个客户句柄和结果一起返回给OPC客户程序)、ServerHandle(服务器句柄是有OPC服务器设置的用于识别某个OPC标签的一个全局唯一长整型数)、AccessPath(返回OPC客户程序指定的访问路径)、AccessRights(返回OPC项的访问权)、ItemID(返回识别这个OPC项的标识符)、IsActive(用以控制OPC项的活动状态)、RequestedDataType(获取项的值的数据类型)、Value(返回从OPC服务器读取的最新数据值)、Quality(返回从OPC服务器读取的最新数据值的质量标志)、TimeStamp(时间戳)等。主要方法:Read(从服务器读取OPC项的数值)、Write(向服务器写入OPC项的数值)。6OPC浏览器对象OPC浏览器对象OPCBrowser是OPC服务器名称空间的枝和叶的集合,可以浏览服务器配置中项的名字,一个OPCServer对象实例中只能有一个OPCBrowser对象的实例。浏览器功能是选用功能,OPC服务器不支持浏览器的时候,即使执行CreateBrowser也不生成这个对象。主要属性:Organization(OPC服务器的名称空间的类型,有平面型和树型两种类型)、Filter(使用ShowBrancher或ShowLeafs方法时的浏览对象过滤器,使用这个过滤器可以缩小被浏览的名称范围)、DataType(使用ShowLeafs方法时,希望浏览的标签的数据类型)、Count(浏览结果中的浏览标签数)。主要方法:Item(返回浏览结果中按集合索引ItemSpecifier指定的对象)、ShowBranches(将现在位置下的所有符合过滤条件的枝加入到浏览结果中)、ShowLeafs(将现在位置下的所有符合过滤条件的叶加入到浏览结果中)、MoveUp(向现在位置的上一层移动)、MoveToRoot(向名称空间的最上层移动)、MoveDown(向现在位置的下一层移动)、MoveTo(向浏览器的绝对位置移动)、GetItemID(由浏览标签的名称返回OPC标签的标识符)。Visual

Basic程序刚开始运行时就已经自动初始化COM库,用New关键词生成OPC服务器对象,获得OPC服务器对象初始接口的指针,通过接口指针就可以调用该接口的方法。在Visual

Basic

中,如果要调用其它接口的方法,可以通过执行一个Set操作实现。当不再使用接口指针时,在Visual

Basic

中,引用在其作用域外会自动释放,也可以显式地把它设置为“Nothing”。程序结束时,Visual

Basic可以自动取消COM初始化。也就是说用Visual

Basic

编写OPC客户端程序时,一定要先建立一个服务器对象,然后才能根据OPC服务器的ProgID来连接OPC服务器,实现从客户端启动OPC服务器,最后添加组、添加项等操作。读写数据时,OPC服务器提供了同步和异步两种方法。同步的方式客户端必须等待返回的结果,效率很低,此种方式一般在故障诊断时使用。异步的方式使客户端可以在访问数据后继续下一步操作,在结果返回时,OPC服务器会通过IOPCDataCallback通知客户端,这种方式访问效率高,但客户端必须实现IOPCDataCallback接口。在OPC自动化接口中,是通过OPCGroup事件来实现异步读取数据。规范定义的OPCGroup事件包含如下四个事件:Datachange事件在服务器方数据发生变化时由服务器方激发;AsyncReadcomplete事件在异步读操作完成时由服务器方激发;AsyncWritecomplete事件在异步写操作完成后由服务器方激发;AsyncCancelcomplete事件在取消操作时(取消某一个异步读或写操作)由服务器方激发。其中Datachange是实现数据订阅的主要事件,客户端在OPC服务器IConnectionPointContainer中注册客户端接收器,当满足一定的条件时,OPC服务器通过IOPCDataCallback返回结果,激发相应的事件来通知客户端程序做相应的处理。当通信完毕,客户端需要退出访问时,必须断开与OPC服务器的连接,释放所有的内存和接口。如果OPC服务器程序自行退出,可以通过激发客户程序的OPCServer对象事件ServerShutDown来通知OPC客户端程序。我写了篇WORD文档的,但是发不上去,只能用文字简单介绍下了:最近上论坛老发现有人在询问VB如何通过OPC通讯方式连接PLC,下面以西门子PLCS7-300为例做个说明。一、通过STEP7软件建立一个新项目OPC,在项目中添加SIMATIC300站和一个PC站,其中PLC站中第四个槽安装的CP343模块。PC站的第一个槽为OPCSERVER,第三个槽为IEGENERAL,然后在NETPRO下配置PLC和PC站的网络连接:(注意:是在PC站上新建的网络连接,连接类型选的S7连接)二、通过stationconfigurator软件配置本机的PC站(要和STEP7中配置的相同),然后把PLC和PC站都下载下去(注意:下载PC站的时候要把S7ONLINE(STEP7)--->;PCinternal(local))。三、打开OPCScout,(Start>;SIMATIC>;SIMATICNet>;OPCScout),双击“OPCSimaticNet”在随之弹出的“ADDGroup”对话框中输入组名,本例命名为“OPC”。点击OK确认;

;双击已添加的连接组(OPC),即弹出“OPCNavigator”对话框,此窗口中显示所有的连接协议。双击“S7”,在PCStation组态NetPro中所建的连接名会被显示(S7connection_1)。双击此连接,即可出现有可能被访问的对象树(objectstree),在PLCCPU中已存在的DB块也会出现以上完成的OPCSERVER部分的配置。四、四、用VB编写了OPC客户端应用程序。主要程序代码如下:

(1)连接OPC服务器

DimWithEventsMyOPCServerAsOPCServer‘定义服务器对象变量MyOPCServer

DimWithEventsMyOPCGroupAsOPCGroup‘定义OPC组对象变量MyOPCGroup

SetMyOPCServer=NewOPCServer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论