与子同袍 · 2020年04月16日

为什么工业现场要有不同的通讯协议?

这个问题比较大,我就简单说一说工业领域里面有五花八门的通讯协议的主要原因和工业总线的发展历史。
作者:与子同袍
首发:物联网前沿技术观察

主要观点来自于这本书:
书名:Industrial Communication Technology Handbook 版本:第二版 作者:Richard Zurawski

IEC在1985年曾经设想通过委员会来确定一种唯一的标准化的总线系统,来统一工厂和流程自动化的网络江湖。

但是经过14年的技术和政治斗争,最终失败了。取而代之的是妥协的产物IEC 61158和IEC 61784-1。
我们来看下IEC 61158标准的画风:

经过各个国家代表长达十几年的争论,最终的总线标准不是一种,而是20种!

惊不惊喜,意不意外?

这就相当于本来地球联盟想要创建一个新的世界语,让所有人不要再从幼儿园到大学辛辛苦苦学外语,结果各国争论了十几年,最终制定的地球语言标准是列举了二十种现在大家正在使用的最流行的语言。

下面正经答题。
工业和智能楼宇等领域存在许多种现场总线标准,主要由于如下4个原因:

  1. 工业现场有各种网络拓扑类型
  2. 工业现场需要传输的数据的特点不同
  3. 技术进步和市场需求导致出现新的总线标准
  4. 不同企业和国家要制定自己的现场总线标准,通过标准获利

其中原因1、2是最主要的因素,是内因,原因3、4是次要因素,同时也是外因。
首先我们直观感受下有哪些现场总线:

原因一、工业现场有各种网络拓扑类型
工业总线是数字化的通信标准,用于取代模拟信号传输,让更多的信息可以在现场设备和高层的控制系统之间进行双向传输。

那双向传输数据是在哪两端之间进行双向传输呢?我们看下工厂的自动化金字塔模型:

v2-fc33c9f141c9f54b04870a06e9bea56a_1440w.jpg

从上图我们可以看到,工厂里的网络按照实际业务其实分为6层。比如最底层的传感器和执行器需要与PLC或CNC等控制器进行连接,PLC、CNC与设备主控制器之间也需要组网;更上层的车间里的所有设备需要通过网络互相通信,在车间级上面是工厂级、企业级的生产信息的网络。

OSI模型提出的年代,有许多计算机网络系统互相不兼容。要是想在不同计算机网络之间互相通信,就需要投入许多特殊的软件和硬件去做网络适配。OSI模型就是要解决这个问题。

ISO引入了开放系统的概念。开放系统包含遵循一组标准的软件组件和硬件组件。其实这个与现在的AWS云计算是同样的道理。AWS通过提供标准化的API接口和服务。边缘计算EdgeX框架和IIC的架构也是同样的设计思路。而开放系统定义了标准的软件接口和硬件,有了这些标准,就可以保证不同厂商的设备可以互相兼容互相通信。

为了简化数据传输这个复杂的问题,OSI模型采用了严格的层级化的分层模型。

OSI模型有三个重要的概念:
1. 协议,第N层的协议跟对等的N层协议进行对话。
2. 服务:每一层向上一层提供服务, 上一层调用下一层的服务
3. 接口:每两层之间,上一层根据服务接口调用下一层的服务而不用知道具体实现

v2-fd4a5b6035907d664415173ce2bd7af9_1440w.jpg

现场总线协议也是根据ISO/OSI模型来建模的。但是在大部分情况下,实际只用了1、2、7层。这是从MAP的失败中吸取的教训。要是完整实现7层模型,要的资源要多得多,也没法高效的实现。因此MiniMAP和后续的IEC总线标准就只有三层结构:物理层、数据链路层和应用层。

简化的协议层栈反映了许多自动化应用中的实际情况。许多总线都是独立的网络,用中继器最多用网桥来扩展。因此,网络层和传输层(主要用于路由和端到端控制)就不必要了。其他省略掉的层也是同样道理。总线协议不是太复杂的。因此会话和表示层也不是必需的。

但是也不是所有的总线系统都是1、2、7层架构。有几种总线,明确定义了其他层。特别是在智能楼宇领域,情况有点特殊。由于智能楼宇里面节点数量众多,总线要有能力支持层级化的网络拓扑结构,比如三号楼/二夹层/3号新风系统/某控制器/…。

