1、通信协议概述:什么是通信协议、协议在自动化中的角色、OSI与TCP/IP模型对比

各位同学好,我是老张。今天咱们开始这门课的第一章——通信协议概述。说实话,我做了十几年自动化架构,见过太多项目因为协议没选对、没理解透而翻车。所以这一章,咱们把地基打牢。

1.1 什么是通信协议?

通信协议,说白了就是两台设备之间约定好的「沟通规则」。你想想看,两个人说话,得用同一种语言吧?设备也一样。A设备说「我发了个1」,B设备得知道这个1代表什么——是启动、停止,还是数据值?

我习惯把协议拆成三个要素:

  • 语法:数据怎么排列?比如先发地址还是先发数据?
  • 语义:每个字段代表什么意思?比如0x01是读指令还是写指令?
  • 时序:什么时候发?发完多久要回应?超时了怎么办?

举个例子:Modbus RTU协议里,一个报文帧是「地址+功能码+数据+CRC校验」。这就是语法。功能码0x03代表「读保持寄存器」,这就是语义。主机发完请求后,从机必须在规定时间内回复,这就是时序。

我在项目中遇到过最典型的坑:两个设备都号称支持Modbus,但一个用RTU(二进制),一个用ASCII(文本),结果死活对不上话。嗯,这就是协议没统一。

1.2 协议在自动化中的角色

自动化系统里,协议扮演什么角色?我总结了三句话:

  1. 桥梁:连接传感器、PLC、上位机、执行器,让它们能交换数据。
  2. 翻译官:不同厂商的设备,只要遵循同一协议,就能互相理解。
  3. 交通警察:避免数据冲突,保证谁先发、谁后发、发错了怎么处理。

举个例子,一条汽车焊装线,可能有几十台机器人、几百个传感器。如果没有协议,每个设备各说各的,现场就是一片混乱。我曾经调试过一个项目,就因为PLC和变频器之间的Profibus DP总线参数没配好,整条线停了半天。说白了,协议就是自动化系统的「神经系统」。

避坑指南:我曾经在选型时忽略了一个细节——协议版本。同一个协议,V1.0和V2.0可能不兼容。比如EtherNet/IP的CIP协议,不同版本对对象模型的定义有差异。所以,采购前一定要确认版本号。

1.3 OSI与TCP/IP模型对比

讲协议,绕不开这两个模型。很多新手觉得它们太抽象,我换个说法:

  • OSI模型:理论上的「完美七层」,像一本教科书,告诉你理想情况下通信应该怎么分层。
  • TCP/IP模型:实际用的「四层」,像工地上的施工手册,怎么简单怎么来。

下面这张表,是我自己整理的对比,你记牢了:

OSI七层 TCP/IP四层 典型协议举例 我的理解
应用层 应用层 HTTP、FTP、Modbus TCP 用户直接打交道的层
表示层 SSL、加密、数据压缩 翻译数据格式,OSI独有
会话层 NetBIOS、RPC 建立/管理会话,OSI独有
传输层 传输层 TCP、UDP 保证数据可靠到达
网络层 网络层 IP、ICMP 找路、路由选择
数据链路层 网络接口层 Ethernet、PPP 帧封装、MAC地址
物理层 RS-485、CAN、光纤 比特流、电压、引脚

为什么会这样?OSI模型是国际标准化组织(ISO)在1984年提出的,理想很丰满,但现实很骨感——太复杂了,没人完全照着做。TCP/IP模型是实际互联网的产物,把表示层和会话层合并到应用层,把物理层和数据链路层合并,简单实用。

在自动化领域,我个人的经验是:大部分工业协议都跑在TCP/IP模型上。比如Modbus TCP、Profinet、EtherCAT,它们本质上都是「应用层协议+TCP/UDP+IP+以太网」。但也有一些老协议,比如Profibus DP、CANopen,它们用的是OSI模型的部分层次(物理层、数据链路层、应用层)。

注意:别被「七层」吓到。实际调试时,你只需要关注三层:物理层(线怎么接)、数据链路层(帧怎么传)、应用层(数据怎么解析)。中间那些层,协议栈帮你搞定了。

1.4 小结

这一章,咱们聊了:

  • 通信协议就是设备间的「沟通规则」,包含语法、语义、时序。
  • 在自动化中,协议是桥梁、翻译官、交通警察。
  • OSI七层是理论模型,TCP/IP四层是实际模型。工业协议大多基于TCP/IP,但也要留意老协议。

下一章,咱们深入聊聊串口通信协议——RS-232和RS-485。那可是自动化工程师的「基本功」,我当年在车间里拿着万用表测RS-485电平的场景,现在还记忆犹新。到时候见。