前言
作为一个工业自动化从业者,在工作中经常会提到现场总线这个词语,虽然不甚了解具体指的是什么但只看字面意思也能猜个大概,大概就是为现场的设备之间,或者设备与远端控制室之间的相互通信提供基础的一套通讯设备(并不严谨,只是猜测)。
而现在回过头来想深究一下到底什么是现场总线?所谓的现场总线到底是指硬件的通讯设备,还是指通讯规约(通讯协议)?
ISO/OSI七层网络协议模型
首先了解一下什么是ISO/OSI七层网络协议模型,即国际标准化组织ISO为数据通信建立了七层模型,如下图所示:
物理层协议
物理层协议是ISO/OSI七层网络协议中的最底层协议,是连接两个物理设备并为数据链路层提供透明位传输所必须遵循的规定。物理层协议又称为通讯接口协议
物理层协议涉及信道上传输的原始比特流,即两个设备进行通讯一方发出的是“0”,另一方就会正确的接收到“0”而不是“1”。物理层为建立、维护两个通讯设备之间二进制比特传输的物理连接而提供机械的、电气的、功能的和规范的特性标准。
物理连接可以通过中继系统,允许进行全双工或半双工的二进制比特流传输。
RS232通讯接口
RS232接口至少需要3根电缆,即RXD、TXD、GND,其中RXD和TXD为两条通讯信道,通信双方在进行全双工通信时可以同时实现“发送”和“接收”。
在RS232接口协议中规定有两条通信信道,主站通过其中一条信道给从站发送指令,从站接从另外一条信道将响应信息返回给主站,虽然RS232可以实现全双工通信,但是不能实现点对多点的信息交换,而且由于其电气信号为共模信号的原因,通信距离最长仅有15m,最大数据传输速率只有20kbit/s,且不平衡的电气接口使得串扰较大。
同时我们注意到上图中的双方的通信引脚接线时交叉的,即A方的发送端连接B段的接收端,A方的接收端连接B方的发送端,双方构成了全双工通信模式。
RS485通讯接口
RS485接口至少需要两根电缆,即D+、D-、(A+,B-),由此构成了RS485通讯接口,RS485接口只能实现半双工通信;但是由于其采用差分电路,极大地增强了抵抗共模干扰的能力,通信距离最大能达1200m,并且能实现多点通讯。
关于RS485接口的相关总结:
- RS485串行通信链路中有且只有一个主站
- RS485串行链路采用手牵手的连接方法,在通讯直线短于70cm的条件下,RS485允许有局部星型网络
- 每条RS485串行链路可连接最多32套子站,一般按照15-20套子站安排
数据链路层协议
物理层协议为通信双方定义了字节书写模式,建立了传输信息的介质通道。数据链路层就用字节构建出各种通信语句,通信语句又被称为信息帧,简称为帧;
以ModBus协议的数据帧为例:
数据链路层的主要目的是将一条原始的,有差错的物理线路变成对网络层无差错的数据链路,为了实现这一目的,数据链路层必须执行链路管理、帧传输、帧传输、流量控制、差错控制等功能。数据链路层所关心的是物理地址、网络拓扑结构、线路选择和规划等。
物理连接和数据链路连接是有区别的,数据链路连接是建立在物理连接之上,一个物理连接可以承载多个数据链路连接,数据链路连接断开时,物理连接不一定断开。
ModBus RTU 通讯协议就是一种工作在数据链路层上的通信规约。
网络层协议
网络层协议是OSI模型的第三层,同时也是通信子网的最高层,他是主机与通信网络的接口。网络层以数据链路层提供的无差错传输为基础,向最高层提供两个主机之间的数据传输服务。网络层协议涉及的基本技术有数据交换技术、路由选择技术、路由控制技术、流量控制以及差错控制策略。
ModBus TCP通信协议是工作在网络层上的通信规约。
现场总线
学习到这里就可以总结一下,以上提到的三层协议,以及工作在这三层的协议,都可以称作现场总线,例如ModBus、PROFIBUS、PROFINET、CC-LINK、CAN 等。
现场总线主要用来解决工业控制中各种仪器仪表、控制器、执行机构、现场设备之间的数字通信问题,以及现场控制设备与高级控制系统之间的信息交换问题。
而并非所有工业控制相关的协议都是现场总线,例如西门子的S7协议,其实在OSI模型的第七层。