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开发。这种开发方式是最可以学习到东西的。但需要有一定的基础,而且需要对英文有一定的认识度。主要涉及的知识有一下几点。

  1. 有一定的C/C++编程经验----代码是一定要写的
  2. 能应用VC开发环境------没有屠龙刀怎么能行了
  3. 掌握一定的COM知识-----进阶的东东
  4. 阅读相关OPC开发文档-----葵花宝典
  5. 开发-------------自己杀的猪肉才好吃
  6. 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开发的几大境界的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  2. 《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  3. 基于第三方开源库的OPC服务器开发指南(4)——后记:与另一个开源库opc workshop库相关的问题

    平心而论,我们从样例服务器的代码可以看出,利用LightOPC库开发OPC服务器还是比较啰嗦的,网上有人提出opc workshop库就简单很多,我千辛万苦终于找到一个05年版本的workshop库源 ...

  4. 基于第三方开源库的OPC服务器开发指南(3)——OPC客户端

    本篇将讲解如何编写一个OPC客户端程序测试我们在前文<基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署>一篇建立的服务器.本指南的目的是熟悉OPC服务器的开发流 ...

  5. 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署

    前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代理/存根文件,然后就是写一个OPC客户端测试一下我们的服务器了.对于第一项工作 ...

  6. GPRS RTU设备OPC Server接口C# 实现

    通过本OPC Server程序接口可为用户提供以OPC标准接口访问远程GPRS/3G/以太网 RTU设备实时数据的方式.从而方便实现GPRS/3G/以太网 RTU设备与组态软件或DCS系统的对接.本程 ...

  7. Atitit.软件开发的几大规则,法则,与原则Principle v3

    Atitit.软件开发的几大规则,法则,与原则Principle  v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...

  8. 【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献

    转自:http://www.cnblogs.com/gispeng/archive/2008/07/24/1250116.html [ArcGIS Server 开发系列]Flyingis六大系列讲座 ...

  9. 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 ...

随机推荐

  1. CF1030A 【In Search of an Easy Problem】

    题目巨简单,主要是给大家翻译一下 给n个数,其中存在1就输出HARD,否则输出EASY,不区分大小写 #include<iostream> #include<cstdio> u ...

  2. NOIP2015 D2T3 运输计划

    拿到题目的第一眼 首先这是一棵n个节点的树(别说你看不出来) 然后对于树上的m条链我们可以选取树上的唯一一条边使它的边权变为0 求处理后最长链的长度 20分 m=1好啦,好像可做一眼望去全是水 只需求 ...

  3. (五)动态SQL

    第一节:if条件 第二节:choose,when和otherwise条件 第三节:where条件 1.自动加上where: 2.如果where子句以and或者or开头,则自动删除第一个and或者or: ...

  4. (二)Jsoup 查找 DOM 元素

    第一节: Jsoup 查找 DOM 元素 getElementById(String id) 根据 id 来查询 DOM getElementsByTag(String tagName) 根据 tag ...

  5. 一键开关VS的release模式优化

    因为我们公司的项目规模非常大了,如果日常调试使用debug模式的话,每次调试启动都要非常长的时间,因此大多数人使用release关优化的方式来进行日常开发.但是因为持续集成的存在,上传的代码要求是开启 ...

  6. 常用SQL Server 语句

       常用SQL语句大全 1.//创建数据库 CREATE DATABASE DBName 2.//删除数据库 DROP DATABASE DBName 3.//备份SQL SERVER --- 创建 ...

  7. Java学习(正则表达式、Date类、DateFormat类、Calendar类)

    一.正则表达式 1.概念:英语:Regular Expression,在代码中常简写为regex.正则表达式,是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串. ...

  8. 多线程-TaskExecutor-使用Demo

    BasicExecute.java package com.jef.executeTest; public abstract class BasicExecute extends Thread { @ ...

  9. day7 面向对象class()学习

        面向过程 VS 面向对象     编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓 ...

  10. linux如何连接移动硬盘

    下载第三方插件的地方: http://www.tuxera.com/community/open-source-ntfs-3g/ 这是具体教程: http://hellopyl.blog.51cto. ...