日志档案

发表于 2007-4-10 17:11:29

9

标签: OPC 协议 病态

OPC——资本和崇洋豢养的病态协议

虽然目前大部分的厂商均支持OPC协议,并将其视为开放的标准。我曾长期从事实时数据库研发,并对OPC协议有深入研究。到目前为止,除了悲哀,只有一席不得不说的话。OPC真的很先进么?对于过去还一直靠编写串口协议研发非标产品的一些同仁来说,似乎刚刚感受到其带来的优点,为了接项目而编写一些OPC接口等等,也许感觉其神秘而高不可攀。其实,OPC就是基于微软DCOM技术的一套接口定义而已,在其设计的时候并没有考虑诸多工控必须的硬件条件因素,仅仅是将微软DCOM技术原封不动地搬到了工控领域而已。这几年,每年都有一些同仁公司联系SUPCON SOFT,希望能够获得解决OPC接口的问题,作为OPC基金会的首批会员和国内OPC基金会的倡导者,SUPCON对OPC十分了解,拥有大量可以开发OPC接口的程序员。但这并不意味着SUPCON会承接这些接口问题的服务。作为一个企业,其专业性在于提供自己专业的产品和核心价值所在的服务,而非其它。但这也从另一个侧面看出国人对OPC接口的误解和盲从。OPC真的很美么?从其应用至今,OPC带来的痛打过其带来的利益。DCOM是一套依赖微软技术极深的服务,仅一个OPC,就限制了目前工控领域操作系统的多样性。这也没什么,如果处于爱国,中国还真没有可圈可点的操作系统。但OPC的问题是在太多了:

※安全性配置复杂:对于对操作系统并不专业的工控人员,OPC的安全性配置已经过于专业和复杂了。这导致了好多实例中,OPC都不是通过系统启动后自激活的,而是需要有交互式用户去登录,这给系统带来了极大的不安全性。即每次系统重启都可能需要人为干预。虽然经过合理的DCOM配置可以避免,但不幸的是大部分工控从业同仁对此并不掌握;

※远程激活困难:如果两台计算机不再一个带有强烈微软技术特色的“域”里的时候,远程激活OPC就是一个噩梦,在很多项目上,仅这个配置就另很多工程人员痛心疾首。知道大部分项目中不同域之间的激活是怎么做到的吗?呵呵,好多同仁选择了两台机器通过相同的用户名和密码登录来破坏安全性;另一些掌握一些编程技术的同仁则通过在一台计算机中保存另一台计算机的用户名和密码;这些安全因患之所以不能排除,原因就是该死的OPC协议,这个吸附在微软的DCOM技术上的毒瘤;

※开发复杂:虽然笔者对DCOM技术掌握得较为熟练,但至今还能回忆起年轻时学习DCOM编程的黑暗日子,DCOM是一种经过一段时间痛苦,然后顿悟,发现原来所有写DCOM教材的人都在故弄玄虚,人为增加复杂度。同时,DCOM的内存管理和调用技术,往往需要较多经验,使本来容易的通讯开发,变得焦灼不堪。所以才有目前很多业界同仁委托其它公司开发OPC接口的事情;

※跨平台困难:连跨微软的多个操作系统,都会有些小问题,能在Linux和UNIX上使用OPC的人,更是寥寥;我至今只是闻名,未尝亲见这类高人;

那么为什么这么一个诟病甚多的协议会成为今天普遍接的标准呢?原因有二,一是时机,二是资本。当工业以太网时代还出于鸿蒙初开,各大自动化厂商还在为未来的总线争论得喋喋不休得时候,微软,这个操作系统的厂商,利用一种基于自己操作系统的分布式技术,在DCOM仿佛能够解决一切分布式问题的丧失理智的时代,推出了一种民不见经传的OLE for Process Control,没有引起任何一个自动化厂商的足够重视,而正是因为这种低调的入场,加上各大自动化厂商惯常的保守和对工业以太网技术发展前景的短视,OPC成长了起来。谁会将一个操作系统的厂商作为竞争对手呢?所以,OPC的开始是比较顺畅的。另一个强有力的吹鼓手是微软,他并没有鼓吹OPC无所不能,但它过分地鼓吹了DCOM,最终这种资本运作带来了浮躁,大家索性都不再研究其他开放的工业以太网传输协议了,OPC就是万能灵丹。历史再不断重演,今天的我们,又要被IBM等厂商所谓的SOA和Web2.0技术蒙住双眼。

另一个原因,就是崇洋,曾几何时,洋东西好得不得了,我还记得当时曾经定义一个内部的基于TCP数据传输协议,就有保守派在我耳边喋喋不休:协议这东西都是国外大公司制定得,如何如何神奇,如何如何专业,总之,中国人连制定一个企业的TCP传输协议的能力都没有了。不过最终证明,不但能够制定,只要对工业数据传输得需求把握得好,中国人可以制定出一样优秀得开放数据传输协议。但问题似乎总是出现:你制定了,谁拥护啊?你制定了,好吧,虽然是开放式协议,为啥是你A公司制定,不是我B公司制定?国人的问题多得不得了。中国目前也出了十多家有一定规模的自动化厂商,有没有成立一个多个企业的标准委员会,讨论一下国有开放标准?没有!这就是现实。我们不还以被美国仪器仪表协会承认而自豪么?我们不还为了能够达到欧洲标准而欣慰么?所以,在这样的土壤上,本土的种子难得开花结果。

