欢迎来到天天文库
浏览记录
ID:35567973
大小:202.50 KB
页数:9页
时间:2019-03-29
《modbus tcp的opc服务器设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于ModbusTCP的OPC服务器设计由于目前广泛应用的DCS、FCS、SCADA等传统计算机测控系统使用的智能仪表设备、分布式I/O模块、PLC等设备来自于不同的生产商,而各生产商为了各自的商业利益,没有遵循统一的接口规范,造成了设备之间的通信异常复杂,难以实现现场设备与上层控制软件间的信息交互和各现场设备间的直接互联与互操作,因此限制了计算机测控系统开放性、通用性的提高。 OPC(OLEforProcessControl,用于过程控制的对象链接和嵌入)技术为解决工业客户机与各种设备间通讯而产生的一项工业技术规范和标准。OPC
2、技术规范是OPC基金会制定的,它提供了统一的数据访问软硬件接口,将现场信号按照统一的标准与SCADA(监控与数据采集系统),HMI(人机接口)等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序,因此大大提高了控制系统的互操作性和适应性。OPC技术1.OPC核心基础COM主要是为了实现软件复用和互操作,并且为基于Windows的应用程序提供统一的、可扩展的、面向对象的通讯标准,DCOM是COM技
3、术在分布式计算领域的扩展,支持在局域网、广域网甚至因特网上不同计算机的对象之间的通讯。OPC技术是COM在工业领域的一种特殊应用,实质上,OPC规范就是定义了一些用于数据访问、事件报警处理、历史数据访问等的COM对象和接口。2.OPCDA规范OPCDA规范是整个OPC协议族中的核心和基础,所有的其他OPC规范都以OPCDA规范为基础进行扩展而来。对于高敏感度的实时数据,将其从实时数据中分离,提出报警/事件的概念,制定了专门的OPC报警事件(OPCAlarmandEvents)接口规范;对于面向趋势显示、历史分析、报表的数据,OPC制
4、定了历史数据访问(OPCHistoricalDataAccess)接口规范。其他的OPC规范还包括OPC安全处理(OPCSecurity)接口规范、OPC批处理(OPCBatch)接口规范,OPCXML数据访问(OPCXMLDA)规范,OPC数据交换(OPCDataExchange)规范等。在过程控制系统的架构中,整个系统以OPCDA服务器为中心,OPCAE服务器从OPCDA服务器上得到实时数据,并根据客户的设置进行逻辑分析,产生相应的事件和报警信息发送到客户端;OPCHAD服务器将从OPCDA服务器上获得的实时数据按照客户要求进行
5、保存,便于客户端进行查询和分析数据的变化情况;OPCDX服务器将多个OPCDA服务器的数据组织起来,根据需要进行各个OPCDA服务器之间的数据交换:XMLDA服务器将OPCDA服务器上的数据转换成XML文本,并发布到互联网上,实现数据更大范围内的共享;OPCSecurity服务器则对整个数据层的数据加上了一层安全保护。实际应用中也主要是以OPCDA规范、OPCAE规范和OPCHDA规范应用最为广泛,尤其是OPCDA规范。因此通常提到的OPC服务器和客户端都是指OPCDA服务器和OPCDA客户端。ModbusTCPOPC服务器的设计与
6、实现1.总体结构本文实现的OPC数据访问服务器要完成对Modbus设备的数据采集功能,提供OPC数据存取规定的定制接口,同时通过数据存取区将设备数据与OPC接口联系来。如图1所示的OPC数据存取服务器总体结构,各个功能模块相对独立又相互协作,形成了一个有机整体。 图1:OPC数据存取服务器总体结构。本文设计的OPC数据存取服务器拥有独立的进程空间,与客户进行数据交换时稳定性高,同时提供了用户友好的人机界面,便于用户的自定义组态操作;硬件设备通讯模块实现了标准的MdbusTCP通讯协议,可以实现与标准的ModbusTCP设备无缝互联通
7、信,简单方便地获取硬件设备的过程数据。2.OPC接口模块OPC接口模块包括OPC对象部分和数据存储区部分,基于组件化的设计思想,可以设计成将COM和OPC技术细节隐藏,使得用户将开发OPC数据采集服务器的工作集中在特定的数据采集任务上。 本文采用了OPCMaster的OM_OPCSvr.dllOPC接口动态库工具来实现OPC接口模块部分,OM_OPCSvr.dll完全支持OPC数据存取规范的所有版本,包括最新的DA3.0版,它通过提供API函数完成OPC接口模块的任务。其结构如图2红色虚线所示。 图2:OPCMasterOPC接口
8、动态库工具结构。OPC服务器初始化管理:通过调用InitOPCSvr(byte*pSvrCLSID,boolbExeSvr,DWorddwCoInit)来对的OPC服务器的CLSID、程序应用模型和初始化COM库的线程模式进行初始化设
此文档下载收益归作者所有