OPC客户程序设计

简介: OPC客户程序设计

OPC客户程序设计

这里的客户程序设计主要是指客户程序中OPC接口部分的设计。客户程序本身可以完成很多复杂的数据处理、显示和控制等功能,但需要通过OPC接口部分访问OPC服务器,对现场数据进行存取。

在开发OPC客户程序前,要选择合适的开发环境,并对开发环境进行配置,如在Windows XP操作系统下用Visual C++开发客户程序前,要将OPC基金会提供的SDK包中的几个重要文件加载到应用程序中,包括“opccomn.h”(OPC公共接口定义头文件)、“opccomn_i.c”(OPC公共接口定义)、“opcda.h”(OPCDA规范2.0头文件)、“opcda_i.c”(OPC数据存取接口GUID),“opcda_cats.c”(OPC数据存取组件分类文件),这些主要给出了接口的定义等。“opcaaum”和“OPCEnum.exe”也是COM组件,用于枚举本地机,以及远程机上所有的OPC服务器。

OPC客户程序开发中首先要实现浏览OPC服务器的功能。客户程序需要创建OPC基金会提供的OPC服务器浏览器对象(OPCServerList),再通过该对象的IOPCServerList接口获得OPC服务器名称的列表。在此基础上,再创建OPC组对象、OPC项对象,确定数据访问接口方式并进行编程。

另外在客户程序中OPC接口部分如何与其他功能模块进行数据交换也是需要根据实际情况仔细考虑的。ServerList客户程序可以通过枚举注册表中包含OPC子键的程序名来浏览符合OPC数据存取规范1.0/2.0的服务器,但效率较低。OPC客户程序需要实现与OPC服务器进行交换的功能包括创建服务器对象、组对象,读/写数据等。设计时需要注意COM对象的引用计数问题、内存管理问题和处理错误返回代码问题。

由于一个OPC客户程序可能与多个OPC服务器相连,因此设计时也最好采用多线程,同时与多个OPC服务器程序进行交换以保证较高的通信效率。另外,客户程序中的OPC接口部分如何与其他功能模块进行数据交换也是需要根据实际情况仔细考虑的。


OPC软件工具包

由于开发OPC程序需要熟悉OPC规范和COM技术,而且符合同一OPC规范的服务器程序只是硬件接口部分不同,其余部分类似,因此,许多公司研制开发了OPC服务器的工具包软件。这些工具包将OPC对象和接口的实现封装起来,用户只需要开发与硬件相关的部分,并对界面进行简单设计。这些工具包还往往提供了与常用硬件连接的驱动程序,如与RS-232设备或以太网卡连接的I/O DLL。工具包的使用能提高OPC服务器程序的开发速度和质量。设计者不需过多了解OPC对象的实现细节,但是也必须对工具包本身比较熟悉。另外,由于工具包中某些实现部分是通过DLL的形式封装起来的,因而当用户需要增加某些特定功能时会受到一些限制。


互操作性测试

最初制定OPC规范的目的就是实现工控软件之间的无缝连接,提高控制系统的互操作性和适应性,因此OPC服务器和客户程序都需要进行互操作性测试。目前OPC基金会尚未制定权威的测试程序,也没有提供OPC软件产品的互操作性认证工作。但OPC基金会每年都在美国和欧洲举办两次互操作性测试研讨会,对来自OPC成员公司的服务器和客户程序进行测试。一些自动化厂商提供了测试OPC互操作性的工具。可以在相关网站上下载这些工具,并用它们对自己设计的OPC程序进行测试。另外,在OPC基金会的网站上也有关于互操作性的网页,对加入OPC基金会互操作研讨会的OPC产品,用户可以查找到能够与之连接的OPC服务器或客户程序。

相关文章
|
7月前
|
存储 监控 C++
OPC服务器与客户程序设计
OPC服务器与客户程序设计
|
7月前
|
XML 网络协议 安全
|
7月前
|
分布式计算 算法 网络协议
OPC的关键技术与体系结构
OPC的关键技术与体系结构
|
8月前
|
缓存 算法 网络协议
【网络编程】第2章(3) 客户软件的设计算法和实现技术
【网络编程】第2章(3) 客户软件的设计算法和实现技术
|
5天前
|
供应链 监控 安全
全面剖析:新页ERP系统不为人知的一面,以及系统的工作流程解析!
全面剖析:新页ERP系统不为人知的一面,以及系统的工作流程解析!
|
5G 网络架构 芯片
5G 标准的制定过程 | 带你读《5G 无线系统设计与国际标准》之三
ITU 在开发移动通信无线接口标准方面有着悠久的历史,包括制定 IMT-2000 和IMT-Advanced 在内的国际移动通信(IMT)标准框架,贯穿了整个 3G 和 4G 行业发展。
5G 标准的制定过程  | 带你读《5G 无线系统设计与国际标准》之三
|
7月前
|
架构师 测试技术
为什么有了《技术协议》,还要《产品需求规格说明书》
为什么有了《技术协议》,还要《产品需求规格说明书》
|
8月前
|
存储 C# C语言
居民身份证阅读器产品开发学习心得(再谈标准-软件-协议)
居民身份证阅读器产品开发学习心得(再谈标准-软件-协议)
53 1
|
8月前
|
前端开发 新制造
|
安全 5G 网络性能优化
无线接口 | 带你读《5G 无线系统设计与国际标准》之五
本节对物理层、数据链路层和网络层基本功能相关内容进行一些讨论。
无线接口  | 带你读《5G 无线系统设计与国际标准》之五