- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
OPC技术在LabVIEW 8.0 DSC模块中的运用
随着工业控制系统中计算机的引入,应用于自动工业控制的软件和协议也越来越纷繁复杂。但任何纷繁复杂的技术最终都要走向统一的标准,因此全世界各大工业控制厂商联手推出了OPC标准,专门用于自动化工业控制。伴随而来的就是支持OPC技术的各种组态软件,美国国家仪器公司NI也不甘落后,在2006年推出了最新的LabVIEW 8.0 DSC模块用以支持OPC技术。由于LabVIEW作为开发软件,它具有普通组态软件不可比拟的编程灵活性,因此在工业测试和自动化领域方面,LabVIEW 8.0及其DSC模块弥补了普通组态软件的致命缺陷。
1 OPC技术简介
OPC(OLE for Process Control——用于过程控制的OLE)是一个工业标准,它是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。传统的硬件与软件通讯都是直接在软件中编写自定义接口和驱动实现的,但是这样不仅价格昂贵而且硬件通用性不高。有了OPC技术作为通讯“中介”,这一切就变得很简单了。软件不再需要为每一种硬件都编写驱动,只需要做到的就是能与符合工业标准的OPC Server通讯。硬件提供商也不必再担心众多软件是否能支持他们的硬件,他们只需要提供支持硬件的符合标准的OPC Server就行了。因此OPC技术避免了重复开发,极大的降低了成本,加速了软件开发速度并提高了效率。如今OPC规范已经被上百家公司的上千个项目所应用。管理该标准的组织是OPC基金会。该基金会由1996的五家公司建立,如今全球已经有360个成员在促进和应用这项技术。
OPC的具体优势:
1) 采用标准的Windows体系接口,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
2) OPC规范以OLE/DCOM为技术基础,而OLE/DCOM支持TCP/IP等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。
3) 采用OPC规范,便于系统的组态,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。
2 LabVIEW 8.0 DSC模块简介
LabVIEW是一个业界领先的工业标准软件工具,用于开发测试、测量和控制系统。它是专为工程师和科学家而设计的直观的图形化编程语言。它将开发软件和各种不同的测量仪器硬件及计算机集成在一起,建立虚拟仪器系统,以形成用户自定义的解决方案。经过20年的演变和改进,在基于PC的测量自动化领域,LabVIEW确立了其主导地位,并成为业界的事实标准。最新推出的LabVIEW 8包含上百种新特性,更新力度超过任何一个前版本。其附加的DSC(Datalogging and Supervisory Control) 数据记录与监控模块专为SCADA系统设计。能轻松的与OPC Server通讯,也能生成自己的OPC Server。此外还有很多SCADA常用功能,例如基于配置的警报和事件,应用程序的用户级安全机制,分布式监测和控制的图形化开发,实时与历史数据追踪,内置联网便于与第三方设备的数据共享和集成,分布式数据记录的联网数据库等。由于DSC模块能与LabVIEW开发环境无缝集成,因此基于LabVIEW 8.0 及其DSC模块开发的SCADA系统能充分利用LabVIEW强大的数据处理与分析功能,具有传统SCADA组态软件无可比拟的优势。
图1 基于OPC Server和LabVIEW 8.0 DSC模块的SCADA系统结构示意图
3通过LabVIEW 8.0 DSC模块访问OPC Server
通过LabVIEW与OPC Server进行通讯有3种方法:1)通过ActiveX自动化接口实现对OPC Server的访问;2)通过NI的DataSocket技术实现与OPC Server的通讯;3)利用其DSC模块与OPC Server通讯。其中前两种方法只适合与少量点数的OPC标签连接。因为需要编写多段重复代码或是通过For循环来读写,因此当点数增多时会降低读写速度并让系统变得不利于维护。通过DSC模块内建的与OPC Server通讯的机制,编程就变得相当容易了,而且其编程规模和读写速度写不受点数限制。因此这里只详细介绍第三种方法,如果读者对前两种方法也感兴趣的话请参考LabVIEW 8.0用户手册。
3.1 OPC Server的安装与配置
大部分需要计算机采集控制的硬件设备提供厂商都为其设备提供了OPC Server。目前不少OPC Server供应商甚至开发了与ODBC数据源连接的OPC Server,用户通过它可以通过访问OPC Server来访问数据库。目前大部分的OPC Server都是在Windows下运行,也有少数的OPC Server可以在Linux下运行。按照提供商提供的手册安装就行了。由于采用了DCOM技术,通常情况下网络上其它计算机也能访问你的OPC Server。但是如果你的操作系统是WinXP SP2,你就必须做一些相应的设置才行,具体请参考相关文献。
大部分OPC Server都采用XML配置文件进行相关配置,例如硬件地址,相关参数等。配置好后,重新启动计算机,OPC Server作为Windows的服务在计算机启动时自动启动。使用任何一种OPC client都能实现对OPC Server的访问,浏览OPC标签信息。例如NI免费提供Server Explorer(可以在NI网站上免费下载)。
3.2与OPC标签建立连接
通过LabVIEW 8.0 DSC模块与OPC标签的连接方法与前版本完全不同。LabVIEW 8.0引入了共享变量的概念。共享变量可以与本地或网络上任何一台电脑上的OPC标签绑定。当绑定好后,用户只需要把共享变量当作普通的变量一样操作就可以了,而不需要知道这个共享变量的底层到底在和哪台电脑的哪个OPC标签通讯。
与OPC标签的绑定非常简单。
1) 新建一个LabVIEW Library。
2) 在library里新建一个I/O Server,在建立过程中可以浏览到本机或网络上有哪些OPC Server可以连接,然后将I/O Server与你需要连接的OPC Server绑定。
3) 在Library中新建一个共享变量与I/O Server中列出的OPC 标签绑定。与此同时还可以设定该共享变量的一些其它属性,例如:是否存储,报警上下限,变量描述,用户获取权限等。
图2利用共享变量事件特性读取OPC标签数据
但是该事件只能在OPC标签的值发生变化时才激发,很多的OPC标签还用Quality来标志其当前值是否正确。例如当OPC Server与硬件连接中断时,其标签的Quality将显示为“bad”。因此当OPC标签的值由“good”变为“bad”时,上面的程序并不能发现。为解决这个问题,我们只有通过DataSocket的办法来实时读取其Quality的状态。如图3所示。
4.利用LabVIEW建立自己的OPC Server
当用户开发出自己的硬件设备或者某些硬件厂商不提供OPC Server时,编写该硬件设备的OPC Server就很重要了。但是专用的OPC Server开发工具一般价格昂贵,而且难于使用。而通过LabVIEW生成自己的OPC Server非常简单。我们可以首先通过LabVIEW来与硬件设备的驱动直接进行通讯。然后将读取的数据放在OPC Server中作为一个个的OPC标签发布即可。 [p]
图4 模拟水箱界面
接着在Library中新建一个I/O Server与模拟水箱VI连接。在建立过程中,LabVIEW自动获取模拟水箱程序中的控制控件和显示控件作为备选的OPC标签,用户可以选择其中的几个控件作为OPC标签。例如:Tank Volume、Input Flowrate、Tank Valve可以作为可读可写OPC标签,Tank Level,Tank Output Flowrate可以作为只读的OPC标签。I/O Server建立好后就可以作为一个真正的OPC Server运行了,在任何一种OPC client工具中都能浏览到这些标签。从此,你不必再为每一个用户都提供硬件驱动发愁了,你只需要提供一个符合标准的OPC Server就行了。
5.总结
综上可见,通过LabVIEW 8.0 DSC模块可以非常容易的访问OPC Server,此外还能方便的生成自己的OPC Server。由于DSC模块能与LabVIEW无缝结合,因此利用LabVIEW 8.0强大的编程特性和丰富的硬件接口实现的SCADA系统能够实现通用组态软件无法实现或很难实现的一些功能,例如复杂逻辑处理,数据分析等。笔者参与的国家重点工程—北京正负电子对撞机二期工程中的慢控制系统就大量的采用了OPC与LabVIEW相结合的技术,不仅降低了成本,而且提高了开发速度和降低了维护难度。随着LabVIEW 8.0及其DSC模块的推广,相信它将会再计算机分布式监控领域扮演越来越重要的角色。