OPC Server开发的几大境界
OPC server的开发相对OPC client 更加困难,OPC server 的开发主要应用COM技术,主要应用书籍为潘爱民写的《COM入门和应用》,大量的技术有很大的可重用性,在开发完一个程序后,基本上所有的东东都可以被重用,并且重新发布。
开发方式有三种:
1。简单的:就是应用已经有的如DDE to OPC 或串口 to OPC,modbus to OPC等软件把您的设备变成相关的OPC服务器。方法简单实用,费用合理快速,让你马上搭上OPC的快车。主要缺陷:你的设备必需是标准设备或更标准设备相容。这种方式比较适合产品多的厂家快速的转型,或提供OPC相关产品。
2.。一般的:应用第三方的开发包开发,这种方式相对来说减少了开发的难度,而且第三方有相应的技术支持,开发商专业做这种产品,产品有一定的稳定性。这种方式对开发包有依赖性,并且OPC服务器的稳定性依赖第三方的开发水平。本方法适于老板要求你马上开发出OPC产品是^_^,或者入门者使用。国内相关的开发包有华富慧通的和拓林的开发包。
国外的可参考:http://www.opcconnect.com/source.php上面的还可以,不过现在发现也有死链接,不过他的提示确实不错。
3。有难度的:应用COM开发。这种开发方式是最可以学习到东西的。但需要有一定的基础,而且需要对英文有一定的认识度。主要涉及的知识有一下几点。
- 有一定的C/C++编程经验----代码是一定要写的
- 能应用VC开发环境------没有屠龙刀怎么能行了
- 掌握一定的COM知识-----进阶的东东
- 阅读相关OPC开发文档-----葵花宝典
- 开发-------------自己杀的猪肉才好吃
- Hash表相关内容,主要用于大量节点时查询-----杀人于无形
基本就按照这个学习思路,对于前两项有太多的介绍了,在此不说了。
COM技术学习可参考VChelp http://www.vckbase.com/的COM内容,其他网站都是随便说说而已 。书籍可以看潘爱民的《COM原理和应用》,《COM本质论》等书籍。
OPC文档可以看Data Access Custom Interface 和 OPC Common Definitions and Interfaces。
源码可以参考lightopc 和 GE的源码,如果没有后面那个可以给我发email,好像网上不提供下载
了。
opc server源码下载 http://download.gongkong.com/file/2004/9/21/opccode.zip
GE的程序写得很好,结构清晰,但就是太老了,好在我们尊老爱幼。
lightOPC的程序相对太多了,感觉结构不是太好,有点乱,也可能是我没有深入把。
hash的东东我还没接触,不过数据结构都学过,快速定位。现在的内存这么大,实现大一点hash
表,就可以了,当然一个不错的hash函数是不可少的。这是开发过程中要考虑的。
至于开发是不是一定要用MFC和ATL就看你自己了,不用也可以,用也可以。感觉差别不是太大,如果不会就不用在学了,因为这两项并非那么容易掌握的。但COM必需要了解的。
对于这三种方法没有优劣之分,只有看你的需求如何。你付出的时间越多,相应的付出的Money越少,越灵活,学到的内容越多,这就是社会规律。在工控领域就是选择最适合的。
我现在在读源码开始开发自己的OPC Server,希望能更同仁讨论。
OPC Server开发的几大境界的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 基于第三方开源库的OPC服务器开发指南(4)——后记:与另一个开源库opc workshop库相关的问题
平心而论,我们从样例服务器的代码可以看出,利用LightOPC库开发OPC服务器还是比较啰嗦的,网上有人提出opc workshop库就简单很多,我千辛万苦终于找到一个05年版本的workshop库源 ...
- 基于第三方开源库的OPC服务器开发指南(3)——OPC客户端
本篇将讲解如何编写一个OPC客户端程序测试我们在前文<基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署>一篇建立的服务器.本指南的目的是熟悉OPC服务器的开发流 ...
- 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署
前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代理/存根文件,然后就是写一个OPC客户端测试一下我们的服务器了.对于第一项工作 ...
- GPRS RTU设备OPC Server接口C# 实现
通过本OPC Server程序接口可为用户提供以OPC标准接口访问远程GPRS/3G/以太网 RTU设备实时数据的方式.从而方便实现GPRS/3G/以太网 RTU设备与组态软件或DCS系统的对接.本程 ...
- Atitit.软件开发的几大规则,法则,与原则Principle v3
Atitit.软件开发的几大规则,法则,与原则Principle v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...
- 【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献
转自:http://www.cnblogs.com/gispeng/archive/2008/07/24/1250116.html [ArcGIS Server 开发系列]Flyingis六大系列讲座 ...
- Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程
原文:Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程 Red Gate系列之三 SQL S ...
随机推荐
- Git 撤销操作、删除文件和恢复文件
大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操 ...
- 可怕的线程上下文类装载器(TCCL)
在明天的 OSGi 2012 社区活动上,我将以"如何使你的类库在不依赖 OSGi 的情况下进行友好地 OSGi"为主题进行演讲.在演讲中我将会提及 Java 的线程上下文类加载器 ...
- VS2015的对象浏览器的使用
用vs开发这么久了,还是第一次用上对象浏览器的功能,第一次用有一点懵逼,记录一下. 这个图标是项目 这是代表类,下面可以展开看到基类 在右边可以看到这个类的方法和成员 这个代表结构体 同样的右边显示成 ...
- SCTF 2015 pwn试题分析
Re1 是一个简单的字符串加密.程序使用了多个线程,然后进行同步.等加密线程加密好了之后才会启动验证线程.这个题比较坑的是IDA F5出来的结果不对,不知道是不是混淆机制. 刚开始看的是F5后的伪代码 ...
- 【51nod】1149 Pi的递推式
题解 我们把这个函数的递归形式画成一张图,会发现答案是到每个出度为0的点的路径的方案数 这个可以用组合数算 记录一下P[i]为i减几次PI减到4以内 如果P[i + 1] > P[i],那么转向 ...
- windows7无声音,提示未插入扬声器或耳机的解决
windows7无声音,提示未插入扬声器或耳机的解决: http://jingyan.baidu.com/article/358570f6043a85ce4624fc47.html
- jenkins远程连接linux配置测试
由于配置原因造成一下错误错误: jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for co ...
- tomcat+serlet+eclipse环境按键
---恢复内容开始--- 1. tomcat环境搭建 安装向导:http://www.runoob.com/jsp/eclipse-jsp.html 1. tomcat启动一闪而过,需要配置 JAVA ...
- [leetcode DP]72. Edit Distance
计算最少用多少不把word1变为word2, 思路:建立一个dp表,行为word1的长度,宽为word2的长度 1.边界条件,dp[i][0] = i,dp[0][j]=j 2.最优子问题,考虑已经知 ...
- python opencv3 cornerHarris 角点检测
git:https://github.com/linyi0604/Computer-Vision 角点也是处在一个无论框框往哪边移动 框框内像素值都会变化很大的情况而定下来的点 如果框框水平方向上移动 ...