其实,最适合工业使用的以太网数据交互协议,绝对不是OPC,而应该是一种基于TCP/IP的,平台无关传输协议。这种协议得制定,只要兼顾了实时值、历史值、主动变化通知,考虑了批量数据读写和并发连接,考虑了不同设备处理速度得不同,就会变得即鲁棒又实用。而我们国人完全有能力制定自己的开放协议!

我深深的知道,问题虽然明显,但明天早晨,我仍然必须接受这个洋品牌和洋标准充斥的世界。OPC虽然不好,但未来5年恐怕还会被趋之若骛。我的力量虽有限,但有幸的是我在一家民族自动化企业就职,还可以一点点地身体力行以尽绵薄,希望国内业界同仁达成共识,有朝一日,可以共同推动由中国人制定的开放工业以太网实时数据传输标准,到那个时候,这个自动化的行业,才能因开放的标准而变得简单高效,四通八达。

系统分类: 工控经理人   |   用户分类: 无分类   |   来源: 原创

    阅读(2602)    回复(23)  

最新评论

  • 成刚

    2007-4-11 12:56:47

    客户要求,我们又能怎么办呢。

  • OPC

    2007-4-10 23:51:35

    有深度

  • sup_zoux

    2007-4-12 11:14:14

    暂时没有办法,但后面会有曙光的,今年,我就要尝试做一件这样的事情,如果达成,则可以联合国内多家厂商共同制定,敬请期待

  • tenshi

    2007-7-6 23:41:48

    好文 支持一下

  • 鬼谷晓

    2007-7-6 23:26:46

    好就没有看到这样的好文了

    真是希望博主能得到上天的保佑 得偿所愿

    要国产 要创新 总要代价的 

    但愿能坚持下去

  • kevin

    2007-7-30 14:23:17

    深有同感。把一个以提高兼容性、减少专用接口限制的行业标准建立在一个公司的专有协议基础之上这件事本身就有些奇怪。况且这个公司自己对这个专有协议的态度也不是一成不变的。

    我们公司一直在为自己的硬件产品提供OPC接口,同时也开发些OPC相关工具软件,不过时至今日,却越来越有一种用其它技术替代它的想法。

    其实OPC标准里的思想还是不错的,如果架构在一个通用、开放的协议之上,比如TCP/IP,类似SuiteLink,其被接受程度可能远强于现在。

    新的OPC UA标准已经在试图做些改变,不过到底前景如何仍有待观察。

  • kevin

    2007-7-30 14:27:22

    另,看一些介绍资料上讲,ESP-iSYS实时数据库基于COM/DCOM技术构建,那应该也会遇到文中所列的问题,请问博主如何看?

  • 老工控

    2007-8-2 9:45:35

    OPC我们用的很多,这篇文章说的很多问题不成立。没那么严重。你到底用过没有??

  • sup_zoux

    2007-8-4 9:20:56

    首先,中控和目前多个自动化厂商计划制定的标准一定是开放且免费的,这种事情也许过去在国内不多见,但今后就不稀奇了。

    再回复“老工控”一个问题,OPC在小规模,尤其是在本地使用的时候,一些文中写到的问题是发现不了的。需要在分布式环境下,而且应用场合复杂的时候更易显现。至于用没用过,您不需要怀疑了,SUPCON是OPC基金会首批会员,国内OPC推广最早的一批企业。

    回复 kevin一个问题:
    ESP-iSYS内核的确基于COM/DCOM技术,因此在应用接口上面,实际上是基于COM/DCOM接口封装了TCP/IP接口,从而提高分布式应用的连接能力。未来的ESP-iSYS发展过程中,内核中的COM/DCOM将逐渐被摒弃

  • 阿冲

    2007-7-29 17:10:31

    避免国内实时数据库行业的恶性价格竞争,又是一个利益群体。

    别人OPC是免费的。

    如果你们能做一个免费的数据交换服务软件(只要兼顾了实时值、历史值、主动变化通知,考虑了批量数据读写和并发连接,考虑了不同设备处理速度得不同)。另提供一些接口,给我们自己定义一些需交换的数据点,国人就已经感激不尽了。

    想想LINUX是怎样发展壮大的。你们只要做好核心服务程序,大家都会跟你们走的。

    要钱就难说了?????????????????????????????

  • 闲云野鹤

    2007-10-29 21:41:59

    楼主似乎对OPC相当的熟悉,但似乎又不是很懂OPC。

    首先OPC是一种协议,OPC协议里只是定义了接口,OPC的不好是由于他建立在了DCOM的基础之上,大多数的诟病来源于DCOM本身而不是OPC协议本身,至少这篇文章对OPC的不满也几乎都来源于DCOM。那么楼主更应该骂微软,或是OPC基金会妥协与微软,而不是OPC协议本身。楼主是希望把OPC协议制定成为像modbus之类的协议,还是提出要建立一套分布式框架替代DCOM呢。这两者完全不是一个层面上的东西。如果是前者,我劝楼主应该站在更高的层次上,而不是盲目的准备去做无用功,如果是后者本人倒是颇感兴趣,本人才疏学浅,分布式框架只知道DCOM 、Cobra 、JMI、.Net Remoting、SOAP。其中JMI和.Net Remoting目前还是依赖于平台,而Cobra则是看起来很美,SOAP像是以后的发展方向,目前OPC 3.0协议已经是基于SOAP的了,性能问题导致他还不能大规模推广。

    第二,OPC协议存在也有不少年头了,站在现在的观点对一个陈旧的东西妄加批评似乎有点过分和小肚鸡肠。就像我们不能现在说DDE是一种多么简陋的IPC技术啊,毕竟他是一个时代的产物,在OPC产生的年代,windows上的主流技术难道不是DCOM吗,除非一开始就脱离微软。

    第三,“资本和崇洋豢养”这个词显得楼主太过于愤青,如果说用OPC就是“资本和崇洋豢养”,那么我们绝大多数用电脑的人都是“资本和崇洋豢养”,因为我们用的windows、linux、unix、solaris都是洋人给我们的,假如有一天真的有一种真正好的替代OPC的协议产生我第一个支持,如果目前还没有出来,还是希望楼主遵循“多谈些问题,少谈些主义”的原则,真正的能够为中国的自动化协议做些贡献。

    最后送给楼主一句话,“师夷长技以治夷”,治夷之前是师夷而不是鄙夷

  • Chennousstar

    2007-11-15 17:25:50

           有一定道理,但事务均有两面性,有利就有弊,

    关键是否利大还是弊.这篇文章抱怨太多却没有

    解决之道.....

  • sup_zoux

    2007-11-20 8:56:58

    首先,真理越辨越明,十分欢迎大家的参与。同时,对OPC的诟病,并非鄙夷。就像我谈到的,OPC之所以是这个现状,更多源于工控界的缺乏合作互信,崇洋也是事实。

    针对OPC,我们的确在制定一种更加开放易用的协议,这种协议直接基于TCP/IP,跨平台,不与任何操作系统瓜葛,可以从嵌入式一直支持到小型机。

    协议的讨论稿,将于年底交由中国实时数据库行业协会的理事单位讨论,同时欢迎今天参与讨论的同仁参与评审。获得通过后,还需要国人的支持。

    这是一个过程,我们希望得到一个像Modbus.org一样开放的标准。

  • wwyycc1976

    2007-11-28 21:58:10

    OPC我至今还是没有弄明白,怎样一个了解过程才是最有效率的!我不管是不是洋人的东西,实用就是硬道理!

  • 李鹏芊宏

    2007-12-5 11:28:04

    技术一旦和商业利益沾上了边,对技术所为的依赖,不过是维护直接或间接潜在利益客户的噱头!

  • 工控小子

    2007-12-7 14:43:04

    技术领先的国外厂家在国内不一定行

     

  • yzdatou

    2007-12-8 18:55:33

    安全性配置复杂:对于对操作系统并不专业的工控人员,OPC的安全性配置已经过于专业和复杂了。这导致了好多实例中,OPC都不是通过系统启动后自激活的,而是需要有交互式用户去登录,这给系统带来了极大的不安全性。即每次系统重启都可能需要人为干预。虽然经过合理的DCOM配置可以避免,但不幸的是大部分工控从业同仁对此并不掌握;

    --------------------

    这点我同意。

  • evid

    2007-12-26 9:14:08

    其实OPC的优越性还是显而易见的:


    硬件供应商只需提供一套符合OPC Server规范的程序组,无需考虑工程人员需求。


    软件开发商无需重写大量的设备驱动程序。


    工程人员在设备选型上有了更多的选择。


    OPC
    扩展了设备的概念。只要符合OPC服务器的规范,OPC客户都可与之进行数据交互,而无需了解设备究竟是PLC还是仪表,甚至在数据库系统上建立了OPC规范,OPC客户也可与之方便地实现数据交互。

  • pcbkenny

    2008-1-3 9:42:09

    http://pcb007.xinwen520.net

  • 1111

    2008-2-21 10:12:18

    ^_^

  • zwm00306

    2008-4-5 12:20:36

    同样的感觉,同样的感受

  • 狼之利刃

    2008-5-20 13:57:17

    OPC制定的开放性思想是非常好的,我在制定移动通信行业交互接口时吸收了他这方面的优点,很好解决了各设备厂商已开发或未开发设备无损接入的问题。

    OPC的弊端在于微软出于私利,将很多自己的东西强加进去了,使OPC背离了当初制定的目标和初衷

  • 狼之利刃

    2008-5-20 13:58:34

    QQ:5389408

    欢迎讨论