因此智能楼宇总线只有三层就不合理了。
EIB和KNX就有网络和传输层,用于在层级化的网络拓扑结构中路由和端到端控制。
BACnet有网络层,这个网络层对它很重要,因为BACnet是个高层协议,需要控制多种低层协议和链路,比如以太网、基于RS-485的MS/TP和LonTalk。对于这种异构的网络,一个统一的网络层就很重要。

当然有时也会需要3-6层的特定功能。这种情况下会把所需的功能放到2层或7层。对于IEC 61158总线标准,3和4层的功能可以放在2层或7层,而5、6层的功能总是放在7层。

总线里面协议结构最复杂的应该是LonWorks。哪怕现在主要用于智能楼宇,它其实设计为一个应用领域无关的通用的控制网络。它与一般的高效的常规总线相比,更像局域网。在LonTalk协议里,定义了OSI的所有7层,虽然第6层功能很少。第3层网络层功能特别丰富,支持许多类型的数据链路(智能楼宇领域数据链路种类特别多)、支持许多地址寻址模式、高级路由功能、支持许多通信对象,不光可以传输过程数据和网络管理,还可以文件传输。

工控领域中常用的总线系统中,ControlNet和P-NET比较特别,它们都实现了3层和4层。

原因二、工业现场需要传输的数据的特点不同
从总线需要传输的数据特点来看,也有许多种。有的数据要求实时性高,有的数据是周期性的,有的则是突发的,有的数据是生产数据,有的数据是管理数据,有的数据是在总线上走隧道.......

这些差异也决定了不可能用一种总线体系来传输各种不同特点的数据:

v2-f00fe486a182c147a14ac808b0ce1326_1440w.jpg

不同层面的业务需求是不同的,因此需要根据实际的应用场景对相应的总线协议进行优化设计。

  • 传感器层面的总线系统,要考虑的重点是低成本、高性能,抗干扰,传输距离,可靠性,实时性,与通信硬件接口匹配。
  • 控制器之间的总线系统,考虑的是灵活性能适应各种业务场景和网络拓扑结构、组态容易。
  • 智能楼宇的总线系统,需要能支持层级化的网络结构(工厂-大楼-楼层-控制器-设备),支持许多类型的数据链路(智能楼宇领域数据链路种类特别多)、支持许多地址寻址模式、高级路由功能。

原因三、技术进步和市场需求导致出现新的总线标准
2000年后,由于以太网的发展和控制器对实时性提出更高的要求,许多原来基于串口的总线,改为以太网网络,就有了Modbus/TCP、ProfiNET、EtherCAT等总线标准。

同时由于这段时间WSN无线传感网的技术发展,HART总线也出现了无线版本——Wireless-HART。

原因四、不同企业和国家要制定自己的现场总线标准,通过标准获利
都说一流企业定标准,可见标准的重要性。
对于标准制定企业来说,可以通过标准获利。

从1980起,随着PLC和智能传感器和执行器的技术进步,自动化行业有了很大的发展。对布线紧凑的进一步要求,加上微电子行业的发展,已经足够支撑专用总线的发展。不同的应用需求催生了不同的总线系统,当时自动化公司设计开发总线标准也是行业趋势和时髦的事情,就像现在每个工控公司都在搞工业物联网一样。

对总线概念理解的几个澄清

  1. 工厂里车间里有各种各样的网络,以太网、无线、工业总线等,互相通讯很困难。
  2. 普通的计算机网络有Area的概念,如局域网Local Area Network,个域网PAN Personal Area Network,广域网WAN。工厂里也有Area的概念,比如CAN就是控制器局域网络Controller Area Network。
  3. 工业现场的许多传感器总线没有复杂的网络拓扑结构,因此网络层、传输层都不需要。
  4. 同一个总线也会随着技术进步和应用行业需求而不断的发展演化不同的版本,典型的就是CAN总线标准。
  5. 看一个总线标准好不好,首先要基于其应用场合,其次要结合该总线出现的时代背景来理解其设计的年代和理念。
  6. 总线标准能否在市场上成功,不是遵循适者生存的模式,而是看总线标准提出者的市场占有率。这个提出者可以是工业巨头如西门子、施耐德和他们的一班Partner小弟公司,也可以是许多工控公司和IT公司结盟组成的标准委员会。
  7. 简单的将总线分为现场传感器执行器的总线和机器/生产流程总线是错误的,实际分类比这个复杂。
  8. 总线的最早起源其实是航空和汽车行业,后面才应用到工业现场和智能楼宇等领域。
  9. 每种工业总线的解决方案都是聚焦于解决特定问题的,在设计时会综合考虑性能、可靠性、硬件成本、软件成本、灵活性、管理便捷性等各种因素。
  10. 工业总线通常情况下是网络化的嵌入式系统,但是在一些情况下也会呈现出分布式操作系统的特点。
  11. 许多总线只定义了 OSI 7层模型的1、2、7层,即物理层、数据链路层和应用层。原因是网络结构简单,不需要路由功能和端到端的控制。

