数据通信
OPC(OLE for Process Control)是微软公司的对象链接和嵌入技术在过程控制方面的应用,为工业自动化软件面向对象的开发提供一项统一的标准。OPC的目的是为现场设备或数据库中的大量数据源之间的通信提供一种标准的通信机制。
OPC技术是国外几十年的软件技术和工业自动化技术的完美结 合,凝聚了业界总结出的经验和教训,对OPc的支持,肯定会使自己 的产品上一个档次,它给工业控制系统中软硬件系统的集成带来了一 场革命,它代表了过程控制系统通信标准的发展方向
OPC(OLE for process control)作为一种工业标准,通过OPC标准,不同制造商的设备和应用程序能以统一的方式相互结合。
目前,工业控制中的各种仪器、仪表、PLC和单片机系统等都提供了与计算机的通讯协议,为计算机控制系统的设计提供了极大的方便。但是,由于不同的厂商提供的协议不同,甚至同一厂商的不同类型设备和计算机通信的协议也不相同,所以要与这些设备交换数据,编写接口程序就比较复杂。近年来,OPC技术的出现很好地解决了这一难题,OPC技术采用开放式数据交互,能使来自不同公司的软硬件组成一个有机的整体。它传输可靠,速度快,而且适于大批量数据交换,目前已经成为工控行业新的通讯标准,广泛应用在工控行业的各个领域。OPC技术完全支 持分布式应用和异构环境下应用程序之间软件的无缝集成和互操作性,给工业控制系统应用程序间的通信建立一套符合工业控制要求的通信接口规范,使控制软件可以高效、稳定地对硬件设备进行数据存取操作,系统应用软件之间也可以灵活地进行信息交互,极大的提高了控制系统的互操作性和适应性。
SCADA ( Supervisory Control And DataAcquisition)系统,即数据采集与监视控制系统,作为生产过程和事物管理自动化最为有效的计算机软硬件系统之一,大多采用 Client/Server(客户/服务器)模型。由于开发商和设备的不同,各种自动化系统都设计了各自不同的接口,这样不同开发商设计生产的产品就不能直接相互通信。
随着 OLE/COM(对象链接与嵌入/组件对象模型)和 DCOM(分布式组件对象模型)的产生和发展,OPC (OLE for Process Control — - 用于过程控制的OLE)成为工业控制过程中的一个标准,它是许多世界上领先的自动化和软硬件公司与微软公司合作的结晶。这个标准定义了 Microsoft 操作系统下在基于PC 的客户机之间交换自动化实时数据的方法。OPC规范定义了一个工业标准接口,这个标准使得 COM技术适用于过程控制和制造自动化等应用领域。OLE/COM 是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC 规范了接口函数,不管现场设备以何种形式存在,客户以统一的方式去访问,从而保证软件对客户的透明性。
传统的过程控制系统是一对一的系统,任何一种HMI(Human Machine Interface)等上位监控软件或其它应用软件(如趋势图软件、数据报表等)在使用某种硬件设备时都需要开发专用的驱动程序。每增加一个新的硬件种类,N 个软件需开发 N 个新的设备驱动程序。每增加一个软件,M 类硬件设备需要开发 M个驱动程序。新增应用软件或者硬件设备带来的只会是驱动程序种类的迅速增长。如图 1 所示。
基于 OPC 技术的过程控制系统则可以完美地解决传统方式的上述问题。任何一种设备只需要提供一种驱动就可以供任何软件系统使用。每增加 1 个新的应用软件不需要另外开发硬件设备的驱动程序;每增加 1 个新的硬件设备只需要开发 1 个新设备的驱动程序。其基本系统结构如图 2 所示。
OPC 技术的实现包括两个组成部分,OPC 服务器部分及 OPC 客户应用部分。OPC 服务器是一典型现场数据源程序,它收集现场设备数据信息,通过标准 OPC 接口传送给 OPC 客户端应用。OPC 客户应用是一典型的数据接收程序,如 HMI、SCADA 等。OPC客户应用通过 OPC 标准接口与 OPC 服务器通信,获取 OPC 服务器的各种信息。符合 OPC 标准的客户应用可访问来自任何生产厂商的 OPC 服务器程序。
把 OPC 技术运用到 SCADA 系统中,利用 OPC技术开发标准的 OPC 服务器来代替过去的驱动程序,并将各种应用软件设计成 OPC 的客户,这样在 OPC客户和 OPC 服务器之间进行通信和相互操作。而用户通过现场总线很容易的将它们集成为完整的自动化系统。并且由于 OPC 规范基于 OLE/COM 技术,同时 OLE/COM 的扩展远程 OLE 自动化与 DCOM 技术支持 TCP/IP 等多种网络协议,因此可以将 OPC 客户、服务器在物理上分开,分布于网络不同节点上。按照软件的模块化设计思想,把数据处理部分作为OPC 数据服务器,协议转换部分作为 OPC 协议服务器。客户应用软件通过 OPC 提供给客户的标准接口进行数据访问,以便对 RTU(远程终端设备)进行监视和控制。其具体的实现原理如图 3。
OPC 服务器按照 OPC 数据访问用户接口标准(OPC data access custom interface standard)(2.04版) 和 OPC 数据访问自动化接口(OPC data access automation interface standard)(2.02 版)设计而成。协议处理可选用 Modbus,Lonswork,Jbus 等通信协议设计,并据需要增加不同协议的接口。数据库用来存放 OPC 服务器从 RTU 中采集的遥测、遥信、电能质量等信号,以及客户端下达的遥控、遥调信号等。客户端的应用程序完成数据的 SCADA 处理、图形分析、报表输出、事故追忆和报警处理等。工作时,下层的硬件设备按某种通信协议将实时数据传到服务器的高速缓冲存储器,协议服务器接到响应信息后进行通信协议的校验码校验,正确后,再按协议数据格式在数据块中对响应信息解析,去除无用信息后,将所需数据写入内存。数据处理服务器可以直接读取内存中的数据,处理后送入数据库。从而达到实时数据进行采集、监控的要求。另外,OPC 客户下达的命令,经相应的处理,送入数据库,由 OPC 数据处理服务器判断后进行相应的预处理,再进行协议转换,送入服务器的高速缓冲存储器,然后通过某种通信协议将命令送至硬件设备
随着 MIS(管理信息系统)和 GIS(地理信息系统)的发展,SCADA 系统要求与它们结合成功能更强大的系统。SCADA 系统与 MIS,GIS 结合最重要的一点是实现数据共享。传统的 SCADA 系统与它们结合,需要开发不同的数据接口,系统集成难以保证质量。采用OPC 技术后,结合变得很容易。这里SCADA,GIS,MIS 按 OPC 设计原理设计成 OPC 客户。借助服务器开发工具,OPC 数据服务器、协议服务器、历史服务器、报警服务器都很容易实现。根据现实需要,可以把这些服务器整合在一起或分布在不同的网络节点上,由 OPC 客户(SCADA,GIS,MIS)以统一的接口访问。整个原理图如图 4。
湖南某电厂厂级实时监视系统项目采用了 OPC技术,实现 SCADA,GIS,MIS 的无缝结合。OPC Server将采集到的实时数据送至本机的 SCADA 建立过程数据库,同时利用 OPC 采集器将当地 OPC Server 中的实时数据送至历史数据库;SCADA 所负责采集和处理的实时遥测、遥信、事项记录等可为整个系统的所有功能共享,保证了系统从底层的一体化;用户界面上系统把基于电子地图的空间查询、统计、分析、各种图形显示等集成在一起,可直接在地理图上进行调度操作、故障显示、网络拓扑动态着色等。真正做到了 SCADA/MIS/GIS 的一体化设计。
从上述可看出基于 OPC 技术的 SCADA 系统,最主要的实现 OPC 服务器。OPC 服务器定义了两种标准的 COM 对象,即 OPC Server 、OPC Group 对象。通过实现这两种标准的 COM 对象及相应接口,完成了 OPC 服务器的开发。目前,OPC 服务器开发工具在国际工业控制领域中使用已相当广泛,比较著名的供应厂商有 FactorySoft、Softing 等公司,但这些开发工具的价格十分昂贵。以下是一简单开发工具实例。
(1) 开发工具初使化 API
BOOL InitServerDLL(HINSTANCE hInstance, CLSID*pCLSID, UINT UpdateRate, CString vendorInfo, CString progId,CString versionId, CString description );
(2) 注册与注册删除 API
HRESULT RegisterOPC(void);
HRESULT UnRegisterOPC(void);
(3) 启动/停止 OPC 开发工具 API 及获取开发工具的运行状态 API
BOOL StartServerDLL()
BOOL StopServerDLL();
BOOL ServerDLLInUse();
(4) OPC 服务器变量写值 API
HRESULT WriteCallback( WRITEPROC lpCallback);
(5) 添加及删除数据变量 API
HANDLE AddTag(CString name,VARIANT value,BOOL readOnly);
BOOL RemoveTag(HANDLE hTag);
(6) 数据变量的更新 API
BOOL UpdateTag(HANDLE handle,VARIANT& var,WORD quality,FILETIME timeStamp);
全部0条评论
快来发表一下你的评论吧 !