三言二语说说OPCClassic 点击:905 | 回复:6



OPC那点事

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2015年4月25日
发表于:2017-06-15 11:30:50
楼主

OPC Classic(也叫OPC DA) 有别于OPC UA,是最早也是被接受最多的OPC技术。注意,我这里说的的是技术,而不是说OPC协议,因为它本身并不是协议,而是基于COM技术提供了一套接口。COM技术也不是协议,它是建立在RPC协议上的。所以OPC Classic用的协议是RPC。微软的RPC是用TCP作为载体的,遵循的是DCE的RPC标准。


大家看一下官方开发包里的IDL文件(https://opcfoundation.org/developer-tools/developer-kits-classic/all-source-code-cc/),它们是OPC Classic的基础。在微软平台下所有接口都是执行了IUnknown,注定了OPC必然要使用COM技术。用微软的MIDL编译这些IDL文件后会产生你要使用的头文件,比如opcda.h,opccomn.h等等,你用VC++进行开发时需要使用这些头文件。如果你要使用C#开发,注意一下开发包里的OPC COM RCW项目。这是一个C#的项目,里面啥也没有只是定义了 —— 接口,在C#下的使用接口。仔细看下,C#里的接口和IDL文件里的是一模一样,比如COM的UUID,接口函数的参数类型等等。只有这样保证了早期客户用C++写的应用程序和后来用C#写的可以无缝调用,这也是叫RCW(Runtime COM Wrapper)的原因。


有了这二套接口(IDL和C#),你可以选用你适合的来开发。讲究速度的,用IDL(C++/COM);喜欢快速开发的用C#,只要在你的程序中执行这些接口就可以了。当然不愿从头开始的,参照官方开发包中的Sample程序,C++和C#的都有。



楼主最近还看过



alexlee99

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2016年12月15日
发表于:2018-02-27 16:02:52
1楼

感谢楼主 学习

空的用户名

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2018年7月23日
发表于:2018-07-23 15:41:48
2楼

OPC介绍,为什么资料这么少

OPC那点事

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2015年4月25日
发表于:2018-07-29 10:12:03
3楼

太老了,小鲜肉都没机会接触到。我写了几篇博文,


https://blog.csdn.net/kkus123/article/details/78994114


https://blog.csdn.net/kkus123/article/details/80296466


https://blog.csdn.net/kkus123/article/details/80296468


https://blog.csdn.net/kkus123/article/details/80474854

xgc

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 42回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2018年7月17日
发表于:2018-08-03 22:05:36
4楼

请问有关于OPCUA的资料吗?

山东鹰仪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 76回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2018年10月26日
发表于:2018-11-02 14:21:34
5楼

感谢楼主的分享,很感谢。。


sssaaa900

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 75回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2018年11月29日
发表于:2018-11-29 10:16:20
6楼

学习OPC中,有资源必须先下看看


热门招聘
相关主题

官方公众号

智造工程师