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

  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,希望能更同仁讨论。

时间: 2024-10-02 10:53:16

OPC Server开发的几大境界的相关文章

OPC学习开发记录(C#):OPC客户端【开篇】

OPC客户端 1.前言 思前想后,还是写下来实在一点,一来可以对自己的学习开发结果进行总结,二来可以锻炼自己表达能力,如何能够将意思表达清楚.博客园真的没有认真做做记录,也不会排版,丑的一比.关于OPC开发的,从零慢慢开始学习(谁不是呢),从简单的开始,OPC客户端是怎么使用的问题,站在用户(相对)的角度,也是比较简单的一部分,易从这一部分入手.根据网上的源码,我很快就自己开发了一个将就能用的OPC客户端,主要目的还是掌握OPC的结构和用法,为以后OPC服务器开发做铺垫.本篇为记录开篇,新手上路

Oracle WebLogic Server开发权威指南 目录

http://www.cnblogs.com/lauleoi/p/3864309.html http://www.cnblogs.com/lauleoi/p/3864330.html http://www.cnblogs.com/lauleoi/p/3864329.html http://www.cnblogs.com/lauleoi/p/3864326.html http://www.cnblogs.com/lauleoi/p/3864318.html http://www.cnblogs.c

linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3(Linux version 2.6.32-279.el6.x86_64) gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 本次配置 Nginx 1.5.8 Apache 2.4.7 php 5.3.26 目的 构造WEB前端技术架构.web前端的部署结构技术全然

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

Atitit.软件开发的几大规则,法则,与原则Principle  v3 1.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里氏替换原则22.3. 设计模式六大原则(3):依赖倒置原则22.4. 设计模式六大原则(4):接口隔离原则22.5. 设计模式六大原则(5):迪米特法则22.6. 设计模式六大原则(6):开闭原则23. S.O.L.I.D原则(oo fp)33.1. Single Responsibility P

mac下server开发环境配置

分类: server开发2014-01-06 19:01 605人阅读 评论(0) 收藏 举报 mac下的server开发我总共看了两种方式: 一.php的方式: mac下自带了apache和php,如何打开呢? 1. apache的使用方式: 启动: sudo apachectl start 获取版本号: sudo apachectl -v 关闭: sudo apachectl stop 重启: sudo apachectl restart 在浏览器中输入localhost,就可以看到It W

Atitit.软件开发的几大规则,法则,与原则。。。attilax总结

Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计模式六大原则(3):依赖倒置原则 2 1.4. 设计模式六大原则(4):接口隔离原则 2 1.5. 设计模式六大原则(5):迪米特法则 2 1.6. 设计模式六大原则(6):开闭原则 2 2. 面向对象的S.O.L.I.D原则 2 2.1. Single Responsibility Princip

opc客户端开发备忘录

最近研究PC和PLC通讯,晚上睡觉冒出一些想法,觉都没睡好.于是早上起来写个备忘,纯粹是个人想法. 以三菱PLC和PC通讯举例,我个人三菱PLC用的最多.OPC服务器选用三菱自家的MX OPC SERVER,网上可以下载到6.05版本,感兴趣的网友自己搜下就能找到. 打算用C#作为上位机,想了几种方案.静态是我个人想的词,是预先定义好,需要持续通讯的意思. 1.opc服务器静态,opc客户端静态 opc服务器定义所有通讯用到的标签,opc客户端激活所有项. 2.opc服务器静态,opc客户端动态

0701-spring cloud config-简介、Config Server开发、Config Client开发

一.概述 参看地址: https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_spring_cloud_config https://gitee.com/itmuch/spring-cloud-book 1.1.为什么需要统一管理配置 集中管理.不同环境不同配置.运行期间动态调整配置.自动刷新 默认都是配置在配置文件中.数据库等中 1.2.简介 主要有两种分布式配置Zookeeper.Co

Modbus库开发笔记之三:Modbus TCP Server开发

在完成了前面的工作后,我们就可以实现有针对性的应用了,首先我们来实现Modbus TCP的服务器端应用.当然我们不是做具体的应用,而是对Modbus TCP的服务器端应用进行封装以供有需要时调用. 这里我们不涉及TCP的协议,这部分与Modbus没有必然联系,我们只是在其应用层运行Modbus协议而已. 对于Modbus TCP的服务器我们需要实现几个功能:首先是对接收到客户端命令进行解析,我们只实现前面提到的8中常用的功能吗的支持.其次在解析完成后,我们要实现对应各种功能码的操作.具体架构如下