现场总线发展历史

第一阶段:1970年~1980年 酝酿阶段
现场总线的起源来自四个方面的技术进步:

  1. 基于电话网络的数据传输协议,如V.21、X.21等,是现场总线串行数据传输的鼻祖。
  2. 实验测量仪器和计算机外设的并行总线接口标准化和数据实时传输。电子工程师定义标准化的通讯接口的理念也被现场总线继承了。另外多个空间上分布的多个实验仪器数据如何多站multidrop实时传输的标准,如用于核物理的计算机自动测量和控制CAMAC标准和电子测试设备总线GPIB,也建立起来了。
  3. 计算机科学理论的发展OSI模型自顶向下的分层设计理念,后来成为了现场总线分层设计的核心指导思想。
  4. 电子技术的发展,集成电路微型化、I2C、微处理器、连接器技术、RS-485差分信号抗干扰,成为后来总线标准的硬件技术的基石。

在航空航天领域,由于对接线和重量的限制要求,远在板级总线发明之前,在1973年就已经有了MIL STD 1553 总线。它是第一种真正的现场总线,首先用于F16战斗机上。它已经有了当代总线的许多特点:

  • 数据和控制命令在同一根线上串行传输
  • 主从结构
  • 远距离传输
  • 集成控制器

后来,为了降低布线重量和成本,汽车和工控行业借鉴航空航天领域的设计,按照类似的想法设计了几种工业总线。重要的有Modbus、GPIB等总线。

第二阶段:1980年~2000年 发展阶段
从1980起,随着PLC和智能传感器和执行器的技术进步,自动化行业有了很大的发展。对布线紧凑的进一步要求,加上微电子行业的发展,已经足够支撑专用总线的发展。不同的应用需求催生了不同的总线系统,当时自动化公司设计开发总线标准也是行业趋势和时髦的事情,就像现在每个工控公司都在搞工业物联网一样。
1978年Hubert Zimmermann提出了OSI模型,ISO于1984年发布了ISO/OSI模型标准。ISO/OSI模型是对现场总线最重要的贡献。OSI模型的设计目的是成为一个所有设备厂商都能实现的开放网络模型,来克服使用众多私有网络模型所带来的集成困难。而现场总线也是要解决工厂里的各种异构网络互相通信的问题。因此OSI模型很快成为了现场总线设计的指导思想。
1982年GM首先使用OSI模型理念,设计了Manufacturing Application Protocol,简称MAP,试图解决工业现场各种层级的网络的通信问题。这个协议设计地强大又灵活,但是不可避免也变得很复杂,实现成本太高。于是就对这个协议进行了简化,简化的结果就是MiniMAP协议。MiniMAP协议只有1、2、7层,专注于工厂里的底层网络通讯问题,而不是所有层面的通讯都要考虑。但是这个协议还是没有获得成功。
后来取得成功的是Manufacturing Message Specification(MMS)协议。它定义了许多抽象对象和服务,后来成为许多其他总线协议设计的起点。
许多现场总线的一个特点是根据传统接口来定义,只有最下面的物理层和数据链路层,没有应用层。后来应用层也加上了,这样就可以用于其他领域。
CAN就是一个这个演化过程的例子:起先CAN用于汽车行业,所以定义了OSI模型的最下面两层就够用了。但是在工控领域,扩展性和互操作性很重要,高层的功能很重要。于是到了工控领域,就加上了一层特殊的应用层。CAN一开始没有定义应用层,反而成了许多不同的总线系统(CANopen、SDS、DeviceNet)使用CAN作为低层接口的原因。

第三阶段:2000年~现在 繁荣阶段
2000年后,由于以太网的发展和控制器对实时性提出更高的要求,许多原来基于串口的总线,改为以太网网络,就有了Modbus/TCP、ProfiNET、EtherCAT等总线标准。同时由于这段时间WSN无线传感网的技术发展,HART总线也出现了无线版本——Wireless-HART。



推荐阅读:

更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999
WX20200303-102828.png
推荐阅读
关注数
2173
内容数
73
专注物联网、工业4.0、工业互联网、边缘计算
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息