欢迎来到天天文库
浏览记录
ID:39466709
大小:63.50 KB
页数:6页
时间:2019-07-04
《OPC及OPC服务器的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OPC及OPC服务器的设计与实现上海自动化仪表股份有限公司技术中心张庆军摘要:简要介绍了OPC原理,OPC规范以及小型DCS控制系统OPC服务器的设计与实现。关键词:OPCCOMDCOMDCS一 引言OPC(OLEforprocesscontrol)是一个工业标准。它是由一些世界上占领先地位的自动化系统和硬件、软件公司与微软合作而建立的、满足开放性的和互操作性的接口标准。OPC标准的建立基于微软的COM技术规范,并由OPC基金会这个国际组织管理。OPC为不同厂商的硬件设备、软件和系统定义了公共的接口,使得过程控制和工厂自动化中的不同系统、设备和软件之间能够相互连接、
2、通信、操作。一般在控制系统中,包含过程画面的软件(如SCADA软件)在与现场设备通信的时候,常采用如下的方法:1,采用标准的通信协议,如profibus、modbus、HART、CAN总线等,因为监控管理软件与现场设备采用同样通信协议,所以监控管理软件不需要对现场设备的驱动程序。2,对于没有采用标准的通信协议的设备,监控管理软件需要在设备制造商的配合下为这些设备开发驱动程序。这种方式虽然执行效率比较高,但兼容性差,软件供应者必须对每一种接入的设备开发驱动程序,设备制造商也必须提供设备的通信协议。组态监控软件现场设备标准通信协议设备驱动程序标准通信协议设备驱动程序OP
3、C服务器OPC接口3,通过OPC这个开放协议与过程控制或其他系统软件进行通信,这种方式的优点在于:不管硬件设备是否使用标准的通讯协议,制造商只需提供一套OPC服务器,即可支持大部分的监控等软件,也不需要将自己的通信协议等细节提供给软件商。6控制系统中往往混合有多种协议,有符合不同的现场总线标准的设备,也有厂商使用自定义通信协议的设备,因而开放性很差。提供过程画面的软件在配置这样的系统的时候会非常困难,用户往往只能选择单一设备制造商提供的产品,但如果每个设备的通信协议都配置了OPC服务器,由OPC服务器封装这些协议,并通过标准的接口给提供过程画面的软件,这样提供过程画
4、面的软件就可以通过标准的OPC接口实现与设备的互连,对于软件来说就不需要实现诸多的通信协议,对于用户来说就可以提高选择产品的自由度。由上海自动化仪表股份有限公司技术中心开发的新一代全数字化小型DCS控制系统,在数据访问中使用了OPC技术,并开发了OPC服务器,使得该控制系统向各种管理系统开放。二COM/DCOM与OPCCOM(ComponentObjectModel,组件对象模型),是一种独立于语言的组件规范,并提供了实现交互的环境,可以生成二进制级别的可重用组件。实际上我们平时常见的OLE(objectlinkingandembedding,对象链接和嵌入)技术和
5、ActiveX技术都是以COM规范为基础的,用于过程控制中的OPC技术也是以COM规范为基础的。在OLE最初的版本OLE1中,组件程序和客户程序之间的通信没有采用COM接口技术,而是采用了DDE(dynamicdataexchange,动态数据交换)技术,DDE是建立在windows消息机制的基础上的,用于进程间的数据交换技术。由于DDE技术存在效率低、稳定性差、使用不便等缺点,在OLE技术发展到OLE2的时候,已经成为使用COM架构的软件系统。COM组件通过接口继承的方式分离了接口和实现,客户只能通过接口来访问COM组件的实现,实现的细节对于客户来说是不可见的。C
6、OM组件的接口是用128位的全球唯一标识符号(GUID,GloballyUniqueIdentifier)标识的。在OPC基金会提供的IDL文件中,定义了一系列由GUID标识的接口以及接口方法的原型。这样,现场设备的硬件厂家实现的OPC服务器组件,是基于OPC基金会定义的接口,并在组件中实现接口的方法;提供过程画面的软件厂商作为客户端,在访问现场设备的时候也是基于OPC基金会定义的接口,并通过OPC服务器对象实现的方法完成数据通信。COM组件还分为进程内组件和进程外组件,如果以DLL(动态连接库)的方式实现组件程序,就称为进程内组件,进程内组件程序运行在客户程序的地
7、址空间里,因此效率比较高,但其严重的错误会引起客户进程的崩溃。以EXE方式实现的组件程序是进程外组件,进程外组件程序和客户程序运行在各自独立的地址空间,稳定性较好。对于进程外组件,客户程序调用的是代理对象,通过LPC/RPC与进程外组件的存根代码进行通信。可以通过定义COM接口的IDL文件来实现代理程序和存根程序。OPC规范也考虑了跨进程调用的问题,提供了用于跨进程调用的Proxy(代理)DLL和Stub(存根)DLL,实现了对OPC客户程序的进程透明性。DCOM(DistributedCOM,分布式的COM),是COM的扩展,它可以支持不同计算机上的组件对象和
此文档下载收益归作者所有