OPC(OLE for Process Control,用于过程控制的对象链接和嵌入)技术为解决工业客户机与各种设备间通讯而产生的一项工业技术规范和标准。OPC 技术规范是OPC 基金会制定的,它提供了统一的数据访问软硬件接口,将现场信号按照统一的标准与SCADA(监控与数据采集系统),HMI(人机接口)等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序,因此大大提高了控制系统的互操作性和适应性。
OPC DA规范是整个OPC协议族中的核心和基础,所有的其他OPC规范都以OPC DA规范为基础进行扩展而来。对于高敏感度的实时数据,将其从实时数据中分离,提出报警/事件的概念,制定了专门的OPC报警事件(OPC Alarm and Events)接口规范;对于面向趋势显示、历史分析、报表的数据,OPC制定了历史数据访问(OPC Historical Data Access)接口规范。其他的OPC规范还包括OPC安全处理(OPC Security)接口规范、OPC批处理(OPC Batch)接口规范,OPC XML数据访问(OPC XMLDA)规范,OPC数据交换(OPC Data Exchange)规范等。
OPC服务器初始化管理:通过调用InitOPCSvr(byte *pSvrCLSID,bool bExeSvr,DWord dwCoInit)来对的OPC服务器的CLSID、程序应用模型和初始化COM库的线程模式进行初始化设置。通过调用SetServerRate(DWord dwServerRate)设置OPC服务器端向客户端最快回调速率。通过调用SetVendorInfo(LPCWSTR lpVendorInfo, WORD wMajorVersion, WORD wMinorVersion, WORD wBuildNumber)设置Vendor及OPC服务器版本信息。
鉴于Windows在工控领域的成熟度和稳定性,以及Dot Net FrameWork的跨平台性,本文基于Dot Net4.0平台封装了OPC接口,编程实现了ModbusTCP通信协议以及良好的人机交互界面,通过了功能测试和性能测试,500ms轮询周期可稳定高效地读写千点设备数据,目前国内外SCADA系统中的OPC客户端接口可以利用本OPC轻松实现与北京世纪联信公司MultiBus-RTU等产品的互联通信。