预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

0引言随着计算机技能和数字信号处理技能的发展,人们可以用计算机HYPERLINK"http://www.vipcn.com"\o"下载软件"\t"_blank"软件替代传统的硬件实现的一些功能,将计算机硬件和软件有机的融合为一体,这就是所谓的虚拟仪器。近年来,世界各国的虚拟仪器公司开发了不少基于LabVIEW,Matlab,VC++,VB等虚拟仪器开发平台软件,当硬件操作的设备HYPERLINK"http://www.vipcn.com/xitonggongju/qudongxiazai/qudongxiazai_SoftTime_Desc_1.html"\o"驱动下载"\t"_blank"驱动改动时,软件开发人员须要修改大量的驱动程序来连接此设备,因此使得虚拟仪器开发平台开发难度大、通用性差。为此,提出了基于OPC技能的虚拟仪器,它是由硬件供应商和软件开发商之间建立一套完整的“准则”,只要遵循这套准则,数据交互对两者来说都是透明的,硬件供应商无需考虑运用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作流程。lOPC技能OPC(OLEProcessContro1)是OPC基金会组织倡导的工业控制和生产自动化领域中运用的硬件和软件的接口标准,以便有效地在运用和流程控制设备之间读写数据,具体的功能实现要由开发商根据须要自主的执行研究与开发。换句话说OPC规范是一套公共的软件标准,任何OPC开发人员所开发的OPC软件都要符合这个标准。OPC技能的特点可概括为如下3个方面:开放性(Openness)、产业性(ProdHYPERLINK"http://www.vipcn.com/wangluoruanjian/liaotiangongju/3790.html"\o"UC下载"\t"_blank"UCtivity)和“即插即用”的互联性(Connectivity),因此可以说,“OPC=Openness+Productivity+Connectivity”,这也是对OPC优点最概括的描述。因此OPC在短时间内取得了飞速的发展 基于VisualC#的OPC客户端实现[多图] 1.1OPCHYPERLINK"http://www.vipcn.com/wangluojishu/fuwuqi/fuwuqi_1.html"\o"服务器"\t"_blank"服务器的组成OPC标准采用C/S模式,OPC服务器负责向OPC客户端不断的提供数据。OPC服务器包括3类对象(Object):服务器对象(Server)、组对象(Group)和项对象(Item)。3类对象都包括一系列接口,联系如图1所示。 1.3OPC通信方式OPC规范规定了两种通信方式:同步通信方式和异步通信方式。同步通信时,OPC客户程序对OPC服务器执行读写操作时,OPC客户程序必须等到OPC服务器对应的操作全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态。如果有大量数据执行操作或者有大量OPC客户程序对OPC服务器执行读写操作,必然造成OPC客户程序的阻塞现象。因此同步通信适用于OPC客户较少,数据量较小时的场合。异步通信时,OPC客户程序对服务器执行读写操作时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以执行其他操作。当0PC服务器完成操作后再通知OPC客户程序。因此,相对于同步通信和异步通信的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。2OPC客户端程序的设计要领(1)安装OPC自动化接口服务。在.NET环境下,点击“项目”子菜单下,“添加引用”,在弹出的对话框COM中选中“OPCDAAutomationWrapper2.02”项,点击“确定”按钮,这样才能运用自动化接口的服务。(2)连接OPC服务器。本例中运用的OPC服务器名为“ICONICS.SimulatorOPCDA.2”。首先声明变量,这样才能触发事件(DataChange)来获取实时数据。连接不同的OPC服务器只要改动其服务器名称和OPC服务器所在的计算机名称即可。(3)添加组图片看不清楚?请点击这里查看原图(大图)。(5)OPC数据的读和写。对OPC服务器中的数据项数读可以通过group组的DataChange事件触发来读取。该事件有多个参数:其中:NumItems是指数据项的个数;ltemValues为数据项的数据;Qualities为数据项的品质;TimeStamps为数据项的修改时间;Cli—entHandles是数据项的标签索引,其所指的OPC标签的值在ItemValues(1)中,只有数据发生变化时才会触发该事件。也只会传输发生了变化的数据,没有变化的数据不会出现在本事件ItemValues中。运用C#事件处理机制,将Data