没有合适的资源?快使用搜索试试~ 我知道了~
首页OPC DA服务器开发实战与客户程序指南
OPC DA服务器开发实战与客户程序指南
需积分: 16 5 下载量 6 浏览量
更新于2024-07-22
收藏 2.07MB PDF 举报
《OPCDA服务器与客户程序开发指南》是一部旨在深入解析OPC(开放平台通信)技术的实用手册,特别是针对服务器和客户端程序的开发过程。OPC是一种工业控制领域的标准,它允许不同制造商的设备之间进行数据交换,提高了系统的集成性和效率。该书由司纪刚撰写,作者在2002年首次接触到OPC,当时由于缺乏相关的开发资料,他不得不面对使用C++和COM(组件对象模型)的挑战,这使得开发工作变得复杂且充满摸索。 作者提到,早期他在中国工控网上分享了自己的经验和学习过程,这表明当时的OPC社区对于技术交流的需求是存在的。书中详细记录了作者从客户端程序的初次开发,到后来尝试并克服困难开发OPC服务器的过程。在这个过程中,作者面临的主要问题是COM的理解和使用,尤其是服务器端的连接点实现,这需要深入研究微软的官方文档(MSDN)并进行大量实践调试。 书中不仅是技术上的指导,还包括了作者个人的成长故事,如他对坚持的不确定和对第一次技术书籍创作的忐忑。作者承认书中有不少错误,但他希望通过这本书分享自己的经验,帮助更多开发者避免重复走过的弯路。此外,他还提到了技术支持网站http://www.opc-chi,这可能是读者获取更深入技术帮助的资源。 《OPCDA服务器与客户程序开发指南》是一本实用的教程,不仅涵盖了OPC的基础概念、服务器和客户端的开发步骤,还包含了作者在实际项目中的实战经验和心得,对于想要深入理解和应用OPC技术的工程师和开发者来说,具有很高的参考价值。
资源详情
资源推荐
OPC 服务器与客户程序开发指南 第 1 章 OPC 概述
IPersistFile 为任选(optional)接口,OPC 服务器提供商可根据需要选择
是否需要实现。其它接口为 OPC 服务器必须实现的接口。其中:
IOPCServerPublicGroups 接口用于对公共组进行管理。IPersistFile 接口允
许用户装载和保存服务器的设置,这些设置包括服务器通信的波特率、
现场设备的地址和名称等,这样用户就可以知道服务器启动和配置的改
变而不需要启动其它的程序。
IOPCBrowseServerAddressSpace 允许用户浏览服务器中的有用的组
员的数据,为用户提供 OPC 服务器各个组员的定义列表。IOPCCommon
接口是其它 OPC 服务器(例如 OPC 报警与事件服务器)也使用的接口。
通过该接口可为某个特定的客户/服务器对话(session)设置和查询本地
标识(LocateID)。这样,一个客户程序的操作将不会影响其它客户程序。
IConnectionPointContainer 接口服务器(OPC 服务器对象接口)支持可连
接点对象,当 OPC 服务器关闭时需要通知所有的客户程序释放 OPC 组
对象和其中的 OPC 组员,此时可利用该接口调用客户程序方的
IOPCShutdown 接口实现服务器的正常关闭。
IOPCServer 接口及成员函数主要用于对组对象进行创建、删除、枚
举和获取当前状态等操作。是 OPC 服务器对象的主要接口。接口及成员
函数定义为:
南京迈思德电气自动化有限公司 www.maiside.cn
15
OPC 服务器与客户程序开发指南 第 1 章 OPC 概述
图 1.7 标准 OPC 组对象及接口
其中:IOPCItemMgt 接口及成员函数用于 OPC 客户程序添加、删除
和组对象中组员等控制操作。IOPCGroupStateMgt 接口及其成员函数允
许 OPC 客户程序操作或获取用户组对象的全部状态(主要是组对象的刷
新率和活动状态,刷新率的单位为毫秒)。IOPCPublicGroupStateMgt 为
任选接口,用于将私有组对象(private group)转化为公有组对象(public
group),这个接口一般不用,在很多商业的 OPC 服务器中,此接口都
没有开发。可选接口 IOPCAsyncIO 和 IdataObject 接口用于异步数据传输
(在 OPC 数据访问规范 1.0 中定义,现在其功能已经被 IOPCAsyncIO2
和 IConnectionPointContainer 接口取代)。IOPCSyncIO 用于同步数据访
问。IOPCAsyncIO2 用于异步数据访问。这两个接口是数据访问规范进行
数据访问最重要的接口。
有关 OPC 服务器对象和 OPC 组对象的 COM 接口详细定义请看 OPC
南京迈思德电气自动化有限公司 www.maiside.cn
16
OPC 服务器与客户程序开发指南 第 1 章 OPC 概述
规范定义,除在开发实例中用到的 COM 接口,其它接口本文不再详述。
1.4 OPC同步异步通讯
OPCDA 规范规定了两种通讯方式:同步通讯和异步通讯。这两种通
讯方式与常见的串口同步通讯、异步通讯以及以太网的同步通讯、异步
通讯的功能差不多。
同步通讯时,OPC 客户程序对 OPC 服务器进行相关操作时,OPC
客户程序必须等到 OPC 服务器对应的操作全部完成以后才能返回,在此
期间 OPC 客户程序一直处于等待状态,如进行读操作,那么必须等待
OPC 服务器完成读后才返回。因此在同步通讯时,如果有大量数据进行
操作或者有很多 OPC 客户程序对 OPC 服务器进行读、写操作,必然造
成 OPC 客户程序的阻塞现象。因此同步通讯适用于 OPC 客户程序较少,
数据量较小时的场合。
异步通讯时,OPC 客户程序对服务器进行相关操作时,OPC 客户程
序操作后立刻返回,不用等待 OPC 服务器的操作,可以进行其他操作。
当 OPC 服务器完成操作后再通知 OPC 客户程序,如进行读操作,OPC
客户程序通知 OPC 服务器后离开返回,不等待 OPC 服务器的读完成,
而 OPC 服务器完成读后,会自动的通知 OPC 客户程序,把读结果传送
给 OPC 客户程序。因此相对于同步通讯,异步通讯的效率更高,适用于
多客户访问同一 OPC 服务器和大量数据的场合。
OPC 的异步通讯有四种方式:
·数据订阅,客户端通过订阅方式后,服务器端将变化的数据通过回
调传送给客户程序。
·异步读,返回操作结果和数据值。
南京迈思德电气自动化有限公司 www.maiside.cn
17
OPC 服务器与客户程序开发指南 第 1 章 OPC 概述
·异步写,返回操作结果,成功、失败。
·异步刷新,异步读所有 Item 的值
1.5 OPC服务器开发方式
OPC 服务器本身就是一个可执行程序,该程序以一定的速率不断地
同物理设备进行数据交互。服务器内有一个数据缓冲区,其中存有最新
的数据值,数据质量戳和时间戳。OPC 数据服务器的设计与实现是一个
较为复杂与繁重的任务,设计者既需要熟悉 OPC 规范,同时也必须掌握
相应的硬件产品特性。OPC 数据服务器大致可以分解为不同的功能模
块。OPC 对象接口管理模块,Item 数据项管理模块以及服务器界面和
设置等等。一个设备的 OPC Server 主要有两部组成,一是 OPC 标准接
口的实现,二是与硬件设备的通信模块。
虽然 COM 技术本质上具有语言无关性,可以用各种语言开发,但
由于最适合 COM 开发的语言仍然是 C++,因此一般都选择采用 Visual
C++进行开发。
目前用 Visual C++开发 COM 组件主要有三种方式:使用 COM SDK
直接开发 COM 组件;通过 MFC 提供的 COM 支持实现 COM 组件;通
过 ATL 来实现 COM 组件。
此外,目前国内外很多的工控软件厂商也推出了一系列的 OPC 快速
开发工具包,使用专门的 OPC 开发工具包,开发者只需具备基本的编程
基础即可快速上手,无需掌握 ATL ,COM/DCOM,也无需了解 OPC 技
术的细节,而且大多数的 OPC 开发工具都支持多种常用编程语言,如
VB,VC 等。
建议学生或有志向的开发人员可以尝试独立开发 OPC 服务器,如果
南京迈思德电气自动化有限公司 www.maiside.cn
18
OPC 服务器与客户程序开发指南 第 1 章 OPC 概述
南京迈思德电气自动化有限公司 www.maiside.cn
19
是公司使用,建议购买 OPC 服务器开发工具。
重点:何为 OPC?OPCDA 有哪些对象?OPCDA 有哪些接口?OPCDA
的通讯方式?OPCDA 的开发方式?
剩余210页未读,继续阅读
阳光浪子好
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功