1、通信协议概述:什么是通信协议、协议在自动化中的角色、OSI与TCP/IP模型对比
各位同学好,我是老张。今天咱们开始这门课的第一章——通信协议概述。说实话,我做了十几年自动化架构,见过太多项目因为协议没选对、没理解透而翻车。所以这一章,咱们把地基打牢。
1.1 什么是通信协议?
通信协议,说白了就是两台设备之间约定好的「沟通规则」。你想想看,两个人说话,得用同一种语言吧?设备也一样。A设备说「我发了个1」,B设备得知道这个1代表什么——是启动、停止,还是数据值?
我习惯把协议拆成三个要素:
- 语法:数据怎么排列?比如先发地址还是先发数据?
- 语义:每个字段代表什么意思?比如0x01是读指令还是写指令?
- 时序:什么时候发?发完多久要回应?超时了怎么办?
举个例子:Modbus RTU协议里,一个报文帧是「地址+功能码+数据+CRC校验」。这就是语法。功能码0x03代表「读保持寄存器」,这就是语义。主机发完请求后,从机必须在规定时间内回复,这就是时序。
我在项目中遇到过最典型的坑:两个设备都号称支持Modbus,但一个用RTU(二进制),一个用ASCII(文本),结果死活对不上话。嗯,这就是协议没统一。
1.2 协议在自动化中的角色
自动化系统里,协议扮演什么角色?我总结了三句话:
- 桥梁:连接传感器、PLC、上位机、执行器,让它们能交换数据。
- 翻译官:不同厂商的设备,只要遵循同一协议,就能互相理解。
- 交通警察:避免数据冲突,保证谁先发、谁后发、发错了怎么处理。
举个例子,一条汽车焊装线,可能有几十台机器人、几百个传感器。如果没有协议,每个设备各说各的,现场就是一片混乱。我曾经调试过一个项目,就因为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电平的场景,现在还记忆犹新。到时候见。